网络容灾系统的数据传输方法_2

文档序号:9330384阅读:来源:国知局
的一个数据块对应,如果一个bit位被置为1,则表示该bit位对应的数据块的数据没有备份到相应的备节点,如果一个bit位被置为0,则表示该bit位对应的数据块的数据备份到相应的备节占.V,
[0034]当DATA区的一个数据块写入数据时,所述尾指标前移一位;当DATA区的一个数据块的数据写入到主节点的后端数据设备时,主节点的头指标前移一位。
[0035]在本发明所述的网络容灾系统的数据传输方法中,如果主节点在增量复制结束前写入新的数据,则等待本轮增量复制结束后,根据备节点的头指标与主节点的头指标之间的数据生成新的数据增量位图,并基于新的数据增量位图开始下一轮的增量复制。
[0036]在本发明所述的网络容灾系统的数据传输方法中,所述的根据备节点的头指标与主节点的头指标之间的数据生成新的数据增量位图包括:在该备节点的数据增量位图中,将备节点的头指标至主节点的头指标之间的数据块所对应的bit位全部置为1,再将备节点的头指标前移至主节点的头指标的位置。
[0037]在本发明所述的网络容灾系统的数据传输方法中,
[0038]所述顺序复制为:主节点将Meta区所存储的备节点的头指标所对应的DATA区的数据块中的数据发往备节点,且在收到备节点返回的确认信息后将备节点的头指标前移一位,当备节点的头指标与主节点的头指标所指向的数据块相同时,主节点与该备节点之间的顺序复制结束;
[0039]所述增量复制为:主节点在DBM区找到备节点的数据增量位图,将数据增量位图中的数值为I的bit位所对应的数据块的数据发送到备节点,并在接收到备节点返回的确认信息后将对应的bit位清零,当数据增量位图的所有bit位全部为O时,主节点与该备节点之间的增量复制结束;
[0040]所述全盘复制为:主节点将备节点的数据增量位图的所有的bit位全部置为I ;基于该数据增量位图执行所述增量复制,或者将各个数据块的hash值发送至备节点进行比较,如果hash值相同,贝Ij备节点返回确认信息将对应的bit位清零,如果hash值不同,贝Ij备节点通知主节点传输对应的数据块的数据,并在接收到数据时返回确认信息将对应的bit位清零;当数据增量位图的所有bit位全部为O时,主节点与该备节点之间的全盘复制结束;
[0041]所述冲突合并为:主节点和备节点分别根据各自的DATA区的数据生成数据增量位图,主节点将双方的数据增量位图进行异或运算产生新的数据增量位图,然后基于新的数据增量位图执行所述增量复制。
[0042]在本发明所述的网络容灾系统的数据传输方法中,在顺序复制的过程中,如果尾指标指向最小的头指标所指向的数据块的上一个数据块,则停止对该最小的头指标所对应的备节点的顺序复制,根据该最小的头指标与尾指标之间的数据生成该最小的头指标所对应的备节点的数据增量位图,并将该最小的头指标前移至尾指标的位置,且将主节点与该最小的头指标所对应的备节点的复制模式切换到增量复制。
[0043]实施本发明的网络容灾系统的数据传输方法,具有以下有益效果:本发明在节点之间重新握手时,通过交换各自的元数据信息判断采用何种复制模式进行数据传输,能有效降低主备节点进行全盘复制的概率,减少主备节点的数据传输量,大大的缩短容灾中应用恢复所需要的时间,减少备机数据不完整的时间,降低因为备机数据不完整而造成容灾数据不可用的风险;
[0044]进一步地,在进行增量同步时,主节点若写入数据并不立马更新数据增量位图,而是等待本轮增量复制结束后,将备节点的头指标与主节点的头指标之间的数据转化为数据增量位图数据后再次进行增量同步,如此,在增量复制完成后备节点数据完整性能得到保障,减少增量复制时对上层应用性能的损失。
【附图说明】
[0045]下面将结合附图及实施例对本发明作进一步说明,附图中:
[0046]图1是磁盘缓冲队列的结构示意图;
[0047]图2是本发明的第一实施例的流程图。
【具体实施方式】
[0048]为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的【具体实施方式】。
[0049]容灾系统包括至少两个节点,一般把可以复制的源节点称之为主节点(也称Primary节点),而复制的目的节点(一个或多个)称之为备节点(也称Secondary节点)。通常主节点上的磁盘设备是可读写的,而备节点上的磁盘设备是不可以访问的,直到备节点变成主节点才可以访问。节点主备角色的切换通常有相应的集群软件来自动实现,此处不做赘述。
[0050]本发明中,每个节点存储有与其他节点进行数据传输的相关信息的元数据信息,所述元数据信息包括该节点上一次进行输出传输过程中涉及到的主节点的信息以及前次写入数据的信息,
[0051]所述方法包括:
[0052]S1、每个备节点在与主节点在连接握手时,交换各自的元数据;
[0053]S2、针对每个备节点,主节点将自身的元数据与该备节点的元数据进行比较,确定四种复制模式中的一种实现主节点与该备节点之间的数据传输;其中,所述四种复制模式包括为顺序复制、增量复制、全盘复制、冲突合并。
[0054]在阐述本发明的具体原理之前,首先介绍磁盘复制中的四种复制模式:顺序复制、增量复制、全盘复制、冲突合并。
[0055]每个节点包括保存数据的后端数据设备和保存写记录的磁盘缓冲队列(简称为BffR, Block Write Record)。参考图 1,该 BWR 中包括 Meta 区、DBM 区和 DATA 区。所述 Meta区存储有元数据信息、一个尾指标和与各个节点绑定的多个头指标;所述DBM区存储有与各个节点绑定的多个数据增量位图;所述DATA区包括多个数据块,用于顺序存储外部写入的数据。所有写入到主节点磁盘的数据,最开始都是按照4K( 一般操作系统对磁盘操作的最小单位)的数据块保存在BWR的DATA区中,然后再转移到本地的后端数据设备的数据块中。
[0056]BffR的DATA区实际上是一个先进先出的队列,当DATA区的一个数据块写入数据时,尾指标前移一位,开始时所有的头指标都指向DATA区的第一个数据块,当数据块依次写入到本地的后端数据设备时,主节点的头指标依次往前移动,当数据块依次写入到备节点或者转化为备节点的数据增量位图时,备节点的头指标往前移动至相应的位置。当尾指标超过磁盘边界时,回到磁盘头部,而当尾指标追上最小的头指标时,表明BWR已满,磁盘的写操作将被挂起,直到BWR有空闲空间为止。例如图1中,图中tail表示尾指标,head-A、head-B、head_C分别表示主节点A、备节点B、备节点C的头指标。head_B是最小的头指标,head-B与tail之间的空间为空闲空间,一旦tail追上head_B则表示BWR满。主节点中DATA区的每个数据块中的数据必须优先写入主节点的后端数据设备的数据块中后才可发往备节点备份,所以head-A必定位于head_B、head-C的前面。
[0057]顺序复制:
[0058]在顺序复制时,是直接将DATA区的数据块的数据发往备节点。DATA区的数据块无论是写入本地还是备节点,都是根据头指标的指向选择写入的数据块,所以保证了数据的顺序一致性。
[0059]对备节点进行顺序复制具体为:主节点首先找到其Meta区所存储的备节点的头指标,确定其头指标所指向的数据块,然后将该数据块中的数据发送到备节点,在收到备节点写入数据的确认信息(ACK)后将备节点的头指标前移一位,然后继续下一个数据块的发送,当备节点的头指标与主节点的头指标所指向的数据块相同时,则判定主节点与该备节点之间的顺序复制结束。
[0060]例如,图1中,主节点A本身还有最后一个数据块(head-A和tail之间的数据块)未写入后端数据设备。当前时刻,对于节点B来说,还有head-B和head_A之间的数据块没有进行备份(当然最后随着head-A到达tail,备份的数据也相应增加到tail),对于节点C来说,还有head-C和head-A之间的数据块没有进行备份。
[0061]增量复制:
[0062]上述提到,DBM区存储有多个数据增量位图(bitmap),其记录有主节点所有写操作的数据块的位置,具体的,每个bitmap包括多个bit位,每一个bit位与后端数据设备中的一个数据块对应,如果一个bit位被置为1,则表示该bit位对应的数据块的数据没有备份到相应的备节点,如果一个bit位被置为0,则表示该bit位对应的数据块的数据备份到相应的备节点。
[0063]增量复制即是基于bitmap进行增量同步,增量同步为:将bitmap中的数值为I的bit位所对应的数据块的数据发送到备节点,并在接收到备节点返回的确认信息后将对应的bit位清零,当bitmap的所有bit位全部为O时,代表增量同步结束;
[0064]因此,在重新握手时,如果确定采用增量复
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1