一种分布式系统及其数据操作方法

文档序号:8395964阅读:217来源:国知局
一种分布式系统及其数据操作方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是涉及分布式系统中存取副本时获取副本所对应存储节点的方法及应用该方法的分布式系统。
【背景技术】
[0002]分布式文件系统是一种基于计算机存储节点进行本地存储构建的分布式存储系统。其与传统的存储系统相比,具有存储性价比高、可扩展性强等优点。
[0003]现有的分布式文件系统通常由元数据节点和多个存储节点组成。其中,元数据节点用于保存各个文件的数据分块情况、各个数据块所在的存储节点的名称,以及每个存储节点上包含的数据块的信息等。存储节点用于保存实际的数据块,通常每个数据块大小为64MB或128MB。存储节点会定期地把存储在本地的数据块发送给元数据节点,以使得元数据节点能够感知分布式文件系统中所有文件的数据存储位置。当客户端需要对上述分布式文件系统进行数据存取操作时,首先通过元数据节点获取或建立文件的数据块的位置;然后直接与相应数据块所在的存储节点进行通信,进行读写数据块等操作。
[0004]对于现有的分布式文件系统,为了提高系统可靠性和数据可用性,分布式文件系统通常采用多份副本的方式保存数据块,例如,对于同一个数据块,可以在不同的存储节点保存三个或更多个副本,其中,每一个副本存储在一台存储节点上。这样,每个文件的内容都被存储在了多个存储节点上,一旦个别存储节点宕机,整个文件的数据仍然可以从存储该文件的其他副本的存储节点上获取。
[0005]当客户端需要向分布式文件系统写一个文件时,客户端首先和元数据节点+通信,从元数据节点获取该文件对应块的位置,即存储这个文件所对应块的存储节点列表。存储节点列表指示了同一份数据需要写到不同的存储节点上,即同一份数据在不同的存储节点上存在多个副本。客户端随即从返回的+存储节点列表中选择网络地址上最近的那个存储节点,然后将数据写给该存储节点,并同时告知该存储节点,还需要将这份数据写给哪些存储节点。之后,该存储节点重复上述的存储过程,直到存储节点列表中的所有存储节点都完成存储为止。

【发明内容】

[0006]本发明提供了一种分布式文件系统,其能够在现有分布式文件系统的基础上考虑文件存储操作时的节点本地性、计算负载以及容量负载。
[0007]—种分布式系统,包括:
[0008]客户端,用于向主节点发送数据操作请求;
[0009]主节点,用于响应于客户端的请求获取存储节点列表,并将存储节点列表发送给客户端;
[0010]多个存储节点,用于存储客户端所请求操作的数据;
[0011]多个计算节点,用于执行由主节点基于用户的数据操作请求分配的计算任务;
[0012]其中,主节点在获取存储节点列表时,应用副本位置选择策略,来选择数据副本所对应的存储节点;
[0013]所述副本位置选择策略包括下述方式的至少一种:选择容量负载小的存储节点;选择计算负载小的计算节点;以及选择本地性差的存储节点。
[0014]其中,所述主节点在获取存储节点列表时,基于主节点中保存的分布式系统的元数据信息来应用副本位置选择策略。
[0015]其中,所述分布式系统的元数据信息包括存储节点的状态信息和/或计算节点的状态信息。
[0016]其中,所述存储节点列表包括至少一个副本位置信息。
[0017]其中,所述至少一个副本位置信息包括第一个副本位置信息,该第一个副本位置信息通过如下方式获得:
[0018]首先判断客户端是否在集群中,如果不在集群中,则在全局范围内应用副本位置选择策略选择一个存储节点;如果在集群中,则选择客户端所在的存储节点。
[0019]其中,在选择客户端所在的存储节点之前,还考虑该存储节点的容量负载,如果该存储节点不合适,则应用副本位置选择策略选择和客户端在同一个机架下的存储节点。
[0020]其中,所述至少一个副本位置信息还包括第二个副本位置信息,该第二个副本位置信息通过如下方式获得:
[0021]应用副本位置选择策略选择同第一个副本所在的存储节点所在的不同机架上的存储节点,如果选择不出来,则在和第一个副本所在存储节点所在的机架,应用副本位置选择策略选择一个存储节点。
[0022]其中,所述至少一个副本位置信息还包括第三个副本位置信息,该第三个副本位置信息通过如下方式获得:如果第一个副本所在的存储节点和第二个副本所在的存储节点在同一个机架上,则在第一个副本所在的存储节点所在的不同机架上,应用副本位置选择策略选择一个存储节点;否则,在和第二个副本所在的存储节点所在的机架上应用副本位置选择策略选择一个存储节点。
[0023]其中,所述至少一个副本位置信息还包括三个以上的副本位置信息,该三个以上的副本位置信息通过如下方式获得:在全集群范围内应用副本位置选择策略选择存储节点。
[0024]其中,所述存储节点和计算节点分开放置,或者以一对一的方式放置在一个机器中。
[0025]一种分布式系统的数据操作方法,包括:
[0026]客户端向主节点发送数据操作的请求;
[0027]主节点响应于客户端的请求获取存储节点列表,并将存储节点列表发送给客户端;
[0028]其中,主节点在获取存储节点列表时,应用副本位置选择策略,来选择数据副本所对应的存储节点;
[0029]所述副本位置选择策略包括下述方式的至少一种:选择容量负载小的存储节点;选择计算负载小的计算节点;以及选择本地性差的存储节点。
[0030]其中,所述主节点在获取存储节点列表时,基于主节点中保存的分布式系统的元数据信息来应用副本位置选择策略。
[0031]其中,所述分布式系统的元数据信息包括存储节点的状态信息和/或计算节点的状态信息。
[0032]其中,所述存储节点列表包括至少一个副本位置信息。
[0033]其中,所述至少一个副本位置信息包括第一个副本位置信息,该第一个副本位置信息通过如下方式获得:
[0034]首先判断客户端是否在集群中,如果不在集群中,则在全局范围内应用副本位置选择策略选择一个存储节点;如果在集群中,则选择客户端所在的存储节点。
[0035]其中,在选择客户端所在的存储节点之前,还考虑该存储节点的容量负载,如果该存储节点不合适,则应用副本位置选择策略选择和客户端在同一个机架下的存储节点。
[0036]其中,所述至少一个副本位置信息还包括第二个副本位置信息,该第二个副本位置信息通过如下方式获得:
[0037]应用副本位置选择策略选择同第一个副本所在的存储节点所在的不同机架上的存储节点,如果选择不出来,则在和第一个副本所在存储节点所在的机架,应用副本位置选择策略选择一个存储节点。
[0038]其中,所述至少一个副本位置信息还包括第三个副本位置信息,该第三个副本位置信息通过如下方式获得:如果第一个副本所在的存储节点和第二个副本所在的存储节点在同一个机架上,则在第一个副本所在的存储节点所在的不同机架上,应用副本位置选择策略选择一个存储节点;否则,在和第二个副本所在的存储节点所在的机架上应用副本位置选择策略选择一个存储节点。
[0039]其中,所述至少一个副本位置信息还包括三个以上的副本位置信息,该三个以上的副本位置信息通过如下方式获得:在全集群范围内应用副本位置选择策略选择存储节点。
[0040]根据本发明提供的具体实施例,本发明公开了以下技术效果:从一定程度上优化计算效率,增加集群整体计算任务本地性特征,以及使得集群整体的计算负载更加均匀,并使得集群中所有存储节点的容量负载更加均衡。
[0041]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
【附图说明】
[0042]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0043]图1是本发明实施例所述分布式系统的结构示意图。
[0044]图2是本发明实施例所述分布式系统的数据操作的流程示意图。
【具体实施方式】
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1