CN109189326A - 分布式集群的管理方法和装置 - Google Patents
分布式集群的管理方法和装置 Download PDFInfo
- Publication number
- CN109189326A CN109189326A CN201810828087.XA CN201810828087A CN109189326A CN 109189326 A CN109189326 A CN 109189326A CN 201810828087 A CN201810828087 A CN 201810828087A CN 109189326 A CN109189326 A CN 109189326A
- Authority
- CN
- China
- Prior art keywords
- node
- hard disk
- pond
- cluster
- nodes
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请提供一种分布式集群的管理方法和装置,该集群包括多个节点,每个节点包括多个硬盘,该集群中包括第一DP和第二DP。其中,第一DP中的硬盘来自于集群中的第一节点,第一DP对应的PT和第一DP中的复数个硬盘对应,目标数据按照EC分片的形式分布于第一DP对应的第一PT;第二DP中的硬盘来自于集群中的复数个节点,第二DP对应的PT和第二DP中的复数个硬盘对应,且第二DP对应的PT中的硬盘来自于复数个节点。集群中的第一节点根据目标数据的标识,从第一DP对应的第一PT中读取目标数据,并从第二DP对应的PT中选择第二PT,使用第二PT存储目标数据。从而完成将第一DP中的数据迁移至第二DP,并且数据迁移过程中不会影响新数据的写入,提高了分布式集群的在线扩展能力和可靠性。
Description
技术领域
本申请涉及存储技术,尤其涉及一种分布式集群的管理方法和装置。
背景技术
分布式集群(也称为分布式存储系统)将数据分散存储在多台独立的存储服务器上,利用多台存储服务器分担存储负荷,不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
分布式集群通常包括一个或多个节点池,一个节点池中包括多个节点,每个节点即一个存储服务器,每个节点中包括多个硬盘。通过将节点池中的所有节点的硬盘按照硬盘类型划分为多个硬盘池(Disk Pool,DP),在DP内按照纠删码(Erasure Code,EC)的冗余保护将DP划分成多个逻辑分组,逻辑分组也称为分区(Partition,PT)。每个PT覆盖一定个数的硬盘,每个硬盘会在多个PT中出现,每个PT覆盖的硬盘个数与配置的EC冗余配比相关,例如,18+2的冗余配比每个PT覆盖20个硬盘。采用EC进行数据保护时,需要将原始数据分割成多个EC分片数据,EC分片数据以PT为粒度写入PT覆盖的一组硬盘内。现有技术中DP和PT覆盖的硬盘位于多个节点上,因此,DP和PT也称为节点间DP和PT,相应的,数据的存储方式也称为节点间EC。
现有的分布式集群使用高冗余配比的EC时,分布式集群包括的节点个数必须满足EC冗余配比要求的最少节点个数,例如,18+2冗余配比的情况下,最多允许故障2个硬盘或者故障2个节点,为满足该冗余配比可靠性保护的要求,至少需要20个服务器节点,系统所要求的节点个数越多意味着成本越高。
发明内容
本申请提供一种分布式集群的管理方法和装置,提高了分布式集群的在线扩展能力和可靠性。
本申请第一方面提供一种分布式集群的管理方法,所述分布式集群包括多个节点,每个节点包括多个硬盘,所述集群中包括第一硬盘池,所述第一硬盘池中的硬盘来自于所述集群中的第一节点,所述第一硬盘池对应的分区和所述第一硬盘池中的复数个所述硬盘对应,目标数据按照纠删码EC分片的形式分布于所述第一硬盘池对应的第一分区;
所述集群中包括第二硬盘池,所述第二硬盘池中的硬盘来自于所述集群中的复数个节点,所述第二硬盘池对应的分区和所述第二硬盘池中的复数个所述硬盘对应,且所述第二硬盘池对应的分区中的硬盘来自于复数个节点;
所述方法包括:
所述第一节点根据所述目标数据的标识,从所述第一硬盘池对应的所述第一分区中读取所述目标数据;
所述第一节点从所述第二硬盘池对应的分区中选择第二分区,使用所述第二分区存储所述目标数据,所述第二分区的EC冗余配比等于所述第一分区的EC冗余配比。
通过为集群创建第一硬盘池和第二硬盘池,第一硬盘池为节点内硬盘池,第二硬盘池节点间硬盘池,将第一硬盘池中的数据迁移至第二硬盘池,数据迁移过程中不会影响新数据的写入,提高了分布式集群的在线扩展能力和可靠性。
可选的,所述第一节点根据目标数据的标识,从所述第一硬盘池对应的所述第一分区中读取所述目标数据之前,还包括:
所述第一节点获取所述目标数据所属的节点标识和硬盘池的信息;
当所述目标数据所属的节点的标识和所述第一节点的节点标识相同时,所述第一节点根据所述目标数据所属的硬盘池的信息确定所述目标数据存储在所述第一硬盘池中。
通过由每个节点独立将节点内硬盘池中的数据迁移到节点间硬盘池中,各个节点可以并行执行,提高了数据迁移的效率,并且可以使得各节点的负载均衡。
可选的,在所述方法之前,还包括:
当所述集群包括的节点个数小于EC冗余配比要求的最少节点个数时,所述集群中的创建节点从所述第一节点内选择一组硬盘,为所述第一节点创建第一硬盘池;
所述创建节点为所述第一节点的第一硬盘池创建一个或多个分区。
所述方法在集群包括的节点个数小于EC冗余配比要求的最少节点个数时,通过创建节点内硬盘池,可以完成数据的存储,使得数据的存储不在受限于EC冗余配比要求的最少节点个数,即使集群中只有一个节点,也可以进行数据存储。
可选的,还包括:
当检测到所述集群增加新的节点,当所述集群增加新的节点后的节点个数大于或等于EC冗余配比要求的最少节点个数,则所述创建节点从所述集群包括的复数个节点内选择一组硬盘,创建所述第二硬盘池;
所述创建节点为所述第二硬盘池创建一个或多个分区。
所述方法在集群中节点个数增加时,可以由节点内硬盘池向节点间硬盘池扩展,增强了分布式集群的可扩展性。
可选的,还包括:
当检测到所述集群增加新的节点,如果所述集群创建了第二硬盘池,且所述集群增加新的节点后的节点个数大于或等于EC冗余配比要求的最少节点个数时,则所述创建节点根据增加的新的节点更新第二硬盘池和第二硬盘池对应的分区。
本申请第二方面提供一种节点,所述节点属于分布式集群,所述分布式集群包括多个节点,每个节点包括多个硬盘和处理器,所述集群中包括第一硬盘池,所述第一硬盘池中的硬盘来自于所述集群中的第一节点,所述第一硬盘池对应的分区和所述第一硬盘池中的复数个所述硬盘对应,目标数据按照纠删码EC分片的形式分布于所述第一硬盘池对应的第一分区;
所述集群中包括第二硬盘池,所述第二硬盘池中的硬盘来自于所述集群中的复数个节点,所述第二硬盘池对应的分区和所述第二硬盘池中的复数个所述硬盘对应,且所述第二硬盘池对应的分区中的硬盘来自于复数个节点;
所述处理器用于:
根据所述目标数据的标识,从所述第一硬盘池对应的所述第一分区中读取所述目标数据;
从所述第二硬盘池对应的分区中选择第二分区,使用所述第二分区存储所述目标数据,所述第二分区的EC冗余配比等于所述第一分区的EC冗余配比。
可选的,所述处理器还用于:
获取所述目标数据所属的节点标识和硬盘池的信息;
当所述目标数据所在的节点的标识和所述第一节点的节点标识相同时,根据所述目标数据所属的硬盘池的信息确定所述目标数据存储在所述第一硬盘池中。
可选的,所述处理器还用于:
当所述集群包括的节点个数小于EC冗余配比要求的最少节点个数时,从所述第一节点内选择一组硬盘,为所述第一节点创建第一硬盘池;
为所述第一节点的第一硬盘池创建一个或多个分区。
可选的,所述处理器还用于:
当检测到所述集群增加新的节点,当所述集群增加新的节点后的节点个数大于或等于EC冗余配比要求的最少节点个数,则从所述集群包括的复数个节点内选择一组硬盘,创建所述第二硬盘池;
为所述第二硬盘池创建一个或多个分区。
可选的,所述处理器还用于:
当检测到所述集群增加新的节点,如果所述集群创建了第二硬盘池,且所述集群增加新的节点后的节点个数大于或等于EC冗余配比要求的最少节点个数时,则根据增加的新的节点更新第二硬盘池和第二硬盘池对应的分区。
本申请第二方面提供的节点用于执行本申请第一方面提供的方法,因此,本申请第二方面提供的节点带来的有益效果,参照本申请第一方面对应方法的描述,这里不再赘述。
本申请第三方面提供一种分布式集群,所述集群包括多个节点,每个节点包括多个硬盘;
所述集群中包括第一硬盘池,所述第一硬盘池中的硬盘来自于所述集群中的第一节点,所述第一硬盘池对应的分区和所述第一硬盘池中的复数个所述硬盘对应,目标数据按照纠删码EC分片的形式分布于所述第一硬盘池对应的第一分区;
所述集群中包括第二硬盘池,所述第二硬盘池中的硬盘来自于所述集群中的复数个节点,所述第二硬盘池对应的分区和所述第二硬盘池中的复数个所述硬盘对应,且所述第二硬盘池对应的分区中的硬盘来自于复数个节点。
不同于现有技术,该分布式集群中包括两类硬盘池:节点内第一硬盘池(第一硬盘池)和节点间硬盘池(第二硬盘池),相应的,能够为数据提供两种布局,使得分布式集群更加灵活,可扩展更好。
本申请第四方面提供一种分布式集群的管理方法,所述分布式集群包括多个节点,每个节点包括多个硬盘,所述方法包括:
当所述集群中节点个数小于时,创建节点从所述集群中的每个节点内选择一组硬盘,分别为所述每个节点创建节点内硬盘池,所述节点内硬盘池中的硬盘来自于一个节点;
所述创建节点为所述每个节点的节点内硬盘池创建一个或多个节点内分区,所述每个节点的节点内分区和所述节点的节点内硬盘池中的复数个硬盘对应;
当所述集群中节点个数大于或等于时,所述创建节点根据纠删码EC冗余配比要求的最少节点个数从所述集群中的复数个节点内选择一组硬盘,创建节点间硬盘池,所述节点间硬盘池中的硬盘来自于所述复数个节点;
所述创建节点为所述节点间硬盘池创建一个或多个节点间分区,所述节点间分区和所述节点间硬盘池中的复数个硬盘对应,且所述节点间分区中的硬盘来自于复数个节点;
其中,为所述EC冗余配比要求的最少节点个数,m为所述EC冗余配比中数据分片的个数,n为所述EC冗余配比中的冗余分片的个数,每个数据分片存储在一个硬盘中,每个冗余分片存储在一个硬盘中。
所述方法在集群包括的节点个数小于EC冗余配比要求的最少节点个数时,通过创建节点内硬盘池,使得即使集群中只有一个节点,也可以进行数据存储。在集群中节点个数增加时,可以由节点内硬盘池向节点间硬盘池扩展,增强了分布式集群的可扩展性。
本申请第五方面提供一种节点,所述节点属于分布式集群,所述集群包括多个节点,每个节点包括多个硬盘和处理器,所述节点的处理器用于:
当所述集群中节点个数小于时,从所述集群中的每个节点内选择一组硬盘,分别为所述每个节点创建节点内硬盘池,所述节点内硬盘池中的硬盘来自于一个节点;
为所述每个节点的节点内硬盘池创建一个或多个节点内分区,所述每个节点的节点内分区和所述节点的节点内硬盘池中的复数个硬盘对应;
当所述集群中节点个数大于或等于时,根据纠删码EC冗余配比要求的最少节点个数从所述集群中的复数个节点内选择一组硬盘,创建节点间硬盘池,所述节点间硬盘池中的硬盘来自于所述复数个节点;
为所述节点间硬盘池创建一个或多个节点间分区,所述节点间分区和所述节点间硬盘池中的复数个硬盘对应,且所述节点间分区中的硬盘来自于复数个节点;
其中,为所述EC冗余配比要求的最少节点个数,m为所述EC冗余配比中数据分片的个数,n为所述EC冗余配比中的冗余分片的个数,每个数据分片存储在一个硬盘中,每个冗余分片存储在一个硬盘中。
本申请提供一种分布式集群的管理方法和装置,该集群包括多个节点,每个节点包括多个硬盘,该集群中包括第一DP和第二DP。其中,第一DP中的硬盘来自于集群中的第一节点,第一DP对应的PT和第一DP中的复数个硬盘对应,目标数据按照EC分片的形式分布于第一DP对应的第一PT;第二DP中的硬盘来自于集群中的复数个节点,第二DP对应的PT和第二DP中的复数个硬盘对应,且第二DP对应的PT中的硬盘来自于复数个节点。集群中的第一节点根据目标数据的标识,从第一DP对应的第一PT中读取目标数据,并从第二DP对应的PT中选择第二PT,使用第二PT存储目标数据。从而完成将第一DP中的数据迁移至第二DP,并且数据迁移过程中不会影响新数据的写入,提高了分布式集群的在线扩展能力和可靠性。
附图说明
图1为分布式集群的一种示意图;
图2为现有的分布式集群中DP的一种示意图;
图3为本申请提供的分布式集群中节点内DP和节点间DP的一种示意图;
图4为本申请提供的分布式集群中节点内DP和节点内PT的一种示意图;
图5为本申请提供的分布式集群中节点间DP和节点间PT的一种示意图;
图6为本申请实施例一提供的分布式集群中DP的创建流程图;
图7为本申请实施例二提供的分布式集群的数据迁移方法的流程图;
图8为本申请实施例三提供的数据写入方法的信令流程图;
图9为本申请实施例四提供的节点的示意图。
具体实施方式
本申请提供一种分布式集群的管理方法,该方法应用在存储领域的分布式集群中。图1为分布式集群的一种示意图,如图1所示,该分布式集群中包括N个节点,每个节点为一个存储服务器、或者通用服务器,或者存储控制器与硬盘的组合。每个节点包括:中央处理器(Central Processing Unit,CPU)、内存、串行连接小型计算机系统接口(SerialAttached SCSI,SAS)卡、多个硬盘和网卡,节点通过网卡与交换机(swich)连接,交换机将节点接入网络。需要明确的是,本申请各个实施例中所谓的硬盘是一种概括的概念,用于描述提供非易失性存储功能的存储器。硬盘例如是磁盘、固态硬盘(SSD),甚至还可以是可擦写光盘、存储等级内存(Storage Class Memory,SCM)、石英玻璃数据存储技术等各种存储介质,只要能提供非易失性的存储功能即可。
现有分布式集群中各节点上的硬盘被看做一个整体,集群中的硬盘划分为多个硬盘池(disk pool,DP),在DP内按照EC的冗余配比划分成多个逻辑分组,该逻辑分组称之为PT,每个PT中包括一定数量的硬盘,每个硬盘会在多个PT中出现,每个PT中包括的硬盘个数与配置的EC冗余配比相关。EC是一种数据保护方法,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,比如磁盘、存储节点或者其它地理位置。一个DP是一个故障域,一个DP中任意硬盘故障,不会导致其他DP的数据发生损失。同一个数据不会存储于多个DP中。
EC冗余配比是指原始数据的数据分片与冗余分片的数量,冗余配比可以表示为m+n,其中,m表示原始数据的数据分片的个数,n表示原始数据的冗余分片的个数,原始数据的每个数据分片存储在一个硬盘上,每个冗余分片存储在一个硬盘上。正常情况下,同一个原始数据的数据分片和冗余分片不会存储在同一个硬盘,以免在硬盘损坏时,造成多个分片的丢失。由n的数值可以决定该冗余配比情况下最多允许故障的硬盘数量,在故障硬盘的数量不超过m的情况下,根据余下的分片可以恢复硬盘故障所损坏的分片,如果故障硬盘的个数大于n,则无法恢复原始数据。例如,当冗余配比为18+2时,需要将原始数据划分为18个数据分片,18个数据分片数据分别存储在18个不同的硬盘上,该原始数据的冗余分片存储在另外两个不同的硬盘上,因此,PT至少对应20个硬盘。同理,当冗余配比为8+2时,PT至少对应10个硬盘。
图2为现有的分布式集群中DP的一种示意图,如图2所示,该分布式集群中包括3个节点,每个节点都包括机械硬盘(Hard Disk Drive,HDD)和固态硬盘(Solid StateDrives,SSD)。3个节点上的硬盘按照硬盘类型被划分为两个DP:HDD DP和SSD DP,SSD DP和HDD DP中的硬盘均来自于3个节点。
现有的分布式集群使用高冗余配比的EC时,分布式集群包括的节点个数必须满足EC冗余配比要求的最少节点个数,例如,18+2冗余配比的情况下,最多允许故障两个硬盘,为满足该冗余配比可靠性保护的要求,每个节点上最多选择两个硬盘构成PT,这样即使发生了节点级别的故障(某个节点故障时),最多引起两个硬盘的不可使用,数据仍可以被恢复。如果每个节点上选择两个硬盘构成PT,则分布式集群至少需要10个节点,如果每个节点上选择一个硬盘构成PT,则分布式集群需要20个节点,可知,在18+2的冗余配比的情况下,满足该冗余配比要求的最少节点个数为10,最多节点个数为20。分布式集群的节点个数越多意味着成本越高,如果分布式集群包括的节点个数不满足EC冗余配比要求的最少节点个数,则无法创建DP和PT。
然而,发明人发现:随着技术发展,节点可靠性的不断提高,尤其是可靠电源、专用机房、云存储等技术的不断发展,节点故障比以前出现的几率大大减少,在一定程度上,已经减少到能够被接受的程度。而且,在一些场景下,例如创建集群的初期,需要存储的数据量较少,节约成本往往比可靠性更加重要。
本申请提供的分布式集群包括两类DP:节点内DP和节点间DP。其中,节点内DP中的硬盘来自于分布式集群中的单个节点,节点内DP对应一个或多个PT,节点内DP对应的PT和该节点内DP中的复数个硬盘对应,复数个可以理解为多个或者至少两个,节点内DP对应的PT可以称为节点内PT。节点内PT中的硬盘个数与EC冗余配比有关,当节点内DP对应多个PT时,该多个PT的EC冗余配比不同。
DP和PT存在对应关系。PT是逻辑上的概念,把数据写入PT实际上是把数据写入了PT所对应的硬盘中,而这些硬盘属于PT所对应的DP。有时候,也会把DP和PT之间的对应关系描述为:PT属于DP。
目标数据按照EC分片的形式分布于第一节点的第一DP对应的第一PT,第一节点并不是特指某个节点,第一节点可以为集群中的任意一个节点。第一节点可以包括一个或多个节点内DP,第一DP为第一节点包括的一个或多个节点内DP中的任意一个节点内DP。第一DP可以对应一个或多个节点内PT,第一DP对应的PT和第一DP中的复数个硬盘对应,第一PT为第一DP对应的一个或多个节点内PT中的任意一个节点内PT。
节点间DP的硬盘来自于分布式集群中的复数个节点,节点间DP对应的复数个节点可以是分布式集群中的全部节点,也可以是分布式集群中的部分节点,本实施例不对此限制,其中,节点间DP对应的复数个节点是指节点间DP中的硬盘所在的节点。例如,分布式集群中包括10个节点,且分布式集群中只有一个节点间DP,那么在满足EC冗余配比要求的前提下,该节点间DP中的硬盘可以来自于10个节点,也可以来自于9个、8个或者更少的节点。在分布式集群只有一个节点间DP的情况下,为了使得分布式集群的利用率最大,节点间DP中的硬盘应该尽可能的来自于分布式集群中的所有节点。
当分布式集群中包括多个节点间DP时,为了使得分布式集群的利用率最大,每个节点间DP中的硬盘可以来自于分布式集群中的所有节点,也可以多个节点间DP的硬盘覆盖分布式集群中的所有节点。例如,分布式集群中包括10个节点,一个节点间DP的硬盘来自于节点1-7,另一个节点间DP的硬盘来自于节点4-10。
节点间DP中的硬盘来自于分布式集群中的复数个节点时,该复数个节点中的每个节点上的硬盘个数可能相同,也可能不同。例如,节点间DP中的硬盘来自于分布式集群中10个节点,那么可以从节点1-5中分别选择20个硬盘,从节点6-10中分别选择15个硬盘,组成节点间DP。
节点间DP对应一个或多个PT,节点间DP对应的PT和节点间DP中的复数个硬盘对应,且节点间DP对应的PT中的硬盘来自于复数个节点,该复数个节点中每个节点上的硬盘个数小于或等于冗余配比中冗余分片的个数,因此,节点间DP对应的PT也称为节点间PT节点间。本申请中的节点间DP和现有技术中的DP相同,节点间DP对应的PT也和现有技术中的PT相同,这里不再赘述。
需要说明的是,上述两类DP的名称不限于节点间DP和节点内DP,也可以称为第一类DP和第二类DP,或者其他名称。
图3为本申请提供的分布式集群中节点内DP和节点间DP的一种示意图,如图3所示,该分布式集群包括三个节点,每个节点上包括节点内DP,节点内DP按照硬盘类型划分为SSD DP和HHD DP。该分布式集群还包括节点间DP,节点间DP中的硬盘来自于3个节点,节点间DP按照硬盘的类型划分为SSD DP和HHD DP。
图4为本申请提供的分布式集群中节点内DP和节点内PT的一种示意图,如图4所示,分布式集群包括20个节点,每个节点都创建了节点内DP,每个节点上的节点内DP均对应两个节点内PT,并且每个节点上的两个节点内DP的EC冗余配比不同。以节点1为例,节点1上的节点内DP包括20个硬盘,节点1上的节点内DP对应两个节点内PT:PT1和PT2,PT1和节点内DP中1-15号硬盘对应,PT2和节点内DP中的16-20号硬盘对应。节点2上节点内DP对应两个节点内PT:PT3和PT4,PT3和节点内DP中1-15号硬盘对应,PT4和节点内DP中的16-20号硬盘对应。节点20对应两个节点内PT:PT39和PT40,PT39和节点内DP中1-15号硬盘对应,PT40和节点内DP中的16-20号硬盘对应。
图4中每个节点上的两个节点内DP的EC冗余配比不同,在其他实施例中,节点上的两个节点内DP的EC冗余配比相同,相应的,同一个节点上两个节点内DP对应的硬盘个数相同,两个节点内DP对应的硬盘可以全部重叠、部分重叠或者不重叠。以节点1为例,PT1对应1-20号硬盘,PT2也对应1-20号硬盘,但是,PT1和PT2对应的硬盘的顺序不同。或者,PT1对应1-10号硬盘,PT2对应11-20号硬盘。
图4所示例子中,每个节点都包括一个节点内DP,当然,在实际应用中,每个节点可以包括多个节点内DP,同理,节点内DP对应的节点内PT的个数也不限于两个,并且不同节点上的节点内DP对应的节点内PT的个数可以相同也可以不同。
图5为本申请提供的分布式集群中节点间DP和节点间PT的一种示意图,如图5所示,分布式集群包括20个节点,节点间DP中的硬盘来自于20个节点的1-20号硬盘,节点间DP对应两个节点间PT:PT1和PT2,PT1中的硬盘来自于20个节点中每个节点的1号和2号硬盘,PT2中的硬盘来自于20个节点中每个节点的3号和4号硬盘。
本申请提供一种分布式集群中DP的创建方法,该创建方法用于为分布式集群创建节点内DP和节点间DP,图6为本申请实施例一提供的分布式集群中DP的创建流程图,如图6所示,本实施例提供的方法包括以下步骤:
步骤S101、当检测到新建集群事件时,创建节点判断集群包括的节点个数是否小于EC冗余配比要求的最少节点个数。
新建集群时,集群内包括的节点个数较少,例如,可能只有一个节点。当集群包括的节点个数小于EC冗余配比要求的最少节点个数时,执行步骤S102,当集群包括的节点个数不小于(大于或等于)EC冗余配比要求的最少节点个数时,执行步骤S103。该创建节点可以为分布式集群中的任意一个节点,创建节点预先配置好,后续根据事件触发创建节点内DP和节点间DP。
步骤S102、创建节点分别从集群从任意节点中选择若干硬盘,创建第一DP,并为该第一DP创建一个或多个PT。
第一DP为节点内DP,可选的,对一个节点可以创建多个节点内DP,该节点内的其他节点内DP的创建过程与第一DP的创建过程相同。进一步,创建节点为第一DP创建一个或多个PT。
可选的,创建节点可以对一个或者复数个节点创建节点内DP。下面以在每个节点内选择一组硬盘,为每个节点创建节点内DP,并为每个节点的节点内DP创建一个或多个PT为例进行介绍。
由于集群包括的节点个数小于EC冗余配比要求的最少节点个数,无法为集群创建节点间DP,因此,创建节点分别为每个节点创建节点内DP,并为每个节点的节点内DP创建一个或多个节点内PT,节点内DP对应的PT和节点内DP中的复数个硬盘对应,节点内DP和节点内DP对应的PT都是逻辑上的一组硬盘,因此,一个节点中的同一个硬盘可能属于多个不同的节点内DP或者节点内PT。
创建节点为每个节点创建节点内DP和节点内DP对应的PT后,在创建节点的集群管理映射表(Map)中记录每个节点的节点内DP和节点内DP对应的PT的信息。并分别向每个节点发送对应的节点内DP和节点内DP对应的PT的信息,后续每个节点能够根据自己的节点内DP和节点内DP对应的PT的信息进行数据写入。
步骤S103、创建节点从集群包括的复数个节点内选择一组硬盘,创建第二DP,为第二DP创建一个或多个PT。
创建节点可以选择集群中的全部或者部分节点的硬盘创建第二DP,并为第二DP创建一个或多个PT,第二DP为节点间DP,第二DP中的硬盘来自于分布式集群中的复数个节点,第二DP对应的PT为节点间PT,第二DP对应的PT中的硬盘来自于的复数节点。例如,第二DP的硬盘来自于集群中的节点1至节点4,那么第二DP对应的PT的硬盘可以来自于节点1至节点4中的任意两个节点、或者来自于任意三个节点、或者来自于四个节点。第二DP和第二DP对应的PT为逻辑上的一组硬盘,因此,同一个硬盘可能属于多个不同的节点间DP或者节点间PT。
可选的,创建节点可以为分布式集群创建多个节点间DP,分布式集群内的其他节点间DP的创建过程与第二DP的创建过程相同。进一步,创建节点为第二DP创建一个或多个PT。
创建节点在创建第二DP和第二DP对应的PT后,在创建节点的集群管理映射表中记录第二DP和第二DP对应的PT的信息,可选的,创建节点将第二DP和第二DP对应的PT的信息发送给集群中除创建节点外的其他节点。
步骤S104、当检测到集群增加新的节点时,创建节点判断集群增加新的节点后的节点个数是否小于EC冗余配比要求的最少节点个数。
本实施例中,集群可以扩容,通过交换机将增加的节点与已有节点级联,不会影响已有节点上的业务。其中,步骤S102和S103之后都可能执行步骤S104。如果集群增加新的节点后的节点个数小于EC冗余配比要求的最少节点个数,则执行步骤S105,如果集群增加新的节点后的节点个数不小于EC冗余配比要求的最少节点个数,则执行步骤S106。
步骤S105、创建节点从每个增加的新的节点内选择一组硬盘,为每个增加的新的节点创建节点内DP,并为每个增加的新的节点的节点内DP创建一个或多个节点内PT。
创建节点为每个新的节点创建节点内DP和节点内PT后,在创建节点的集群管理映射表中记录每个新的节点的节点内DP和节点内PT的信息。并分别向每个新的节点发送对应的节点内DP和节点内PT的信息。
步骤S106、如果没有创建节点内DP,则创建节点从集群包括的复数个节点内选择一组硬盘,创建第二DP,并为第二DP创建一个或多个PT;如果已经创建了节点间DP,则创建节点根据增加的节点更新已经创建的节点间DP和节点间DP对应的PT。
如果已经创建了节点间DP,则没有必要重复创建,创建节点只需要更新已经创建的节点间DP和节点间DP对应的PT,创建节点可以从增加的新的节点中选择一个或多个硬盘增加为已经创建的节点间DP的硬盘,并根据更新后的节点间DP更新节点间DP对应的PT。
本实施例中,当集群包括的节点个数小于EC冗余配比要求的最少节点个数时,创建节点可以分别为每个节点创建节点内DP以及节点内PT,在集群扩容后,如果集群增加新的节点后的节点个数大于或等于EC冗余配比要求的最少节点个数,则创建节点为集群创建节点间DP,并将节点内DP中的数据迁移到节点间DP中,该方法不再受限于EC冗余配比要求的最少节点个数,提高了分布式集群的扩展能力。
需要说明的是,可选的,节点间DP的创建可以对节点数量有一定要求。对于冗余配比m+n,要求:节点数量X≥m+n/n的整数,或者描述为满足此种条件下,那么对于存入节点间DP数据,每个节点所分摊到的分片数量不超过n个,因此,在任意单个节点发生故障的情况下,所丢失的分片不超过n个,从而保证了数据可以得到恢复。当集群中节点数量不满足时,节点内的DP;当集群中节点数量满足时,生成节点间DP,并可以进一步可以把节点内DP存储的数据迁移到节点间DP。这个就是EC冗余配比要求的最少节点个数。
在这种情况下,上述步骤S103中, 换句话说,
在时,如果创建节点间的DP,PT也会跨越节点,不但难以保证数据的可靠性,而且任意节点失效都会导致多个PT的数据丢失,导致了数据丢失的“放大”效果。
基于本申请的分布式集群,图7为本申请实施例二提供的分布式集群的数据迁移方法的流程图,如图7所示,本实施例提供的方法包括以下步骤:
步骤S201、第一节点根据目标数据的标识,从第一DP对应的第一PT中读取目标数据。
本实施例中,第一节点包括可以包括多个节点内DP,每个节点内DP可以对应一个或多个节点内PT,目标数据被写入了第一节点的第一DP对应的第一PT内。
第一节点并不是特指某个节点,第一节点可以为分布式集群中的任意一个节点,即分布式集群中的每个节点都可以执行本实施例的方法,把自身节点内DP中的数据迁移到节点间DP中。创建节点通常先创建第一DP,当扩容后的分布式集群包括的节点个数满足EC冗余配比要求的最少节点个数时,再创建第二DP,第一节点可以在创建节点创建第二DP后,触发数据迁移操作。
示例性的,第一节点获取目标数据所属的节点标识(ID)和DP的标识,目标数据所属的节点ID是指数据写入过程中记录的目标数据写入的节点的标识,当目标数据所属的节点ID和第一节点的节点ID相同时,第一节点根据目标数据所属的硬盘池的信息确定目标数据存储在第一DP中,然后根据目标数据的标识,从第一DP对应的第一PT中读取该目标数据。目标数据所属的节点ID和第一节点的ID相同,说明目标数据存储在第一节点上,第一节点可以进行数据迁移,如果目标数据所属的节点标识和第一节点的标识不相同,说明目标数据存储在其他节点上,那么由其他节点进行数据迁移,第一节点继续对下一个目标数据进行迁移。
集群中的数据可以以文件、对象等形式存储。以文件举例,创建节点间DP后,新生成的文件不会继续写入第一DP,所以第一节点上的节点内DP内的文件数量是不变的,第一节点通过定时的按照目录逐级扫描,将节点内DP中的数据都迁移至第二DP。在扫描文件时,第一节点可以批量获取文件所属的节点ID和DP的信息,扫描时第一节点无法区分文件存储在节点内DP还是节点间DP,因此第一节点获取到文件所属的节点ID和DP的信息后,需要先确定文件存储在节点内DP还是节点间DP中。
一种方式中,第一节点判断文件所属的节点ID是否为无效值,如果文件所属的节点ID为无效值,则说明该文件属于节点间DP,如果文件所属的节点ID为有效值,则说明该文件属于节点内DP。在将数据写入节点内DP和节点间DP时,如果将数据写入节点间DP,则将触发该数据写入的客户端挂载的节点的ID设置为无效值,并将数据写入节点间DP。如果将数据写入节点内DP,则将数据写入的节点的ID设置为有效值。其中,文件所属的节点ID可以记录在文件的元数据中,元数据可以集中存储在元数据服务器,或者分散存储在集群的节点中。
另一种方式中,第一节点根据文件的DP的编码格式判断该文件属于节点内DP还是节点间DP。可选的,节点内DP和节点间DP的编码格式不同,第一节点根据编码格式的类型确定文件的DP为节点内DP还是节点间DP。或者,文件的DP的编码格式中通过一个或多个比特位指示文件的DP为节点内DP还是节点间DP,例如,通过一比特的指示信息指示,当该比特位的值为0时,指示文件的DP为节点内DP,当该比特位的值为1时,指示文件的DP为节点间DP。
如果文件的DP为节点内DP,则判断文件所属的节点ID是否与第一节点的ID相同,如果文件所属的节点ID与第一节点的ID相同,则根据文件的ID计算文件所在的PT,例如,对文件ID进行哈希算法或者其他散列算法,计算文件所在的PT,从文件所在的PT中读取EC分片,将各磁盘中读取到的EC分片进行数据重组,得到文件的原始数据。如果文件所属的节点ID与第一节点的ID不同,则继续扫描下一个文件或者判断下一个文件所属的节点ID是否与第一节点的ID相同,在目录中所有文件都扫描完成后,说明第一节点上的第一DP中的数据迁移完成。
步骤S202、第一节点从第二DP对应的分区中选择第二PT,使用第二PT存储目标数据,该第二PT的EC冗余配比等于第一PT的EC冗余配比(例如EC冗余配比都是18+2)。
第一节点可以根据文件的ID计算文件的第二PT,并将文件进行EC分片后,写入第二PT。
本实施例中,第一节点根据目标数据的标识,从第一DP对应的第一PT中读取目标数据,从第二DP对应的分区中选择第二PT,使用第二PT存储目标数据,第二PT的EC冗余配比等于第一PT的EC冗余配比,从而完成将第一DP中的数据迁移至第二DP,数据迁移过程中不会影响新数据的写入,提高了分布式集群的在线扩展能力和可靠性。
实施例二中,由每个节点独立将节点内DP中的数据迁移到节点间DP,各个节点可以并行执行,提高了数据迁移的效率,并且可以使得各节点的负载均衡。在本申请的其他实施例中,也可以在集群中指定一个节点(以下简称数据迁移节点),由迁移节点统一完成节点内DP到节点间DP的数据迁移。
示例性的,迁移节点扫描数据,获取目标数据的节点ID和DP的信息,如果目标数据的节点的ID与迁移节点的ID不同,则迁移节点根据目标数据的节点ID,向目标数据的节点ID对应的目标数据的节点发送读取请求,该读取请求中携带目标数据标识,目标数据的标识可以是文件的ID。目标数据的节点根据目标数据的DP的信息,确定目标数据所在的DP,根据目标数据的标识从目标数据的DP对应的PT中读取目标数据的EC分片,根据EC分片重组得到目标数据,并向迁移节点返回读取请求的响应消息。迁移节点接收数据目标的节点发送的读取请求的响应消息,该响应消息中携带有与目标数据标识所对应的目标数据,迁移节点从节点间DP对应的PT中选择一个目标PT,使用目标PT存储目标数据。
如果目标数据的节点的ID与迁移节点的ID相同,则按照实施例二中第一节点的数据迁移方式,将节点内DP中的数据迁移至节点间DP中。
本申请还提供一种数据写入方法,该数据写入方法可以将目标数据写入第一DP和第二DP。图8为本申请实施例三提供的数据写入方法的信令流程图,如图8所示,本实施例提供的方法包括以下步骤:
步骤S301、客户端向数据写入节点发送数据写入请求。
该数据写入节点为外部客户端挂载的节点,数据的写入操作由外部客户端触发,在分布式集群中,可能只有一个节点挂载了客户端,也可能每个节点上都挂载了客户端。当只有一个节点上挂载了客户端时,由该节点负责集群的数据写入。当数据写入节点接收到客户端的数据写入请求时,触发文件创建。
步骤S302、数据写入节点获取文件所属的节点ID和DP的信息。
示例性的,数据写入节点的客户端代理(Client Agent,CA)模块向数据写入节点的集群管理模块请求获取用于写入文件所属的节点ID和PT,集群管理模块判断分布式集群中是否存在节点间DP,如果分布式集群存在节点间DP,则集群管理模块为文件选择第二DP,元数据服务器(metadata server,MDS)模块设置文件所属的节点ID为无效值(因为第二DP不单独归属于单个节点,因此其节点ID为无效值),如果分布式集群中不存在节点间DP,则集群管理模块从分布式集群中选择一个节点作为文件的节点,并选择该节点的节点内DP作为文件的DP。可选的,集群管理模块可以选择客户端当前挂载的节点作为文件的节点,也可以选择集群中的其他节点作为文件的节点。集群管理模块在确定文件所属的节点ID和DP后,将文件所属的节点ID和DP的信息发送给CA模块和MDS模块。
步骤S303、数据写入节点根据文件所属的节点ID和DP的信息,创建文件。
示例性的,CA模块携带获取的文件所属的节点ID和DP的信息,向MDS模块请求创建文件,MDS模块用于管理文件的元数据。MDS模块可以是集群中某个节点的拥有元数据管理功能的模块,也可以指专用于管理元数据的元数据服务器。MDS模块创建文件记录,同时记录文件所属的节点ID和DP的信息,MDS模块可以直接在DP的编码格式中,增加一个或多个比特位(bit)用于标识文件的DP是否为第一DP。MDS模块向CA模块返回文件创建成功消息,当然文件也可能创建失败,如果文件创建失败,则MDS模块向CA模块返回文件创建失败消息。
步骤S304、数据写入节点向客户端发送文件创建成功消息。
如果数据写入节点向客户端发送了文件创建失败消息,则结束数据写入流程,不再执行后续的步骤,如果数据写入节点向客户端发送了文件创建成功消息,则继续执行后续步骤。
步骤S305、客户端向数据写入节点发送待写入数据。
客户端接收到文件创建成功消息后,将待写入数据发送给数据写入节点。
步骤S306、数据写入节点将待写入数据写入文件所属的DP中。
示例性的,待写入数据传到CA模块,CA模块根据文件创建时在MDS上记录的文件所属的节点ID和DP信息,将数据写入该数据写入节点的键值存储(Key Value Storage,KVS)模块。KVS模块根据文件的ID通过哈希算法或者其他散列算法计算待写入数据要写入的PT,KVS模块将待写入数据进行EC分片,根据CA模块携带的文件所属的节点ID和DP信息,将分片数据写入文件所属的节点ID对应的节点的DP中,具体写入计算该DP中计算得到的PT中。
步骤S307、数据写入节点向客户端返回数据写入成功消息。
KVS模块在数据写入成功后,依次通过MDS模块、CA模块将数据写入成功消息发送给客户端。
图9为本申请实施例四提供的节点的示意图,所述节点属于分布式集群,所述分布式集群包括多个节点,每个节点包括多个硬盘和处理器,如图9所示,该分布式集群包括处理器和多个硬盘。可选的,该节点还可以包括内存、网卡、SAS卡等,参照图1、图4、图5所示的节点。
所述集群中包括第一硬盘池,所述第一硬盘池中的硬盘来自于所述集群中的第一节点,所述第一硬盘池对应的分区和所述第一硬盘池中的复数个所述硬盘对应,目标数据按照纠删码EC分片的形式分布于所述第一硬盘池对应的第一分区;
所述集群中包括第二硬盘池,所述第二硬盘池中的硬盘来自于所述集群中的复数个节点,所述第二硬盘池对应的分区和所述第二硬盘池中的复数个所述硬盘对应,且所述第二硬盘池对应的分区中的硬盘来自于复数个节点;
所述处理器用于:
根据所述目标数据的标识,从所述第一硬盘池对应的所述第一分区中读取所述目标数据;
从所述第二硬盘池对应的分区中选择第二分区,使用所述第二分区存储所述目标数据,所述第二分区的EC冗余配比等于所述第一分区的EC冗余配比。
可选的,所述处理器还用于:
获取所述目标数据所属的节点标识和硬盘池的信息;
当所述目标数据所在的节点的标识和所述第一节点的节点标识相同时,根据所述目标数据所属的硬盘池的信息确定所述目标数据存储在所述第一硬盘池中。
可选的,所述处理器还用于:
当所述集群包括的节点个数小于EC冗余配比要求的最少节点个数时,从所述第一节点内选择一组硬盘,为所述第一节点创建第一硬盘池;
为所述第一节点的第一硬盘池创建一个或多个分区。
可选的,所述处理器还用于:
当检测到所述集群增加新的节点,当所述集群增加新的节点后的节点个数大于或等于EC冗余配比要求的最少节点个数,则从所述集群包括的复数个节点内选择一组硬盘,创建所述第二硬盘池;
为所述第二硬盘池创建一个或多个分区。
可选的,所述处理器还用于:
当检测到所述集群增加新的节点,如果所述集群创建了第二硬盘池,且所述集群增加新的节点后的节点个数大于或等于EC冗余配比要求的最少节点个数时,则根据增加的新的节点更新第二硬盘池和第二硬盘池对应的分区。
本实施例提供的节点,可以为集群中的任意一个节点,该节点可以执行实施例一至实施例三的任意方法,具体实现方式和技术效果类似,这里不再赘述。
本申请实施例五提供一种分布式集群,所述集群包括多个节点,每个节点包括多个硬盘,该分布式集群结构可以参照图3所示。
所述集群中包括第一硬盘池,所述第一硬盘池中的硬盘来自于所述集群中的第一节点,所述第一硬盘池对应的分区和所述第一硬盘池中的复数个所述硬盘对应,目标数据按照纠删码EC分片的形式分布于所述第一硬盘池对应的第一分区;
所述集群中包括第二硬盘池,所述第二硬盘池中的硬盘来自于所述集群中的复数个节点,所述第二硬盘池对应的分区和所述第二硬盘池中的复数个所述硬盘对应,且所述第二硬盘池对应的分区中的硬盘来自于复数个节点。
第一硬盘池的示意图可以参照图4所示,第二硬盘池的示意图可以参照图5所示。
本申请实施例六提供一种节点,所述节点属于分布式集群,所述集群包括多个节点,每个节点包括多个硬盘和处理器,所述节点的结构参照图9所示的节点,所述节点的处理器用于:
当所述集群中节点个数小于时,从所述集群中的每个节点内选择一组硬盘,分别为所述每个节点创建节点内硬盘池,所述节点内硬盘池中的硬盘来自于一个节点;
为所述每个节点的节点内硬盘池创建一个或多个节点内分区,所述每个节点的节点内分区和所述节点的节点内硬盘池中的复数个硬盘对应;
当所述集群中节点个数大于或等于时,根据纠删码EC冗余配比要求的最少节点个数从所述集群中的复数个节点内选择一组硬盘,创建节点间硬盘池,所述节点间硬盘池中的硬盘来自于所述复数个节点;
为所述节点间硬盘池创建一个或多个节点间分区,所述节点间分区和所述节点间硬盘池中的复数个硬盘对应,且所述节点间分区中的硬盘来自于复数个节点;
其中,为所述EC冗余配比要求的最少节点个数,m为所述EC冗余配比中数据分片的个数,n为所述EC冗余配比中的冗余分片的个数,每个数据分片存储在一个硬盘中,每个冗余分片存储在一个硬盘中。
Claims (13)
1.一种分布式集群的管理方法,所述分布式集群包括多个节点,每个节点包括多个硬盘,其特征在于:
所述集群中包括第一硬盘池,所述第一硬盘池中的硬盘来自于所述集群中的第一节点,所述第一硬盘池对应的分区和所述第一硬盘池中的复数个所述硬盘对应,目标数据按照纠删码EC分片的形式分布于所述第一硬盘池对应的第一分区;
所述集群中包括第二硬盘池,所述第二硬盘池中的硬盘来自于所述集群中的复数个节点,所述第二硬盘池对应的分区和所述第二硬盘池中的复数个所述硬盘对应,且所述第二硬盘池对应的分区中的硬盘来自于复数个节点;
所述方法包括:
所述第一节点根据所述目标数据的标识,从所述第一硬盘池对应的所述第一分区中读取所述目标数据;
所述第一节点从所述第二硬盘池对应的分区中选择第二分区,使用所述第二分区存储所述目标数据,所述第二分区的EC冗余配比等于所述第一分区的EC冗余配比。
2.根据权利要求1所述的方法,其特征在于,所述第一节点根据目标数据的标识,从所述第一硬盘池对应的所述第一分区中读取所述目标数据之前,还包括:
所述第一节点获取所述目标数据所属的节点标识和硬盘池的信息;
当所述目标数据所属的节点的标识和所述第一节点的节点标识相同时,所述第一节点根据所述目标数据所属的硬盘池的信息确定所述目标数据存储在所述第一硬盘池中。
3.根据权利要求1或2所述的方法,其特征在于,在所述方法之前,还包括:
当所述集群包括的节点个数小于EC冗余配比要求的最少节点个数时,所述集群中的创建节点从所述第一节点内选择一组硬盘,为所述第一节点创建第一硬盘池;
所述创建节点为所述第一节点的第一硬盘池创建一个或多个分区。
4.根据权利要求3所述的方法,其特征在于,还包括:
当检测到所述集群增加新的节点,当所述集群增加新的节点后的节点个数大于或等于EC冗余配比要求的最少节点个数,则所述创建节点从所述集群包括的复数个节点内选择一组硬盘,创建所述第二硬盘池;
所述创建节点为所述第二硬盘池创建一个或多个分区。
5.根据权利要求1或2所述的方法,其特征在于,还包括:
当检测到所述集群增加新的节点,如果所述集群创建了第二硬盘池,且所述集群增加新的节点后的节点个数大于或等于EC冗余配比要求的最少节点个数时,则所述创建节点根据增加的新的节点更新第二硬盘池和第二硬盘池对应的分区。
6.一种节点,所述节点属于分布式集群,所述分布式集群包括多个节点,每个节点包括多个硬盘和处理器,其特征在于:
所述集群中包括第一硬盘池,所述第一硬盘池中的硬盘来自于所述集群中的第一节点,所述第一硬盘池对应的分区和所述第一硬盘池中的复数个所述硬盘对应,目标数据按照纠删码EC分片的形式分布于所述第一硬盘池对应的第一分区;
所述集群中包括第二硬盘池,所述第二硬盘池中的硬盘来自于所述集群中的复数个节点,所述第二硬盘池对应的分区和所述第二硬盘池中的复数个所述硬盘对应,且所述第二硬盘池对应的分区中的硬盘来自于复数个节点;
所述处理器用于:
根据所述目标数据的标识,从所述第一硬盘池对应的所述第一分区中读取所述目标数据;
从所述第二硬盘池对应的分区中选择第二分区,使用所述第二分区存储所述目标数据,所述第二分区的EC冗余配比等于所述第一分区的EC冗余配比。
7.根据权利要求6所述的节点,其特征在于,所述处理器还用于:
获取所述目标数据所属的节点标识和硬盘池的信息;
当所述目标数据所在的节点的标识和所述第一节点的节点标识相同时,根据所述目标数据所属的硬盘池的信息确定所述目标数据存储在所述第一硬盘池中。
8.根据权利要求6或7所述的节点,其特征在于,所述处理器还用于:
当所述集群包括的节点个数小于EC冗余配比要求的最少节点个数时,从所述第一节点内选择一组硬盘,为所述第一节点创建第一硬盘池;
为所述第一节点的第一硬盘池创建一个或多个分区。
9.根据权利要求8所述的装置,其特征在于,所述处理器还用于:
当检测到所述集群增加新的节点,当所述集群增加新的节点后的节点个数大于或等于EC冗余配比要求的最少节点个数,则从所述集群包括的复数个节点内选择一组硬盘,创建所述第二硬盘池;
为所述第二硬盘池创建一个或多个分区。
10.根据权利要求6或7所述的节点,其特征在于,所述处理器还用于:
当检测到所述集群增加新的节点,如果所述集群创建了第二硬盘池,且所述集群增加新的节点后的节点个数大于或等于EC冗余配比要求的最少节点个数时,则根据增加的新的节点更新第二硬盘池和第二硬盘池对应的分区。
11.一种分布式集群,其特征在于,所述集群包括多个节点,每个节点包括多个硬盘;
所述集群中包括第一硬盘池,所述第一硬盘池中的硬盘来自于所述集群中的第一节点,所述第一硬盘池对应的分区和所述第一硬盘池中的复数个所述硬盘对应,目标数据按照纠删码EC分片的形式分布于所述第一硬盘池对应的第一分区;
所述集群中包括第二硬盘池,所述第二硬盘池中的硬盘来自于所述集群中的复数个节点,所述第二硬盘池对应的分区和所述第二硬盘池中的复数个所述硬盘对应,且所述第二硬盘池对应的分区中的硬盘来自于复数个节点。
12.一种分布式集群的管理方法,所述分布式集群包括多个节点,每个节点包括多个硬盘,其特征在于,所述方法包括:
当所述集群中节点个数小于时,创建节点从所述集群中的每个节点内选择一组硬盘,分别为所述每个节点创建节点内硬盘池,所述节点内硬盘池中的硬盘来自于一个节点;
所述创建节点为所述每个节点的节点内硬盘池创建一个或多个节点内分区,所述每个节点的节点内分区和所述节点的节点内硬盘池中的复数个硬盘对应;
当所述集群中节点个数大于或等于时,所述创建节点根据纠删码EC冗余配比要求的最少节点个数从所述集群中的复数个节点内选择一组硬盘,创建节点间硬盘池,所述节点间硬盘池中的硬盘来自于所述复数个节点;
所述创建节点为所述节点间硬盘池创建一个或多个节点间分区,所述节点间分区和所述节点间硬盘池中的复数个硬盘对应,且所述节点间分区中的硬盘来自于复数个节点;
其中,为所述EC冗余配比要求的最少节点个数,m为所述EC冗余配比中数据分片的个数,n为所述EC冗余配比中的冗余分片的个数,每个数据分片存储在一个硬盘中,每个冗余分片存储在一个硬盘中。
13.一种节点,所述节点属于分布式集群,所述集群包括多个节点,每个节点包括多个硬盘和处理器,其特征在于,所述节点的处理器用于:
当所述集群中节点个数小于时,从所述集群中的每个节点内选择一组硬盘,分别为所述每个节点创建节点内硬盘池,所述节点内硬盘池中的硬盘来自于一个节点;
为所述每个节点的节点内硬盘池创建一个或多个节点内分区,所述每个节点的节点内分区和所述节点的节点内硬盘池中的复数个硬盘对应;
当所述集群中节点个数大于或等于时,根据纠删码EC冗余配比要求的最少节点个数从所述集群中的复数个节点内选择一组硬盘,创建节点间硬盘池,所述节点间硬盘池中的硬盘来自于所述复数个节点;
为所述节点间硬盘池创建一个或多个节点间分区,所述节点间分区和所述节点间硬盘池中的复数个硬盘对应,且所述节点间分区中的硬盘来自于复数个节点;
其中,为所述EC冗余配比要求的最少节点个数,m为所述EC冗余配比中数据分片的个数,n为所述EC冗余配比中的冗余分片的个数,每个数据分片存储在一个硬盘中,每个冗余分片存储在一个硬盘中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810828087.XA CN109189326B (zh) | 2018-07-25 | 2018-07-25 | 分布式集群的管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810828087.XA CN109189326B (zh) | 2018-07-25 | 2018-07-25 | 分布式集群的管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109189326A true CN109189326A (zh) | 2019-01-11 |
CN109189326B CN109189326B (zh) | 2020-09-08 |
Family
ID=64937315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810828087.XA Active CN109189326B (zh) | 2018-07-25 | 2018-07-25 | 分布式集群的管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189326B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181305A (zh) * | 2020-09-30 | 2021-01-05 | 北京人大金仓信息技术股份有限公司 | 数据库集群网络分区选择方法和装置 |
WO2022007968A1 (zh) * | 2020-07-10 | 2022-01-13 | 华为技术有限公司 | 分条管理方法、存储系统、分条管理装置及存储介质 |
WO2022063322A1 (en) * | 2020-09-28 | 2022-03-31 | Zhejiang Dahua Technology Co., Ltd. | Hard drive migration method, distributed storage cluster system and storage medium |
CN112181305B (zh) * | 2020-09-30 | 2024-06-07 | 北京人大金仓信息技术股份有限公司 | 数据库集群网络分区选择方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080065644A1 (en) * | 2006-09-08 | 2008-03-13 | Sybase, Inc. | System and Methods For Optimizing Data Transfer Among Various Resources In A Distributed Environment |
US20090119304A1 (en) * | 2002-01-30 | 2009-05-07 | Red Hat, Inc. | Metadata structures and related locking techniques to improve performance and scalability in a cluster file system |
CN102710763A (zh) * | 2012-05-29 | 2012-10-03 | 新华网股份有限公司 | 一种分布式缓存池化、分片及故障转移的方法及系统 |
CN103077245A (zh) * | 2013-01-18 | 2013-05-01 | 浪潮电子信息产业股份有限公司 | 一种利用集群计算节点空闲硬盘空间扩展并行文件系统的方法 |
CN104077239A (zh) * | 2014-06-24 | 2014-10-01 | 华为技术有限公司 | Ip硬盘与存储系统,及其数据操作方法 |
CN105893156A (zh) * | 2016-04-20 | 2016-08-24 | 北京云宏信达信息科技有限公司 | 存储计算系统中的请求处理方法及存储计算系统 |
CN106325761A (zh) * | 2015-06-29 | 2017-01-11 | 中兴通讯股份有限公司 | 一种存储资源管理的系统及方法 |
CN107302475A (zh) * | 2017-07-06 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种面向分布式存储集群的测试方法及装置 |
-
2018
- 2018-07-25 CN CN201810828087.XA patent/CN109189326B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090119304A1 (en) * | 2002-01-30 | 2009-05-07 | Red Hat, Inc. | Metadata structures and related locking techniques to improve performance and scalability in a cluster file system |
US20080065644A1 (en) * | 2006-09-08 | 2008-03-13 | Sybase, Inc. | System and Methods For Optimizing Data Transfer Among Various Resources In A Distributed Environment |
CN102710763A (zh) * | 2012-05-29 | 2012-10-03 | 新华网股份有限公司 | 一种分布式缓存池化、分片及故障转移的方法及系统 |
CN103077245A (zh) * | 2013-01-18 | 2013-05-01 | 浪潮电子信息产业股份有限公司 | 一种利用集群计算节点空闲硬盘空间扩展并行文件系统的方法 |
CN104077239A (zh) * | 2014-06-24 | 2014-10-01 | 华为技术有限公司 | Ip硬盘与存储系统,及其数据操作方法 |
CN106325761A (zh) * | 2015-06-29 | 2017-01-11 | 中兴通讯股份有限公司 | 一种存储资源管理的系统及方法 |
CN105893156A (zh) * | 2016-04-20 | 2016-08-24 | 北京云宏信达信息科技有限公司 | 存储计算系统中的请求处理方法及存储计算系统 |
CN107302475A (zh) * | 2017-07-06 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种面向分布式存储集群的测试方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022007968A1 (zh) * | 2020-07-10 | 2022-01-13 | 华为技术有限公司 | 分条管理方法、存储系统、分条管理装置及存储介质 |
WO2022063322A1 (en) * | 2020-09-28 | 2022-03-31 | Zhejiang Dahua Technology Co., Ltd. | Hard drive migration method, distributed storage cluster system and storage medium |
CN112181305A (zh) * | 2020-09-30 | 2021-01-05 | 北京人大金仓信息技术股份有限公司 | 数据库集群网络分区选择方法和装置 |
CN112181305B (zh) * | 2020-09-30 | 2024-06-07 | 北京人大金仓信息技术股份有限公司 | 数据库集群网络分区选择方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109189326B (zh) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11907566B1 (en) | Coordination of task execution in a distributed storage network | |
CN106407040B (zh) | 一种远程数据复制方法及系统 | |
US10216434B2 (en) | Detailed memory device statistics with drive write location determination | |
US10042707B2 (en) | Recovering affinity with imposter slices | |
US10127110B2 (en) | Reallocating storage in a dispersed storage network | |
US10365968B2 (en) | Apportioning namespace ranges in accordance with dispersed storage unit capacity | |
US9785503B2 (en) | Method and apparatus for distributed storage integrity processing | |
EP2787446B1 (en) | Distributed storage method, device and system | |
CN108052655B (zh) | 数据写入及读取方法 | |
US9043548B2 (en) | Streaming content storage | |
US8032784B2 (en) | Duplication combination management program, duplication combination management apparatus, and duplication combination management method | |
CN109690494B (zh) | 系统存储装置中的分层容错 | |
US11003554B2 (en) | RAID schema for providing metadata protection in a data storage system | |
US20230205635A1 (en) | Rebuilding Data Slices in a Storage Network Based on Priority | |
CN109189326A (zh) | 分布式集群的管理方法和装置 | |
CN109840051B (zh) | 一种存储系统的数据存储方法及装置 | |
WO2024103901A1 (zh) | 一种对raid的容量空间的分配方法、装置、设备及介质 | |
EP4170499A1 (en) | Data storage method, storage system, storage device, and storage medium | |
US11281532B1 (en) | Synchronously storing data in a dispersed storage network | |
US20220394091A1 (en) | Storing a Data Object as Data Regions in a Storage Network | |
US10268376B2 (en) | Automated deployment and assignment of access devices in a dispersed storage network | |
KR20120027786A (ko) | 메타 데이터 서버, 데이터 서버, 복제 서버, 비대칭 분산 파일 시스템 및 그 데이터 처리 방법 | |
CN113157715B (zh) | 纠删码数据中心机架协同更新方法 | |
CN112328182B (zh) | 一种raid数据管理方法、装置和计算机可读存储介质 | |
US11620080B2 (en) | Data storage method, device and computer program product |
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 |