vitess元数据跨机房灾备解决方案

Davygeek Davygeek     2022-08-29     725

关键词:

测试使用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:4001 --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:4001 del tt $ 0
# 写入key tt1 value,返回OK $ etcdctl --endpoints=192.168.80.221:4001 put tt1 value $ OK
# 查询刚才写入的key tt1 $ etcdctl
--endpoints=192.168.80.221:4001 get tt1 $ tt1 $ value
# 删除刚才写入的key tt1,返回影响行数1 $ etcdctl
--endpoints=192.168.80.221:4001 del tt1 $ 1
# 继续删除,返回影响行数0 $ etcdctl --endpoints=192.168.80.221:4001 del tt1 $ 0

    两个机房的etcd集群都分别使用自己的vip,把vip挂在到LVS下, 通过LVS的探活即可保证元数据的正常切换; 

 

 2. tablet部署

  tablet由于是依赖于etcd集群,上面我们已经解决了元数据集群的高可用,tablet的部署可以在一个机房部署两个实例,组成一个集群, 如果一个机房挂了, 可以很容易切换到另外一个机房。 只需把灾备机房的从提升为主即可正常提供服务; 这个中间数据是不会丢失的,如果服务中压力大可以随时再增加1-2个从。 

3. vtgate

 vtgate的部署也是使用两个机房分别部署, 灾备机房可以不提供服务,两个机房的机器也可以通过挂在在LVS下,LVS进行探活,如果机房或者机器出现故障可以自动切换到灾备机房。

 

主备机房介绍

...异地部署一套与现有机房一样的生产环境,为原有机房的数据备份和应急数据运转中心。灾备机房有什么用随着企业规模的扩展,用户原有意识中的数据备份已经无法 查看详情

mysql跨机房异地区的主从数据库同步备份业务实现解决方案

mysql跨机房异地区的主从数据库同步备份业务实现解决方案 背景早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过... 查看详情

数据容灾备份方案

传统容灾在业务痛点:1传统容灾在业务同步过程中数据复制,由于数据格式复杂、数据量大,数据在传输过程中,网络受带宽的限制,无法满足RPO和RTO的要求。2容灾备份成本高、备份系统消耗了冗长的恢复时间,却还是不能保... 查看详情

跨机房微服务高可用方案:derbysoft路由服务设计与实现

...攀,德比软件架构师,2007年2月加入德比软件。主要负责数据对接平台的架构和实现。作为德比软件早期员工,从无到有的主导了德比软件数据对接平台的架构设计和实现, 查看详情

利用otter实现跨机房数据同步

Otter:   otter是阿里开源的一个分布式数据库同步系统,尤其是在跨机房数据库同步方面,有很强大的功能。它是基于数据库增量日志解析,实时将数据同步到本机房或跨机房的mysql/oracle数据库。 环境:(由于环境隐... 查看详情

实战kafka之异地双活--mirrormaker1.0

...法提供服务的问题。异地双活在异地灾备的基础上减少了数据的冗余,并且提高了对数据双向同步及同步实时性的要求。Kafka作为在双活中扮演了很重要的角色,一方面是两个区域的正常业务的消息数据分发、另一方面则是elastic... 查看详情

elasticsearch的灾备同步方案

为了避免ElasticSearch发生意外情况发生,导致数据丢失或者整个集群不能提供服务,所以对存储的数据进行灾备是在使用ElasticSearch过程中,必不可少的重要环节。主要分享低代码、微服务、容器化、SAAS‬、系统架构方面的的‬内... 查看详情

同程旅行hadoop集群跨机房迁移实践

...acheHadoop、Hive、Spark  contributor 背景随着同程旅行业务和数据规模越来越大,原有的机房不足以支撑未来几年的扩容需求,同时老机房的保障优先级也低于新机房。为了不受限于机房的压力,公司决定进行机房迁移。... 查看详情

混合云容灾介绍

...助您保护企业防范不可预知的情况发生,并能提供可行的解决方案!越来越多的抛弃了传统的备份软件,选择模块化的备份解决方案。这是因为传统过时的备份工具无法满足当今企业的需求——数据量现以每年30%-50%的指数级增... 查看详情

数据中心解决方案之灾备方案设计(下)

1.6数据级容灾设计数据的复制是应用接管的基础,保障数据复制的完整性和实时有效性才能使得应用的接管有意义。数据复制主要分为4大类(1.4.2已有说明),综合性价比和客户自身情况,Primeton推荐可以使用... 查看详情

数据中心解决方案之灾备方案设计(上)

1.数据中心容灾备份解决方案随着社会的发展和科技的进步,政府日常工作越来越依赖于数据处理来进行,政务系统的连续性依赖于数据中心系统的稳定运行。然而,灾难就像灰尘一样伏击在运营环境周围,政务... 查看详情

两地三中心两地三中心--灾备解决方案

两地三中心,两地是指同城、异地,三中心是指生产中心、同城容灾中心、异地容灾中心。结合近年国内出现的大范围自然灾害,以同城双中心加异地灾备中心的“两地三中心”的灾备模式也随之出现,这一方案兼具高可用性和... 查看详情

手把手部署原生vitess集群(非k8s部署)(代码片段)

最近研究分布式的关系型数据库扩展方案,vitess是youtube开源的中间件,基于mysql实现的分布式分库分表方案。相对于ShardingSphere,ProxySQL,maxscale,vitess的部署是最复杂的。本文经过实践,将vitess的集群部署... 查看详情

云灾备基础知识

一、灾备保护的什么?对于各行各业而言,用户数据、系统数据均是企业最核心、最重要的财富,但以下种种原因,都可能给数据带来不可逆转的损坏。只有完善的灾备方案,才能最终保障数据安全、业务连续性。随着互联网市... 查看详情

cdp灾备

...备方案的两个重要指标RPO-恢复点目标,决定了丢失多少数据RTO-恢复时间目标,决定了业务中断了多长时间两者的值要充分考虑到备份数据的重要程度和业务中断时间的允许范围。RPO=0,RTO接近于0,保证数据0丢失,业务停顿时间... 查看详情

动环监控系统方案

...、安保进行遥测采集,实时监视,并能记录保存处理相关数据,侦测故障,实现机房的安防系统、动力系统、环境系统智能监控维护管理。为确保机房安全,可进入机房的人员进行分级授权管理,无人值守、远程管控多个机房。... 查看详情

华海天成-北京兆维机房|酒仙桥机房|北京联通电信机房

北京​​联通兆维机房​​​是联通北京分公司一类数据中心之一,位于酒仙桥兆维工业园,机房三楼为中国电信核心机房、四五楼为中国联通核心机房。​​兆维机房​​是目前全国唯一的国家级的灾备中心,国家金融和证券... 查看详情

抵御跨站攻击:firefox90引入元数据请求标头功能

Mozilla很高兴地宣布,Firefox90版本将支持基于“元数据请求标头”的获取功能,使得Web应用程序能够保护自身和用户免受各种跨源威胁。据悉,此类威胁涵盖了跨站点请求伪造(CSRF)、跨站点泄露(XS-Leaks)、以及投机性跨... 查看详情