本文分享自天翼云开发者社区《基于快照的异步远程复制介绍》,作者:l****n
1、简介:
本文介绍了基于RBD快照的异步远程复制技术
2、概念介绍:
异步远程复制:通过定时的将业务端的数据同步到备份端,从而实现数据的备份和灾难恢复的技术;
RBD快照:RBD快照是RBD在某一时刻全部数据的只读镜像,可以保留某个时间点的状态历史;
同步快照:当发起定时拷贝任务时,主端(即业务端)创建的RBD快照作为此次同步任务的同步快照;
一致性快照:当主从拷贝任务完成后,对从端创建RBD快照,此时从端的数据与主端的同步快照的时间点数据一致,此时的快照称为一致性快照;
3、工作原理:
创建移步远程复制pair对:
选择跨region或者跨AZ的大小一致的卷,建立主从异步远程复制关系对;异步远程复制分为主端设备与从端设备,主端设备为业务端,主端的卷可读写,从端设备为备份端,从端的卷对外只读;在建立好异步远程复制关系对之后,会关闭从端卷的写权限;
创建同步策略:
创建类型为时间间隔或者指定时间的同步策略,在激活异步远程复制关系对之后,后台将启动定时器,根据用户指定的策略,进行数据的同步;
数据同步:
首次同步为全量同步,为了防止从端卷有脏数据,在执行全量同步之前会清空从卷数据,执行全量拷贝之前,主端创建同步快照,将主卷所有 数据拷贝至从端,完成数据拷贝之后,对从卷创建快照作为初始同步的一致性快照,将主卷已经完成同步的同步快照进行归档,标记为此时与从卷数据一致的一致性快照;
完成初始同步之后,标记初始同步已完成,之后的同步全部为增量同步;
增量同步:先对主端创建快照作为此次数据同步的同步快照,对此同步快照与上一次完成同步的一致性快照,并拷贝差异数据到从端,完成拷贝后,对从卷创建快照作为此次同步的一致性快照,并将主端的同步快照归档为此次同步的一致性快照;
分裂:
分裂与异常断开均为暂停异步远程复制对的复制任务,但不解除主从复制关系,后端将停止后台定时器,已经分裂的异步复制关系对在用户主动发起同步任务之前,不会再执行同步任务;
异常断开:
异常断开为同步任务发生异常,后台自动发起的任务,发生异常时,后台将异步复制关系对状态更新为“异常断开”, 并在下一个同步任务执行周期,重试此次已经失败的任务;
关闭从资源写保护:
处于正常状态的异步复制关系对,从卷均处于写保护状态,如果用户想要发起主从切换操作,需要先关闭从资源写保护操作,让从卷可读写;
在执行关闭从资源写保护之前,必须先分裂异步复制关系对,停止后台的自动同步任务;
主从切换:
如果主端发生了故障,需要将从端作为业务端拉起服务,需要交换主从的复制关系,让原先的从端作为现在的主端承接业务,并将数据定时拷贝到原先的主端(即主从切换后的从端);
在执行主从切换之前,需要先分裂异步复制关系,关闭从资源写保护;
开启从资源写保护:
在完成了主从切换之后,此时主从两端对外均为可读写状态,此时的异步复制关系对无法进行自动同步,需要先关闭从资源写保护,让从端对外只读;
由于在执行了主从切换之后,用户可能不会立即执行开启从资源写保护操作,为了保证主从之间数据实时的一致性,在执行了主从切换和关闭从资源写保护之后的首次同步任务执行直线,需要先对从端使用完成上一次同步的一致性快照做快照回滚,以保证从卷无任何脏数据;
平滑任务:
当主端或者从端服务重启时,主从两端的复制对的状态或者角色信息会出现不一致,此时需要后端发起平滑任务,处理双主、双从以及状态不一致的问题;
平滑任务对复制对状态的处理:按照 正常 -> 同步中 -> 异常断开 -> 分裂 -> 失效 的顺序进行跃迁,例如主端此时处于正常,但是从端处于同步中,那么将主从的状态都修改为同步中,并重新发起同步任务,如果主端处于同步中,从端处于异常断开,那么主从均更新为异常断开,并在下个同步周期重新发起同步任务;如果主端处于异常断开,从端处于分裂,那么主从均更新为分裂,停止后台定时同步任务,依此类推;
对于双从的状态,分析主从卷的快照的时间,以最新一次创建同步快照的一端作为主端;异步复制不允许出现双主,当出现双主时,将复制对关系置为失效状态,处于失效状态的关系对只能进行删除,用户在删除后可以重新建立复制对关系
删除异步复制关系对:
当用户想要解除主从复制关系时,可以删除异步复制关系对,让主从卷成为独立的卷;