分布式系统中的数据备份方法、 装置及系统 【技术领域】
本发明涉及通信领域, 具体而言, 涉及一种分布式系统中的数据备份方法、 装置及系统。 背景技术
随着互联网和多媒体产业的迅猛发展, 大量的媒体文件的存储对存储技术和系统 提出了更高的要求。为了保证文件存储的高可靠性、 存储器的大容量以及文件存储的性价 比, 大部分 IT 厂商和互联网服务商常常采用分布式文件系统来存储数据, 这些系统常常采 用冗余存储的方式来保证存储数据的可靠性, 再以高可靠性的软件来弥补硬件不可靠的缺 点, 从而提供廉价可靠的海量分布式存储和计算系统。
分布式文件系统中, 为了保证文件数据的可靠性, 每个数据块都会服务到多个存 储服务器上, 并默认保存三个备份。 在文件创建的过程中, 客户端会将每个数据块传输到多 个存储服务器上, 每个客户端和多个存储服务器之间就体现为一对多的关系。而且随着备 份数目的增加, 客户端发送数据块的次数就越多, 网络传输的系统消耗和客户端性能消耗 就越高, 网络带宽占用也就越多。基本上文件备份数目与系统性能消耗将呈现线性增长的 关系, 这将直接影响分布式文件系统的并发访问性能。 因此, 如何减少文件备份数目对系统 消耗和网络带宽的影响, 对于分布式文件系统的推广使用, 具有重要的研究意义。
针对相关技术中的文件存储方式造成的网络带宽占用较多和系统的性能消耗较 高的问题, 目前尚未提出有效的解决方案。 发明内容 针对相关技术中文件的存储方式造成的网络带宽占用较多和系统的性能消耗较 高的问题, 本发明提供了一种分布式系统中的数据备份方法、 装置及系统, 以至少解决上述 问题。
根据本发明的一个方面, 提供了一种分布式系统中的数据备份方法, 该方法包括 : 文件访问服务器向元数据服务器获取用于备份文件数据的组播地址 ; 文件访问服务器采用 组播传输方式在上述组播地址对应的文件存储服务器上备份文件数据。
优选地, 上述文件访问服务器向元数据服务器获取用于备份文件数据的组播地址 包括 : 文件访问服务器接收用户的文件写入请求消息, 文件访问服务器将该文件写入请求 消息转发给元数据服务器, 元数据服务器接收到文件写入请求消息后, 选择文件存储服务 器, 并为文件存储服务器选择组播地址, 元数据服务器将该组播地址发送给文件访问服务 器。
优选地, 元数据服务器为文件存储服务器选择组播地址之后, 元数据服务器根据 选择的文件存储服务器确定存储路径, 并根据上述文件写入请求消息确定数据缓存长度, 元数据服务器将存储路径、 组播地址和数据缓存长度发送给文件存储服务器, 文件存储服 务器记录上述组播地址, 并根据上述存储路径和上述数据缓存长度创建备份文件数据的空
文件。 优选地, 文件访问服务器采用组播传输方式在组播地址对应的文件存储服务器上 备份文件数据包括 : 文件访问服务器接收到上述组播地址后, 将文件数据发送到该组播地 址, 文件存储服务器接收上述文件数据, 如果该文件数据中的组播地址与记录的组播地址 一致, 将该文件数据备份在空文件中。
优选地, 文件存储服务器接收到组播地址之后, 文件存储服务器为该组播地址绑 定第一网络套结字, 文件访问服务器接收到组播地址后, 文件访问服务器为该组播地址绑 定第二网络套结字, 文件访问服务器将文件数据发送到组播地址包括 : 文件访问服务器通 过第二网络套结字将文件数据发送到组播地址, 文件存储服务器接收文件数据包括 : 文件 存储服务器在第一网络套结字上接收文件数据。
优选地, 文件访问服务器与文件存储服务器之间的单播消息通过元数据服务器转 发。
根据本发明的另一方面, 提供了一种分布式系统中的数据备份装置, 该装置包括 : 组播地址获取模块, 用于向元数据服务器获取用于备份文件数据的组播地址 ; 备份模块, 用 于采用组播传输方式在上述组播地址对应的文件存储服务器上备份文件数据。
根据本发明的又一方面, 提供了一种数据备份系统, 该系统包括 : 文件访问服务 器、 元数据服务器和文件存储服务器 ; 文件访问服务器包括 : 组播地址获取模块, 用于向元 数据服务器获取用于备份文件数据的组播地址 ; 备份模块, 用于采用组播传输方式在上述 组播地址对应的文件存储服务器上备份上述文件数据 ; 元数据服务器包括 : 组播地址提供 模块, 用于向文件访问服务器提供上述组播地址 ; 文件存储服务器包括 : 接收模块, 用于接 收文件访问服务器以组播传输方式发送的文件数据 ; 存储模块, 用于存储接收模块接收的 文件数据。
优选地, 上述组播地址获取模块包括 : 请求接收单元, 用于接收用户的文件写入请 求消息 ; 转发单元, 用于将请求接收单元接收的上述文件写入请求消息转发给元数据服务 器; 组播地址接收单元, 用于接收元数据服务器发送的组播地址 ; 组播地址提供模块包括 : 第一选择单元, 用于接收到文件写入请求消息后, 选择文件存储服务器 ; 第二选择单元, 用 于为第一选择单元选择的文件存储服务器选择组播地址 ; 组播地址发送单元, 用于将第二 选择单元选择的组播地址发送给文件访问服务器。
优选地, 上述元数据服务器还包括 : 路径确定模块, 用于根据第一选择单元选择的 文件存储服务器确定存储路径 ; 缓存确定模块, 用于根据文件写入请求消息确定数据缓存 长度 ; 通知模块, 用于将路径确定模块确定的存储路径、 第二选择单元选择的组播地址和缓 存确定模块确定的数据缓存长度发送给文件存储服务器 ; 文件存储服务器还包括 : 记录模 块, 用于接收到元数据服务器发送的存储路径、 组播地址和数据缓存长度后, 记录上述组播 地址 ; 空文件创建模块, 用于根据上述存储路径和上述数据缓存长度创建备份上述文件数 据的空文件。
优选地, 上述备份模块包括 : 文件数据发送单元, 用于组播地址获取模块获取到 组播地址后, 将文件数据发送到该组播地址 ; 文件存储服务器还包括 : 地址比较模块, 用于 接收模块接收文件数据后, 比较文件数据中的上述组播地址与记录模块记录的组播地址一 致; 存储模块包括 : 存储单元, 用于将文件数据备份在空文件创建模块创建的上述空文件
中。 通过本发明, 文件访问服务器向元数据服务器获取组播地址之后, 采用组播传输 的方式向该组播地址对应的文件存储服务器备份文件数据, 解决了相关技术中的文件存储 方式造成的网络带宽占用较多和系统的性能消耗较高的问题, 从而降低了文件数据备份对 网络带宽和系统消耗的影响, 提高了分布式系统的并发文件写入性能。
附图说明 此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。在附图中 :
图 1 是根据本发明实施例的分布式系统中的数据备份方法的流程图 ;
图 2 是根据本发明实施例的采用组播方式进行数据写入的分布式系统的示意图 ;
图 3 是根据本发明实施例一的分布式系统中的数据备份方法的流程图 ;
图 4 是根据本发明实施例的分布式系统中的数据备份装置的结构框图 ;
图 5 是根据本发明实施例的数据备份系统的结构框图 ;
图 6 是根据本发明实施例的数据备份系统的具体结构框图 ;
图 7 是根据本发明实施例的数据备份系统的另一具体结构框图。具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是, 在不冲突的 情况下, 本申请中的实施例及实施例中的特征可以相互组合。
在分布式文件系统中, 为了保证文件数据的可靠性, 文件数据一般都会在存储服 务器上备份, 但是在数据的备份过程中, 如果数据备份越多, 数据发送到存储服务器上的次 数就越多, 对网络带宽和系统的性能消耗的影响就越大。 基于此, 本发明采用组播的方式进 行数据的发送, 文件访问服务器只需向网络发送一次数据, 即可实现数据的备份, 减少了数 据发送次数。本发明实施例提供了一种分布式系统中的数据备份方法、 装置及系统。下面 通过实施例进行详细说明。
本实施例提供了一种分布式系统中的数据备份方法, 如图 1 所示的是分布式系统 中的数据备份方法的流程图, 该方法包括以下步骤 ( 步骤 S102- 步骤 S104) :
步骤 S102, 文件访问服务器向元数据服务器获取用于备份文件数据的组播地址 ;
步骤 S104, 文件访问服务器采用组播传输方式在上述组播地址对应的文件存储服 务器上备份文件数据。
通过上述步骤, 文件访问服务器向元数据服务器获取组播地址之后, 采用组播传 输的方式向该组播地址对应的文件存储服务器备份文件数据, 解决了相关技术中的文件存 储方式造成的网络带宽占用较多和系统的性能消耗较高的问题, 降低了文件数据备份对网 络带宽和系统消耗的影响, 提高了分布式系统的并发文件写入性能。
在上述步骤 S102 中, 文件访问服务器向元数据服务器获取用于备份文件数据的 组播地址, 其具体的实现过程如下所示 : 首先, 文件访问服务器接收到用户的文件写入请求 消息之后, 将该文件写入请求消息转发给元数据服务器, 元数据服务器接收到该文件写入 请求消息后, 选择若干个合适的 ( 比如比较空闲的 ) 文件存储服务器, 并为选择出的文件存储服务器选择对应的组播地址 ; 其次, 元数据服务器根据选择的文件存储服务器确定存储 路径, 根据文件写入请求消息确定文件数据的缓存长度, 元数据服务器将存储路径、 组播地 址和文件数据的缓存长度发送给文件存储服务器和文件访问服务器 ; 然后, 文件存储服务 器记录该组播地址, 并根据存储路径和文件数据的缓存长度创建备份文件数据的空文件, 该空文件用来存储文件存储服务器收到的文件数据。 上述步骤是为文件访问服务器采用组 播传播方式进行文件数据的传播做好前期准备, 为其提供基础。
在上述步骤 S104 中, 文件访问服务器采用组播传输方式在组播地址对应的文件 存储服务器上备份文件数据, 其具体的实现过程如下所示 : 首先, 文件访问服务器接收到组 播地址后, 为该组播地址绑定第二网络套结字, 文件访问服务器通过该第二网络套结字将 文件数据发送到组播地址 ; 其次, 文件存储服务器接收到组播地址之后, 为该组播地址绑定 第一网络套结字, 文件存储服务器在第一网络套结字上接收文件数据, 如果文件数据中的 组播地址与记录的组播地址一致, 则将该文件数据备份在上述空文件中。
在上述实现方式中, 文件访问服务器与文件存储服务器之间的单播消息 ( 比如上 述文件写入请求消息 ) 通过元数据服务器进行转发。
图 2 是根据本发明实施例的采用组播方式进行数据写入的分布式系统的示意图, 本实施例以分布式系统中包括一个元数据服务器、 两个文件访问服务器和三个文件存储服 务器为例进行说明。 图 2 中所示的元数据服务器, 主要用于负责管理分布式文件系统中的文件元数据 信息, 包括文件目录、 文件名, 以及文件数据块在文件存储服务器上的分布, 同时该元数据 服务器也负责管理组播地址列表, 并将该组播地址分配给文件访问服务器和文件存储服务 器以供使用。
图 2 中所示的文件访问服务器, 主要是和元数据服务器交互进行元数据的操作, 和文件存储服务器通信进行数据块的操作, 同时该文件访问服务器使用元数据服务器分配 的组播地址, 发送数据给文件存储服务器。文件访问服务器一般提供类似于可移植操作系 统接口 (Portable Operating System Interface, 简称为 POSIX) 的访问接口, 应用程序通 过调用这些访问接口使用分布式文件系统。
图 2 中所示的文件存储服务器主要用于进行文件数据块的存储, 为了保证文件数 据的可靠性, 每个数据块会复制到多个文件存储服务器上, 一般情况下默认保存三个备份, 同时该文件存储服务器使用元数据服务器分配的组播地址, 接收文件访问服务器发送过来 的文件数据。
在文件访问服务器和文件存储服务器之间传播文件数据的时候, 文件访问服务器 采用组播地址通信的方式, 通过组播网络将文件数据发送给文件存储服务器, 比如一个文 件访问服务器将文件数据发送给组播网络后, 三个文件存储服务器可以同时接收该文件数 据, 降低了文件备份数目对系统消耗和网络带宽的影响, 大幅提升分布式文件系统的并发 文件写入性能。
下面结合优选实施例和附图对上述实施例的实现过程进行详细说明。
实施例一
在分布式文件系统中, 一般包含一个元数据服务器和多个文件存储服务器, 并且 上述元数据服务器和文件存储服务器可以被多个文件访问服务器访问。 本实施例将对分布
式文件系统中文件数据的备份进行详细描述, 如图 3 所示的是根据本发明实施例一的分布 式系统中的数据备份方法的流程图, 该方法包括如下步骤 ( 步骤 S302- 步骤 S328) :
步骤 S302, 文件访问服务器接收到用户的文件写入请求消息, 在用户通过文件访 问服务器提供的访问接口进行文件写入操作时, 会提供文件名称、 数据缓冲内容及其长度。
步骤 S304, 文件访问服务器发送文件写入请求消息给元数据服务器, 该消息中包 含文件名称和数据缓冲长度。
步骤 S306, 元数据服务器收到该文件写入请求消息后, 记录文件名称到数据表格 中, 并统一分配文件数据在各个文件存储服务器上的路径。
步骤 S308, 元数据服务器根据当前系统中各个文件存储服务器的存储使用情况, 依据备份数目的要求, 选择若干个相对比较空闲的文件存储服务器, 同时选择目前可用的 组播地址。
步骤 S310, 元数据服务器发送组播地址发布请求消息给上述选择出来的文件存储 服务器, 该消息中包含可用的组播地址、 文件存储路径和数据缓存长度。
步骤 S312, 文件存储服务器收到该组播地址发布请求消息后, 创建第二网络套结 字并绑定该组播地址, 开始监听文件访问服务器发送过来的文件数据。 步骤 S314, 文件存储服务器根据组播地址发布请求消息中携带的文件存储路径, 创建指定长度的空文件, 然后给元数据服务器发送组播地址发布应答消息。
步骤 S316, 元数据服务器收到上述文件存储服务器的组播地址发布应答消息后, 将这些文件存储服务器的地址信息, 以及该文件数据在各个文件存储服务器上的路径信 息, 与之前的文件名称建立关联, 存放在数据表格中。
步骤 S318, 元数据服务器将可用的组播地址等信息组织成文件写入应答消息, 并 将该文件写入应答消息发送给文件访问服务器。
步骤 S320, 文件访问服务器收到文件写入应答消息后, 提取出组播地址信息, 创建 第一网络套结字并绑定该组播地址, 然后将用户提供的文件数据缓冲内容通过第一网络套 结字发送到指定组播地址。
步骤 S322, 文件存储服务器在组播地址的第一网络套结字上接收到文件数据缓冲 内容后, 将这些内容写入预先创建好的空文件中, 并校验数据缓冲长度等信息。
步骤 S324, 确认文件数据接收完成后, 文件存储服务器发送文件数据接收确认消 息给元数据服务器。
步骤 S326, 元数据服务器接收到上述文件存储服务器发送的文件数据接收确认消 息后, 向文件访问服务器发送文件数据确认消息。
步骤 S328, 文件访问服务器接收到该文件数据确认消息后, 给用户写入文件接口 返回, 提示用户文件的写入请求操作已经完成。
在本实施例中, 在文件访问服务器和文件存储服务器之间传输文件数据的时候, 采用组播地址通信的方式进行文件数据的传输, 文件访问服务器一次发送, 多个文件存储 服务器同时接收, 从而降低了文件数据备份对网络带宽和系统消耗的影响, 提高了分布式 系统的并发文件写入性能。
对应于上述分布式系统中的数据备份方法, 本实施例提供了一种分布式系统中的 数据备份装置, 该装置在文件访问服务器侧实现, 用于实现上述实施例。图 4 是根据本发明
实施例的分布式系统中的数据备份装置的结构框图, 如图 4 所示, 该装置包括 : 组播地址获 取模块 42 和备份模块 44。下面对该结构进行说明。
组播地址获取模块 42, 用于向元数据服务器获取用于备份文件数据的组播地址 ;
备份模块 44, 连接至组播地址获取模块 42, 用于采用组播传输方式在上述组播地 址对应的文件存储服务器上备份文件数据。
通过上述装置, 组播地址获取模块 42 向元数据服务器获取组播地址之后, 备份模 块 44 采用组播传输的方式向该组播地址对应的文件存储服务器上备份文件数据, 解决了 相关技术中的文件存储方式造成的网络带宽占用较多和系统的性能消耗较高的问题, 从而 降低了文件数据备份对网络带宽和系统消耗的影响, 提高了分布式系统的并发文件写入性 能。
对应于上述分布式系统中的数据备份方法和装置, 本实施例提供了一种数据备份 系统, 该系统用于实现上述实施例。图 5 是根据本发明实施例的数据备份系统的结构框图, 如图 5 所示, 该系统包括 : 文件访问服务器 50、 元数据服务器 60 和文件存储服务器 70。文 件访问服务器 50 包括组播地址获取模块 52 和备份模块 54。元数据服务器 60 包括组播地 址提供模块 62。文件存储服务器 70 包括接收模块 72 和存储模块 74。下面对该结构进行 说明。
组播地址获取模块 52, 位于文件访问服务器 50 中, 用于向元数据服务器 60 获取用 于备份文件数据的组播地址 ;
备份模块 54, 位于文件访问服务器 50 中, 连接至组播地址获取模块 52, 用于采用 组播传输方式在组播地址对应的文件存储服务器 70 上备份文件数据 ;
组播地址提供模块 62, 位于元数据服务器 60 中, 连接至组播地址获取模块 52, 用 于向文件访问服务器 50 提供组播地址 ;
接收模块 72, 位于文件存储服务器 70 中, 连接至备份模块 54, 用于接收文件访问 服务器 50 以组播传输方式发送的文件数据 ;
存储模块 74, 位于文件存储服务器 70 中, 连接至接收模块 72, 用于存储接收模块 72 接收的文件数据。
通过上述系统, 组播地址获取模块 52 向元数据服务器 60 获取组播地址之后, 备份 模块 54 采用组播传输的方式向该组播地址对应的文件存储服务器发送文件数据的备份, 然后文件存储服务器 70 中的存储模块 74 存储该备份, 解决了相关技术中的文件存储方式 造成的网络带宽占用较多和系统的性能消耗较高的问题, 降低了文件数据备份对网络带宽 和系统消耗的影响, 提高了分布式系统的并发文件写入性能。
图 6 是根据本发明实施例的数据备份系统的具体结构框图, 如图 6 所示除了包括 上述图 5 中的各个模块之外, 该系统中的组播地址获取模块 52 包括请求接收单元 520、 转发 单元 522 和组播地址接收单元 524。组播地址提供模块 62 包括第一选择单元 620、 第二选 择单元 622 和组播地址发送单元 624。下面对该结构进行说明。
请求接收单元 520, 位于组播地址获取模块 52 中, 用于接收用户的文件写入请求 消息 ;
转发单元 522, 位于组播地址获取模块 52 中, 连接至请求接收单元 520, 用于将请 求接收单元 520 接收的文件写入请求消息转发给元数据服务器 60 ;组播地址接收单元 524, 位于组播地址获取模块 52 中, 用于接收元数据服务器 60 发送的组播地址 ;
第一选择单元 620, 位于组播地址提供模块 62 中, 用于接收到文件写入请求消息 后, 选择文件存储服务器 70 ;
第二选择单元 622, 位于组播地址提供模块 62 中, 连接至第一选择单元 620, 用于 为第一选择单元 620 选择的文件存储服务器 70 选择组播地址 ;
组播地址发送单元 624, 位于组播地址提供模块 62 中, 连接至第二选择单元 622, 用于将第二选择单元 622 选择的组播地址发送给文件访问服务器 50。
图 7 是根据本发明实施例的数据备份系统的另一具体结构框图, 如图 7 所示除了 包括上述图 6 中的各个模块之外, 该系统中的元数据服务器 60 包括路径确定模块 64、 缓存 确定模块 66 和通知模块 68。文件存储服务器 70 包括记录模块 76 和空文件创建模块 78。 下面对该结构进行说明。
路径确定模块 64, 位于元数据服务器 60 中, 连接至第一选择单元 620, 用于根据第 一选择单元 620 选择的文件存储服务器 70 确定存储路径 ;
缓存确定模块 66, 位于元数据服务器 60 中, 用于根据文件写入请求消息确定数据 缓存长度 ; 通知模块 68, 位于元数据服务器 60 中, 连接至路径确定模块 64 和缓存确定模块 66, 用于将路径确定模块 64 确定的存储路径、 第二选择单元 622 选择的组播地址和缓存确 定模块 66 确定的数据缓存长度发送给文件存储服务器 70 ;
记录模块 76, 位于文件存储服务器 70 中, 用于接收到元数据服务器 60 发送的存储 路径、 组播地址和数据缓存长度后, 记录组播地址 ;
空文件创建模块 78, 位于文件存储服务器 70 中, 连接至记录模块 76, 用于根据存 储路径和数据缓存长度创建备份文件数据的空文件。
上述系统中的备份模块 54 还包括文件数据发送单元, 文件存储服务器 70 包括地 址比较模块, 存储模块 74 包括存储单元。下面对该结构进行说明。
文件数据发送单元, 位于备份模块 54 中, 用于组播地址获取模块 52 获取到所述组 播地址后, 将文件数据发送到组播地址 ;
地址比较模块, 位于文件存储服务器 70 中, 用于接收模块 72 接收文件数据后, 比 较文件数据中的组播地址与记录模块 76 记录的组播地址一致 ;
存储单元, 位于存储模块 74 中, 用于将文件数据的备份在空文件创建模块 78 创建 的空文件中。
上述文件访问服务器 50 与文件存储服务器 70 之间的单播消息通过元数据服务器 60 转发, 而文件访问服务器 50 向文件存储服务器 70 备份的文件数据通过网络 ( 例如组播 网络 ) 进行传输。
从以上的描述中可以看出, 本发明采用组播传输的方式在文件访问服务器和文件 存储服务器之间进行文件数据的传输以确保文件数据在文件存储服务器上备份, 解决了相 关技术中的文件存储方式造成的网络带宽占用较多和系统的性能消耗较高的问题, 降低了 文件数据备份对网络带宽和系统消耗的影响, 提高了分布式系统的并发文件写入性能。
显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可以用通用
的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多个计算装置所组成 的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现, 从而, 可以将它们存储 在存储装置中由计算装置来执行, 并且在某些情况下, 可以以不同于此处的顺序执行所示 出或描述的步骤, 或者将它们分别制作成各个集成电路模块, 或者将它们中的多个模块或 步骤制作成单个集成电路模块来实现。 这样, 本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的任何修 改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。