数据备份方法、系统和服务器的制作方法

文档序号:7743861阅读:219来源:国知局
专利名称:数据备份方法、系统和服务器的制作方法
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种数据备份方法、系统和服务器。
背景技术
网络附加存储(Network Attached Storage ;以下简称NAS)文件系统由NAS客户 端和NAS服务器组成。一个NAS服务器包括处理器、文件服务管理模块和多个用于数据存 储硬盘驱动器。NAS客户端可以安装到应用服务器上;NAS服务器可以应用在任何的网络环 境中。客户端可以通过网络文件系统(Network File System;以下简称NFS)协议、通用因 特网文件系统(Common Internet File System ;以下简称CIFS)协议等等非常方便地在 NAS服务器上存取任意格式的文件。NAS服务器可以根据NAS客户端发出的指令完成对内 在文件的管理。现有技术提供的一种基于数据块镜像的实现方法中,NAS服务器采用通用高可靠 性(High Availability ;以下简称HA)软件与通用镜像软件结合实现数据备份,并提供高 可靠性存储。但是这种方法中,需要部署HA软件与通用镜像软件,因此增加了软件部署的 复杂度;并且,这种方法中,在NAS服务器的块设备层实现数据同步,数据处理的层数较多, 因此实现较复杂,数据同步的性能较低;另外,上述方法在异步时容易丢失数据。此外,还可 以采用NAS客户端同时向两个NAS服务器并发地写数据,从而达到数据备份的效果。但是 这种方法的开发量大,开发实现的成本较高。

发明内容
本发明实施例提供一种数据备份方法、系统和服务器,以简化软件部署,提高数据 同步性能。本发明实施例提供一种数据备份方法,包括接收客户端发送的写操作指令;将所述写操作指令中的待写入数据写入第一服务器的文件接口层缓存;将所述待写入数据发送至第二服务器,以便所述第二服务器将所述待写入数据写 入所述第二服务器的文件接口层缓存。本发明实施例还提供一种第一服务器,包括接收模块,用于接收客户端发送的写操作指令;写入模块,用于将所述接收模块接收的写操作指令中的待写入数据写入所述第一 服务器的文件接口层缓存;发送模块,用于将所述待写入数据发送至第二服务器,以便所述第二服务器将所 述待写入数据写入所述第二服务器的文件接口层缓存。本发明实施例还提供一种数据备份系统,包括客户端、第一服务器和第二服务 器,所述第一服务器,用于接收所述客户端发送的写操作指令,将所述写操作指令中的待写入数据写入所述第一服务器的文件接口层缓存,并将所述待写入数据发送至所述第二服务器,以便所述第二服务器将所述待写入数据写入所述第二服务器的文件接口层缓存。通过本发明实施例,第一服务器接收到写操作指令之后,将该写操作指令中的待 写入数据写入第一服务器的文件接口层缓存,并将该待写入数据发送至第二服务器,以便 第二服务器将该待写入数据写入第二服务器的文件接口层缓存。本发明实施例在文件接口 层进行数据同步,与现有的在块设备层进行数据同步的方案相比,减少了数据处理的层数, 节约了处理时间,因此可以方便地实现数据备份,提高了数据同步的性能;并且在文件接口 层进行数据同步,不要求两个服务器的块设备层完全一致,甚至两个服务器的文件系统可 以采用不同的本地文件系统,适用性较高;另外,本发明实施例不需修改客户端,不影响客 户端已有的部署,也不需要第三方镜像软件,简化了软件部署,降低了实现成本。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。图1为本发明数据备份方法一个实施例的流程图;图2为本发明实施例服务器的逻辑结构示意图;图3为本发明数据备份方法另一个实施例的流程图;图4为本发明数据备份方法再一个实施例的流程图;图5为本发明第一服务器一个实施例的结构示意图;图6为本发明第一服务器另一个实施例的结构示意图;图7为本发明数据备份系统一个实施例的结构示意图;图8为本发明NAS集群一个实施例的结构示意图;图9为本发明NAS集群另一个实施例的结构示意图;图10为本发明NAS集群再一个实施例的结构示意图;图11为本发明分布式文件系统一个实施例的结构示意图;图12为本发明分布式文件系统另一个实施例的结构示意图;图13为本发明分布式文件系统再一个实施例的结构示意图;图14为本发明分布式文件系统又一个实施例的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明数据备份方法一个实施例的流程图,如图1所示,该实施例可以包 括
步骤101,接收客户端发送的写操作指令。步骤102,将写操作指令中的待写入数据写入第一服务器的文件接口层缓存。图2为本发明实施例服务器的逻辑结构示意图,如图2所示,本发明实施例中,月艮 务器的逻辑结构包括应用层、文件接口层、文件系统、块设备层和硬盘驱动,在服务器接收 到一个指令之后,应用层、文件接口层、文件系统、块设备层和硬盘驱动依次对该指令进行处理。本实施例中,数据备份可以由服务器来执行,在本实施例中可以为第一服务器,在 第一服务器和第二服务器的文件接口层设置缓存,在第一服务器接收到写操作指令之后, 第一服务器将该写操作指令中的待写入数据写入该第一服务器的文件接口层缓存。步骤103,将待写入数据发送至第二服务器,以便第二服务器将待写入数据写入第 二服务器的文件接口层缓存。本实施例中,第一服务器可以在将写操作指令中的待写入数据写入第一服务器的 文件接口层缓存的同时或之后,将该待写入数据发送至第二服务器;即步骤102和步骤103 可以并行执行,也可以先执行步骤102,再执行步骤103。在第二服务器接收到第一服务器发送的待写入数据之后,第二服务器将该待写入 数据写入第二服务器的文件接口层缓存。本实施例中,步骤102 步骤103实现了第一服务器和第二服务器在文件接口层 进行数据同步,提高了数据同步的性能。上述实施例在文件接口层进行数据同步,与现有的在块设备层进行数据同步的方 案相比,减少了数据处理的层数,节约了处理时间,因此可以方便地实现数据备份,提高了 数据同步的性能,并且在文件接口层进行数据同步,不要求两个服务器的块设备层完全一 致,甚至两个服务器的文件系统可以采用不同的本地文件系统,适用性较高;另外,本实施 例不需修改客户端,不影响客户端已有的部署,也不需要第三方镜像软件,简化了软件部 署,降低了实现成本。图3为本发明数据备份方法另一个实施例的流程图,如图3所示,该实施例可以包 括步骤301,第一服务器接收客户端发送的写操作指令。步骤302,第一服务器将该写操作指令中的待写入数据写入第一服务器的文件接
口层缓存。本实施例中,第一服务器的逻辑结构如图2所示,在第一服务器的文件接口层设 置缓存,第一服务器接收到写操作指令之后,第一服务器将该写操作指令中的待写入数据 写入该第一服务器的文件接口层缓存。步骤303,第一服务器将该待写入数据发送至第二服务器。本实施例中,第一服务器可以在将写操作指令中的待写入数据写入第一服务器的 文件接口层缓存的同时或之后,将该待写入数据发送至第二服务器;即步骤302和步骤303 可以并行执行,也可以先执行步骤302,再执行步骤303。步骤304,第二服务器将该待写入数据写入第二服务器的文件接口层缓存。本实施例中,步骤302 步骤304实现了第一服务器和第二服务器在文件接口层 进行数据同步,与现有的在块设备层进行数据同步的方案相比,减少了数据处理的层数,节约了处理时间,提高了数据同步的性能;并且在文件接口层进行数据同步,不要求第一服务器与第二服务器的块设备层完全一致,甚至第一服务器与第二服务器的文件系统可以采用 不同的本地文件系统,适用性较高。步骤305,第一服务器接收第二服务器在将上述待写入数据写入该第二服务器的文件接口层缓存之后发送的第一响应消息。本实施例中,第二服务器在将上述待写入数据写入该第二服务器的文件接口层缓存之后,向第一服务器发送第一响应消息,接收到该第一响应消息之后,第一服务器可以确 定第二服务器将待写入数据写入文件接口层缓存的操作已完成。步骤306,第一服务器向客户端发送第二响应消息,该第二响应消息是对写操作指令的响应。本实施例中,在第一服务器和第二服务器将待写入数据写入各自的文件接口层缓 存的操作完成,且第一服务器接收到上述第一响应消息之后,第一服务器即可向客户端发 送第二响应消息,而不必等到第一服务器和第二服务器各自的块设备层写硬盘时,再向客 户端发送响应消息,从而提高了写操作的响应速度。步骤307,第一服务器将写入第一服务器的文件接口层缓存中的待写入数据存储 至第一服务器的硬盘。步骤308,第二服务器将写入第二服务器的文件接口层缓存中的待写入数据存储 至第二服务器的硬盘。本实施例中,第一服务器和第二服务器可以异步或同步地将各自的文件接口层缓 存中的待写入数据存储至各自的硬盘中,即步骤307与步骤308可以并行执行,也可以先后 执行,本发明实施例对步骤307与步骤308的执行顺序不作限定。下面对本实施例中可能出现的异常情况的处理方式进行介绍。(1)第一服务器将该写操作指令中的待写入数据写入第一服务器的文件接口层缓 存的操作失败,因此在预定的时间间隔,例如5分钟内,客户端未接收到第一服务器发送 的第二响应消息;这时,客户端会重发写操作指令,重复预置次数后,例如3次后,均未收 到第二响应消息时,客户端向上层返回失败响应。(2)第一服务器将写入第一服务器的文件接口层缓存中的待写入数据存储至第一 服务器的硬盘的操作失败,这时第一服务器会在本地硬盘中申请新的存储空间,再次执行 将写入第一服务器的文件接口层缓存中的待写入数据存储至第一服务器的硬盘的操作。(3)当第一服务器在将待写入数据存储至第一服务器的硬盘的过程中发生故障, 例如第一服务器掉电,未能将该待写入数据存储至第一服务器的硬盘时,该第一服务器的 文件接口层缓存中的数据丢失;但是由于第二服务器未发生故障,因此第二服务器成功将 上述待写入数据存储至第二服务器的硬盘,并且第二服务器在第一服务器发生故障期间接 管第一服务器的工作,因此第一服务器在恢复正常工作之后,首先根据第一服务器中文件 系统的事务日志,从第二服务器获取待写入数据,并将获取的待写入数据写入第一服务器 的文件接口层缓存;然后,第一服务器根据第二服务器在第一服务器发生故障期间记录的 同步日志(SYNC-LOG),同步第一服务器的文件接口层缓存中的数据与第二服务器的文件接 口层缓存中的数据。在第一服务器与第二服务器的文件接口层缓存中的数据达到一致之 后,再将文件接口层缓存中的数据存储至硬盘。
(4)当第二服务器在将待写入数据存储第二服务器的硬盘的过程中发生故障,例 如第二服务器掉电,未能将该待写入数据存储至第二服务器的硬盘时,第二服务器参照 (3)中的处理方式进行处理,在此不再赘述。上述实施例可以方便地实现数据备份,提高了写操作的响应速度;在文件接口层 进行数据同步,提高了数据同步的性能;并且在文件接口层进行数据同步,不要求两个服 务器的块设备层完全一致,甚至两个服务器的文件系统可以采用不同的本地文件系统,适 用性较高;并且在一个服务器发生故障之后,另一服务器记录同步日志,在发生故障的服务 器恢复正常工作之后,可以根据同步日志同步两个服务器中的数据,可靠性高;另外,本实 施例不需修改客户端,不影响客户端已有的部署,也不需要第三方镜像软件,简化了软件部 署, 降低了实现成本。图4为本发明数据备份方法再一个实施例的流程图,如图4所示,该实施例可以包 括步骤401,第一服务器接收客户端发送的写操作指令。步骤402,第一服务器将该写操作指令中的待写入数据写入第一服务器的文件接
口层缓存。本实施例中,第一服务器的逻辑结构如图2所示,在第一服务器的文件接口层设 置缓存,第一服务器接收到写操作指令之后,第一服务器将该写操作指令中的待写入数据 写入该第一服务器的文件接口层缓存。步骤403,在预设的缓存同步条件被满足之后,第一服务器将待写入数据发送至第 二服务器。本实施例中,当第一服务器与第二服务器之间的网络连接带宽有限时,可以预先 设置缓存同步条件,只有在预设的缓存同步条件被满足之后,第一服务器才将待写入数据 发送至第二服务器。该缓存同步条件可以为第一服务器当前的业务量低于预设的阈值,该阈值可以根 据第一服务器的性能,以及第一服务器与第二服务器之间的网络连接带宽设置;即在第一 服务器当前的业务量大于预设的阈值,即第一服务器比较繁忙时,可以先将待写入数据存 放在该第一服务器的文件接口层缓存中,在第一服务器当前的业务量低于上述预设的阈值 之后,第一服务器再将该待写入数据发送至第二服务器。从而第一服务器将该待写入数据 发送至第二服务器的操作,不会影响第一服务器自身业务的处理。当然,本发明实施例并不仅限于此,缓存同步条件也可采用其他的设置方式,只要 可以实现第一服务器将该待写入数据发送至第二服务器的操作,不影响第一服务器自身业 务的处理即可。步骤404,第二服务器将该待写入数据写入第二服务器的文件接口层缓存。本实施例中,步骤402 步骤404实现了第一服务器和第二服务器在文件接口层 进行数据同步,与现有的在块设备层进行数据同步的方案相比,减少了数据处理的层数,节 约了处理时间,提高了数据同步的性能;并且在文件接口层进行数据同步,不要求第一服务 器与第二服务器的块设备层完全一致,甚至第一服务器与第二服务器的文件系统可以采用 不同的本地文件系统,适用性较高。步骤405,第一服务器接收第二服务器在将上述待写入数据写入该第二服务器的文件接口层缓存之后发送的第一响应消息。
本实施例中,第二服务器在将上述待写入数据写入该第二服务器的文件接口层缓 存之后,向第一服务器发送第一响应消息,接收到该第一响应消息之后,第一服务器可以确 定第二服务器将待写入数据写入文件接口层缓存的操作已完成。步骤406,第一服务器向客户端发送第二响应消息,该第二响应消息是对写操作指 令的响应。本实施例中,在第一服务器和第二服务器将待写入数据写入各自的文件接口层缓 存的操作完成,且第一服务器接收到第一响应消息之后,第一服务器即可向客户端发送第 二响应消息,而不必等到第一服务器和第二服务器各自的块设备层写硬盘时,再向客户端 发送响应消息,从而提高了写操作的响应速度。步骤407,第一服务器将写入第一服务器的文件接口层缓存中的待写入数据存储 至第一服务器的硬盘。步骤408,第二服务器将写入第二服务器的文件接口层缓存中的待写入数据存储 至第二服务器的硬盘。本实施例中,第一服务器和第二服务器可以异步或同步地将各自的文件接口层缓 存中的待写入数据存储至各自的硬盘中,即步骤407与步骤408可以并行执行,也可以先后 执行,本发明实施例对步骤407与步骤408的执行顺序不作限定。本实施例中异常情况的处理方式与本发明图3所示实施例相同,在此不再赘述。上述实施例可以方便地实现数据备份,提高了写操作的响应速度;在文件接口层 进行数据同步,提高了数据同步的性能;并且在文件接口层进行数据同步,不要求两个服务 器的块设备层完全一致,甚至两个服务器的文件系统可以采用不同的本地文件系统,适用 性较高;并且在一个服务器发生故障时,另一服务器记录同步日志,在发生故障的服务器恢 复正常工作之后,可以根据同步日志同步两个服务器中的数据,可靠性高;另外,本实施例 不需修改客户端,不影响客户端已有的部署,也不需要第三方镜像软件,简化了软件部署, 降低了实现成本。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。图5为本发明第一服务器一个实施例的结构示意图,本实施例中的第一服务器可 以实现本发明图1所示实施例的流程,如图5所示,该第一服务器可以包括接收模块51、 写入模块52和发送模块53。其中,接收模块51,用于接收客户端发送的写操作指令。写入模块52,用于将接收模块51接收的写操作指令中的待写入数据写入第一服 务器的文件接口层缓存;本实施例中,第一服务器的逻辑结构可以如图2所示,在第一服务器的文件接口 层设置缓存,在接收模块51接收到写操作指令之后,写入模块52将该写操作指令中的待写 入数据写入该第一服务器的文件接口层缓存。发送模块53,用于将上述待写入数据发送至第二服务器,以便第二服务器将待写入数据写入第二服务器的文件接口层缓存;本实施例中,发送模块53可以在写入模块52将 写操作指令中的待写入数据写入第一服务器的文件接口层缓存的同时或之后,将该待写入 数据发送至第二服务器。具体地,发送模块53可以在预设的缓存同步条件被满足之后,将该待写入数据发 送至第二服务器,以便第二服务器将待写入数据写入该第二服务器的文件接口层缓存。本实施例中,写入模块52和发送模块53实现了第一服务器与第二服务器在文件 接口层进行数据同步,与现有的在块设备层进行数据同步的方案相比,减少了数据处理的 层数,节约了处理时间,提高了数据同步的性能;并且在文件接口层进行数据同步,不要求 第一服务器与第二服务器的块设备层完全一致,甚至第一服务器与第二服务器的文件系统 可以采用不同的本地文件系统,适用性较高。本实施例中,接收模块51还可以接收第二服务器在将待写入数据写入第二服务 器的文件接口层缓存之后发送的第一响应消息,该第一响应消息用于表示第二服务器将待 写入数据写入第二服务器的文件接口层缓存的操作已完成。这时,发送模块53还用于在接 收模块51接收到第一响应消息,并且写入模块52将待写入数据写入第一服务器的文件接 口层缓存之后,向客户端发送第二响应消息,该第二响应消息是对写操作指令的响应。本实施例中,在第一服务器和第二服务器将待写入数据写入各自的文件接口层缓 存的操作完成之后,发送模块53即可向客户端发送第二响应消息,而不必等到第一服务器 和第二服务器各自的块设备层写硬盘时,再向客户端发送响应消息,从而提高了写操作的 响应速度。上述第一服务器可以方便地与第二服务器实现数据备份,提高了写操作的响应速 度;在文件接口层进行数据同步,提高了数据同步的性能;并且在文件接口层进行数据同 步,不要求两个服务器的块设备层完全一致,甚至两个服务器的文件系统可以采用不同的 本地文件系统,适用性较高;另外,本实施例不需修改客户端,不影响客户端已有的部署,也 不需要第三方镜像软件,简化了软件部署,降低了实现成本。图6为本发明第一服务器另一个实施例的结构示意图,本实施例中的第一服务器 可以实现本发明图1、图3或图4所示实施例的流程,如图6所示,该第一服务器可以包括 接收模块61、写入模块62、发送模块63、存储模块64、获取模块65和同步模块66。其中,接收模块61,用于接收客户端发送的写操作指令。写入模块62,用于将接收模块61接收的写操作指令中的待写入数据写入第一服 务器的文件接口层缓存;本实施例中,第一服务器的逻辑结构可以如图2所示,在第一服务器的文件接口 层设置缓存,在接收模块61接收到写操作指令之后,写入模块62将该写操作指令中的待写 入数据写入该第一服务器的文件接口层缓存。发送模块63,用于将上述待写入数据发送至第二服务器,以便第二服务器将待写 入数据写入第二服务器的文件接口层缓存;本实施例中,发送模块63可以在写入模块62将 写操作指令中的待写入数据写入第一服务器的文件接口层缓存的同时或之后,将该待写入 数据发送至第二服务器。具体地,发送模块63可以在预设的缓存同步条件被满足之后,将该待写入数据发 送至第二服务器。
本实施例中,写入模块62和发送模块63实现了第一服务器与第二服务器在文件 接口层进行数据同步,与现有的在块设备层进行数据同步的方案相比,减少了数据处理的 层数,节约了处理时间,提高了数据同步的性能;并且在文件接口层进行数据同步,不要求 第一服务器与第二服务器的块设备层完全一致,甚至第一服务器与第二服务器的文件系统 可以采用不同的本地文件系统,适用性较高。本实施例中,接收模块61还可以接收第二服务器在将待写入数据写入第二服务 器的文件接口层缓存之后发送的第一响应消息,该第一响应消息用于表示第二服务器将待 写入数据写入第二服务器的文件接口层缓存的操作已完成。这时,发送模块63还用于在接 收模块61接收到第一响应消息,并且写入模块62将待写入数据写入第一服务器的文件接 口层缓存之后,向客户端发送第二响应消息,该第二响应消息是对写操作指令的响应。本实施例中,在第一服务器和第二服务器将待写入数据写入各自的文件接口层缓 存的操作完成之后,发送模块63即可向客户端发送第二响应消息,而不必等到第一服务器 和第二服务器各自的块设备层写硬盘时,再向客户端发送响应消息,从而提高了写操作的 响应速度。本实施例中,存储模块64,用于将写入模块62写入第一服务器的文件接口层缓存中的待写入数据存储至第一服务器的硬盘。当存储模块64在将待写入数据存储至第一服务器的硬盘的过程中发生故障,未 能将上述待写入数据存储至第一服务器的硬盘时,在第一服务器恢复正常工作之后,获取 模块65根据第一服务器中文件系统的事务日志,从第二服务器获取上述待写入数据;这 时,写入模块62还用于将获取模块65获取的待写入数据写入第一服务器的文件接口层缓存。然后,同步模块66可以根据第二服务器在第一服务器发生故障期间记录的同步 日志,同步第一服务器的文件接口层缓存中的数据与第二服务器的文件接口层缓存中的数 据。上述第一服务器可以方便地与第二服务器实现数据备份,提高了写操作的响应速 度;在文件接口层进行数据同步,提高了数据同步的性能;并且在文件接口层进行数据同 步,不要求两个服务器的块设备层完全一致,甚至两个服务器的文件系统可以采用不同的 本地文件系统,适用性较高;并且在第一服务器发生故障之后,第二服务器记录同步日志, 在第一服务器恢复正常工作之后,同步模块66可以根据同步日志同步两个服务器中的数 据,可靠性高;另外,本实施例不需修改客户端,不影响客户端已有的部署,也不需要第三方 镜像软件,简化了软件部署,降低了实现成本。图7为本发明数据备份系统一个实施例的结构示意图,如图7所示,该数据备份系 统可以包括客户端71、第一服务器72和第二服务器73。其中,第一服务器72,用于接收客户端71发送的写操作指令,将该写操作指令中 的待写入数据写入第一服务器72的文件接口层缓存,并将待写入数据发送至第二服务器 73,以便第二服务器73将待写入数据写入第二服务器73的文件接口层缓存。具体地,第一 服务器72可以采用本发明图5或图6所示的第一服务器实现;本发明实施例对第二服务器 73的结构不作限定,第二服务器73可以采用与第一服务器72相同或不同的结构。本实施例中的数据备份系统可以应用于NAS集群或分布式文件系统。
下面介绍上述数据备份系统应用于NAS集群时的部署方式。NAS集群的实现方式包括(1)集群式NAS设备企业可以购买现成的NAS集群设备,这些NAS集群设备一般 是厂商预先配置好的,可以很轻松的插入和部署。直接购买NAS集群设备是最简单、部署最 快的一种方法。(2) NAS机头(NAS head)在存储设备之前部署一个NAS机头。NAS机头包括集群 文件系统,通过集群文件系统,可以把网络文件系统统一管理起来。(3)NAS集群软件企业购买软件和集群文件系统,然后在该企业的服务器上运 行,连接到该企业的存储设备和网络。NAS集群软件会便宜一些,但是部署的工作量较大,另 夕卜,企业还需要单独购买服务器和存储设备,部署成本较高。本发明实施例以NAS集群采用NAS机头的方式实现为例进行说明。图8为本发明NAS集群一个实施例的结构示意图,该NAS集群采用NAS机头的方 式实现。如图8所示,在该NAS集群中,客户端与主NAS机头连接,主NAS机头和备用NAS 机头分别负责不同的NAS节点。主NAS机头与备用NAS机头负责操作中转和数据缓冲,完 成整个NAS集群的数据备份。在主NAS机头与备用NAS机头进行数据备份时,可以采用本 发明图1、图3或图4所示实施例提供的数据备份方法。图9为本发明NAS集群另一个实施例的结构示意图,该NAS集群采用NAS机头的 方式实现。如图9所示,客户端与主NAS机头连接,主NAS机头与备用NAS机头之间只负责 主备切换,接管下面的NAS节点,由NAS节点实现数据备份。NAS节点实现数据备份时,可以 采用本发明图1、图3或图4所示实施例提供的数据备份方法。本实施例中,在NAS机头上可以维护备份信息,该备份信息可以分为目录级别和 文件级别的备份信息。该备份信息的格式如下目录路径/dirl/dir2/------> NAS 节点 1,NAS 节点 2 ;文件路径/dirl/dir2/largefiel------> NAS 节点 3,NAS 节点 4 ;在操作某个文件或目录时,选择一条最长匹配路径,那么该最长匹配路径描述的 信息,就是此文件或目录所在的节点信息。以上述目录路径和文件路径为例,文件/dirl/ dir2/largefiel存放在NAS节点3与NAS节点4上;目录/dirl/dir2/下除文件/dirl/ dir2/largefiel之外的其它文件则存放在NAS节点1与NAS节点2上。图10为本发明NAS集群再一个实施例的结构示意图,该实施例综合本发明图8与 图9所示NAS集群的结构,同样采用NAS机头的方式实现。如图10所示,主NAS机头与备 用NAS机头正常工作时,主NAS机头和备用NAS机头分别负责不同的NAS节点,例如主NAS 机头负责NAS节点1和NAS节点2,备用NAS机头负责NAS节点3和NAS节点4。主NAS机 头和备用NAS机头用于进行操作中转和数据缓冲,完成整个NAS集群的数据备份。在主NAS 机头与备用NAS机头进行数据备份时,可以采用本发明图1、图3或图4所示实施例提供的 数据备份方法,实现机头级别的数据备份。当主NAS机头或者备用NAS机头发生故障,例如主NAS机头或者备用NAS机头掉 线时,由未发生故障的NAS机头全面接管下面所有NAS节点的操作。在上述图8、图9或图10所示的NAS集群中,还可以将备份的节点例如备用NAS 机头或NAS节点部署在远端,实现NAS集群远程镜像。
下面介绍上述数据备份系统应用于分布式文件系统时的部署方式。图11为本发明分布式文件系统一个实施例的结构示意图,本实施例实现元数据 服务器备份。在图11所示分布式文件系统中,客户端为应用程序提供访问分布式文件系统的 用户开发接口,可以部署到多个应用服务器。元数据服务器负责向客户端提供整个分布式文件系统的元数据,管理整个分布式 文件系统的命名空间,维护整个分布式文件系统的目录结构和用户权限,并维护分布式文 件系统的数据的一致性。同时元数据服务器维护数据服务器的部署信息,为客户端提供文 件部署方案。备用元数据服务器,是元数据服务器的备份,在元数据服务器发生故障时,接管元 数据服务器的工作。本实施例中,元数据服务器与备用元数据服务器在进行数据备份时,可 以采用本发明图1、图3或图4所示实施例提供的数据备份方法。数据服务器为对象存储节点,以对象形式存储数据。分布式文件系统中的文件以 条带的形式分布到各个数据服务器上。分布式文件系统通过元数据与数据的存储分离,提高了存储系统的整体性能。图12为本发明分布式文件系统另一个实施例的结构示意图,本实施例实现数据 服务器备份。图12所示分布式文件系统中,客户端、元数据服务器和数据服务器的功能,与图 11所示分布式文件系统中对应网元的功能相同,在此不再赘述。与图11所示分布式文件系统不同的是,图12所示分布式文件系统中,为数据服务 器设置备用数据服务器,实现数据服务器备份。数据服务器与备用数据服务器在进行数据 备份时,可以采用本发明图1、图3或图4所示实施例提供的数据备份方法。图13为本发明分布式文件系统再一个实施例的结构示意图,本实施例实现元数 据服务器和数据服务器备份。图13所示分布式文件系统中,客户端、元数据服务器和数据服务器的功能,与图 11所示分布式文件系统中对应网元的功能相同,在此不再赘述。与图11所示分布式文件系统不同的是,图13所示分布式文件系统中,不仅设置备 用元数据服务器,还设置备用数据服务器,实现元数据服务器和数据服务器的备份。数据服 务器与备用数据服务器,以及元数据服务器与备用元数据服务器在进行数据备份时,可以 采用本发明图1、图3或图4所示实施例提供的数据备份方法。图14为本发明分布式文件系统又一个实施例的结构示意图,本实施例实现分布 式文件系统的远程备份。图14所示分布式文件系统中,客户端、元数据服务器和数据服务器的功能,与图 11所示分布式文件系统中对应网元的功能相同,在此不再赘述。 与图11所示分布式文件系统不同的是,图14所示分布式文件系统中,在本地与远 端各部署一个操作代理,用于同步各种文件接口级别的操作,实现数据备份。本地与远端的 操作代理在进行数据备份时,可以采用本发明图1、图3或图4所示实施例提供的数据备份 方法。本发明实施例提供的数据备份系统,可以方便地实现数据备份,提高了写操作的响应速度;在文件接口层进行数据同步,与现有的在块设备层进行数据同步的方案相比,减 少了数据处理的层数,节约了处理时间,提高了数据同步的性能;并且在文件接口层进行数 据同步,不要求第一服务器72与第二服务器73的块设备层完全一致,甚至第一服务器72 与第二服务器73的文件系统可以采用不同的本地文件系统,适用性较高;并且在一个服务 器发生故障之后,另一服务器记录同步日志,在发生故障的服务器恢复正常工作之后,可以 根据同步日志同步两个服务器中的数据,可靠性高;另外,本实施例不需修改客户端,不影 响客户端已有的部署,也不需要第三方镜像软件,节省了部署成本。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流 程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分 布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上 述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
一种数据备份方法,其特征在于,包括接收客户端发送的写操作指令;将所述写操作指令中的待写入数据写入第一服务器的文件接口层缓存;将所述待写入数据发送至第二服务器,以便所述第二服务器将所述待写入数据写入所述第二服务器的文件接口层缓存。
2.根据权利要求1所述的方法,其特征在于,所述将所述待写入数据发送至第二服务 器包括在预设的缓存同步条件被满足之后,将所述待写入数据发送至所述第二服务器。
3.根据权利要求1或2所述的方法,其特征在于,还包括将所述写操作指令中的待写入数据写入第一服务器的文件接口层缓存,且接收到所述 第二服务器在将所述待写入数据写入所述第二服务器的文件接口层缓存之后发送的第一 响应消息之后,向所述客户端发送第二响应消息;所述第二响应消息是对所述写操作指令 的响应。
4.根据权利要求3所述的方法,其特征在于,还包括将写入所述第一服务器的文件接口层缓存中的待写入数据存储至所述第一服务器的 硬盘。
5.根据权利要求4所述的方法,其特征在于,还包括当在将所述待写入数据存储至所述第一服务器的硬盘的过程中发生故障,未能将所述 待写入数据存储至所述第一服务器的硬盘时,在所述第一服务器恢复正常工作之后,根据 所述第一服务器中文件系统的事务日志,从所述第二服务器获取所述待写入数据,将获取 的待写入数据写入所述第一服务器的文件接口层缓存;并根据所述第二服务器在所述第一 服务器发生故障期间记录的同步日志,将所述第一服务器的文件接口层缓存中的数据与所 述第二服务器的文件接口层缓存中的数据同步。
6.一种第一服务器,其特征在于,包括接收模块,用于接收客户端发送的写操作指令;写入模块,用于将所述接收模块接收的写操作指令中的待写入数据写入所述第一服务 器的文件接口层缓存;发送模块,用于将所述待写入数据发送至第二服务器,以便所述第二服务器将所述待 写入数据写入所述第二服务器的文件接口层缓存。
7.根据权利要求6所述的第一服务器,其特征在于,所述发送模块具体用于在预设的 缓存同步条件被满足之后,将所述待写入数据发送至所述第二服务器,以便所述第二服务 器将所述待写入数据写入所述第二服务器的文件接口层缓存。
8.根据权利要求6或7所述的第一服务器,其特征在于,所述接收模块还用于接收所述 第二服务器在将所述待写入数据写入所述第二服务器的文件接口层缓存之后发送的第一 响应消息;所述发送模块还用于在所述接收模块接收到所述第一响应消息,并且所述写入模块将 所述待写入数据写入所述第一服务器的文件接口层缓存之后,向所述客户端发送第二响应 消息,所述第二响应消息是对所述写操作指令的响应。
9.根据权利要求8所述的第一服务器,其特征在于,还包括存储模块,用于将所述写入模块写入所述第一服务器的文件接口层缓存中的待写入数 据存储至所述第一服务器的硬盘。
10.根据权利要求9所述的第一服务器,其特征在于,还包括获取模块和同步模块, 所述获取模块,用于当所述第一服务器在将所述待写入数据存储至所述第一服务器的硬盘的过程中发生故障,未能将所述待写入数据存储至所述第一服务器的硬盘时,在所述 第一服务器恢复正常工作之后,根据所述第一服务器中文件系统的事务日志,从所述第二 服务器获取所述待写入数据;所述写入模块还用于将所述获取模块获取的待写入数据写入所述第一服务器的文件 接口层缓存;所述同步模块,用于根据所述第二服务器在所述第一服务器发生故障期间记录的同步 日志,同步所述第一服务器的文件接口层缓存中的数据与所述第二服务器的文件接口层缓 存中的数据。
11.一种数据备份系统,其特征在于,包括客户端、第一服务器和第二服务器,所述第一服务器,用于接收所述客户端发送的写操作指令,将所述写操作指令中的待 写入数据写入所述第一服务器的文件接口层缓存,并将所述待写入数据发送至所述第二服 务器,以便所述第二服务器将所述待写入数据写入所述第二服务器的文件接口层缓存。
全文摘要
本发明实施例提供一种数据备份方法、系统和服务器,所述数据备份方法包括接收客户端发送的写操作指令;将所述写操作指令中的待写入数据写入第一服务器的文件接口层缓存;将所述待写入数据发送至第二服务器,以便所述第二服务器将所述待写入数据写入所述第二服务器的文件接口层缓存。本发明实施例可以方便地实现数据备份,由于在文件接口层进行数据同步,因此提高了数据同步的性能,并且在文件接口层进行数据同步,不要求两个服务器的块设备层完全一致,甚至两个服务器的文件系统可以采用不同的本地文件系统,适用性较高;另外,本发明实施例不需修改客户端,不影响客户端已有的部署,也不需要第三方镜像软件,节省了部署成本。
文档编号H04L29/08GK101808127SQ201010126099
公开日2010年8月18日 申请日期2010年3月15日 优先权日2010年3月15日
发明者徐涛, 杨定国, 胡波 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1