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

文档序号:9330384阅读:537来源:国知局
网络容灾系统的数据传输方法
【技术领域】
[0001]本发明涉及数据容灾技术领域,尤其涉及一种网络容灾系统的数据传输方法。
【背景技术】
[0002]随着互联网应用的发展,互联网的使用人数越来越广,用户大量的数据都保存在互联网的服务器上,这一切都对运行在互联网上的应用的可用性和数据存储的可靠性提出了更严格的要求,因为一个应用的故障有可能造成不可估量的损失,而数据的丢失更是会有致命的后果。
[0003]例如,2011年4月21日早晨,亚马逊旗下的EC2及RDS服务就出现了网络延迟和连接错误等问题,导致Foursquare、Quora、Reddit Paper.1i等网站出现间歇性无法访问。放在EC2上的大型网站有很多,有国外媒体称半个美国互联网受到了影响,此次出现故障的是位于北弗吉尼亚州的数据中心。再例如,1993年,美国世贸中心大楼发生爆炸,爆炸前,约有350家企业在该楼中工作,I年后,再回到世贸大楼的公司变成了 150家,有200家企业由于无法存取重要的信息系统而倒闭、消失。“9.11”事件中,由于有1993年爆炸的前车之鉴,在世贸大楼内的一些公司建起了自己的容灾系统,因此,当灾难再次降临时,有一批公司仍可及时地通过自己的容灾系统很快恢复营业。
[0004]所以基于数据备份的数据容灾技术近些年来发展非常迅猛,常见的数据容灾备份方式包括两种:
[0005]—是主机型,通过网络将应用数据从主节点传输到备节点;二是存储型,使用存储专用软件,无须经过服务器,直接在主机和备机使用的存储之间直接进行数据镜像,这种方式一般是高端存储才能提供的功能。
[0006]第一种方式无需专用的高端存储,所以在互联网或者中小企业受到了广泛的欢迎。而主机型网络容灾备份又分基于应用的或者基于磁盘的。基于应用的数据容灾指的是通过某一特定应用的专门容灾软件,将应用的数据(比如数据库的日志系统)截获并发送到远端的备机,然后在远端的备机按照应用的逻辑将数据恢复,这种容灾软件通常只针对特定的应用,适用范围较狭窄;而基于磁盘的数据容灾指的是将主机的磁盘的写操作截获,通过网络同步到备机,并更新到磁盘上,通过这种方式,让主备机磁盘数据块保持一致,这种方式能够适用于所有应用,所以是目前使用得最广的一种数据容灾备份方式。
[0007]作为基于磁盘的数据容灾备份,主备机之间通常使用广域网的网络进行数据传输,而广域网的带宽一般都比较小,所以为了保证容灾的可靠性,主备机之间数据传输必须遵循一定的规则,使得在主机进行定期的计划内维护时或者在主机发生故障(计划外)时,备机能够迅速的接管应用和应用数据,从而使用户的访问不受计划内或计划外停机的干扰。这些规则包括:
[0008]数据顺序一致性:也就是备机写入数据严格按照主机的数据写入顺序。考虑到广域网内数据传输带宽较小的情况,主备机之间通常采用异步的方式进行传输。保证写入顺序即能保证备机的数据始终处于主机的某一个时间点的状态。在这种状态下,通常在设备上的文件系统或者数据库都是可以正常加载和访问的。这样就能保证在主机发生故障时,备机随时都可以接管应用,使应用不中断。
[0009]数据完整性:也就是说主机和备机之间数据差异必须始终是可以追溯的,否则任何一次计划外停机切换就会导致一次数据完全同步来保证初始数据一致,这在广域网下是不可以接受的。
[0010]为此,大部分通过磁盘网络镜像的数据容灾软件采用一个队列来保存磁盘的写入记录,它们通过截获磁盘的写记录,将记录按照顺序保存在一个缓冲队列里,然后将缓冲队列里的内容依次发送给远端服务器。这个缓冲队列有的放在磁盘里,有的放在内存中。放到内存中的有可能在主机意外重启后会丢失记录,这时候主备机就必须进行全同步来保证数据重新一致。
[0011]当主节点和备节点数据一致,为了对主节点进行维护,我们需要将主节点和备节点的角色进行转换,我们称这种行为为计划内迀移;当主节点发生异常,备节点被变成主节点,并接管应用,我们称这种方式为计划外迀移。当发生计划内或计划外迀移时,两个节点握手后,需要决定他们之间是进行下列那种数据复制方式。而现有技术中在节点之间重新握手时,特别是在计划外迀移的情况下,一般是采用全盘复制的模式,这无疑增加了主节点的业务持续时间,增加了主备节点之间的数据传输量,大大延长了应用恢复所需要的时间,增加了备机数据不完整的时间,因为备机数据不完整容易造成容灾数据不可用的风险。
[0012]另外,现有技术中还存在如下缺陷:在增量复制(增量复制是基于bitmap实现)时,主机如果每次接收到外部新写入的数据时,都会立马生成新的bitmap,这样就会导致增量同步一直进行而得不到bitmap为O的时刻,从而导致备机数据一直处于不完整的状态。

【发明内容】

[0013]本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种网络容灾系统的数据传输方法。
[0014]本发明解决其技术问题所采用的技术方案是:构造一种网络容灾系统的数据传输方法,所述容灾系统包括至少两个节点,所述至少两个节点分为一个主节点和至少一个备节点,每个节点存储有元数据信息,所述元数据信息包括该节点上一次进行输出传输过程中涉及到的主节点的信息以及前次写入数据的信息,
[0015]所述方法包括:
[0016]S1、每个备节点与主节点连接握手,并交换各自的元数据信息;
[0017]S2、针对每个备节点,主节点将自身的元数据信息与该备节点的元数据信息进行比较,确定四种复制模式中的一种实现主节点与该备节点之间的数据传输;其中,所述四种复制模式包括为顺序复制、增量复制、全盘复制、冲突合并。
[0018]在本发明所述的网络容灾系统的数据传输方法中,所述元数据信息包括本地主节点信息和前次主节点信息,所述本地主节点信息和前次主节点信息均包括以下字段:
[0019]uuid,用于唯一标识一个节点的一次变成主节点的过程;
[0020]id,用于唯一标识当前的主节点;
[0021]seq,用于记录节点当前写入数据的序列号,且在写入的数据为增量复制中的增量数据时,seq为零。
[0022]在本发明所述的网络容灾系统的数据传输方法中,
[0023]当一个节点从备节点变成主节点时产生所述本地主节点信息,当一个节点从主节点变成备节点并开始接收其他主节点传输的数据时,将所述本地主节点信息清空;
[0024]当一个节点作为备节点并接受其他主节点传输的数据时产生所述前次主节点信息,该前次主节点信息的uuid、id和seq被设置为该其他主节点的本地主节点信息的uuid、id和seq,并在接收到新的数据时更新前次主节点信息的seq的值。
[0025]在本发明所述的网络容灾系统的数据传输方法中,所述步骤S2包括:
[0026]S21、判断备节点的本地主节点信息是否非空,如果不是,则进入步骤S22,如果是,则进入步骤S23 ;
[0027]S22、如果备节点的本地主节点信息与主节点的前次主节点信息的所有字段均相等,则主节点与备节点之间采用顺序复制;如果备节点的本地主节点信息与主节点的前次主节点信息的UUID和id两个字段相等、或者备节点的前次主节点信息与主节点的本地主节点信息的UUID和id两个字段相等、或者备节点的前次主节点信息与主节点的前次主节点信息的所有字段均相等,则主节点与备节点之间进行冲突合并;其他情况采用全盘复制,结束;
[0028]S23、如果备节点的前次主节点信息与主节点的本地主节点信息的UUID和id两个字段相等、或者备节点的前次主节点信息与主节点的前次主节点信息的所有字段均相等,则判断备节点的前次主节点信息的seq字段是否为零,如果是,则主节点与备节点之间采用增量复制,如果不是,则主节点与备节点之间采用顺序复制;其他情况采用全盘复制,结束。
[0029]在本发明所述的网络容灾系统的数据传输方法中,每个节点均包括后端数据设备和磁盘缓冲队列,所述磁盘缓冲队列用于顺序存储外部写入的数据,并通过写操作将数据写入本地的后端数据设备的数据块,所述磁盘缓冲队列还存储有与各个节点绑定的多个数据增量位图,所述数据增量位图记录有主节点所有写操作的数据块的位置;
[0030]所述顺序复制包括:主节点将磁盘缓冲队列中的数据依次发往备节点;
[0031]所述增量复制包括:主节点将备节点的数据增量位图中所指定的后端数据设备的数据块的数据发往备节点。
[0032]在本发明所述的网络容灾系统的数据传输方法中,所述磁盘缓冲队列中包括Meta区、DBM区和DATA区,所述Meta区存储有所述元数据信息、一个尾指标和与各个节点绑定的多个头指标;所述DBM区存储有所述的多个数据增量位图;所述DATA区包括多个数据块,用于顺序存储外部写入的数据;
[0033]所述数据增量位图包括多个bit位,每一个bit位与后端数据设备中
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1