CN111666047A - 一种分布式系统中存储卷的生成方法和相关装置 - Google Patents
一种分布式系统中存储卷的生成方法和相关装置 Download PDFInfo
- Publication number
- CN111666047A CN111666047A CN202010501460.8A CN202010501460A CN111666047A CN 111666047 A CN111666047 A CN 111666047A CN 202010501460 A CN202010501460 A CN 202010501460A CN 111666047 A CN111666047 A CN 111666047A
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- disk
- data blocks
- blocks
- 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.)
- Pending
Links
Images
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/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/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
本申请实施例公开了一种分布式系统中存储卷的生成方法和相关装置,在分布式系统中,利用M个存储区块对存储节点进行划区管理。针对待生成存储卷的N个数据块,从M个存储区块中确定出目标存储节点,从而利用目标存储节点承载N个数据块以生成存储卷。由于小于N的最大承载数限定了存储节点承载该存储卷所包括的N个数据块时,由同一个存储区块承载的数据块数量小于或等于最大承载数,使得该N个存储块会被分配到位于不同的存储区块的目标存储节点中。若以存储区块依次进行升级方式进行,使得存储卷最多只有一部分数据块会受到所在存储区块升级的影响,而不会如相关技术中全部数据块均受升级影响,从而有可能并不会影响存储卷提供的业务服务。
Description
技术领域
本申请涉及数据处理领域,特别是涉及一种分布式系统中存储卷的生成方法和相关装置。
背景技术
分布式系统例如分布式云存储系统等可以为用户、公司提供数据存储、计算等各类服务,可以由海量的存储节点构成。当用户、公司需要这类服务时,可以从分布式云存储系统中生成由存储节点组成的存储卷(Volume),以作为实现服务的数据存储、计算基础。
然而,由于分布式系统本身时常需要进行服务升级,一旦开始对存储节点进行批量升级,会直接影响对存储卷的写操作,所以在相关技术中,必须在分布式系统升级时进行停写操作。
相关技术导致分布式系统在升级期间不能正常提供服务,不利于分布式系统的推广。
发明内容
为了解决上述技术问题,本申请提供了一种分布式系统中存储卷的生成方法和相关装置,使不停写升级成为可能。
本申请实施例公开了如下技术方案:
一方面,本申请实施例提供了一种分布式系统中存储卷的生成方法,所述分布式系统包括的存储节点被划分在M个存储区块中,所述方法包括:
确定待生成的存储卷所包括的N个数据块,M>N;
从所述M个存储区块中确定用于承载所述N个数据块的目标存储节点,在所述N个数据块中,由同一个存储区块承载的数据块数量小于或等于最大承载数;所述最大承载数小于N;
根据所述目标存储节点生成所述存储卷。
另一方面,本申请实施例提供了一种分布式系统中存储卷的生成装置,所述分布式系统包括的存储节点被划分在M个存储区块中,所述装置包括确定单元和生成单元:
所述确定单元,用于确定待生成的存储卷所包括的N个数据块,M>N;
所述确定单元,还用于从所述M个存储区块中确定用于承载所述N个数据块的目标存储节点,在所述N个数据块中,由同一个存储区块承载的数据块数量小于或等于最大承载数;所述最大承载数小于N;
所述生成单元,用于根据所述目标存储节点生成所述存储卷。
另一方面,本申请实施例提供了一种用于分布式系统中存储卷的生成设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述方面所述的方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述方面所述的方法。
由上述技术方案可以看出,在分布式系统中,利用M个存储区块对分布式系统中存储节点进行划区管理。针对待生成存储卷的N个数据块,从M个存储区块中确定出目标存储节点,从而利用目标存储节点承载N个数据块以生成存储卷。由于小于N的最大承载数限定了存储节点承载该存储卷所包括的N个数据块时,由同一个存储区块承载的数据块数量小于或等于最大承载数,使得该N个存储块会被分配到位于不同的存储区块的目标存储节点中。由此,在分布式系统进行升级时,若以存储区块依次进行升级方式进行,使得存储卷最多只有一部分数据块会受到所在存储区块升级的影响,而不会如相关技术中全部数据块均受升级影响,从而有可能并不会影响存储卷提供的业务服务。这种生成存储卷的方式在对分布式系统进行划区管理的前提下,使得分布式系统升级时不停写成为可能,为不停写升级打下基础,提高了分布式系统的服务可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种分布式系统中存储卷的生成方法的应用场景示意图;
图2为本申请实施例提供的一种分布式系统中存储卷的生成方法的流程示意图;
图3为本申请实施例提供的另一种分布式系统中存储卷的生成方法的应用场景示意图;
图4为本申请实施例提供的一种分布式系统中存储卷的生成装置的结构示意图;
图5为本申请实施例提供的服务器的结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
在分布式存储领域中,还没有实现不停写升级的相关技术。为此,本申请提供了一种基于管理域(Manager Zone,MZ)进行存储数据管理的设计,即,在分布式系统中,将多个存储节点划分到多个作为MZ的存储区块中,通过MZ对存储节点对应的存储空间进行管理。在服务升级时,以存储区块为单位对其管理的存储节点进行批量升级。
在实现分布式存储的过程中,通过存储卷为存储对象提供服务。一个存储卷由多个数据块(Vlet)组成,用于对数据存储空间进行管理。在生成存储卷的过程中,可以由不同的存储区块中的存储节点承载存储卷所包括的多个数据块。其中,存储节点承载数据块可以理解为对存储节点中的存储空间进行划分,划分出与数据块的容量大小对应的存储空间作为存储卷的数据块。
由于对于正在升级的存储区块,其所承载的数据块会受到影响。因此,在基于存储区块进行服务升级的前提下,为了保证升级时不停写操作,需要尽可能地降低同一个存储区块中承载属于同一个存储卷的数据块的数量。其中,不停写操作是指不停止写入数据的操作。若存储区块停写操作,即存储区块中的所有存储节点进行停写操作,这会导致存储区块无法继续提供服务或接受新的服务请求。当可以实现在升级过程中不停写操作时,即使出现对某一MZ的升级,也不会影响存储卷所提供的正常服务,服务消费者(例如用户、公司)依然可以向存储卷中正常写入各类数据。
因此,本申请实施例提供了一种分布式系统中存储卷的生成方法。该存储卷的生成方法适用于分布式云存储(cloud storage)技术领域,应用于分布式云存储系统。
其中,云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,分布式云存储系统是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
而云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
本申请实施例提供的分布式系统中存储卷的生成方法应用于具有云计算能力的存储卷生成设备,例如,服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。在本申请实施例中,以服务器作为存储卷生成设备对本申请实施例提供的分布式系统中存储卷的生成方法进行介绍。
参见图1,图1为本申请实施例提供的一种分布式系统中存储卷的生成方法的应用场景示意图。
在图1所示的应用场景中,包括服务器101,用于在分布式系统中生成存储卷。在图1所示的分布式系统中包括10个存储节点,这10个存储节点被划分到5个存储区块中,即M=5。
在一次存储任务中,服务器101可以确定出待生成的存储卷所包括的数据块的数量N,在图1所示的场景中,待生成的存储卷所包括的数据块的数量为3,即N=3。
然后,服务器101可以从5个存储区块中确定出用于承载3个数据块的目标存储节点,且同一个存储区块中承载的数据块数量小于或等于最大承载数。其中,最大承载数标识了一个存储区块能够承载属于同一个存储卷的数据块的最大数量。在图1所示的场景中,若设定最大承载数为1,则一个存储区块中最多只能承载属于同一个存储卷的一个数据块。因此,服务器101确定出的3个存储节点分别由3个不同的存储区块管理。例如,1个数据块由存储区块1中的一个存储节点承载。
由于存储卷所包括的N个数据块被承载在多个不同的存储区块中,且每个存储区块所承载的数据块的数量不超过最大承载数,因此,在以存储区块为单位进行服务升级时,影响同一个存储卷中的数据块不超过最大承载数,使得分布式系统升级时不停写成为可能。
服务器101确定出目标存储节点后,就可以利用目标存储节点中的存储空间分别承载3个数据块,以生成存储卷。
上述生成存储卷的方式在对分布式系统进行划区管理的前提下,使得分布式系统升级时不停写成为可能,为不停写升级打下基础,提高了分布式系统的服务可靠性。
下面结合附图,对本申请实施例提供的一种分布式系统中存储卷的生成方法进行介绍。
参见图2,图2为本申请实施例提供的一种分布式系统存储卷的生成方法的流程示意图。如图2所示,该方法包括以下步骤:
S201:确定待生成的存储卷所包括的N个数据块,M>N。
在分布式系统中,将多个存储节点划分在M个存储区块中,可以通过物理资源元数据服务(Node Manager)对存储区块进行管理。其中,存储区块的数量M取值范围为0~127,每个集群可以单独配置。
在实际应用中,存储区块的数量M可以根据分布式系统对应的数据编码方式确定。例如,在一些应用场景中,分布式系统采用纠删码(Erasure Code,EC)对数据进行存储。EC包括两个参数K和N,其中,K表示业务数据份数,(N-K)表示存储校验数据份数,则N表示系统存储数据的总份数。
在分布式系统中,每个集群可以设置多种EC,每个EC对应一组KN值,例如,EC对应为K9N18的集群,该集群处理一次数据存储任务,总共需要存储18份数据,其中,业务数据有9份,校验数据有9份。EC对应的KN值根据应用场景设定,在此不作任何限定。
在本申请实施例中,设定一个数据块存储一份数据,则在一次数据存储任务中,对于采用EC存储的集群,一个存储卷的数据块数量等于EC对应的N值。为了使一个存储卷所包括的数据块能够均匀地分布在集群内的每个存储区块中,因此,存储区块的数量M至少需要N个。一般的,将M设定为2*N,留一倍冗余,以提高系统的可靠性。例如,对于使用了EC对应为K15N20的集群,要想使每个存储区块都包括一个数据块,至少需要20个存储区块,留一倍冗余,即需要设定40个存储区块,M=40。
其中,EC是一种前向错误纠正技术(Forward Error Correction,FEC),可以应用于网络传输,以避免包的丢失,存储系统利用它可以提高存储可靠性。相比多副本复制而言,纠删码能够以更小的数据冗余度获得更高数据可靠性。EC可以将n份原始数据,增加m份数据,并能通过n+m份中的任意n份数据,还原为原始数据。如果有任意小于等于m份的数据失效,仍然能通过剩下的数据还原出来。EC技术在分布式存储系统中的应用包括:阵列纠删码(Array Code:RAID5、RAID6等)、里德-所罗门类纠删码(Reed-Solomon,RS)和低密度奇偶校验纠删码(LowDensity Parity Check Code,LDPC)。
在生成存储卷的过程中,存储卷的生成工作可以由存储控制节点(例如,Center模块)发起。系统获取到待存储的存储对象后,触发生成存储卷。首先,确定待生成的存储卷所包括的数据块的个数N。其中,存储卷所包括的数据块的个数N小于存储区块的个数M。对于上述使用EC的集群,可以根据EC对应的N值确定出确定待生成的存储卷所包括的数据块的个数,即为N。
由于待生成存储卷所包括的数据块的个数是基于待存储存储对象需要存储数据的总份数确定出来的,基于此生成的存储卷满足了存储对象对应的数据存储需求,提高了系统服务性能。
S202:从所述M个存储区块中确定用于承载所述N个数据块的目标存储节点,在所述N个数据块中,由同一个存储区块承载的数据块数量小于或等于最大承载数;所述最大承载数小于N。
由于分布式系统中的存储区块在升级时,存储区块承载的数据块会受到影响。因此,为了保证存储卷在升级过程中不影响服务的正常运行,需要使同一存储卷中的数据块受到影响的个数最少,即需要尽可能的将同一存储卷中的数据块分配给不同的存储区块,以保证升级过程中,通过存储卷所提供的服务可以正常运行。
在本申请实施例中,可以预先设定分布式系统中同一个存储区块至多能够承载属于同一个存储卷的数据块数量为最大承载数(MaxVletsPerMz),最大承载数越小,一个存储卷中数据块分散到不同存储区块的程度越大。因此,控制节点(Center模块)在创建存储卷时,会读取MaxVletsPerMz,该值设定了一个存储卷中的多个数据块,允许出现在同一个存储区块中的数据块最多有多少个。一般地,将最大承载数设定为1或者2,即同一个存储区块中至多承载1个或者2个属于同一个存储卷的数据块。当MaxVletsPerMz为1时,以存储区块依次进行升级,一个存储卷中至多只有一个数据块会受到影响,此时存储卷的可用性是最高的。
在确定数据块的个数N后,在满足最大承载数要求的前提下,从M个存储区块中确定出目标存储节点,用于承载这N个数据块。其中,同一个存储卷中的数据块的容量大小相同。数据块的容量大小标识了用于承载数据块的存储节点中需要划分出的存储空间的大小。在不同的应用场景中,数据块的容量大小可以根据具体的应用需求设定,在此不作任何限定,在同一应用场景中不同存储卷间数据块的大小可以相同,也可以不同。
由此,在分布式系统在,以存储区块依次进行升级,同一个存储卷中受到存储区块升级的影响的数据块的个数不超过最大承载数,降低了升级过程对存储卷中的数据块的影响,从而降低了存储卷所提供的业务服务的影响。
存储节点对应的存储机器通常配置有磁盘,磁盘为提供数据存储功能的存储介质,因此,在实际应用中,存储节点可以利用磁盘承载数据块,即将磁盘对应的存储空间进行划分,划分出与数据块的容量大小相同的存储空间作为存储卷的数据块。其中,本申请实施例中的磁盘可以包括各种类型,例如可以包括软盘和硬盘,在硬盘的情况下,还可以具体为机械硬盘、固态硬盘等。
若分布式系统中任意一个存储节点对应的存储机器配置至少一个磁盘(Disk),用于承载存储卷的数据块,则在一种可能的实现方式中,可以先计算出分布式系统中每个磁盘的空间占用率。
其中,空间占用率是指一个磁盘已承载的数据块对应的存储空间占有磁盘总存储空间的比例,在应用场景中数据块大小一致的情况下,用数学式表示为:磁盘的空间占用率f=(已承载数据块的数量n*每个数据块对应的存储空间大小)/磁盘总存储空间。空间占用率标识了磁盘的存储空间被占用的程度。空间占用率越大,表明磁盘中可用的剩余空间越少。空间占用率越小,表明磁盘中可用的剩余空间越多。
然后,可以根据磁盘的空间占用率从分布式系统中确定出N个目标磁盘,用于承载N个数据块。其中,一个存储节点可以配置一个磁盘,也可以配置多个磁盘,存储节点中配置磁盘的数量并不影响在服务升级过程中,做到不停写操作。在本申请实施例中,一个数据块由一个磁盘承载,以降低分布式系统中对于存储空间的管理成本。在实际应用中,也可以采取一个数据块由多个磁盘承载的方式,同样能够实现升级过程中不停写操作。
由于数据块的容量是具有一定大小的,通常将数据块的容量大小设定为16G。因此,在确定目标磁盘的过程中,需要考虑到磁盘是否具有承载数据块的能力,也就是,磁盘是否还有足够大的剩余空间用于承载数据块。
在实际应用中,可以根据磁盘的空间占用率计算出磁盘的剩余空间,然后,对剩余空间大于数据块容量的磁盘进行遍历,若当前遍历的磁盘满足承载条件,则将该磁盘加入磁盘集合。当磁盘集合中的磁盘的总数量达到N个时停止遍历,并将磁盘集合中的磁盘作为目标磁盘。
其中,承载条件包括磁盘集合中处于同一个存储区块的磁盘数量小于或等于最大承载数,也就是说,当前遍历到的磁盘与磁盘集合中的磁盘属于同一个存储区块的总数量不超过最大承载数。
在上述提供的确定目标磁盘的方式中,磁盘集合中的每个磁盘的剩余空间都大于数据块的容量大小,因此,被加入磁盘集合的磁盘都具备承载数据块的能力。若遍历完系统中的所有磁盘之前,磁盘集合中的磁盘的总数量就达到了N个,说明系统有足够的剩余空间,可以基于被加入磁盘集合中的N个目标磁盘成功生成存储卷;若遍历完系统中的所有磁盘,磁盘集合中的磁盘的总数量还未达到N个,说明系统的剩余空间已不足以承载N个数据块,即生成存储卷失败,可以返回生成失败信息用于提示。
由于磁盘集合中的每个磁盘的剩余空间都大于数据块的容量大小,因此,当磁盘集合的磁盘的总数量达到N个时,可以将磁盘集合的N个磁盘作为目标磁盘,用于承载数据块,并生成存储卷。
在一种可能的实现方式中,可以根据空间占用率从小到大的顺序对分布式系统中的磁盘进行排序,磁盘排序后的结果可以用列表DISK_LIST表示,并用DISK_LIST[i]表示空间占用率第i小的磁盘,i从1开始取值。然后,按照排序后的顺序对磁盘进行遍历,即从DISK_LIST[1]开始,按照DISK_LIST的排列顺序遍历。如果当前遍历到的磁盘符合上述承载条件,则将该磁盘加入磁盘集合中。其中,磁盘集合可以用SELECTED_DISK_LIST表示,并用SELECTED_DISK_LIST[j]表示加入磁盘集合中的第j个磁盘。当磁盘集合中的磁盘的总数量达到N个时停止遍历,并将磁盘集合中的N个磁盘作为N个目标磁盘。
例如,在图1所示的场景中,若每个存储节点配置有一个磁盘,则图1所示的分布式系统中配置有10个磁盘,且每个存储区块对应的磁盘数为2。将最大承载数设定为1,则承载条件为磁盘集合中处于同一个存储区块的磁盘数量为1。
在确定目标磁盘的过程中,首先计算10个磁盘各自的空间占用率,然后,按照空间占用率从小到大的顺序对这10个磁盘进行排序,磁盘排序后的结果DISK_LIST为:磁盘1、磁盘2,…,磁盘10。然后,按照排序后的顺序,从磁盘1开始进行遍历。由于磁盘集合SELECTED_DISK_LIST此刻为空,因此,磁盘1是满足承载条件的,于是将磁盘1加入SELECTED_DISK_LIST中。然后,针对DISK_LIST中的第2个磁盘,即磁盘2,判断磁盘2是否满足承载条件。若磁盘2与磁盘1处于同一个存储区块中,由于最大承载数设定为1,则磁盘2不满足承载条件。继续针对DISK_LIST中的第3个磁盘,即磁盘3,确定出磁盘3满足承载条件,则将磁盘3加入SELECTED_DISK_LIST中。同样的,若磁盘4满足承载条件,则将磁盘4加入SELECTED_DISK_LIST中,此时,SELECTED_DISK_LIST中磁盘的总数量为3,停止遍历,并将磁盘1、磁盘3和磁盘4作为目标磁盘,用于承载3个数据块。
上述按照空间占用率从小到大的顺序遍历方式确定出的目标磁盘,相对于分布式系统中其他未被选中的磁盘,磁盘的空间占用率较小,也就是说,通过上述方式将系统中空间占用率较小的N个磁盘,选作目标磁盘,用于承载数据块,提高了分布式系统中的磁盘空间占用率,提高了分布式系统中存储资源的利用率。
由于目标磁盘是分布式系统中空间占用率较小的磁盘,因此,每生成一个存储卷,充分地利用了系统中空间占用率较小的磁盘的剩余空间,提高了原本空间占有率较小的磁盘的空间占有率,缩小了系统中空间占有率较小的磁盘与空间占有率较大的磁盘之间的空间占有率差值。按照这种方式生成多个存储卷后,系统中不同磁盘之间的空间占有率能够保持相对平衡。
另外,由于磁盘配置在不同的存储节点中,因此,基于上述生成存储卷的方式,能够使得分布式系统中不同的存储节点对应的存储空间的利用率达到相对平衡。而且,存储节点对应的存储空间由存储区块管理,故不同存储区块之间的存储空间利用率也能达到相对平衡。
基于上述可知,需要保证不同存储区块中的区块容量大小保持相对平衡,以避免出现区块容量较小的存储区块中的存储空间使用完,而区块容量较大的存储区块中还有剩余空间的情况,以提高系统资源的利用率。
由于磁盘集合是按照空间占用率从小到大的顺序遍历得到的,因此,加入磁盘集合中的第N个磁盘的空间占用率是磁盘集合中最大的。在实际应用过程中,可以根据加入磁盘集合的第N个磁盘的空间占用率,确定出第N个磁盘的剩余存储空间与数据块的容量之间的大小,若第N个磁盘的剩余存储空间不小于数据块的容量,说明磁盘集合中的所有磁盘的剩余存储空间都大于数据块的容量,表明磁盘集合中的所有磁盘都能够承载数据块,因此,可以将该磁盘集合中的磁盘确定为目标磁盘,用于承载存储卷的数据块。
若第N个磁盘的剩余存储空间小于数据块的容量,说明第N个磁盘的剩余存储空间不足以承载数据块。在保证不停写升级的前提下,分布式系统中磁盘剩余存储空间已不足以生成存储卷,即生成存储卷任务失败,并返回生成失败的提示信息。
由于磁盘加入磁盘集合的先后顺序标识了磁盘集合中各个磁盘对应的空间占用率由小到大的排列顺序,因此,若第N个加入磁盘集合的磁盘具备承载数据块的能力时,可以将磁盘集合中的N个磁盘作为目标磁盘,用于承载数据块,并生成存储卷。
在另一种确定目标磁盘的实现方式中,承载条件还可以包括磁盘集合中属于同一存储节点的磁盘数量为1。也就是说,避免了同一个存储节点的两个磁盘都处于磁盘集合中。基于此,根据磁盘集合中的磁盘生成的存储卷的所有数据块,由同一个存储节点承载的个数至多为1。当一个存储节点故障时,最多只有1个数据块受到影响,从而为存储卷带来了单机容灾特性,为存储卷正常提供服务提供了保障。
S203:根据所述目标存储节点生成所述存储卷。
确定出目标存储节点后,就可以利用目标存储节点承载N个数据块,并利用这N个数据块生成存储卷。其中,存储节点承载数据块的过程,就是对存储节点中的存储空间进行划分,划分出与数据块的容量大小对应的存储空间,作为存储卷的数据块。
基于上述S202,若确定出用于承载数据块的N个目标磁盘,则在一种可能的实现方式中,可以从N个目标磁盘中分别划取连续存储空间作为数据块,用于生成存储卷。其中,连续存储空间的大小通过数据块所标识,与数据块的容量大小对应。
由于存储卷的数据块需要数据记录和管理对应的存储地址空间,因此,将连续存储空间划分出来作为数据块,能够降低对于分布式系统中存储空间的管理成本。
基于上述生成存储卷的方法,当分布式系统需要升级时,可以以存储区块作为升级单位,使得存储卷最多只有最大承载数个数据块会受到所在存储区块升级的影响,而不会如相关技术中全部数据块均受升级影响,从而有可能并不会影响存储卷提供的业务服务。这种生成存储卷的方式在对分布式系统进行划区管理的前提下,使得分布式系统升级时不停写成为可能,为不停写升级打下基础,提高了分布式系统的服务可靠性。
另外,对于处于同一个存储区块内的所有存储节点,可以并发升级,随着分布式系统中接入的存储节点不断增多,即集群规模的不断扩大,集群总升级时间不会随之增长。相较于采用单机逐一升级的方式,以存储区块为单位进行升级的方式,实现了不停写升级的同时,也降低了完成集群升级的总耗时时长。
上述实施例提供了一种分布式系统中存储卷的生成方法,该方法在分布式系统中,利用M个存储区块对分布式系统中存储节点进行划区管理。针对待生成存储卷的N个数据块,从M个存储区块中确定出目标存储节点,从而利用目标存储节点承载N个数据块以生成存储卷。由于小于N的最大承载数限定了存储节点承载该存储卷所包括的N个数据块时,由同一个存储区块承载的数据块数量小于或等于最大承载数,使得该N个存储块会被分配到位于不同的存储区块的目标存储节点中。由此,在分布式系统进行升级时,若以存储区块依次进行升级方式进行,使得存储卷最多只有一部分数据块会受到所在存储区块升级的影响,而不会如相关技术中全部数据块均受升级影响,从而有可能并不会影响存储卷提供的业务服务。这种生成存储卷的方式在对分布式系统进行划区管理的前提下,使得分布式系统升级时不停写成为可能,为不停写升级打下基础,提高了分布式系统的服务可靠性。
上述实施例提供的分布式系统中存储卷的生成方法,在一种可能的应用场景中,分布式系统获取对应存储卷的存储对象,触发存储卷的生成工作。通过上述方式生成存储卷后,将通过存储对象编码生成的N份数据分别存储到存储卷的N个数据块中。其中,一个数据块存储一份数据。存储对象是指待存储的文件,系统可以以存储对象为单位进行读、写、删操作。例如,存储对象可以是Blob。
上述对存储对象进行编码的过程,在一种可能的方式中,可以对存储对象进行纠删编码(Erasure Code,EC)计算,以生成N份数据。具体的,当分布式系统获取到一个Blob时,将该Blob切分成K份数据切片,并通过EC算法计算出N-K份校验数据,共计N份数据,并将这N份数据分别存储到存储卷的N个数据块中。因此,N个数据块中包括K个用于存储业务数据的数据块,和N-K个用于存储校验数据的数据块,其中,校验数据用于对业务数据进行冗余校验。
基于上述S201,EC对应的KN值决定了一个存储卷的数据块的个数N。其中,K表示业务数据份数,即用于存储业务数据的数据块的个数为K;N表示编码数据总份数,则N-k表示校验数据份数,即用于存储校验数据的数据块的个数为N-K。例如,K15N20的EC表示:用于存储业务数据块需要15个,用于存储校验数据的数据块需要5个,即1个存储卷需要包括20个数据块。
EC的KN值与数据安全性具有一定的联系。例如,KN值为K15N20,对应的副本数为1.33,数据存储成本较低,数据安全性也较低;KN值为K9N18,对应的副本数为2,数据存储成本较高,数据安全性也较高。在实际应用过程中,可以根据具体的业务场景设定EC的KN值,在此不作任何限定。
由于存储卷的多个数据块均衡地分布在不同的存储区块中,因此,系统通过存储卷为存储对象提供存储服务时,多份数据被存储在不同存储区块的多个数据块中。当一个存储节点或者一个存储区块故障时,最多只有不超过最大承载数个数据块中受到影响,即损失的数据份数不超过最大承载数,为存储卷正常提供服务提供了保障,提高了系统的可靠性。
为了便于理解,下面结合图3所示的应用场景,对上述实施例提供的分布式系统中存储卷的生成方法进行介绍。
在图3所示的应用场景中,分布式系统包括400个存储节点,将这400个存储节点划分在40个存储区块内,每个存储节点配置有12个磁盘,且最大承载数为1。若使用K9N18的EC存储一个Blob,则待生成的存储卷包括18个数据块。
在选择18个数据块的过程中,先计算出系统中每个磁盘的空间占用率,然后,按照空间占用率从小到大的顺序进行遍历,若遍历到的磁盘与磁盘集合中的磁盘不属于同一个存储区块,且不属于同一个存储节点,则将该遍历到的磁盘加入磁盘集合,直到磁盘集合的总数量达到18个,停止遍历。
进而,若加入磁盘集合的第18个磁盘的剩余空间大于数据块的容量,则将磁盘集合中的18个磁盘作为目标磁盘,并利用这18个目标磁盘承载18个数据块,生成存储卷,用于存储Blob对应的18份数据。其中,9个数据块用于存储业务数据,9个数据块用于存储校验数据。
由于生成存储卷的多个数据块均衡地分布在不同的存储区块中,因此,利用该存储卷针对同一存储对象对应的多份数据也均衡地存储在多个存储区块中,故,当以存储区块进行升级时,受到影响的数据块不超过最大承载数,即受到影响的数据份数不超过最大承载数,这并不会影响服务的正常运行,实现了升级不停写的目的。
针对上述提供的方法,本申请实施例还提供了一种分布式系统中存储卷的生成装置。
参见图4,图4为本申请实施例提供的一种分布式系统中存储卷的生成装置的结构示意图。如图4所示,分布式系统包括的存储节点被划分在M个存储区块中,该生成装置400包括所述装置包括确定单元401和生成单元402:
所述确定单元401,用于确定待生成的存储卷所包括的N个数据块,M>N;
所述确定单元401,还用于从所述M个存储区块中确定用于承载所述N个数据块的目标存储节点,在所述N个数据块中,由同一个存储区块承载的数据块数量小于或等于最大承载数;所述最大承载数小于N;
所述生成单元402,用于根据所述目标存储节点生成所述存储卷。
其中,所述分布式系统中任意一个存储节点配置至少一个磁盘;所述确定单元401,用于:
确定所述分布式系统中磁盘的空间占用率;
根据所述空间占用率从所述分布式系统中确定用于承载所述N个数据块的N个目标磁盘;
将配置了所述N个目标磁盘的存储节点确定为所述目标存储节点。
其中,所述确定单元401,用于:
根据所述空间占用率从小到大的顺序对所述分布式系统的磁盘进行遍历;
若遍历到的磁盘符合承载条件,加入磁盘集合,所述承载条件包括所述磁盘集合中处于同一个存储区块的磁盘数量小于或等于所述最大承载数;
当所述磁盘集合中磁盘的总数量达到N个时停止所述遍历,并将所述磁盘集合中的磁盘确定为所述目标磁盘。
其中,当所述磁盘集合中磁盘的总数量达到N个时,所述确定单元401,还用于:
根据加入所述磁盘集合的第N个磁盘的空间占用率,确定所述第N个磁盘的剩余空间与所述数据块间的容量大小;
若所述第N个磁盘的剩余空间大于或等于所述数据块的容量,将所述磁盘集合中的磁盘确定为所述目标磁盘。
其特征在于,所述承载条件还包括所述磁盘集合中属于同一个存储节点的磁盘数量为1。
其中,所述生成单元402,用于从所述N个目标磁盘中分别划取连续存储空间用于生成所述存储卷,所述连续存储空间的大小通过所述数据块所标识。
其中,所述装置还包括升级单元:
所述升级单元,用于当所述分布式系统升级时,以存储区块为升级单元依次进行升级。
其中,所述装置还包括获取单元和存储单元:
所述获取单元,用于获取对应所述存储卷的存储对象;
所述存储单元,用于将通过所述存储对象编码生成的N份数据分别存储到所述N个数据块中,其中,一个数据块存储一份数据。
其中,所述N个数据块包括K个用于存储业务数据的数据块,和N-K个用于存储校验数据的数据块,所述校验数据用于对所述业务数据进行冗余校验。
上述实施例提供的分布式系统中存储卷的生成装置,在分布式系统中,利用M个存储区块对分布式系统中存储节点进行划区管理。针对待生成存储卷的N个数据块,从M个存储区块中确定出目标存储节点,从而利用目标存储节点承载N个数据块以生成存储卷。由于小于N的最大承载数限定了存储节点承载该存储卷所包括的N个数据块时,由同一个存储区块承载的数据块数量小于或等于最大承载数,使得该N个存储块会被分配到位于不同的存储区块的目标存储节点中。由此,在分布式系统进行升级时,若以存储区块依次进行升级方式进行,使得存储卷最多只有一部分数据块会受到所在存储区块升级的影响,而不会如相关技术中全部数据块均受升级影响,从而有可能并不会影响存储卷提供的业务服务。这种生成存储卷的方式在对分布式系统进行划区管理的前提下,使得分布式系统升级时不停写成为可能,为不停写升级打下基础,提高了分布式系统的服务可靠性。
本申请实施例还提供了一种用于于分布式系统中存储卷的生成服务器,下面将从硬件实体化的角度对本申请实施例提供的用于于分布式系统中存储卷的生成服务器进行介绍。
参见图5,图5是本申请实施例提供的一种服务器结构示意图,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)1422(例如,一个或一个以上处理器)和存储器1432,一个或一个以上存储应用程序1442或数据1444的存储介质1430(例如一个或一个以上海量存储设备)。其中,存储器1432和存储介质1430可以是短暂存储或持久存储。存储在存储介质1430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1422可以设置为与存储介质1430通信,在服务器1400上执行存储介质1430中的一系列指令操作。
服务器1400还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作系统1441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图5所示的服务器结构。
其中,分布式系统包括的存储节点被划分在M个存储区块中,则CPU 1422用于执行如下步骤:
确定待生成的存储卷所包括的N个数据块,M>N;
从所述M个存储区块中确定用于承载所述N个数据块的目标存储节点,在所述N个数据块中,由同一个存储区块承载的数据块数量小于或等于最大承载数;所述最大承载数小于N;
根据所述目标存储节点生成所述存储卷。
可选的,CPU 1422还可以执行本申请实施例中分布式系统中存储卷的生成方法任一具体实现方式的方法步骤。
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行上述实施例提供的分布式系统中存储卷的生成方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (12)
1.一种分布式系统中存储卷的生成方法,其特征在于,所述分布式系统包括的存储节点被划分在M个存储区块中,所述方法包括:
确定待生成的存储卷所包括的N个数据块,M>N;
从所述M个存储区块中确定用于承载所述N个数据块的目标存储节点,在所述N个数据块中,由同一个存储区块承载的数据块数量小于或等于最大承载数;所述最大承载数小于N;
根据所述目标存储节点生成所述存储卷。
2.根据权利要求1所述的方法,其特征在于,所述分布式系统中任意一个存储节点配置至少一个磁盘;所述从所述M个存储区块中确定用于承载所述N个数据块的目标存储节点,包括:
确定所述分布式系统中磁盘的空间占用率;
根据所述空间占用率从所述分布式系统中确定用于承载所述N个数据块的N个目标磁盘;
将配置了所述N个目标磁盘的存储节点确定为所述目标存储节点。
3.根据权利要求2所述的方法,其特征在于,所述根据所述空间占用率从所述分布式系统中确定用于承载所述N个数据块的目标磁盘,包括:
根据所述空间占用率从小到大的顺序对所述分布式系统的磁盘进行遍历;
若遍历到的磁盘符合承载条件,加入磁盘集合,所述承载条件包括所述磁盘集合中处于同一个存储区块的磁盘数量小于或等于所述最大承载数;
当所述磁盘集合中磁盘的总数量达到N个时停止所述遍历,并将所述磁盘集合中的磁盘确定为所述目标磁盘。
4.根据权利要求3所述的方法,其特征在于,当所述磁盘集合中磁盘的总数量达到N个时,所述方法还包括:
根据加入所述磁盘集合的第N个磁盘的空间占用率,确定所述第N个磁盘的剩余空间与所述数据块间的容量大小;
若所述第N个磁盘的剩余空间大于或等于所述数据块的容量,执行所述将所述磁盘集合中的磁盘确定为所述目标磁盘的步骤。
5.根据权利要求3所述的方法,其特征在于,所述承载条件还包括所述磁盘集合中属于同一个存储节点的磁盘数量为1。
6.根据权利要求2所述的方法,其特征在于,所述根据所述目标存储节点生成所述存储卷,包括:
从所述N个目标磁盘中分别划取连续存储空间用于生成所述存储卷,所述连续存储空间的大小通过所述数据块所标识。
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述方法还包括:
当所述分布式系统升级时,以存储区块为升级单元依次进行升级。
8.根据权利要求1-6任意一项所述的方法,其特征在于,所述方法还包括:
获取对应所述存储卷的存储对象;
将通过所述存储对象编码生成的N份数据分别存储到所述N个数据块中,其中,一个数据块存储一份数据。
9.根据权利要求1-6任意一项所述的方法,其特征在于,所述N个数据块包括K个用于存储业务数据的数据块,和N-K个用于存储校验数据的数据块,所述校验数据用于对所述业务数据进行冗余校验。
10.一种分布式系统中存储卷的生成装置,其特征在于,所述分布式系统包括的存储节点被划分在M个存储区块中,所述装置包括确定单元和生成单元:
所述确定单元,用于确定待生成的存储卷所包括的N个数据块,M>N;
所述确定单元,还用于从所述M个存储区块中确定用于承载所述N个数据块的目标存储节点,在所述N个数据块中,由同一个存储区块承载的数据块数量小于或等于最大承载数;所述最大承载数小于N;
所述生成单元,用于根据所述目标存储节点生成所述存储卷。
11.一种用于分布式系统中存储卷的生成设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-9任意一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-9任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010501460.8A CN111666047A (zh) | 2020-06-04 | 2020-06-04 | 一种分布式系统中存储卷的生成方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010501460.8A CN111666047A (zh) | 2020-06-04 | 2020-06-04 | 一种分布式系统中存储卷的生成方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111666047A true CN111666047A (zh) | 2020-09-15 |
Family
ID=72386163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010501460.8A Pending CN111666047A (zh) | 2020-06-04 | 2020-06-04 | 一种分布式系统中存储卷的生成方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666047A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113204314A (zh) * | 2021-03-30 | 2021-08-03 | 海南视联通信技术有限公司 | 一种数据存储的方法和装置 |
CN113495889A (zh) * | 2021-07-07 | 2021-10-12 | 浙江大华技术股份有限公司 | 一种分布式对象存储方法、装置、电子设备及存储介质 |
CN113885805A (zh) * | 2021-10-19 | 2022-01-04 | 上海达梦数据库有限公司 | 一种区块分配方法、装置、设备及存储介质 |
-
2020
- 2020-06-04 CN CN202010501460.8A patent/CN111666047A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113204314A (zh) * | 2021-03-30 | 2021-08-03 | 海南视联通信技术有限公司 | 一种数据存储的方法和装置 |
CN113495889A (zh) * | 2021-07-07 | 2021-10-12 | 浙江大华技术股份有限公司 | 一种分布式对象存储方法、装置、电子设备及存储介质 |
CN113495889B (zh) * | 2021-07-07 | 2024-03-15 | 浙江大华技术股份有限公司 | 一种分布式对象存储方法、装置、电子设备及存储介质 |
CN113885805A (zh) * | 2021-10-19 | 2022-01-04 | 上海达梦数据库有限公司 | 一种区块分配方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11169723B2 (en) | Data storage system with metadata check-pointing | |
US11444641B2 (en) | Data storage system with enforced fencing | |
US11467732B2 (en) | Data storage system with multiple durability levels | |
US20200404055A1 (en) | Data storage system with redundant internal networks | |
US11301162B2 (en) | Balancing resiliency and performance by selective use of degraded writes and spare capacity in storage systems | |
US8918478B2 (en) | Erasure coded storage aggregation in data centers | |
US10509601B2 (en) | Data storage system with multi-tier control plane | |
US11182096B1 (en) | Data storage system with configurable durability | |
US20200218617A1 (en) | Data Rebuild Using Dynamic Peer Work Allocation | |
CN111666047A (zh) | 一种分布式系统中存储卷的生成方法和相关装置 | |
US10356150B1 (en) | Automated repartitioning of streaming data | |
US11416166B2 (en) | Distributed function processing with estimate-based scheduler | |
CN110096220B (zh) | 一种分布式存储系统、数据处理方法和存储节点 | |
CN108733311B (zh) | 用于管理存储系统的方法和设备 | |
CN112764661B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US10505862B1 (en) | Optimizing for infrastructure diversity constraints in resource placement | |
US10776173B1 (en) | Local placement of resource instances in a distributed system | |
US10846094B2 (en) | Method and system for managing data access in storage system | |
US11269745B2 (en) | Two-node high availability storage system | |
US10990464B1 (en) | Block-storage service supporting multi-attach and health check failover mechanism | |
CN109840051B (zh) | 一种存储系统的数据存储方法及装置 | |
CN113032136A (zh) | 多云环境下电网分析任务调度方法和装置 | |
CN114528139A (zh) | 数据处理和节点部署的方法、装置、电子设备及介质 | |
US11175959B2 (en) | Determine a load balancing mechanism for allocation of shared resources in a storage system by training a machine learning module based on number of I/O operations | |
CN110196682B (zh) | 数据管理方法、装置、计算设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40028554 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |