所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

一份全面的“容灾概要设计”是怎样的?

发布时间:2020-04-15 16:18:18

资讯分类:容灾  概要  设计  节点  故障  恢复
一份全面的“容灾概要设计”是怎样的?

如果系统需要具有容灾能力,即在机器发生故障时,系统的可用性基本不受影响,那么系统中所有数据至少需要有两个以上的副本,并且系统的处理能力要有一定的冗余,需要保证在故障机器不能提供服务时,系统不会过载。一般来说,数据的副本数量越多,系统的处理能力越冗余,系统的容灾能力越强。更进一步,还需要考虑物理部署,通过把数据的不同副本分布在不同机架、不同机房、甚至是不同城市,来把系统的容灾能力提升到不同的级别。

配置运维中心会监控系统存储层所有节点的状态,存储节点会定时上报心跳,如果配置运维中心在一段时间未收到某个存储节点的心跳,则把该节点的状态标记为故障,并进行故障处理流程。首先需要禁止故障节点继续提供服务,即通知接口层不再把客户端请求转发的故障节点,如果故障节点是主节点,配置运维中心会查询并对比所有备节点的同步进度,选择数据最新的备节点,将其切换为主节点。由于所有备节点也会记录Binlog,所以在切换为主节点之后,可以直接向其它备节点进行同步。这里的主备切换可能会导致少量的数据丢失,如果业务不能容忍这样的数据丢失,则需要使用其它强一致性的方案。

在容灾切换之后,还需要进行故障节点的恢复,以便系统恢复到正常的状态。故障机器恢复后,就会进入死机恢复流程,无论故障节点在故障前是主节点还是备节点,故障恢复后的角色都是备节点。首先待恢复节点需要把机器上所有的数据清空;接着主节点会把当前所有VNode的SyncSeq复制到待恢复节点,并且全量复制所有数据;在全量复制完成之后,开始进行数据同步,由前面的同步机制可知,同步的SyncSeq会从之前复制到待恢复节点的状态开始追赶;在主节点和待恢复节点之间的SyncSeq差异缩小到正常范围时,待恢复节点的角色就变为备节点,开始提供服务。

留言与评论(共有 0 条评论)
   
验证码:
Top