TFS多机房容灾策略

简介:

TFS集群支持异地机房容灾,一个逻辑集群包含分布在多个机房的物理集群,其中一个是主集群,其他的是备份集群。客户端写文件时,都会写到主集群,主集群的Dataserver(DS)异步将数据同步到多个备集群;客户端在读取数据时,会选择离自己最近的物理集群读取数据,如果读不到数据,就重试逻辑集群里的其他物理集群。

enter image de.ion here

对集群同步的期望

1. 所有的文件都能被同步到备集群 
2. 文件尽快同步到备集群 
3. 文件尽量从DS本地同步到备集群 
4. 文件在多个集群中数据及状态保持一致 

同步实施方案

写文件时,DS会记录同步日志(binlog),并在后台不断重放binlog,将文件同步到备集群,binlog记录在DS本地系统盘。由于日志本身是不可靠的存储,可能出现同步日志丢失的情况,每天夜间对整个集群会有一次定期的增量同步,以确保所有的文件都写到备集群。

由于文件数据通常很大,所以不能像mysql那样,把数据都记录在binlog,tfs的binlog里只包含文件的blockid、fileid等信息。重放日志时,DS先尝试从本地读取文件,并写到备集群;block可能在同步前被迁移到其他DS上,故如果本地读取不到,需要通过网络尝试读取其他副本来同步数据。

当部署多个备份集群时,为了避免往多个备份集群的同步相互影响,TFS为每个备份集群单独维护一份binlog,针对每份binlog,启动一个后台线程来重放。对于binlog里同步失败的文件,为了避免影响到后续文件的同步,失败的文件会写入到一个失败队列(持久化),有专门的后台线程定期的重试同步失败队列里的文件直到成功,然后将其移出失败队列。

多机房部署

在主集群的所有DS上配置备份集群Nameserver(NS)的地址

# edit ns.conf in master cluster  
slave_nsip = slave_cluster_ns_ip_port(eg: 192.168.1.100:3100)  

如果备份集群在搭建主集群的时候就已经配置好,那么非常轻松,主备集群从零开始就一直保持数据一致;但实际上,很多是先部署了单个集群,运行了一段时间,才开始张罗容灾的事情,也就是说准备搭建备份集群的时候,主集群里已经写入了很多数据,此时就会相对麻烦一些。

1. 搭建好备份集群 
2. 在t1时间用ssm工具dump出所有block(可以过滤掉空的block) 
3. 将上述block,使用sync_by_block工具同步到备份集群 
4. 在t2时间,在主集群的DS上配置上备份集群的NS地址(需要重启DS), 从t2时间起写入主集群的数据都会被同步到备份集群 

此时,备份集群还比主集群还少t1-t2写入的文件数据,可采取以下方式来补偿:

1. 再次dump主集群上所有的block,采用sync_by_block同步到备份集群。 
或者 2. 从日志里找出t1-t2时间段写入的所有文件,使用sync_by_file将这些文件同步到备份集群 

初看起来,第2种补偿反感应该快很多,实际上,sync_by_block时,如果文件已经同步到备份集群了,sync_by_block是不会再次重复同步的(会先对比下元信息,确定是否需要同步),所以规模不大时上述2种方案效率差别不大,更推荐第1种方案,实施起来比较简单(第2种方案需要了解TFS的日志文件的格式,找出写文件记录,并从这条记录解析出TFS文件名)。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2月前
|
容灾 数据中心
双活中心高可用性
双活中心高可用性
26 1
|
2月前
|
监控 容灾 安全
规划阿里云RDS跨区迁移并构建容灾与备份策略
规划阿里云RDS(Relational Database Service)跨区迁移并构建容灾与备份策略
107 2
|
存储 运维 容灾
容灾的架构分析和容灾选择策略
容灾的架构分析和容灾选择策略
容灾的架构分析和容灾选择策略
|
11月前
|
存储 运维 容灾
阿里云跨可用区备份容灾解决方案详解
本文结合阿里云的可用区资源及功能延展了一种更新的跨可用区容灾解决方案,并选型了一款对企业来说性价比较高的产品进行分析分享,希望对大家有帮助。
|
负载均衡 容灾 NoSQL
【服务器系列】高可用方案
高可用的一些解决方案冷备双机热备同城双活异地双活异地多活。
318 0
【服务器系列】高可用方案
|
消息中间件 存储 容灾
Elasticsearch 多种跨机房灾备方案对比与实战解读
本文将会介绍几种 Elasticsearch 常见的灾备方案,同时提供了 Demo 案例方便大家动手体验。
4355 1
Elasticsearch 多种跨机房灾备方案对比与实战解读
|
负载均衡 监控 容灾
《DNS稳定保障系列2--全局流量管理保障异地容灾》
背景 随着互联网的快速发展,为保证业务的持续高可用,同城多活、异地多活已成为各企业的不二之选。服务设置多中心,中心内部多地址负载,是多数企业采用的常规做法。这种情况下,如何对流量进行有效控制以达到最佳的用户访问效率变得尤为重要。
|
存储 监控 容灾
异地容灾方案解析
一、异地容灾主要备份三种数据: 1、DB数据 2、操作系统 3、日志信息 二、恢复时间不能超过30分钟 三、图中为DB的备份方式,DB总的有四份备份:生产存储一份、移动硬盘一份、备份存储一份、灾备存储一份。
1355 0
|
弹性计算 负载均衡 容灾
如何在阿里云上构建高可用的跨AZ部署方案
引言 针对企业而言不管业务是不是在云上服务的稳定和连续性总归是无法回避的话题为了降低不可抗力因素对服务提供造成的影响我们有了高可用性和容灾的概念。虽然我们的产品已有很高的可用性我们仍不能忽视构建服务高可用性和容灾的重要性。
7989 0