一种基于分布式文件系统的数据访问方法和装置与流程

文档序号:17721463发布日期:2019-05-22 02:11阅读:180来源:国知局
一种基于分布式文件系统的数据访问方法和装置与流程

本发明涉及存储技术领域,特别涉及一种基于分布式文件系统的数据访问方法和装置。



背景技术:

参见图1,图1是现有技术分布式文件系统的架构图,如图1所示,分布式文件系统中包括多个客户端设备、元数据服务器、以及多个存储服务节点。其中,各存储服务节点中有一个或多个磁盘,这些磁盘空间在分布式文件系统中统一编址。

现有分布式文件系统的数据访问(包括读数据和写数据)过程如下:用户向客户端发送数据访问请求;客户端接收到上述数据访问请求后,向元数据服务器发送请求得到该数据访问请求的目标数据块所在存储服务地址;客户端对该存储服务地址的目标数据块进行访问。

现有对分布式文件系统的整个数据访问过程中,需要多次网络操作,网络吞吐量是整个分布式文件系统的瓶颈。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于分布式文件系统的数据访问方法和装置,通过提高分布式文件系统的网络吞吐量,提高对分布式文件系统的访问性能。

为了达到上述目的,本发明提供了如下技术方案:

一种基于分布式文件系统的数据访问方法,所述分布式文件系统中包括多个客户端设备、元数据服务器、和多个存储服务节点,其中,每个客户端设备的每一网口配置有独立ip地址,每个存储服务节点的每一网口配置有独立ip地址;该方法应用于任一客户端设备,包括:

预先基于该客户端设备中各网口的ip地址和每个存储服务节点中的各网口的ip地址,建立该客户端设备到该存储服务节点的ip连接池;

接收用户的数据访问请求;

从元数据服务器获取该数据访问请求的目标数据的起始地址和长度,根据该目标数据的起始地址和长度将该目标数据切分为多个目标数据块;

针对该数据访问请求的每一目标数据块,向元数据服务器请求该目标数据块所在存储服务地址,基于该客户端设备到该存储服务地址所在存储服务节点的ip链接池,对该存储服务地址的目标数据块进行访问。

一种基于分布式文件系统的数据访问装置,所述分布式文件系统中包括多个客户端设备、元数据服务器、和多个存储服务节点,其中,每个客户端设备的每一网口配置有独立ip地址,每个存储服务节点的每一网口配置有独立ip地址;该装置应用于任一客户端设备,包括:

建立单元,用于预先基于该客户端设备中各网口的ip地址和每个存储服务节点中的各网口的ip地址,建立该客户端设备到该存储服务节点的ip连接池;

接收单元,用于接收用户的数据访问请求;

处理单元,用于从元数据服务器获取该数据访问请求的目标数据的起始地址和长度,根据该目标数据的起始地址和长度将该目标数据切分为多个目标数据块;用于针对该数据访问请求的每一目标数据块,向元数据服务器请求该目标数据块所在存储服务地址,基于该客户端设备到该存储服务地址所在存储服务节点的ip链接池,对该存储服务地址的目标数据块进行访问。

由上面的技术方案可知,本发明中,通过建立客户端设备的所有网口与每个存储服务节点的所有网口之间的ip连接,构成该客户端设备到该存储服务节点的ip连接池,当客户端设备接收到数据访问请求时,向元数据服务器请求该数据访问请求的每一目标数据块的存储服务地址,并利用该客户端到该存储服务地址所在存储服务节点的ip连接池,对该存储服务地址的目标数据块进行访问。可以看出,通过客户端设备和存储服务节点之间建立包括多个ip连接的ip连接池,可以有效提高分布式文件系统的网络吞吐量,进而可以提高对分布式文件系统的访问性能。

附图说明

图1是现有技术分布式文件系统的架构图;

图2是本发明实施例基于分布式文件系统的数据访问方法流程图;

图3是本发明实施例基于分布式文件系统的数据访问装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并据实施例,对本发明的技术方案进行详细说明。

参见图2,图2是本发明实施例基于分布式文件系统的数据访问方法流程图,所述分布式文件系统中包括多个客户端设备、元数据服务器、和多个存储服务节点,其中,每个客户端设备的每一网口配置有独立ip地址,每个存储服务节点的每一网口配置有独立ip地址;该方法应用于任一客户端设备(例如图1中的客户端1),如图2所示,该方法具体包括以下步骤:

步骤201、预先基于该客户端设备中各网口的ip地址和每个存储服务节点中的各网口的ip地址,建立该客户端设备到该存储服务节点的ip连接池。

本步骤201可以在分布式文件系统启动后执行。后续的步骤202至步骤204则是每接收到一个数据访问请求时执行一次。

本步骤201中,将客户端设备中的每个网口与每个存储服务节点中的所有网口均建立ip连接,最终建立该客户端设备的各网口到该存储服务节点中各网口的全连接,假设客户端设备有2个网口,存储服务节点有4个网口,则最重建立的ip连接池中包括2×4=8个ip连接。

本发明实施例中,基于该客户端设备中各网口的ip地址和每个存储服务节点中的各网口的ip地址,建立该客户端设备到该存储服务节点的ip连接池,具体包括:

利用该客户端设备中每一网口的ip地址和该存储服务节点中的每一网口的ip地址,建立该客户端设备中该网口与该存储服务节点中的每一网口之间的ip链接;

将该客户端设备中所有网口与该存储服务节点中的每一网口之间的ip连接加入到该客户端设备到该存储服务节点的ip连接池。

步骤202、该客户端设备接收用户的数据访问请求。

步骤203、该客户端设备从元数据服务器获取该数据访问请求的目标数据的起始地址和长度信息,根据该目标数据的起始地址和长度信息将目标数据切分成多个目标数据块。

用户的数据访问请求中携带目标数据信息,例如文件名等可供元数据查找目标数据的起始地址和长度的元数据信息。另外,数据访问请求包括读数据请求和写数据请求,当数据访问请求是写数据请求时,还携带有待写入数据信息。

该客户端设备可以将目标数据信息发送到元数据服务器,元数据服务器根据目标数据信息可以确定目标数据的起始地址和长度信息,然后将目标数据的起始地址和长度信息返回给该客户端设备。

根据该目标数据的起始地址和长度信息将目标数据切分成多个目标数据块的方法具体如下:

根据该目标数据的长度,将目标数据按照预设数据块大小(可以与分布式文件系统中的数据块大小相同)分成多个目标数据块,并根据每个目标数据块与该目标数据的起始地址的位置偏移确定该目标数据块的起始地址,基于该目标数据块的起始地址确定该目标数据块标识(id)。

这里的数据块id可以是该数据块在整个分布式文件系统中的编号,由于目标数据的起始位置明确,将目标数据按预设数据块大小分成多个目标数据块之后,每个目标数据块的起始位置也是确定的,目标数据块的起始位置则决定了其在分布式文件系统中的编号。

步骤204、该客户端设备针对该数据访问请求的每一目标数据块,向元数据服务器请求该目标数据块所在存储服务地址,基于该客户端设备到该存储服务地址所在存储服务节点的ip链接池,对该存储服务地址的目标数据块进行访问。

本发明实施例中,向元数据服务器请求该目标数据块所在存储服务地址,即将该目标数据块id发送到元数据服务器,元数据服务器根据该目标数据块id可以确定该目标数据块的存储服务地址(包括存储服务节点id和磁盘id),存储服务地址表明了该目标数据块位于哪个存储服务节点的哪个磁盘上。

本发明实施例中,基于该客户端设备到该存储服务地址所在存储服务节点的ip链接池,对该存储服务地址的目标数据块进行访问的方法具体如下:

从该客户端设备到该存储服务地址所在存储服务节点的ip连接池中选择一ip连接,利用该ip连接对该存储服务地址的目标数据块进行访问。

在实际实现中,需要考虑ip连接断开的情况,当使用某个ip连接进行数据访问时,如果该ip连接断开,需要在同一ip连接池中重新选择一个ip连接并使用重新选择的ip连接进行数据访问。

因此,上述从该客户端设备到该存储服务地址所在存储服务节点的ip连接池中选择一ip连接之后,利用该ip连接对该存储服务地址中的目标数据块进行访问时,如果该ip连接断开,则在该ip连接池中重新选择一未断开的ip连接,利用重新选择的ip连接对该存储服务地址的目标数据块进行访问。

另外,如果某个ip连接池中的所有ip连接均断开,则需要重试建立该ip连接池中的所有ip连接。因此,上述基于该客户端设备到该存储服务地址所在存储服务节点的ip连接池,对该存储服务地址中的目标数据块进行访问时,如果该ip连接池中的所有ip连接均断开,则需要进一步基于预设重试次数,重试建立该ip连接池中的所有ip连接。

本发明实施例中,数据访问请求包括写数据请求和读数据请求两种,利用该ip连接对该存储服务地址的目标数据块进行访问操作,也相应分为两种情况:

1)当所述数据访问请求是写数据请求时,利用该ip连接对该存储服务地址中的目标数据块进行写数据操作。

2)当所述数据访问请求是读数据请求时,利用该ip连接对该存储服务地址中的目标数据块进行读数据操作。

以上对本发明实施例基于分布式文件系统的数据访问方法进行了详细说明,本发明还提供了一种基于分布式文件系统的数据访问装置,以下结合图3进行详细说明。

参加图3,图3是本发明实施例基于分布式文件系统的数据访问装置的结构示意图,所述分布式文件系统中包括多个客户端设备、元数据服务器、和多个存储服务节点,其中,每个客户端设备的每一网口配置有独立ip地址,每个存储服务节点的每一网口配置有独立ip地址;该装置应用于任一客户端设备,如图3所示,该装置包括:

建立单元301,用于预先基于该客户端设备中各网口的ip地址和每个存储服务节点中的各网口的ip地址,建立该客户端设备到该存储服务节点的ip连接池;

接收单元302,用于接收用户的数据访问请求;

处理单元303,用于从元数据服务器获取该数据访问请求的目标数据的起始地址和长度,根据该目标数据的起始地址和长度将该目标数据切分为多个目标数据块;用于针对该数据访问请求的每一目标数据块,向元数据服务器请求该目标数据块所在存储服务地址,基于该客户端设备到该存储服务地址所在存储服务节点的ip链接池,对该存储服务地址的目标数据块进行访问。

图3所示装置中,

所述建立单元301,基于该客户端设备中各网口的ip地址和每个存储服务节点中的各网口的ip地址,建立该客户端设备到该存储服务节点的ip连接池,包括:

利用该客户端设备中每一网口的ip地址和该存储服务节点中的每一网口的ip地址,建立该客户端设备中该网口与该存储服务节点中的每一网口之间的ip链接;

将该客户端设备中所有网口与该存储服务节点中的每一网口之间的ip连接加入到该客户端设备到该存储服务节点的ip连接池。

图3所示装置中,

所述处理单元303,从元数据服务器获取该数据访问请求的目标数据的起始地址和长度,根据该目标数据的起始地址和长度将该目标数据切分为多个目标数据块时,用于:

将该数据访问请求携带的目标数据信息发送到元数据服务器,接收元数据服务器根据该目标数据信息确定并返回的该目标数据的起始地址和长度信息;

根据目标数据的长度信息,将该目标数据按照预设数据块大小分成多个目标数据块,根据每个目标数据块与目标数据的起始地址的偏移确定该目标数据块的起始地址,并基于该目标数据块的起始地址确定该目标数据块的标识id;

所述处理单元303,向元数据服务器请求该目标数据块所在存储服务地址的方法为:将该目标数据块id发送到元数据服务器,接收元数据服务器根据该目标数据块id确定并返回的该目标数据块所在存储服务地址。

图3所示装置中,

所述处理单元303,基于该客户端设备到该存储服务地址所在存储服务节点的ip链接池,对该存储服务地址的目标数据块进行访问时,用于:

从该客户端设备到该存储服务地址所在存储服务节点的ip连接池中选择一ip连接,利用该ip连接对该存储服务地址的目标数据块进行访问。

图3所示装置中,

所处处理单元303,从该客户端设备到该存储服务地址所在存储服务节点的ip连接池中选择一ip连接之后,利用该ip连接对该存储服务地址中的目标数据块进行访问时,如果该ip连接断开,则在该ip连接池中重新选择一未断开的ip连接,利用重新选择的ip连接对该存储服务地址的目标数据块进行访问。

图3所示装置中,

所述数据访问请求包括写数据请求和读数据请求;

所述处理单元303,利用该ip连接对该存储服务地址的目标数据块进行访问操作,包括:

当所述数据访问请求是写数据请求时,利用该ip连接对该存储服务地址中的目标数据块进行读数据操作

当所述数据访问请求是读数据请求时,利用该ip连接对该存储服务地址中的目标数据块进行读数据操作。

图3所示装置中,

所述处理单元303,基于该客户端设备到该存储服务地址所在存储服务节点的ip连接池,对该存储服务地址中的目标数据块进行访问时,如果该ip连接池中的所有ip连接均断开,则指示建立单元301基于预设重试次数,重试建立该ip连接池中的所有ip连接。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1