CN104484134A - 分布式存储的磁盘分配方法及装置 - Google Patents
分布式存储的磁盘分配方法及装置 Download PDFInfo
- Publication number
- CN104484134A CN104484134A CN201410809708.1A CN201410809708A CN104484134A CN 104484134 A CN104484134 A CN 104484134A CN 201410809708 A CN201410809708 A CN 201410809708A CN 104484134 A CN104484134 A CN 104484134A
- Authority
- CN
- China
- Prior art keywords
- disk
- unallocated
- memory node
- sequence
- storage pool
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式存储的磁盘分配方法及装置。其中该方法包括以下步骤:根据所包含的未分配磁盘的数量的多少对集群中的各存储节点进行排序,得到第一排序结果;根据第一排序结果按顺序从每个存储节点中选取一个未分配磁盘,并记录选取未分配磁盘时包含未分配磁盘的存储节点的数量作为磁盘冗余度允许值,循环执行,直至将集群中所有未分配磁盘构成未分配磁盘序列;根据预设冗余度查找未分配磁盘序列中磁盘冗余度允许值满足要求的磁盘,并按顺序选取磁盘构成存储池。其能够保证所创建的存储池中同一组内的磁盘及磁盘镜像最大可能的分布于不同存储节点。且可在每次构建存储池通过预先设定冗余度构建合适的存储池,磁盘的分配更加灵活。
Description
技术领域
本发明涉及分布式存储技术领域,尤其涉及一种分布式存储的磁盘分配方法及装置。
背景技术
分布式存储是一种常见的大规模和超大规模存储的构建方式,其主要特点是将存储的数据分布在多个存储节点中,并使用统一的访问方法进行访问。
在构造分布式存储时,可以采用基于存储空间条带的方式或基于整磁盘存储空间的方式构建。在某些应用场景中,使用基于整磁盘存储空间构造分布式存储具有更简单的操作和更好的性能。
另一方面,在构造分布式存储时,为保证数据的可用性,经常采用多冗余度方式保存数据,即将需保存的数据同时保存到多个存储节点,即同时保存多份相同的数据,常见的份数为2份、3份或4份,以保证在任何一个存储节点失效时,数据仍然可以被访问。
在使用基于整磁盘存储空间构造分布式存储,同时又需要具有一定冗余度的情况下,经常需要对可使用的磁盘进行分配,将分布在不同存储节点上的磁盘按冗余数量要求构成一组,再基于多个磁盘组上建立分布式存储空间。
目前采用的磁盘分配方法有手工分配方式和自动化分配方式。手工方式是指人工分配磁盘构成磁盘分组。自动化分配方式是指按照一定策略进行自动化分配,如优先使用磁盘数量多的存储节点中的磁盘。
手工分配方式无法避免由于在创建分布式冗余式存储池所选磁盘不当的问题,从而会导致存储节点在发生故障时不可用。
虽然有些分布式存储系统可以实现自动化分配,但传统的磁盘的自动化分配方式但对于空余的未分配磁盘在参与下次分配时难以处理,或冗余度固定不可变。难以满足分布式存储中的磁盘分布需求。
发明内容
基于此,有必要针对传统技术中的磁盘自动化分配方式难以对空余磁盘进行合理分配,影响磁盘利用率的问题,提供一种能够对未分配磁盘进行有效利用的分布式存储的磁盘分配方法及装置。
为实现本发明目的提供的一种分布式存储的磁盘分配方法,包括以下步骤:
根据所包含的未分配磁盘的数量的多少对集群中的各存储节点进行排序,得到第一排序结果;
根据所述第一排序结果按顺序从每个存储节点中选取一个未分配磁盘,并记录选取未分配磁盘时包含未分配磁盘的存储节点的数量作为磁盘冗余度允许值,循环执行,直至将集群中所有未分配磁盘构成未分配磁盘序列;
根据预设冗余度查找所述未分配磁盘序列中磁盘冗余度允许值满足要求的磁盘,并按顺序选取磁盘构成存储池。
作为一种分布式存储的磁盘分配方法的可实施方式,所述根据所包含的未分配磁盘的数量的多少对集群中的各存储节点进行排序,排序顺序为从小到大。
作为一种分布式存储的磁盘分配方法的可实施方式,所述根据所述第一排序结果按顺序从每个存储节点中选取一个未分配磁盘,并记录选取未分配磁盘时包含未分配磁盘的存储节点的数量作为磁盘冗余度允许值,循环执行,直至将集群中所有未分配磁盘构成未分配磁盘序列,包括以下步骤:
根据所述第一排序结果从第一个存储节点中选取一个未分配磁盘,加入所述未分配磁盘序列;
计算当前包含未分配磁盘的存储节点的数量,并作为当前选取的未分配磁盘的所述磁盘冗余度允许值;
将所述第一个存储节点中包含未分配磁盘的数量减少1;
根据所述第一排序结果从下一个存储节点中选取一个未分配磁盘,加入所述未分配磁盘序列,计算当前所选取的未分配磁盘的磁盘冗余度允许值,并将所述下一个存储节点中包含未分配磁盘的数量减少1,循环执行本步骤,直至根据所述第一排序结果将最后一个存储节点中的一个未分配磁盘加入所述未分配磁盘序列;
再次根据所述第一排序结果依次选取存储节点中未分配磁盘加入所述未分配磁盘序列,直至所有存储节点中未分配磁盘的数量均为0。
作为一种分布式存储的磁盘分配方法的可实施方式,步骤根据预设冗余度查找所述未分配磁盘序列中磁盘冗余度允许值满足要求的磁盘,并按顺序选取磁盘构成存储池,按照高冗余度优先策略进行,包括以下步骤:
正向查找所述未分配磁盘序列中磁盘冗余度允许值大于等于所述预设冗余度的可用未分配磁盘,若有,则继续执行下一步骤,若没有,则发出冗余度不满足要求的报警;
判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度,若是,则继续执行下一步骤,若否,则发出存储容量不足的报警;
将所述可用未分配磁盘以所述预设冗余度数量为基数按所述未分配磁盘序列的顺序进行分组,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘;
将所述磁盘分组加入存储池中;
判断所述存储池是否达到预设容量,若是,则输出所述存储池的磁盘分组信息,若否,则返回执行判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度的步骤。
作为一种分布式存储的磁盘分配方法的可实施方式,步骤根据预设冗余度查找所述未分配磁盘序列中磁盘冗余度允许值满足要求的磁盘,并按顺序选取磁盘构成存储池,按照低冗余度磁盘优先策略进行,包括以下步骤:
反向查找所述未分配磁盘序列中磁盘冗余度允许值大于等于所述预设冗余度的可用未分配磁盘,若有,则继续执行下一步骤,若没有,则发出冗余度不满足要求的报警;
判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度,若是,则继续执行下一步骤,若否,则发出存储容量不足的报警;
将所述可用未分配磁盘以所述预设冗余度数量为基数按所述未分配磁盘序列的反向顺序进行分组,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘;
将所述磁盘分组加入存储池中;
判断所述存储池是否达到预设容量,若是,则输出所述存储池的磁盘分组信息,若否,则返回执行判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度的步骤。
作为一种分布式存储的磁盘分配方法的可实施方式,所述根据所包含的未分配磁盘的数量的多少对集群中的各存储节点进行排序,得到第一排序结果,之前还包括以下步骤:
集群文件系统管理端向存储节点发出查询未分配磁盘信息的请求;
根据各所述存储节点的返回信息确定每个所述存储节点包含的未分配磁盘的数量及未分配磁盘标识信息。
基于同一发明构思的一种分布式存储的磁盘分配装置,包括排序模块、序列构建模块及存储池构建模块,其中:
所述排序模块,用于根据所包含的未分配磁盘的数量的多少对集群中的各存储节点进行排序,得到第一排序结果;
所述序列构建模块,用于根据所述第一排序结果按顺序从每个存储节点中选取一个未分配磁盘,并记录选取未分配磁盘时包含未分配磁盘的存储节点的数量作为磁盘冗余度允许值,循环执行,直至将集群中所有未分配磁盘构成未分配磁盘序列;
所述存储池构建模块,用于根据预设冗余度查找所述未分配磁盘序列中磁盘冗余度允许值满足要求的磁盘,并按顺序选取磁盘构成存储池。
作为一种分布式存储的磁盘分配装置的可实施方式,所述序列构建模块包括未分配磁盘选择子模块、磁盘冗余度允许值计算子模块、节点磁盘数量调整子模块、下一节点处理子模块及循环控制子模块,其中:
所述未分配磁盘选择子模块,用于根据所述第一排序结果从第一个存储节点中选取一个未分配磁盘,加入所述未分配磁盘序列;
所述磁盘冗余度允许值计算子模块,用于计算当前包含未分配磁盘的存储节点的数量,并作为当前选取的未分配磁盘的所述磁盘冗余度允许值;
所述节点磁盘数量调整子模块,用于将所述第一个存储节点中包含未分配磁盘的数量减少1;
所述下一节点处理子模块,用于根据所述第一排序结果从下一个存储节点中选取一个未分配磁盘,加入所述未分配磁盘序列,计算当前所选取的未分配磁盘的磁盘冗余度允许值,并将所述下一个存储节点中包含未分配磁盘的数量减少1,循环执行,直至根据所述第一排序结果将最后一个存储节点中的一个未分配磁盘加入所述未分配磁盘序列;
所述下一节点处理子模块,用于再次根据所述第一排序结果依次选取存储节点中未分配磁盘加入所述未分配磁盘序列,直至所有存储节点中未分配磁盘的数量均为0。
作为一种分布式存储的磁盘分配装置的可实施方式,所述排序模块对所述存储节点的排序按照所包含的未分配磁盘数量从小到大进行,所述存储池构建模块包括高冗余度优先策略存储池构建子模块,所述高冗余度优先策略存储池构建子模块包括第一查找单元、第一判断单元、第一分组单元、第一存储池构建单元及第一容量判断单元,其中:
所述第一查找单元,用于正向查找所述未分配磁盘序列中磁盘冗余度允许值大于等于所述预设冗余度的可用未分配磁盘,若有,则转执行所述第一判断单元,若没有,则发出冗余度不满足要求的报警;
所述第一判断单元,用于判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度,若是,则转执行所述第一分组单元,若否,则发出存储容量不足的报警;
所述第一分组单元,用于将所述可用未分配磁盘以所述预设冗余度数量为基数按所述未分配磁盘序列的顺序进行分组,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘,;
所述第一存储池构建单元,用于将所述第一分组单元构建的磁盘分组加入存储池中;
所述第一容量判断单元,用于判断所述存储池是否达到预设容量,若是,则输出所述存储池的磁盘分组信息,若否,则返回继续执行所述第一判断单元。
作为一种分布式存储的磁盘分配装置的可实施方式,所述排序模块对所述存储节点的排序按照所包含的未分配磁盘数量从小到大进行,所述存储池构建模块包括低冗余度磁盘优先策略存储池构建子模块,所述低冗余度磁盘优先策略存储池构建子模块包括第二查找单元、第二判断单元、第二分组单元、第二存储池构建单元及第二容量判断单元,其中:
所述第二查找单元,用于反向查找所述未分配磁盘序列中磁盘冗余度允许值大于等于所述预设冗余度的可用未分配磁盘,若有,则继续执行所述第二判断单元,若没有,则发出冗余度不满足要求的报警;
所述第二判断单元,用于判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度,若是,则继续执行所述第二分组单元,若否,则发出存储容量不足的报警;
所述第二分组单元,用于将所述可用未分配磁盘以所述预设冗余度数量为基数按所述未分配磁盘序列的反向顺序进行分组,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘;
所述第二存储池构建单元,用于将所述第二分组单元构建的磁盘分组加入存储池中;
所述第二容量判断单元,用于判断所述存储池是否达到预设容量,若是,则输出所述存储池的磁盘分组信息,若否,则返回执行所述第二判断单元。
作为一种分布式存储的磁盘分配装置的可实施方式,还包括查询请求模块和信息接收模块,其中:
所述查询请求模块,用于集群文件系统管理端向存储节点发出查询未分配磁盘信息的请求;
所述信息接收模块,用于集群文件系统管理端根据各所述存储节点的返回信息确定每个所述存储节点包含的未分配磁盘的数量及未分配磁盘标识信息。
本发明的有益效果包括:
本发明提供的一种分布式存储的磁盘分配方法及装置,通过查询存储节点包含的未分配磁盘的数量对存储节点进行排序,并根据排序结果按顺序从存储节点中的提取未分配磁盘构成未分配磁盘序列,从而根据有序的未分配磁盘进行存储池的构建。其能够保证所创建的冗余式分布存储池中同一组内的磁盘及磁盘镜像最大可能的分布于集群中的不同节点。且按照存储节点的顺序或者未分配磁盘的顺序进行存储池的构建,能够根据需求优先使用未分配磁盘数量较多的存储节点或者优先使用数量较少的磁盘,能够为后续磁盘分配提供更大的冗余度或者较集中的资源,提高资源利用率。同时,在构建存储池时根据预设的冗余度进行,因此,可在每次构建存储池通过预先设定要求的冗余度构建合适的存储池,磁盘的分配更加灵活。
附图说明
图1为本发明一种分布式存储的磁盘分配方法的一具体实施例的流程;
图2为本发明一种分布式存储的磁盘分配方法的另一具体实施例的流程;
图3为一个分布式存储系统的示意图;
图4为本发明一种分布式存储的磁盘分配装置的一具体实施例的结构示意图;
图5为本发明一种分布式存储的磁盘分配装置的一具体实施例中的序列构建模块的构成示意图;
图6为本发明一种分布式存储的磁盘分配装置的一具体实施例的存储池构建模块构成示意图;
图7为本发明一种分布式存储的磁盘分配装置的另一具体实施例的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明的分布式存储的磁盘分配方法及装置的具体实施方式进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明一实施例的一种分布式存储的磁盘分配方法,如图1所示,包括以下步骤:
S100,根据所包含的未分配磁盘的数量的多少对集群中的各存储节点进行排序,得到第一排序结果。
在分布式存储系统(集群)中会存在多个可用(可存储数据)的未分配磁盘,而多个磁盘一般分布在存储系统的多个存储节点中,且每个存储节点中所包含的未分配磁盘的数量也可能各有差异。在分布式存储中,根据冗余度的要求需要使用多个存储节点中的未分配磁盘,在本发明实施例中,要进行数据存储分配时,首先查找整个分布式存储系统中包含未分配磁盘的存储节点,并根据存储节点中包含的未分配磁盘的数量进行一个排序,以便后续根据需求对个存储节点中的未分配磁盘进行合理利用。
其中,根据存储节点中包含的未分配磁盘的数量对存储节点进行排序可以是数量从大到小进行排序或者包含未分配磁盘的数量从小到大的顺序进行排序。排序之后继续执行后续的步骤S200。
S200,根据所述第一排序结果按顺序从每个存储节点中选取一个未分配磁盘,并记录选取未分配磁盘时包含未分配磁盘的存储节点的数量作为磁盘冗余度允许值,循环执行,直至将集群中所有未分配磁盘构成未分配磁盘序列。
根据步骤S100中完成的排序进行未分配磁盘的提取。如已经查找到5个存储节点中包含未分配磁盘,5个存储节点分别为A存储节点、B存储节点、C存储节点、D存储节点和E存储节点。且A存储节点中包含2个未分配磁盘,分别为a1和a2,B存储节点中包含3个未分配磁盘,分别为b1,b2,b3,C存储节点中包含5个未分配磁盘,分别为c1,c2,c3,c4,c5,D存储节点中包含7个未分配磁盘,分别为d1,d2,d3,d4,d5,d6,d7,E存储节点中包含8个未分配磁盘,分别为e1,e2,e3,e4,e5,e6,e7,e8。若设定的存储节点的排序顺序是从小到大,则存储节点的排序为:A存储节点、B存储节点、C存储节点、D存储节点、E存储节点。此时在选取未分配磁盘时,首先从A存储节点中选取一个,假定选取的为a1(此处选取可以为随机选取,a1为A存储节点中的某一未分配磁盘),此时,B存储节点、C存储节点、D存储节点、E存储节点中都还包含未分配磁盘,因此,此时包含未分配磁盘的数量为5,则a1未分配磁盘的磁盘冗余度允许值为5。从A存储节点中选取一个未分配磁盘后,则按顺序再从紧随其后的B存储节点中选取一个未分配磁盘,此处假定第一次从B存储节点中选取的为b1,此时A存储节点中还有未分配磁盘a2,b1本身就为B存储节点的未分配磁盘(磁盘本身所属的存储节点属于包含未分配磁盘的存储节点),C存储节点、D存储节点和E存储节点中也都包含未分配磁盘,因此,未分配磁盘b1磁盘冗余度允许值也为5。之后再依次从C存储节点、D存储节点及E存储节点中分别选取一个未分配磁盘,假定分别选取的未分配磁盘分别为c1、d1、e1,对应的磁盘冗余度都为5。按第一排序结果的顺序依次从存储节点中选取一个未分配磁盘后,进行第二轮的未分配磁盘的选取,继续按照步骤S100中确定的第一排序结果,A存储节点、B存储节点、C存储节点、D存储节点、E存储节点的顺序分别从存储节点中选取一个未分配磁盘,如此循环进行,直至提取出所有存储节点中所有的未分配节点。或者在其他实施例中也可按照需求提取一定数量的未分配磁盘后停止提取。并将提取的未分配磁盘构成未分配磁盘序列。
本发明实施例中,将所有的存储节点中包含的未分配磁盘构成未分配磁盘序列如下所示:
a15,b15,c15,d15,e15;
a25,b24,c24,d24,e24;
b34,c33,d33,e33;
c43,d43,e43;
c53,d52,e52;
d62,e62;
d72,e71;
e81。
上述未分配磁盘序列的断行是为了清楚查看,其8行中所有的磁盘构成一个未分配磁盘序列,且第二个下标表征当前未分配磁盘的磁盘冗余度允许值。如c33表示未分配磁盘c33,且其磁盘冗余度允许值为3。
将未分配磁盘构成未分配磁盘序列后,后续可直接根据序列对未分配磁盘进行处理,在处理的过程中就直接包含了存储节点的信息,未分配磁盘的使用能够考虑到存储节点剩余存储量,会是磁盘分为更加合理,更充分利用资源。
S300,根据预设冗余度查找所述未分配磁盘序列中磁盘冗余度允许值满足要求的磁盘,并按顺序选取磁盘构成存储池。
所述预设冗余度是分布式存储系统中所设定的冗余度要求,也即同时保存数据的分数,如设置的为2、3或者4的冗余度。
此处按顺序选取未分配磁盘构成存储池,充分利用了前面根据包含未分配磁盘的数量对存储节点进行的排序。由前面的例子可以看出,排序之后,未分配磁盘序列中的各未分配磁盘的磁盘冗余度允许值大小也是按顺序排列的,因此,所有满足冗余度要求的未分配磁盘序列中的未分配磁盘时连续分布的,此时按照未分配磁盘序列的顺序选取未分配磁盘能够体现存储节点的排序,且能够使同一组磁盘及磁盘镜像最大可能的分布于集群中的不同节点上。
本发明实施例的分布式存储的磁盘分配方法,通过查询存储节点包含的未分配磁盘的数量对存储节点进行排序,并根据排序结果按顺序从存储节点中的提取未分配磁盘构成未分配磁盘序列,从而根据有序的未分配磁盘进行存储池的构建。其能够保证所创建的冗余式分布存储池中同一组内的磁盘及磁盘镜像最大可能的分布于集群中的不同节点。且按照存储节点的顺序或者未分配磁盘的顺序进行存储池的构建,能够根据需求优先使用未分配磁盘数量较多的存储节点或者优先使用数量较少的磁盘,能够为后续磁盘分配提供更大的冗余度或者较集中的资源,提高资源利用率。同时,在构建存储池时根据预设的冗余度进行,因此,可在每次构建存储池通过预先设定要求的冗余度构建合适的存储池,磁盘的分配更加灵活。
还需要说明的是,本发明实施例的分布式存储的磁盘分配方法,在每次建立存储池时可重新建立所有未分配磁盘的未分配磁盘序列,并可以根据需求使用不同的冗余度构建存储池。
作为一种可实施方式,步骤S100中,根据所包含的未分配磁盘的数量的多少对集群中的各存储节点进行排序,排序顺序为从小到大。从小到大的排序较为常见也较为普遍,后面的描述也基本基于这种排序进行。
在其中一个实施例中,步骤S200,根据所述第一排序结果按顺序从每个存储节点中选取一个未分配磁盘,并记录选取未分配磁盘时包含未分配磁盘的存储节点的数量作为磁盘冗余度允许值,循环执行,直至将集群中所有未分配磁盘构成未分配磁盘序列,包括以下步骤:
S210,根据所述第一排序结果从第一个存储节点中选取一个未分配磁盘,加入所述未分配磁盘序列。
在本发明实施例中,在提取及分配未分配磁盘的过程中都是按顺序进行的。本步骤中提取未分配磁盘中是从所有包含未分配磁盘的存储节点(步骤S100中已排序)中的第一个存储节点开始的。
S220,计算当前包含未分配磁盘的存储节点的数量,并作为当前选取的未分配磁盘的所述磁盘冗余度允许值。
此处需要说明的是,本步骤中在计算磁盘冗余度允许值时,当前提取的未分配磁盘所属的存储节点作为包含未分配磁盘的存储节点处理。
S230,将所述第一个存储节点中包含未分配磁盘的数量减少1。在对存储节点进行排序或者在首次提取未分配磁盘的时候都可以对存储节点中包含的未分配磁盘的数量进行记录,本步骤中每提取一个未分配磁盘后将原记录的包含未分配磁盘的数量减1,并作为所对应的存储节点的新的包含未分配磁盘的数量。以便对存储节点包含的未分配磁盘的数量进行追踪。
此处需要说明的是,在其他实施例中也可在每次提取未分配磁盘后检测包含的未分配磁盘的数量,并在数量减小到0时对当前存储节点进行标注,退出下一轮的未分配磁盘提取。
S240,根据所述第一排序结果从下一个存储节点中选取一个未分配磁盘,加入所述未分配磁盘序列,计算当前所选取的未分配磁盘的磁盘冗余度允许值,并将所述下一个存储节点中包含未分配磁盘的数量减少1,循环执行本步骤,直至根据所述第一排序结果将最后一个存储节点中的一个未分配磁盘加入所述未分配磁盘序列。
需要说明的是,本步骤中所述的循环执行是指一个存储节点选取未分配磁盘结束后,继续顺序(按照第一排序结果)的对下一个存储节点选取未分配磁盘,计算磁盘冗余度及将未分配磁盘的数量减少1。且,本步骤和步骤S210,S220及步骤S230的整体执行过程相同,只不过前三个步骤是对第一个存储节点第一个未分配磁盘过程的详细介绍。本步骤是说采用相同的方法对后续节点进行未分配磁盘选取。
还需要说明的是,此处所述的选取是从当前存储节点中任意选择一个未分配磁盘的意思。对于没有特别设置的分布式存储系统中,存储节点中的未分配磁盘地位相同。
S250,再次根据所述第一排序结果依次选取存储节点中未分配磁盘加入所述未分配磁盘序列,直至所有存储节点中未分配磁盘的数量均为0。
此处需要说明的是,循环进行过程中,每次选取还包括未分配磁盘的存储节点中的未分配磁盘,对数量已经为0的存储节点则在本次循环中不进行任何处理。当所有存储节点包含的未分配磁盘的数量均为0时,则未分配磁盘的排序结束。
具体的,步骤S300,根据预设冗余度查找所述未分配磁盘序列中磁盘冗余度允许值满足要求的磁盘,并按顺序选取磁盘构成存储池的过程,可以按照高冗余度优先策略进行,也可以按照低冗余度磁盘优先策略进行。
其中,按照高冗余度优先策略进行存储池的构建包括以下步骤:(此处第一排序结果的顺序为从小到大)
S311,正向查找所述未分配磁盘序列中磁盘冗余度允许值大于等于所述预设冗余度的可用未分配磁盘,若有,则继续执行下一步骤(步骤S312),若没有,则发出冗余度不满足要求的报警。
此处所说的正向是指按照未分配磁盘序列的顺序进行查找。
如前面的包含A存储节点、B存储节点、C存储节点、D存储节点和E存储节点5个存储节点的例子,假设本实施例中预设冗余度为4。则最终形成的未分配磁盘序列:
a15,b15,c15,d15,e15;
a25,b24,c24,d24,e24;
b34,c33,d33,e33;
c43,d43,e43;
c53,d52,e52;
d62,e62;
d72,e71;
e81。
中满足冗余度要求的磁盘包括a15,b15,c15,d15,e15;a25,b24,c24,d24,e24;b34,共11个。
S312,判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度,若是,则继续执行下一步骤(步骤S313),若否,则发出存储容量不足的报警。
此处需要说明的,在首次进行磁盘分组的构建时,这一步骤可省略,因为如果能查找到可用未分配磁盘,则至少存在一组未分配磁盘满足要求。
还需要说明的是,如果本步骤判断可用未分配磁盘的数量小于预设冗余度时,会发出报警,而且会释放已经选取的可用未分配磁盘,而未分配磁盘序列可以释放也可进行保存,待更改冗余度等设置之后直接进行再次的存储池构建。
结合上述实例,共11个可用未分配磁盘大于冗余度4,满足要求。
S313,将所述可用未分配磁盘以所述预设冗余度数量为基数按所述未分配磁盘序列的顺序进行分组,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘。
结合上述实例,本步骤中选取a15,b15,c15,d15,4个未分配磁盘构成一个磁盘分组。可以看出,本磁盘分组中四个磁盘分布在四个存储节点中,能够有效防止某一个存储节点失效时造成数据读取障碍。此时,剩余的可用未分配磁盘为e15;a25,b24,c24,d24,e24;b34,共7个。
S314,将所述磁盘分组加入存储池中。
此处对存储池进行解释说明如下:
存储池由多个磁盘分组组成的存储空间。待存放数据按照一定规则(优先使用一个磁盘分组等)分散存放到存储池中不同的磁盘分组上,以实现数据的分布存储。
S315,判断所述存储池是否达到预设容量,若是,则输出所述存储池的磁盘分组信息,并结束,若否,则返回执行判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度的步骤(步骤S312)。
存储池的预设容量是根据要存储的数据的大小进行设置的。结合上述实例,如预设容量为两组磁盘分组,此时只放入到了存储池中一个磁盘分组,则存储池还没有达到预设容量,则返回步骤S312继续判断。此时可用未分配磁盘7个,数量大于预设冗余度4,再次提取四个未分配磁盘e15;a25,b24,c24,构成第二个磁盘分组,并加入到存储池中。此时存储池中包含了两组磁盘分组达到了预设容量,则输出所有磁盘分组:(第一组)a15,b15,c15,d15;(第二组)e15,a25,b24,c24。至此,存储池的构建结束。
但是,假如本实例中存储容量为3,构建两组磁盘分组((第一组)a15,b15,c15,d15;(第二组)e15,a25,b24,c24)后,继续返回步骤S312,此时,剩余的可用未分配磁盘为d24,e24;b34,共三个,可用未分配磁盘的数量是否小于冗余度4,此时发出存储容量不足的报警,通知使用者存储空间不足以支持如此大的冗余度要求。使用者可适当修改冗余度。
本发明实施例中采用高冗余度优先策略进行存储池的构建,使少量上次分配后剩余的空余磁盘尽快加入新存储池。
按照低冗余度磁盘优先策略进行存储池的构建包括以下步骤:(此处依然按照第一排序结果的顺序为从小到大进行描述)
S321,反向查找所述未分配磁盘序列中磁盘冗余度允许值大于等于所述预设冗余度的可用未分配磁盘,若有,则继续执行下一步骤,若没有,则发出冗余度不满足要求的报警。
此处所说的反向查找是指按照未分配磁盘序列正向顺序相反的方向,从序列的尾到头进行查找。
如对于未分配磁盘序列:
a15,b15,c15,d15,e15;
a25,b24,c24,d24,e24;
b34,c33,d33,e33;
c43,d43,e43;
c53,d52,e52;
d62,e62;
d72,e71;
e81。
设预设冗余度为2,则倒序进行查找,查找到第一个满足冗余度要求的未分配磁盘为d72,由序列可看出,d72以前的未分配磁盘都是满足冗余度要求的。共23个可用未分配磁盘。
S322,判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度,若是,则继续执行下一步骤,若否,则发出存储容量不足的报警。此步骤与步骤S312基本相同,此处不再赘述。
S323,将所述可用未分配磁盘以所述预设冗余度数量为基数按所述未分配磁盘序列的反向顺序进行分组,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘。
结合上述实例,选择d72和e62作为第一个磁盘分组。
S324,将所述磁盘分组加入存储池中。
S325,判断所述存储池是否达到预设容量,若是,则输出所述存储池的磁盘分组信息,并结束,若否,则返回执行判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度的步骤。
本发明实施例中,设预设容量为3(冗余度为2),则选取的三组磁盘分组分别为:(第一组)d72,e62;(第二组)d62,e52;(第三组)d52,c53。
本发明实施例中,采用低冗余度磁盘优先策略进行存储池的构建,优先使用冗余度较低的存储节点,避免可构造高冗余度存储池的空间被低冗余度存储池占用。
此处需要说明的是,上述采用高冗余度优先策略和采用低冗余度磁盘优先策略进行存储池的构建的步骤都是按照第一排序结果的顺序为从小到大进行描述的。本领域技术人员可以理解,如果第一排序结果的顺序为从大到小进行的话,则两种策略可互换步骤实现。
另外,在分布式存储系统中,可采用如下步骤获取个存储节点中的未分配磁盘的信息。
S010,集群文件系统管理端向集群中的各存储节点发出查询未分配磁盘信息的请求。
S020,集群文件系统管理端根据各所述存储节点的返回信息确定每个所述存储节点包含的未分配磁盘的数量及未分配磁盘标识信息。
此处需要说明的是,各存储节点接收到集群文件系统管理端发送的未分配磁盘信息的请求后,根据请求发送自身的所有未分配磁盘标识信息给集群文件系统管理端。集群文件系统管理端接收到存储节点的返回信息(所有未分配磁盘标识信息)后,进行统计,确定对应存储节点包含的未分配磁盘的数量及包含的未分配磁盘的磁盘标识信息。同时,也可将确定后的信息直接存储在集群文件系统管理端的存储空间中,且后续的存储池的构建等步骤都由集群文件系统管理端完成。
还需要说明的是,前述的按照高冗余度优先策略进行存储池的构建及按照低冗余度磁盘优先策略进行存储池的构建可根据需要在进行构建的过程中进行选择。如图2所示,一个分布式存储的磁盘分配方法的完整实施例按如下流程进行:
首先执行步骤S010及步骤S020,确定各存储节点中包含的未分配磁盘的数量,之后执行步骤S100和步骤S200对所有未分配磁盘进行排序,得到未分配磁盘序列,最后再根据选择的存储池构建策略执行对应的步骤S311~S315或者步骤S321~325,得到最终的磁盘分组输出,或者进行存储空间不足或者冗余度不足的告警。
基于同一发明构思,本发明实施例提供一种分布式存储的磁盘分配装置,由于此庄子解决问题的原理与前述一种分布式存储的磁盘分配方法相似,因此,该装置的实施可以按照前述方法的具体步骤实现,重复之处不再赘述。
在分布式存储系统中,如图3所示,一般包含多个计算机或者存储设备作为存储节点,另外还包括一个集群文件系统管理端。其中,在由多个计算机构成的分布式存储系统中,可在多个计算机中选取一个集群文件系统管理端。图3所示的分布式存储系统中包括集群文件系统管理端001,及A存储节点002,B存储节点003,C存储节点004,D存储节点005及E存储节点006。当然,在其他实施例中,存储节点的数量可以为其他值。
本发明的分布式存储的磁盘分配装置为配置在集群文件系统管理端中的装置,装置的功能通过集群文件系统管理端的硬件与外围设备通信实现。
本发明一实施例的一种分布式存储的磁盘分配装置,如图4所示,包括排序模块100、序列构建模块200及存储池构建模块300。其中:排序模块100,用于根据所包含的未分配磁盘的数量的多少对集群中的各存储节点进行排序,得到第一排序结果;序列构建模块200,用于根据所述第一排序结果按顺序从每个存储节点中选取一个未分配磁盘,并记录选取未分配磁盘时包含未分配磁盘的存储节点的数量作为磁盘冗余度允许值,循环执行,直至将集群中所有未分配磁盘构成未分配磁盘序列;存储池构建模块300,用于根据预设冗余度查找所述未分配磁盘序列中磁盘冗余度允许值满足要求的磁盘,并按顺序选取磁盘构成存储池。
本发明实施例的分布式存储的磁盘分配装置,通过查询存储节点包含的未分配磁盘的数量对存储节点进行排序,并根据排序结果按顺序从存储节点中的提取未分配磁盘构成未分配磁盘序列,从而根据有序的未分配磁盘进行存储池的构建。其能够保证所创建的冗余式分布存储池中同一组内的磁盘及磁盘镜像最大可能的分布于集群中的不同节点。且按照存储节点的顺序或者未分配磁盘的顺序进行存储池的构建,能够根据需求优先使用未分配磁盘数量较多的存储节点或者优先使用数量较少的磁盘,能够为后续磁盘分配提供更大的冗余度或者较集中的资源,提高资源利用率。同时,在构建存储池时根据预设的冗余度进行,因此,可在每次构建存储池通过预先设定要求的冗余度构建合适的存储池,磁盘的分配更加灵活。
其中,如图5所示,序列构建模块200包括未分配磁盘选择子模块210、磁盘冗余度允许值计算子模块220、节点磁盘数量调整子模块230、下一节点处理子模块240及循环控制子模块250。其中:未分配磁盘选择子模块210,用于根据所述第一排序结果从第一个存储节点中选取一个未分配磁盘,加入所述未分配磁盘序列;磁盘冗余度允许值计算子模块220,用于计算当前包含未分配磁盘的存储节点的数量,并作为当前选取的未分配磁盘的所述磁盘冗余度允许值;节点磁盘数量调整子模块230,用于将所述第一个存储节点中包含未分配磁盘的数量减少1;下一节点处理子模块240,用于根据所述第一排序结果从下一个存储节点中选取一个未分配磁盘,加入所述未分配磁盘序列,计算当前所选取的未分配磁盘的磁盘冗余度允许值,并将所述下一个存储节点中包含未分配磁盘的数量减少1,循环执行,直至根据所述第一排序结果将最后一个存储节点中的一个未分配磁盘加入所述未分配磁盘序列;下一节点处理子模块250,用于再次根据所述第一排序结果依次选取存储节点中未分配磁盘加入所述未分配磁盘序列,直至所有存储节点中未分配磁盘的数量均为0。
本发明实施例的分布式存储的磁盘分配装置采用循环选取的方式对未分配磁盘进行排序,使构成的未分配磁盘序列能够表征存储节点的顺序,且构成的未分配磁盘序列便于后续的磁盘分组。同时,使用数量递减的方式实时监控存储节点中包含的未分配磁盘的数量,使未分配磁盘序列的构建准确、快速。
作为一种可实施方式,如图6所示,存储池构建模块300包括高冗余度优先策略存储池构建子模块310和低冗余度磁盘优先策略存储池构建子模块320。其中,排序模块100对所述存储节点的排序按照所包含的未分配磁盘数量从小到大进行时,存储池构建模块300中的高冗余度优先策略存储池构建子模块310,包括第一查找单元311、第一判断单元312、第一分组单元313、第一存储池构建单元314及第一容量判断单元315。
其中,第一查找单元311,用于正向查找所述未分配磁盘序列中磁盘冗余度允许值大于等于所述预设冗余度的可用未分配磁盘,若有,则转执行所述第一判断单元312,若没有,则发出冗余度不满足要求的报警。
此处需要说明的是,发出的冗余度不满足要求的报警可通过集群文件系统管理端所连接的显示设备进行显示,如弹出警示框等。另外也可通过与集群文件系统管理端连接的一些音频设备发出声响进行报警。当然两者也可进行结合发出报警。
第一判断单元312,用于判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度,若是,则转执行所述第一分组单元313,若否,则发出存储容量不足的报警。此处存储容量不足的报警方式可采用与冗余度不足的报警相同的方式。
第一分组单元313,用于将所述可用未分配磁盘以所述预设冗余度数量为基数按所述未分配磁盘序列的顺序进行分组,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘。
第一存储池构建单元314,用于将所述第一分组单元构建的磁盘分组加入存储池中。
第一容量判断单元315,用于判断所述存储池是否达到预设容量,若是,则输出所述存储池的磁盘分组信息,若否,则返回继续执行所述第一判断单元312。
得到存储池的磁盘分组信息后即可按照磁盘分组信息向存储池中按照预设规则存储数据。
本发明实施例的分布式存储的磁盘分配装置,采用高冗余度优先策略进行存储池的构建,可使少量上次分配后剩余的空余磁盘尽快加入新存储池。
类似的,排序模块100对所述存储节点的排序按照所包含的未分配磁盘数量从小到大进行时,存储池构建模块300中的低冗余度磁盘优先策略存储池构建子模块320,包括第二查找单元321、第二判断单元322、第二分组单元323、第二存储池构建单元324及第二容量判断单元325。其中:第二查找单元321,用于反向查找所述未分配磁盘序列中磁盘冗余度允许值大于等于所述预设冗余度的可用未分配磁盘,若有,则继续执行所述第二判断单元,若没有,则发出冗余度不满足要求的报警;第二判断单元322,用于判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度,若是,则继续执行所述第二分组单元323,若否,则发出存储容量不足的报警;第二分组单元323,用于将所述可用未分配磁盘以所述预设冗余度数量为基数按所述未分配磁盘序列的反向顺序进行分组,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘;第二存储池构建单元324,用于将所述第二分组单元构建的磁盘分组加入存储池中;第二容量判断单元325,用于判断所述存储池是否达到预设容量,若是,则输出所述存储池的磁盘分组信息,若否,则返回执行所述第二判断单元322。
本发明实施例的分布式存储的磁盘分配装置中,采用低冗余度磁盘优先策略进行存储池的构建,优先使用冗余度较低的存储节点,避免可构造高冗余度存储池的空间被低冗余度存储池占用。
需要说明的是,如图7所示,配置在集群文件系统管理端中的分布式存储的磁盘分配装置还包括查询请求模块010和信息接收模块020。其中:查询请求模块010,用于集群文件系统管理端向存储节点发出查询未分配磁盘信息的请求;信息接收模块020,用于集群文件系统管理端根据各所述存储节点的返回信息确定每个所述存储节点包含的未分配磁盘的数量及未分配磁盘标识信息。
其中,分布式存储系统的存储节点中会配置与集群文件系统管理端相匹配的信号接收设备。配置在集群文件系统管理端的查询请求模块010发出查询请求到各存储节点后,存储节点中的信号接收设备会接收查询请求,并会通过自身的信号发送设备返回对应的未分配磁盘信息给集群文件系统管理端。集群文件系统管理端中配置的信息接收模块020接收存储节点返回的信息,并进一步使用排序模块100、序列构建模块200及存储池构建模块300等模块,根据预设冗余度及优先策略进行存储池的构建。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (11)
1.一种分布式存储的磁盘分配方法,其特征在于,包括以下步骤:
根据所包含的未分配磁盘的数量的多少对集群中的各存储节点进行排序,得到第一排序结果;
根据所述第一排序结果按顺序从每个存储节点中选取一个未分配磁盘,并记录选取未分配磁盘时包含未分配磁盘的存储节点的数量作为磁盘冗余度允许值,循环执行,直至将集群中所有未分配磁盘构成未分配磁盘序列;
根据预设冗余度查找所述未分配磁盘序列中磁盘冗余度允许值满足要求的磁盘,并按顺序选取磁盘构成存储池。
2.根据权利要求1所述的分布式存储的磁盘分配方法,其特征在于,所述根据所包含的未分配磁盘的数量的多少对集群中的各存储节点进行排序,排序顺序为从小到大。
3.根据权利要求1所述的分布式存储的磁盘分配方法,其特征在于,所述根据所述第一排序结果按顺序从每个存储节点中选取一个未分配磁盘,并记录选取未分配磁盘时包含未分配磁盘的存储节点的数量作为磁盘冗余度允许值,循环执行,直至将集群中所有未分配磁盘构成未分配磁盘序列,包括以下步骤:
根据所述第一排序结果从第一个存储节点中选取一个未分配磁盘,加入所述未分配磁盘序列;
计算当前包含未分配磁盘的存储节点的数量,并作为当前选取的未分配磁盘的所述磁盘冗余度允许值;
将所述第一个存储节点中包含未分配磁盘的数量减少1;
根据所述第一排序结果从下一个存储节点中选取一个未分配磁盘,加入所述未分配磁盘序列,计算当前所选取的未分配磁盘的磁盘冗余度允许值,并将所述下一个存储节点中包含未分配磁盘的数量减少1,循环执行本步骤,直至根据所述第一排序结果将最后一个存储节点中的一个未分配磁盘加入所述未分配磁盘序列;
再次根据所述第一排序结果依次选取存储节点中未分配磁盘加入所述未分配磁盘序列,直至所有存储节点中未分配磁盘的数量均为0。
4.根据权利要求2所述的分布式存储的磁盘分配方法,其特征在于,根据预设冗余度查找所述未分配磁盘序列中磁盘冗余度允许值满足要求的磁盘,并按顺序选取磁盘构成存储池,按照高冗余度优先策略进行,包括以下步骤:
正向查找所述未分配磁盘序列中磁盘冗余度允许值大于等于所述预设冗余度的可用未分配磁盘,若有,则继续执行下一步骤,若没有,则发出冗余度不满足要求的报警;
判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度,若是,则继续执行下一步骤,若否,则发出存储容量不足的报警;
将所述可用未分配磁盘以所述预设冗余度数量为基数按所述未分配磁盘序列的顺序进行分组,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘;
将所述磁盘分组加入存储池中;
判断所述存储池是否达到预设容量,若是,则输出所述存储池的磁盘分组信息,若否,则返回执行判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度的步骤。
5.根据权利要求2所述的分布式存储的磁盘分配方法,其特征在于,步骤根据预设冗余度查找所述未分配磁盘序列中磁盘冗余度允许值满足要求的磁盘,并按顺序选取磁盘构成存储池,按照低冗余度磁盘优先策略进行,包括以下步骤:
反向查找所述未分配磁盘序列中磁盘冗余度允许值大于等于所述预设冗余度的可用未分配磁盘,若有,则继续执行下一步骤,若没有,则发出冗余度不满足要求的报警;
判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度,若是,则继续执行下一步骤,若否,则发出存储容量不足的报警;
将所述可用未分配磁盘以所述预设冗余度数量为基数按所述未分配磁盘序列的反向顺序进行分组,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘;
将所述磁盘分组加入存储池中;
判断所述存储池是否达到预设容量,若是,则输出所述存储池的磁盘分组信息,若否,则返回执行判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度的步骤。
6.根据权利要求1所述的分布式存储的磁盘分配方法,其特征在于,所述根据所包含的未分配磁盘的数量的多少对集群中的各存储节点进行排序,得到第一排序结果,之前还包括以下步骤:
集群文件系统管理端向存储节点发出查询未分配磁盘信息的请求;
根据各所述存储节点的返回信息确定每个所述存储节点包含的未分配磁盘的数量及未分配磁盘标识信息。
7.一种分布式存储的磁盘分配装置,其特征在于,包括排序模块、序列构建模块及存储池构建模块,其中:
所述排序模块,用于根据所包含的未分配磁盘的数量的多少对集群中的各存储节点进行排序,得到第一排序结果;
所述序列构建模块,用于根据所述第一排序结果按顺序从每个存储节点中选取一个未分配磁盘,并记录选取未分配磁盘时包含未分配磁盘的存储节点的数量作为磁盘冗余度允许值,循环执行,直至将集群中所有未分配磁盘构成未分配磁盘序列;
所述存储池构建模块,用于根据预设冗余度查找所述未分配磁盘序列中磁盘冗余度允许值满足要求的磁盘,并按顺序选取磁盘构成存储池。
8.根据权利要求7所述的分布式存储的磁盘分配装置,其特征在于,所述序列构建模块包括未分配磁盘选择子模块、磁盘冗余度允许值计算子模块、节点磁盘数量调整子模块、下一节点处理子模块及循环控制子模块,其中:
所述未分配磁盘选择子模块,用于根据所述第一排序结果从第一个存储节点中选取一个未分配磁盘,加入所述未分配磁盘序列;
所述磁盘冗余度允许值计算子模块,用于计算当前包含未分配磁盘的存储节点的数量,并作为当前选取的未分配磁盘的所述磁盘冗余度允许值;
所述节点磁盘数量调整子模块,用于将所述第一个存储节点中包含未分配磁盘的数量减少1;
所述下一节点处理子模块,用于根据所述第一排序结果从下一个存储节点中选取一个未分配磁盘,加入所述未分配磁盘序列,计算当前所选取的未分配磁盘的磁盘冗余度允许值,并将所述下一个存储节点中包含未分配磁盘的数量减少1,循环执行,直至根据所述第一排序结果将最后一个存储节点中的一个未分配磁盘加入所述未分配磁盘序列;
所述下一节点处理子模块,用于再次根据所述第一排序结果依次选取存储节点中未分配磁盘加入所述未分配磁盘序列,直至所有存储节点中未分配磁盘的数量均为0。
9.根据权利要求7所述的分布式存储的磁盘分配装置,其特征在于,所述排序模块对所述存储节点的排序按照所包含的未分配磁盘数量从小到大进行,所述存储池构建模块包括高冗余度优先策略存储池构建子模块,所述高冗余度优先策略存储池构建子模块包括第一查找单元、第一判断单元、第一分组单元、第一存储池构建单元及第一容量判断单元,其中:
所述第一查找单元,用于正向查找所述未分配磁盘序列中磁盘冗余度允许值大于等于所述预设冗余度的可用未分配磁盘,若有,则转执行所述第一判断单元,若没有,则发出冗余度不满足要求的报警;
所述第一判断单元,用于判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度,若是,则转执行所述第一分组单元,若否,则发出存储容量不足的报警;
所述第一分组单元,用于将所述可用未分配磁盘以所述预设冗余度数量为基数按所述未分配磁盘序列的顺序进行分组,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘,;
所述第一存储池构建单元,用于将所述第一分组单元构建的磁盘分组加入存储池中;
所述第一容量判断单元,用于判断所述存储池是否达到预设容量,若是,则输出所述存储池的磁盘分组信息,若否,则返回继续执行所述第一判断单元。
10.根据权利要求7所述的分布式存储的磁盘分配装置,其特征在于,所述排序模块对所述存储节点的排序按照所包含的未分配磁盘数量从小到大进行,所述存储池构建模块包括低冗余度磁盘优先策略存储池构建子模块,所述低冗余度磁盘优先策略存储池构建子模块包括第二查找单元、第二判断单元、第二分组单元、第二存储池构建单元及第二容量判断单元,其中:
所述第二查找单元,用于反向查找所述未分配磁盘序列中磁盘冗余度允许值大于等于所述预设冗余度的可用未分配磁盘,若有,则继续执行所述第二判断单元,若没有,则发出冗余度不满足要求的报警;
所述第二判断单元,用于判断所述可用未分配磁盘的数量是否大于等于所述预设冗余度,若是,则继续执行所述第二分组单元,若否,则发出存储容量不足的报警;
所述第二分组单元,用于将所述可用未分配磁盘以所述预设冗余度数量为基数按所述未分配磁盘序列的反向顺序进行分组,得到磁盘分组,并在所述可用未分配磁盘中删除已加入所述磁盘分组的未分配磁盘;
所述第二存储池构建单元,用于将所述第二分组单元构建的磁盘分组加入存储池中;
所述第二容量判断单元,用于判断所述存储池是否达到预设容量,若是,则输出所述存储池的磁盘分组信息,若否,则返回执行所述第二判断单元。
11.根据权利要求7至10任一项所述的分布式存储的磁盘分配装置,其特征在于,还包括查询请求模块和信息接收模块,其中:
所述查询请求模块,用于集群文件系统管理端向存储节点发出查询未分配磁盘信息的请求;
所述信息接收模块,用于集群文件系统管理端根据各所述存储节点的返回信息确定每个所述存储节点包含的未分配磁盘的数量及未分配磁盘标识信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410809708.1A CN104484134B (zh) | 2014-12-23 | 2014-12-23 | 分布式存储的磁盘分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410809708.1A CN104484134B (zh) | 2014-12-23 | 2014-12-23 | 分布式存储的磁盘分配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104484134A true CN104484134A (zh) | 2015-04-01 |
CN104484134B CN104484134B (zh) | 2019-01-11 |
Family
ID=52758682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410809708.1A Active CN104484134B (zh) | 2014-12-23 | 2014-12-23 | 分布式存储的磁盘分配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104484134B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027642A (zh) * | 2016-05-19 | 2016-10-12 | 乐视控股(北京)有限公司 | 用于确定cdn节点磁盘数量的方法及系统 |
WO2016180049A1 (zh) * | 2015-05-14 | 2016-11-17 | 中兴通讯股份有限公司 | 一种存储管理方法及分布式文件系统 |
CN107197191A (zh) * | 2017-05-27 | 2017-09-22 | 深圳市景阳科技股份有限公司 | 网络硬盘录像的写入方法和装置 |
CN111190542A (zh) * | 2019-12-27 | 2020-05-22 | 天津中科曙光存储科技有限公司 | 一种文件系统文件布局的实现方法及系统 |
CN111552441A (zh) * | 2020-04-29 | 2020-08-18 | 重庆紫光华山智安科技有限公司 | 数据存储方法和装置、主节点及分布式系统 |
CN113760172A (zh) * | 2020-06-04 | 2021-12-07 | 杭州海康威视数字技术股份有限公司 | 一种分片分配方法、装置及电子设备 |
CN116437115A (zh) * | 2023-06-12 | 2023-07-14 | 江西云眼视界科技股份有限公司 | 一种分布式存储磁盘分组方法、系统、计算机及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101046760A (zh) * | 2006-03-29 | 2007-10-03 | 日本电气株式会社 | 存储装置、数据设置方法以及程序 |
CN103365781A (zh) * | 2012-03-29 | 2013-10-23 | 国际商业机器公司 | 用于动态地重新配置存储系统的方法和设备 |
US8583866B2 (en) * | 2010-02-22 | 2013-11-12 | International Business Machines Corporation | Full-stripe-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
US20140215153A1 (en) * | 2013-01-31 | 2014-07-31 | Nec Corporation | Storage system, disk array apparatus and control method for storage system |
CN103984607A (zh) * | 2013-02-08 | 2014-08-13 | 华为技术有限公司 | 分布式存储的方法、装置和系统 |
-
2014
- 2014-12-23 CN CN201410809708.1A patent/CN104484134B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101046760A (zh) * | 2006-03-29 | 2007-10-03 | 日本电气株式会社 | 存储装置、数据设置方法以及程序 |
US8583866B2 (en) * | 2010-02-22 | 2013-11-12 | International Business Machines Corporation | Full-stripe-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
CN103365781A (zh) * | 2012-03-29 | 2013-10-23 | 国际商业机器公司 | 用于动态地重新配置存储系统的方法和设备 |
US20140215153A1 (en) * | 2013-01-31 | 2014-07-31 | Nec Corporation | Storage system, disk array apparatus and control method for storage system |
CN103984607A (zh) * | 2013-02-08 | 2014-08-13 | 华为技术有限公司 | 分布式存储的方法、装置和系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016180049A1 (zh) * | 2015-05-14 | 2016-11-17 | 中兴通讯股份有限公司 | 一种存储管理方法及分布式文件系统 |
CN106027642A (zh) * | 2016-05-19 | 2016-10-12 | 乐视控股(北京)有限公司 | 用于确定cdn节点磁盘数量的方法及系统 |
CN107197191A (zh) * | 2017-05-27 | 2017-09-22 | 深圳市景阳科技股份有限公司 | 网络硬盘录像的写入方法和装置 |
CN107197191B (zh) * | 2017-05-27 | 2021-05-11 | 深圳市景阳科技股份有限公司 | 网络硬盘录像的写入方法和装置 |
CN111190542A (zh) * | 2019-12-27 | 2020-05-22 | 天津中科曙光存储科技有限公司 | 一种文件系统文件布局的实现方法及系统 |
CN111190542B (zh) * | 2019-12-27 | 2023-08-29 | 天津中科曙光存储科技有限公司 | 一种文件系统文件布局的实现方法及系统 |
CN111552441A (zh) * | 2020-04-29 | 2020-08-18 | 重庆紫光华山智安科技有限公司 | 数据存储方法和装置、主节点及分布式系统 |
CN111552441B (zh) * | 2020-04-29 | 2023-02-28 | 重庆紫光华山智安科技有限公司 | 数据存储方法和装置、主节点及分布式系统 |
CN113760172A (zh) * | 2020-06-04 | 2021-12-07 | 杭州海康威视数字技术股份有限公司 | 一种分片分配方法、装置及电子设备 |
CN116437115A (zh) * | 2023-06-12 | 2023-07-14 | 江西云眼视界科技股份有限公司 | 一种分布式存储磁盘分组方法、系统、计算机及存储介质 |
CN116437115B (zh) * | 2023-06-12 | 2023-08-18 | 江西云眼视界科技股份有限公司 | 一种分布式存储磁盘分组方法、系统、计算机及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104484134B (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104484134A (zh) | 分布式存储的磁盘分配方法及装置 | |
CN110096336B (zh) | 数据监控方法、装置、设备和介质 | |
CN108495195A (zh) | 一种网络直播排行榜生成方法、装置、设备及存储介质 | |
EP4002115A1 (en) | Resource allocation method and resource offloading method | |
CN103136110A (zh) | 内存管理方法、内存管理装置及numa系统 | |
CN103024329A (zh) | 一种监控录像的存储管理方法 | |
CN108287668A (zh) | 设备数据的处理方法及装置、计算机装置及可读存储介质 | |
CN107656807A (zh) | 一种虚拟资源的自动弹性伸缩方法及装置 | |
CN110245091A (zh) | 一种内存管理的方法、装置及计算机存储介质 | |
CN110290168A (zh) | 数据发送方法、装置、服务器及存储介质 | |
CN115801781B (zh) | 一种生物数据协同分析系统及方法 | |
US20220166842A1 (en) | Data distribution method and electronic device | |
CN102656936A (zh) | 一种lte基站中基带资源池的实现方法及装置 | |
CN105389266A (zh) | 一种数据管理方法及装置 | |
CN103299298B (zh) | 处理业务的方法和系统 | |
CN113553306A (zh) | 数据处理方法及数据存储管理系统 | |
CN105243078A (zh) | 一种文件资源的分发方法、系统和装置 | |
CN111131512B (zh) | 设备信息的处理方法、装置、存储介质及处理器 | |
CN106202084A (zh) | 数据存储方法和数据存储装置 | |
WO2023143595A1 (zh) | 处理器之间的通信方法、系统、存储介质以及处理器 | |
CN108664322A (zh) | 数据处理方法及系统 | |
CN107229519B (zh) | 任务调度方法和装置 | |
CN111082959B (zh) | 负载分担方法、装置及网络设备 | |
CN105278873B (zh) | 一种磁盘块的分配方法及装置 | |
CN109379748B (zh) | 信号收发单元的小区划分方法、装置及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |