CN113093996B - 存储分配方法、装置、计算机设备及可读存储介质 - Google Patents
存储分配方法、装置、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN113093996B CN113093996B CN202110392888.8A CN202110392888A CN113093996B CN 113093996 B CN113093996 B CN 113093996B CN 202110392888 A CN202110392888 A CN 202110392888A CN 113093996 B CN113093996 B CN 113093996B
- Authority
- CN
- China
- Prior art keywords
- disk
- storage
- node
- group
- size
- 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.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 272
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012216 screening Methods 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims description 16
- 230000001351 cycling effect Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
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
技术领域
本发明特别涉及一种存储分配方法、装置、计算机设备及可读存储介质,需要说明的是,本发明提供的存储分配方法、装置、计算机设备及可读存储介质可用于云计算技术领域,也可用于除云计算领域之外的任意领域,本发明对存储分配方法、装置、计算机设备及可读存储介质的应用领域不做限定。
背景技术
目前,公有云很少采取三副本的方案存储数据,由于成本较高。且目前采用的开源存储分配方案只有集群—故障域—机器—磁盘4个维度,使得机柜掉电的情况有可能造成三副本同时失效,影响存储的安全、可靠性。
发明内容
本发明实施例提供了一种存储分配方法,以解决现有技术中存储分配方案存在可靠性低的技术问题。该方法包括:
接收待分配副本组的标记;
循环执行以下步骤,确定出待分配副本组存储所需的磁盘组,其中,每个磁盘组包括三个磁盘,每个磁盘组中的第一个磁盘和第二个磁盘属于不同的园区,每个磁盘组中的三个磁盘属于不同的三个机柜,分配有副本组的园区、机柜、机器以及磁盘对应有已分配副本组的标记:
采用已有标记最少的条件依次遍历园区、机柜以及机器,筛选出未包括待分配副本组的标记的机器,在该机器中确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,在确定出的磁盘中选择剩余存储空间最大的磁盘。
本发明实施例还提供了一种存储分配装置,以解决现有技术中存储分配方案存在可靠性低的技术问题。该装置包括:
接收模块,用于接收待分配副本组的标记;
磁盘分配模块,用于循环执行以下步骤,确定出待分配副本组存储所需的磁盘组,其中,每个磁盘组包括三个磁盘,每个磁盘组中的第一个磁盘和第二个磁盘属于不同的园区,每个磁盘组中的三个磁盘属于不同的三个机柜,分配有副本组的园区、机柜、机器以及磁盘对应有已分配副本组的标记:
采用已有标记最少的条件依次遍历园区、机柜以及机器,筛选出未包括待分配副本组的标记的机器,在该机器中确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,在确定出的磁盘中选择剩余存储空间最大的磁盘。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的存储分配方法,以解决现有技术中存储分配方案存在可靠性低的技术问题。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的存储分配方法的计算机程序,以解决现有技术中存储分配方案存在可靠性低的技术问题。
在本发明实施例中,提出了为待分配副本组确定存储所需的磁盘组,进而利用磁盘组进行三副本存储,在确定磁盘的过程中,采用已有标记最少的条件依次遍历园区、机柜以及机器,筛选出未包括待分配副本组的标记的机器,即在标记最少的条件下筛选出未分配给待分配副本组的机器,进而在该机器中确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,即确保一个磁盘只分配给一个副本组进行三副本存储,最后在确定出的磁盘中选择剩余存储空间最大的磁盘,即确定出一个磁盘,进而循环执行上述步骤即可确定出磁盘组以分配给副本组进行三副本存储,与现有技术中三副本存储的技术方案相比,提出了园区、机柜以及机器的层级划分,增加了机柜级维度,使得确定出的每个磁盘组中的第一个磁盘和第二个磁盘属于不同的园区,每个磁盘组中的三个磁盘属于不同的三个机柜,这样即使出现机柜掉电的情况,也不会造成三副本同时失效,仅影响单副本而已,从而有利于提高存储的安全、可靠性;同时,在确定磁盘的过程中提出了预设最小存储块大小的概念,使得确定、分配的磁盘的剩余存储空间均大于预设最小存储块大小,有利于防止一个卷内brick(存储块) 大小差异过大,导致大文件容易写入失败或卷不均衡的种种问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明实施例提供的一种存储分配方法的流程图;
图2是本发明实施例提供的一种云存储架构示意图;
图3是本发明实施例提供的一种云存储架构的树状结构的示意图;
图4是本发明实施例提供的一种循环确定、分配磁盘的流程图;
图5是本发明实施例提供的一种计算机设备的结构框图;
图6是本发明实施例提供的一种存储分配装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在本发明实施例中,提供了一种存储分配方法,如图1所示,该方法包括:
步骤102:接收待分配副本组的标记;
步骤104:循环执行以下步骤,确定出待分配副本组存储所需的磁盘组,其中,每个磁盘组包括三个磁盘,每个磁盘组中的第一个磁盘和第二个磁盘属于不同的园区,每个磁盘组中的三个磁盘属于不同的三个机柜,分配有副本组的园区、机柜、机器以及磁盘对应有已分配副本组的标记:
采用已有标记最少的条件依次遍历园区、机柜以及机器,筛选出未包括待分配副本组的标记的机器,在该机器中确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,在确定出的磁盘中选择剩余存储空间最大的磁盘。
由图1所示的流程可知,在本发明实施例中,提出了为待分配副本组确定存储所需的磁盘组,进而利用磁盘组进行三副本存储,在确定磁盘的过程中,采用已有标记最少的条件依次遍历园区、机柜以及机器,筛选出未包括待分配副本组的标记的机器,即在标记最少的条件下筛选出未分配给待分配副本组的机器,进而在该机器中确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,即确保一个磁盘只分配给一个副本组进行三副本存储,最后在确定出的磁盘中选择剩余存储空间最大的磁盘,即确定出一个磁盘,进而循环执行上述步骤即可确定出磁盘组以分配给副本组进行三副本存储,与现有技术中三副本存储的技术方案相比,提出了园区、机柜以及机器的层级划分,增加了机柜级维度,使得确定出的每个磁盘组中的第一个磁盘和第二个磁盘属于不同的园区,每个磁盘组中的三个磁盘属于不同的三个机柜,这样即使出现机柜掉电的情况,也不会造成三副本同时失效,仅影响单副本而已,从而有利于提高存储的安全、可靠性;同时,在确定磁盘的过程中提出了预设最小存储块大小的概念,使得确定、分配的磁盘的剩余存储空间均大于预设最小存储块大小,有利于防止一个卷内brick(存储块)大小差异过大,导致大文件容易写入失败或卷不均衡的种种问题。
具体实施时,上述云存储架构以集群包括两个园区为例,园区、机柜、机器以及磁盘的架构如图2所示,在为待分配副本组确定、分配存储所需的磁盘组的过程中,提出了对已分配有副本组的磁盘添加已分配副本组的标记,以便示出该磁盘已分配有副本组,不能再分配给其他副本组,进而机器具有的标记为其包括的磁盘所添加的标记的总和,进而机柜具有的标记为其包括的机器具有标记的总和,进而园区具有的标记为其包括的机柜具有标记的总和,进而基于各个层级的标记实现磁盘组中的第一个磁盘和第二个磁盘属于不同的园区,每个磁盘组中的三个磁盘属于不同的三个机柜。
具体的,上述副本组的标记可以是任意形式的标识,只要可以区分不同的副本组即可,例如,可以是序号,可以是字符,等等。
具体实施时,为了实现可以更精准、快速地确定、分配磁盘,在本实施例中,提出了确定磁盘组的循环过程,例如,首先,按照园区、机柜、机器以及磁盘的所属顺序形成树状结构,园区、机柜、机器以及磁盘作为树状结构的节点,如图3所示,每个节点对应的标记数量(BrickNum)为该节点包括的子节点的标记数量之和,每个节点对应的剩余存储空间(FreeSize)为该节点包括的子节点的剩余存储空间之和;
基于树状结构循环执行以下步骤,筛选出未包括待分配副本组的标记的机器:
筛选出当前标记数量最少的园区节点,判断该园区节点是否包括待分配副本组的标记,若是,跳过该园区节点,重新执行该步骤,即将包括待分配副本组的标记的园区节点排出掉或跳过,继续该步骤,筛选出当前标记数量最少的园区节点;
若否,在该园区节点的子节点中确定出当前标记数量最少的机柜节点,在该机柜节点的子节点中确定出当前标记数量最少的机器节点;
在该机器节点中遍历每个磁盘,确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,若未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则跳过该该机器节点,返回在该机柜节点的子节点中确定出当前标记数量最少的机器节点的步骤,若在该机柜节点的子节点中未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则跳过该机柜节点,返回在该园区节点的子节点中确定出当前标记数量最少的机柜节点的步骤,若在该园区节点的子节点中均未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则跳过该园区节点,返回筛选出当前标记数量最少的园区节点的步骤。
例如,执行上述循环步骤的过程如图4所示,包括以下内容:
步骤1:筛选出当前标记数量最少的园区节点,判断该园区节点是否包括待分配副本组的标记,若是,跳过该园区节点,继续执行步骤1,若否,执行步骤2;
步骤2:进入该园区节点,在该园区节点的子节点中确定出当前标记数量最少的机柜节点;
步骤3:在该机柜节点的子节点中确定出当前标记数量最少的机器节点;
步骤4:在该机器节点中遍历每个磁盘,判断是否有不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,若是,则退出循环,在不存在标记且剩余存储空间大于预设最小存储块大小的磁盘中选择剩余存储空间最大的磁盘作为第一磁盘,对该选择的磁盘添加待分配副本组的标记,即将该磁盘分配给待分配副本组,若否,则跳过该机器节点,执行步骤3,如果该机柜节点的子节点中均未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则执行步骤2,如果在该园区节点的子节点中均未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则执行步骤1。
具体实施时,在确定标记数量最少的园区、机柜、机器、磁盘的过程中,为了提高处理速度,可以先按照标记数量由小到大的顺序分别对园区、机柜、机器、磁盘进行排序,如果标记数量相同的,可以按照剩余存储空间由大到小排序,例如,分别有 3个标记和4个标记的园区,则园区顺序为3个标记的园区、4个标记的园区,按照该顺序先选择进入3个标记的园区进行搜索,该园区分别有2个标记和1个标记的机柜,则机柜顺序为1个标记的机柜、2个标记的机柜,此时选择进入2个标记的机柜搜索,该机柜分别有1个标记的机器和0个标记的机器,则机器顺序为0个标记的机器、1个标记的机器,此时选择进入0个标记的机器搜索,遍历该机器中的磁盘,确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘。
具体实施时,为了确保为副本组分配的磁盘组是足够的,在本实施例中,在确定出待分配副本组存储所需的磁盘组的过程中,每次搜索到一个磁盘组时,判断当前搜索到的磁盘组中最小的磁盘组剩余存储空间(一个磁盘组包括三个磁盘,磁盘组的剩余存储空间是所包括的三个磁盘的剩余存储空间之和)乘以磁盘组数量的积是否大于等于存储卷的大小,若是,退出循环步骤,为第一种退出情况,此时为副本组分配的磁盘组是足够的,不再搜索磁盘,继续进行磁盘分配的流程;若否,需要继续再搜索磁盘,即继续执行循环步骤来确定磁盘组,直至所有磁盘搜索完毕,退出循环步骤,为第二种退出情况,若搜索到的磁盘组的剩余存储空间之和大于存储卷的大小,则成功退出,继续进行磁盘分配的流程,若搜索到的磁盘组的剩余存储空间之和不满足存储卷的大小,则失败退出。
具体的,在执行循环步骤来确定磁盘组的过程中有两种退出情况,针对第一种退出情况,满足的条件如下,例如,对于副本组而言需要分配101G存储空间,即存储卷大小为101G,目前从集群中搜索到三个磁盘组(即9块磁盘),磁盘组的剩余存储空间分别为100G、50G、40G,在搜索到第一个磁盘组时认为已找到100G,搜索到第二个磁盘组时认为已找到50G*2=100G,搜索到第三个磁盘组时认为已找到 40G*3=120G,此时120G大于101G,则满足条件,退出搜索磁盘的循环步骤,继续进行磁盘分配的流程。
针对第二种退出情况,所有磁盘搜索完毕后,退出循环步骤,若搜索到的磁盘组的剩余存储空间之和大于存储卷的大小,则依然可以继续进行磁盘分配的流程。具体的,满足以下条件,例如,对于副本组而言需要分配101G存储空间,所有磁盘搜索完毕后搜索到三个磁盘组,磁盘组的剩余存储空间分别为100G、50G、1G,搜索到第一个磁盘组时认为已找到100G,搜索到第二个磁盘组时认为已找到50G*2=100G,搜索到第三个磁盘组时认为已找到1G*3=3G,此时,3G小于101G,无法满足条件,但是,三个磁盘组的剩余存储空间之和大于存储卷的大小,即100G+50G+1G>101G,依然可以继续进行磁盘分配的流程。
具体实施时,在确定出磁盘组之后,为了满足不同的个性化需求,在本实施例中,还提出了对磁盘组中各磁盘的存储空间大小进行均衡,以便做到副本组大小尽可能均匀。例如,针对第一种退出情况下确定出的待分配副本组存储所需的磁盘组,对存储卷的大小除以磁盘组的数量并对商取整,将取整的商作为各个磁盘组的初始存储空间大小;
依次遍历各个磁盘组,对每个磁盘组的初始存储空间大小增加第一预设步长,直至三个磁盘组的存储空间之和等于存储卷的大小,将各个磁盘组的当前存储空间作为三副本存储的最终存储空间大小,其中,所述第一预设步长是存储卷的大小的公倍数。
具体的,例如,VolumeSize=2000G(即存储卷的大小),磁盘组数量=3,第一预设步长minStep=100G,2000G除以3的商取整后为600G,则为副本组分配的各磁盘组的初始存储空间大小依次为600G,600G,600G,按照三个磁盘组真实的剩余存储空间由大到小的顺序依次对三个磁盘组的初始存储空间大小增加第一预设步长,直至增加第一预设步长后三个磁盘组的存储空间之和等于存储卷的大小为止,例如, 600G、600G、600G->700G、600G、600G->700G、700G、600G,并将三个磁盘组的当前存储空间作为三副本存储的最终存储空间大小,即将700G、700G、600G作为三个磁盘组的最终存储空间大小,进而在三个磁盘组的真实剩余存储空间中采用最终存储空间大小进行三副本存储。
具体实施时,在确定出磁盘组之后,为了尽可能利用磁盘的存储空间,在本实施例中,在第二种退出情况下,若搜索到的磁盘组的剩余存储空间之和大于存储卷的大小,在搜索到的磁盘组中,确定出剩余存储空间之和大于存储卷的大小且磁盘组数量最少的磁盘组,按照磁盘组的可用空间由大到小的顺序依次遍历各个磁盘组,对各磁盘组中各个磁盘按照第二预设步长分配空间,直至分配的所述第二预设步长累计为存储卷的大小,将各个磁盘组中各个磁盘的当前存储空间作为三副本存储的最终存储空间大小,其中,所述第二预设步长是存储卷的大小的公倍数。
具体的,例如,步骤1:确定使用哪几个磁盘组
示例:第二种退出情况时已搜索到以下4个磁盘组,磁盘组的剩余存储空间大小分别为100G,50G,10G,1G,存储卷大小需求是101G,那么100+50>101,就只需要用100G和50G两个磁盘组即可;
步骤2:确定磁盘组大小
均匀给两个磁盘组中的磁盘按第二预设步长1G分配容量(循环往复),若磁盘组可用空间不足则停止分配,直到分配的容量之和等于存储卷大小,两个磁盘组按第二预设步长分配容量的过程如以下示例所示:
示例:1G,1G->2G,2G->3G,3G->……->50G,50G->51G,50G,满足大小。
在本实施例中,提供了一种计算机设备,如图5所示,包括存储器502、处理器 504及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的存储分配方法。
具体的,该计算机设备可以是计算机终端、服务器或者类似的运算装置。
在本实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的存储分配方法的计算机程序。
具体的,计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
基于同一发明构思,本发明实施例中还提供了一种存储分配装置,如下面的实施例所述。由于存储分配装置解决问题的原理与存储分配方法相似,因此存储分配装置的实施可以参见存储分配方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是本发明实施例的存储分配装置的一种结构框图,如图6所示,该装置包括:
接收模块602,用于接收待分配副本组的标记;
磁盘分配模块604,用于循环执行以下步骤,确定出待分配副本组存储所需的磁盘组,其中,每个磁盘组包括三个磁盘,每个磁盘组中的第一个磁盘和第二个磁盘属于不同的园区,每个磁盘组中的三个磁盘属于不同的三个机柜,分配有副本组的园区、机柜、机器以及磁盘对应有已分配副本组的标记:
采用已有标记最少的条件依次遍历园区、机柜以及机器,筛选出未包括待分配副本组的标记的机器,在该机器中确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,在确定出的磁盘中选择剩余存储空间最大的磁盘。
在一个实施例中,所述磁盘分配模块,具体用于按照园区、机柜、机器以及磁盘的所属顺序形成树状结构,园区、机柜、机器以及磁盘作为树状结构的节点,其中,节点对应的标记数量为该节点包括的子节点的标记数量之和;
循环执行以下步骤,筛选出未包括待分配副本组的标记的机器:
筛选出当前标记数量最少的园区节点,判断该园区节点是否包括待分配副本组的标记,若是,跳过该园区节点,重新执行该步骤;
若否,在该园区节点的子节点中确定出当前标记数量最少的机柜节点,在该机柜节点的子节点中确定出当前标记数量最少的机器节点;
在该机器节点中遍历每个磁盘,确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,若未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则跳过该该机器节点,返回在该机柜节点的子节点中确定出当前标记数量最少的机器节点的步骤,若在该机柜节点的子节点中未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则跳过该机柜节点,返回在该园区节点的子节点中确定出当前标记数量最少的机柜节点的步骤,若在该园区节点的子节点中均未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则跳过该园区节点,返回筛选出当前标记数量最少的园区节点的步骤。
在一个实施例中,所述磁盘分配模块,还用于每次确定出一个磁盘组时,判断当前确定出的磁盘组中最小的磁盘组的剩余存储空间乘以磁盘组数量的积是否大于等于存储卷的大小,若是,退出循环步骤,称为第一种退出情况;若否,继续执行循环步骤确定磁盘组,直至所有磁盘搜索完毕,退出循环步骤,称为第二种退出情况。
在一个实施例中,还包括:
第一空间均衡模块,用于针对第一种退出情况下确定出的磁盘组,对存储卷的大小除以磁盘组的数量并对商取整,将取整的商作为各个磁盘组的初始存储空间大小;依次遍历各个磁盘组,对每个磁盘组的初始存储空间大小增加第一预设步长,直至各个磁盘组的存储空间之和等于存储卷的大小,将各个磁盘的当前存储空间作为三副本存储的最终存储空间大小,其中,所述第一预设步长是存储卷的大小的公倍数。
在一个实施例中,还包括:
第二空间均衡模块,用于在第二种退出情况下,若搜索到的磁盘组的剩余存储空间之和大于存储卷的大小,确定出剩余存储空间之和大于存储卷的大小且磁盘组数量最少的磁盘组,按照磁盘组的可用空间由大到小的顺序依次遍历各个磁盘组,对各磁盘组中各个磁盘按照第二预设步长分配空间,直至分配的所述第二预设步长累计为存储卷的大小,将各个磁盘组中各个磁盘的当前存储空间作为三副本存储的最终存储空间大小,其中,所述第二预设步长是存储卷的大小的公倍数。
本发明实施例实现了如下技术效果:提出了为待分配副本组确定存储所需的磁盘组,进而利用磁盘组进行三副本存储,在确定磁盘的过程中,采用已有标记最少的条件依次遍历园区、机柜以及机器,筛选出未包括待分配副本组的标记的机器,即在标记最少的条件下筛选出未分配给待分配副本组的机器,进而在该机器中确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,即确保一个磁盘只分配给一个副本组进行三副本存储,最后在确定出的磁盘中选择剩余存储空间最大的磁盘,即确定出一个磁盘,进而循环执行上述步骤即可确定出磁盘组以分配给副本组进行三副本存储,与现有技术中三副本存储的技术方案相比,提出了园区、机柜以及机器的层级划分,增加了机柜级维度,使得确定出的每个磁盘组中的第一个磁盘和第二个磁盘属于不同的园区,每个磁盘组中的三个磁盘属于不同的三个机柜,这样即使出现机柜掉电的情况,也不会造成三副本同时失效,仅影响单副本而已,从而有利于提高存储的安全、可靠性;同时,在确定磁盘的过程中提出了预设最小存储块大小的概念,使得确定、分配的磁盘的剩余存储空间均大于预设最小存储块大小,有利于防止一个卷内 brick(存储块)大小差异过大,导致大文件容易写入失败或卷不均衡的种种问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等) 上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种存储分配方法,其特征在于,包括:
接收待分配副本组的标记;
循环执行以下步骤,确定出待分配副本组存储所需的磁盘组,其中,每个磁盘组包括三个磁盘,每个磁盘组中的第一个磁盘和第二个磁盘属于不同的园区,每个磁盘组中的三个磁盘属于不同的三个机柜,分配有副本组的园区、机柜、机器以及磁盘对应有已分配副本组的标记:
采用已有标记最少的条件依次遍历园区、机柜以及机器,筛选出未包括待分配副本组的标记的机器,在该机器中确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,在确定出的磁盘中选择剩余存储空间最大的磁盘。
2.如权利要求1所述的存储分配方法,其特征在于,采用已有标记最少的条件依次遍历园区、机柜以及机器,筛选出未包括待分配副本组的标记的机器,在该机器中确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,包括:
按照园区、机柜、机器以及磁盘的所属顺序形成树状结构,园区、机柜、机器以及磁盘作为树状结构的节点,其中,节点对应的标记数量为该节点包括的子节点的标记数量之和;
循环执行以下步骤,筛选出未包括待分配副本组的标记的机器:
筛选出当前标记数量最少的园区节点,判断该园区节点是否包括待分配副本组的标记,若是,跳过该园区节点,重新执行该步骤;
若否,在该园区节点的子节点中确定出当前标记数量最少的机柜节点,在该机柜节点的子节点中确定出当前标记数量最少的机器节点;
在该机器节点中遍历每个磁盘,确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,若未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则跳过该该机器节点,返回在该机柜节点的子节点中确定出当前标记数量最少的机器节点的步骤,若在该机柜节点的子节点中未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则跳过该机柜节点,返回在该园区节点的子节点中确定出当前标记数量最少的机柜节点的步骤,若在该园区节点的子节点中均未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则跳过该园区节点,返回筛选出当前标记数量最少的园区节点的步骤。
3.如权利要求1或2所述的存储分配方法,其特征在于,循环执行以下步骤,确定出待分配副本组存储所需的磁盘组,包括:
每次确定出一个磁盘组时,判断当前确定出的磁盘组中最小的磁盘组的剩余存储空间乘以磁盘组数量的积是否大于等于存储卷的大小,若是,退出循环步骤,称为第一种退出情况;若否,继续执行循环步骤确定磁盘组,直至所有磁盘搜索完毕,退出循环步骤,称为第二种退出情况。
4.如权利要求3所述的存储分配方法,其特征在于,还包括:
针对第一种退出情况下确定出的磁盘组,对存储卷的大小除以磁盘组的数量并对商取整,将取整的商作为各个磁盘组的初始存储空间大小;
依次遍历各个磁盘组,对每个磁盘组的初始存储空间大小增加第一预设步长,直至各个磁盘组的存储空间之和等于存储卷的大小,将各个磁盘的当前存储空间作为三副本存储的最终存储空间大小,其中,所述第一预设步长是存储卷的大小的公倍数。
5.如权利要求3所述的存储分配方法,其特征在于,还包括:
在第二种退出情况下,若搜索到的磁盘组的剩余存储空间之和大于存储卷的大小,确定出剩余存储空间之和大于存储卷的大小且磁盘组数量最少的磁盘组,按照磁盘组的可用空间由大到小的顺序依次遍历各个磁盘组,对各磁盘组中各个磁盘按照第二预设步长分配空间,直至分配的所述第二预设步长累计为存储卷的大小,将各个磁盘组中各个磁盘的当前存储空间作为三副本存储的最终存储空间大小,其中,所述第二预设步长是存储卷的大小的公倍数。
6.一种存储分配装置,其特征在于,包括:
接收模块,用于接收待分配副本组的标记;
磁盘分配模块,用于循环执行以下步骤,确定出待分配副本组存储所需的磁盘组,其中,每个磁盘组包括三个磁盘,每个磁盘组中的第一个磁盘和第二个磁盘属于不同的园区,每个磁盘组中的三个磁盘属于不同的三个机柜,分配有副本组的园区、机柜、机器以及磁盘对应有已分配副本组的标记:
采用已有标记最少的条件依次遍历园区、机柜以及机器,筛选出未包括待分配副本组的标记的机器,在该机器中确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,在确定出的磁盘中选择剩余存储空间最大的磁盘。
7.如权利要求6所述的存储分配装置,其特征在于,所述磁盘分配模块,具体用于按照园区、机柜、机器以及磁盘的所属顺序形成树状结构,园区、机柜、机器以及磁盘作为树状结构的节点,其中,节点对应的标记数量为该节点包括的子节点的标记数量之和;
循环执行以下步骤,筛选出未包括待分配副本组的标记的机器:
筛选出当前标记数量最少的园区节点,判断该园区节点是否包括待分配副本组的标记,若是,跳过该园区节点,重新执行该步骤;
若否,在该园区节点的子节点中确定出当前标记数量最少的机柜节点,在该机柜节点的子节点中确定出当前标记数量最少的机器节点;
在该机器节点中遍历每个磁盘,确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,若未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则跳过该该机器节点,返回在该机柜节点的子节点中确定出当前标记数量最少的机器节点的步骤,若在该机柜节点的子节点中未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则跳过该机柜节点,返回在该园区节点的子节点中确定出当前标记数量最少的机柜节点的步骤,若在该园区节点的子节点中均未确定出不存在标记且剩余存储空间大于预设最小存储块大小的磁盘,则跳过该园区节点,返回筛选出当前标记数量最少的园区节点的步骤。
8.如权利要求6或7所述的存储分配装置,其特征在于,所述磁盘分配模块,还用于每次确定出一个磁盘组时,判断当前确定出的磁盘组中最小的磁盘组的剩余存储空间乘以磁盘组数量的积是否大于等于存储卷的大小,若是,退出循环步骤,称为第一种退出情况;若否,继续执行循环步骤确定磁盘组,直至所有磁盘搜索完毕,退出循环步骤,称为第二种退出情况。
9.如权利要求8所述的存储分配装置,其特征在于,还包括:
第一空间均衡模块,用于针对第一种退出情况下确定出的磁盘组,对存储卷的大小除以磁盘组的数量并对商取整,将取整的商作为各个磁盘组的初始存储空间大小;依次遍历各个磁盘组,对每个磁盘组的初始存储空间大小增加第一预设步长,直至各个磁盘组的存储空间之和等于存储卷的大小,将各个磁盘的当前存储空间作为三副本存储的最终存储空间大小,其中,所述第一预设步长是存储卷的大小的公倍数。
10.如权利要求8所述的存储分配装置,其特征在于,还包括:
第二空间均衡模块,用于在第二种退出情况下,若搜索到的磁盘组的剩余存储空间之和大于存储卷的大小,确定出剩余存储空间之和大于存储卷的大小且磁盘组数量最少的磁盘组,按照磁盘组的可用空间由大到小的顺序依次遍历各个磁盘组,对各磁盘组中各个磁盘按照第二预设步长分配空间,直至分配的所述第二预设步长累计为存储卷的大小,将各个磁盘组中各个磁盘的当前存储空间作为三副本存储的最终存储空间大小,其中,所述第二预设步长是存储卷的大小的公倍数。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的存储分配方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至5中任一项所述的存储分配方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110392888.8A CN113093996B (zh) | 2021-04-13 | 2021-04-13 | 存储分配方法、装置、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110392888.8A CN113093996B (zh) | 2021-04-13 | 2021-04-13 | 存储分配方法、装置、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113093996A CN113093996A (zh) | 2021-07-09 |
CN113093996B true CN113093996B (zh) | 2024-05-31 |
Family
ID=76676538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110392888.8A Active CN113093996B (zh) | 2021-04-13 | 2021-04-13 | 存储分配方法、装置、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113093996B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321225A (zh) * | 2019-07-08 | 2019-10-11 | 腾讯科技(深圳)有限公司 | 负载均衡方法、元数据服务器及计算机可读存储介质 |
CN110781164A (zh) * | 2019-09-29 | 2020-02-11 | 苏州浪潮智能科技有限公司 | 一种数据库一体机的设计方法、设备及介质 |
CN111176880A (zh) * | 2018-11-09 | 2020-05-19 | 杭州海康威视***技术有限公司 | 磁盘分配方法、装置和可读存储介质 |
-
2021
- 2021-04-13 CN CN202110392888.8A patent/CN113093996B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176880A (zh) * | 2018-11-09 | 2020-05-19 | 杭州海康威视***技术有限公司 | 磁盘分配方法、装置和可读存储介质 |
CN110321225A (zh) * | 2019-07-08 | 2019-10-11 | 腾讯科技(深圳)有限公司 | 负载均衡方法、元数据服务器及计算机可读存储介质 |
CN110781164A (zh) * | 2019-09-29 | 2020-02-11 | 苏州浪潮智能科技有限公司 | 一种数据库一体机的设计方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113093996A (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107943421B (zh) | 一种基于分布式存储***的分区划分方法及装置 | |
CN106407207B (zh) | 一种实时新增数据更新方法和装置 | |
US20120209943A1 (en) | Apparatus and method for controlling distributed memory cluster | |
CN109117275B (zh) | 基于数据分片的对账方法、装置、计算机设备及存储介质 | |
CN105100146A (zh) | 数据存储方法、装置及*** | |
US11074179B2 (en) | Managing objects stored in memory | |
CN103929454A (zh) | 一种云计算平台中负载均衡存储的方法和*** | |
CN107105013B (zh) | 文件的处理方法、服务器、终端和*** | |
CN103973810A (zh) | 基于互联网协议ip盘的数据处理方法和装置 | |
CN111309245B (zh) | 一种分层存储写入方法和装置、读取方法和装置及*** | |
Park | A generalization of multiple choice balls-into-bins | |
CN106293492A (zh) | 一种存储管理方法及分布式文件*** | |
CN113093996B (zh) | 存储分配方法、装置、计算机设备及可读存储介质 | |
CN103888424A (zh) | 集群式数据加密***及其数据处理方法 | |
CN116756253B (zh) | 关系型数据库的数据存储、查询方法、装置、设备和介质 | |
CN107153653B (zh) | 一种分库分表的轮询访问方法及装置 | |
CN115422194A (zh) | 一种用于数据库索引构建的方法与设备 | |
CN110866380A (zh) | 一种填写信息字段内容的方法、终端 | |
CN113296923B (zh) | 内存合并方法、设备以及计算机可读介质 | |
CN111600943B (zh) | 一种用于获取目标数据的方法与设备 | |
CN109151016B (zh) | 流量转发方法和装置、服务***、计算设备及存储介质 | |
CN108664323B (zh) | 一种基于多处理器的数据传输方法和装置 | |
CN113051143A (zh) | 服务负载均衡服务器的探测方法、装置、设备和存储介质 | |
CN111880735A (zh) | 一种存储***中数据迁移方法、装置、设备及存储介质 | |
CN111125011A (zh) | 一种文件处理方法、***及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |