vitess元数据跨机房灾备解决方案
测试使用vitess的时候发现vitess元数据的实现有多种方案,etcd, etcd2, zk,zk2, 由于刚开始测试的时候使用的是基于k8s集群+etcd的,以下就分步说明灾备实现方案:
1. 前置条件
元数据实现方式必须选择etcd2, 即在启动的时候需要增加参数
-topo_implementation etcd2 #元数据实现方案, 此处一定需要选择etcd2, 如果选择etcd的话无法使用etcd API3提供的 etcdctl make-mirror进行数据同步
-topo_global_server_address http://etcd-global:4001
-topo_global_root "/vt" #此处也需要指定,默认元数据存储路径使用/vt, 此处不设置也行(但是如果不设置程序是可以正常使用但是使用工具无法获取元数据信息,至于为什么获取不到没有搞明白);这里呢可以保留默认配置使用/vt即可
使用etcd2实现的原因是etcd2使用API_V3进行开发, etcd使用的是API_V2进行开发的, API_V3中官方提供了etcdctl make-mirror 工具可以用来做两个集群元数据的同步操作, 这样在跨机房灾备的时候就可以实现两套etcd集群数据的同步操作,保证一个机房挂了另一个机房依然可以正常提供服务。
上面所说的配置需要分别更新vtctld, vtgate, vttablet三个程序对应的配置,保证配置一致系统才可以正常使用。
2. 灾备部署

1. etcd集群
etcd集群分别在廊坊机房和马驹桥机房分别部署一套,通过工具etcdctl make-mirror实现两个集群数据的同步
#此部分很重要, 使用make-mirror工具必须基于API3
$export ETCDCTL_API=3
#参数说明
#endpoints集群入口(需要备份的源集群)
#dest-prefix目标集群目录前缀
#prefix需要备份的目录
#127.0.0.1:2379目标集群地址,备份数据会被写入目标集群指定的dest-prefix目录下
$etcdctl make-mirror --endpoints=192.168.80.221: --dest-prefix="/vt" --prefix="/vt" 127.0.0.1:2379
#运行后如果有数据同步了会每隔30s输出一次当前更新的key的数量
#18
#19
#19
#29
同步进程最好开启守护进程, 确保程序始终在运行, 这里我们设计的同步进程需要在每个机房启动一个,确保一个程序宕机之后依然还有一个在使用,避免元数据的丢失;两个进程同时写入的时候不会有影响,写入的时候默认etcd都返回OK,两个进程写入的数据是相同的,,所以不会有影响。
对于删除的时候我们可以留意下, etcd删除数据的时候只返回影响的行数,所以我们无需担心同事启动两个进程对元数据产生影响,可以确保元数据始终和源是一样的。
# 先删除tt,由于tt不存在所以返回影响行数是0,这个是不会报错的
$ etcdctl --endpoints=192.168.80.221: del tt
$ 0
# 写入key tt1 value,返回OK
$ etcdctl --endpoints=192.168.80.221: put tt1 value
$ OK
# 查询刚才写入的key tt1
$ etcdctl --endpoints=192.168.80.221: get tt1
$ tt1
$ value
# 删除刚才写入的key tt1,返回影响行数1
$ etcdctl --endpoints=192.168.80.221: del tt1
$ 1
# 继续删除,返回影响行数0
$ etcdctl --endpoints=192.168.80.221: del tt1
$
两个机房的etcd集群都分别使用自己的vip,把vip挂在到LVS下, 通过LVS的探活即可保证元数据的正常切换;
2. tablet部署
tablet由于是依赖于etcd集群,上面我们已经解决了元数据集群的高可用,tablet的部署可以在一个机房部署两个实例,组成一个集群, 如果一个机房挂了, 可以很容易切换到另外一个机房。 只需把灾备机房的从提升为主即可正常提供服务; 这个中间数据是不会丢失的,如果服务中压力大可以随时再增加1-2个从。
3. vtgate
vtgate的部署也是使用两个机房分别部署, 灾备机房可以不提供服务,两个机房的机器也可以通过挂在在LVS下,LVS进行探活,如果机房或者机器出现故障可以自动切换到灾备机房。
vitess元数据跨机房灾备解决方案的更多相关文章
- NOS跨分区灾备设计与实现
本文来自网易云社区 作者:王健 摘要 NOS(网易对象存储)在实现多机房(杭州机房,北京机房等)部署后,允许一个用户在建桶时选择桶所属机房.在此基础上,我们实现了跨机房的数据复制,进一步实现了跨机房的 ...
- Oracle集群和灾备解决方案介绍
Oracle本身有各种各样的解决方案,本文主要是对以下几种解决方案做一下简单的梳理. 1. Oracle Rac解决方案. Oracle Rac主要通过两台Oracle服务器来组件集群,提高Or ...
- etcd跨机房部署方案
使用ETCD做为元数据方便快捷,但是谈到跨机房灾备可能就迷糊了,我们在做节日灾备的时候同样遇到了问题, 通过查阅官方文档找到了解决方案,官方提供make-mirror方法,提供数据镜像服务 注意: m ...
- 如何守护数据安全? 这里有一份RDS灾备方案为你支招
当今世界是一个充满着数据的互联网世界,生活的方方面面都在不断产生着数据,比如出行记录.消费记录.浏览的网页.发送的消息等等.除了文本类型的数据,图像.音乐.声音都是数据.对于企业而言,数据更是重要的生 ...
- SQLServer 2014 本地机房HA+灾备机房DR解决方案
SQLServer 2014 主数据中心HA+灾备机房DR解决方案 SQLServer 2008 的时候使用 local WSFC+DR Mirror方式,对象是单数据库 两个单独的 WSFC 上使用 ...
- Linux实战教学笔记48:openvpn架构实施方案(一)跨机房异地灾备
第一章VPN介绍 1.1 VPN概述 VPN(全称Virtual Private Network)虚拟专用网络,是依靠ISP和其他的NSP,在公共网络中建立专用的数据通信网络的技术,可以为企业之间或者 ...
- 云区域(region),可用区(AZ),跨区域数据复制(Cross-region replication)与灾备(Disaster Recovery)(部分1)
本文分两部分:部分1 和 部分2.部分1 介绍 AWS,部分2 介绍阿里云和OpenStack云. 1. AWS 1.1 AWS 地理组件概况 AWS 提供三种地理性组件: Regions:区域,即A ...
- 理解 OpenStack 高可用(HA)(1):OpenStack 高可用和灾备方案 [OpenStack HA and DR]
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- openStack灾备方案说明
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1) OpenStack 高可用方案概述 (2) Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3 ...
随机推荐
- Strace--系统调用分析问题集锦
---------------------------------------------------------------------------------------------------- ...
- 深度CTR预估模型中的特征自动组合机制演化简史 zz
众所周知,深度学习在计算机视觉.语音识别.自然语言处理等领域最先取得突破并成为主流方法.但是,深度学习为什么是在这些领域而不是其他领域最先成功呢?我想一个原因就是图像.语音.文本数据在空间和时间上具有 ...
- 解决Ubuntu下博通网卡驱动问题
sudo apt-get install bcmwl-kernel-source我的无线网卡是BCM4312 802.11b/g 在12.04 会集成驱动,装完就能用,现在用14.04,16.04里面 ...
- PHP获得数组的交集与差集
PHP获得数组的交集与差集 作者:简明现代魔法图书馆 发布时间:-- :: 次阅读 服务器君一共花费了218. ms进行了6次数据库查询,努力地为您提供了提供了这个页面. 数组的交集 array_in ...
- Mac上Nginx-增加对HLS的支持
Mac上Nginx-增加对HLS的支持 我们在Mac上搭建直播服务器Nginx说了如何在Mac搭建视频直播服务器Nginx,对RTMP推流和RTMP拉流的支持.接下来说说如何增加对HLS的支持. 在N ...
- .htaccess中的apache rewrite规则写法详解
.htaccess中的apache rewrite写法: 1 RewriteEngine On 2 RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$ 3 Rewr ...
- hdu1025 最大上升字串
Constructing Roads In JGShining's Kingdom Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65 ...
- Iptables规则执行顺序详解
1.The first is the mangle table which is responsible for the alteration of quality of service bits ...
- Exercise:Sparse Autoencoder
斯坦福deep learning教程中的自稀疏编码器的练习,主要是参考了 http://www.cnblogs.com/tornadomeet/archive/2013/03/20/2970724 ...
- 破解idea注册码
添加 “0.0.0.0 account.jetbrains.com”到host, hosts位置:C:\Windows\System32\drivers\etc 获取注册码网址: http://ide ...