CN107391039B - 一种数据对象存储方法和装置 - Google Patents

一种数据对象存储方法和装置 Download PDF

Info

Publication number
CN107391039B
CN107391039B CN201710625288.5A CN201710625288A CN107391039B CN 107391039 B CN107391039 B CN 107391039B CN 201710625288 A CN201710625288 A CN 201710625288A CN 107391039 B CN107391039 B CN 107391039B
Authority
CN
China
Prior art keywords
object storage
storage devices
space occupancy
storage space
storage
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
Application number
CN201710625288.5A
Other languages
English (en)
Other versions
CN107391039A (zh
Inventor
魏传程
郭春庭
刘翔宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN201710625288.5A priority Critical patent/CN107391039B/zh
Publication of CN107391039A publication Critical patent/CN107391039A/zh
Application granted granted Critical
Publication of CN107391039B publication Critical patent/CN107391039B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Abstract

本发明公开了一种数据对象存储方法及装置,其中,该方法包括:重复判断在所有的对象存储设备中,是否有对象存储设备的存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值,根据在可扩展散列下的受控复制算法重新确定所对应的一个归置组所对应的对象存储设备,直到没有对象存储设备的存储空间占用率与第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值为止;将一个数据对象及其副本分别存储到除了被判断为其存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中,使得所存储到的对象存储设备之间保持了存储空间占用率接近。

Description

一种数据对象存储方法和装置
技术领域
本发明涉及数据存储技术,尤指一种数据对象存储方法和装置。
背景技术
Ceph系统是一种开源的分布式存储系统,用于采用成百上千台存储设备存储PB(petabyte的缩写,即2的50次方的字节)级别的数据。Ceph系统必须使在这些存储设备上分布的数据和负载平衡,以提高资源利用率,使系统的性能最有效地发挥,并且Ceph系统需要处理系统的存储硬件扩展和存储硬件失效。为了保证Ceph系统中的各个存储设备负载均衡,因此,需要使得在各个存储设备中均将新数据和旧数据混合在一起进行存储。但是简单的散列(Hash)分布不能有效处理在Ceph系统中的存储设备的数量的变化,导致存储设备中的大量数据迁移。针对以上的现象,设计出了在Ceph系统中使用的CRUSH(ControlledReplication Under Scalable Hashing,在可扩展散列下的受控复制)算法,CRUSH算法是一种可扩展的伪随机数据分布算法,可以在没有中心设备控制的情况下,有效地将数据对象映射到存储设备上。因为Ceph系统的结构是动态变化的,所以CRUSH需要能够处理在Ceph系统中添加或移除存储设备,并且使得由于添加或移除存储设备而导致的数据迁移最小化。CRUSH算法能够在具有层级结构的存储设备集群中有效的分布需要存储的对象(Object)的副本。CRUSH算法实现了一种伪随机(确定性)的函数,这个函数的输入量参数是某个数据对象的标识(Object ID)或数据对象集群的标识(Object Group ID),这个函数的输出量对应于Ceph系统存储设备集群中的一组对象存储设备(Object Storage Device,简称为OSD,可以是磁盘(disk)中的一个分区,或者是一整块磁盘),以用于保存object的副本。为了实现以上的对象与对象存储设备对应的过程,CRUSH需要用于描述存储设备集群的层级结构的集群图(cluster map,用于表示对象存储设备集群中的数据分布),以及对象副本的分布策略(被称为rule)。
但是,并不能直接将对象存储进对象存储设备中,因为对象的大小非常小,在一个大规模的存储设备集群中可能有几百到几千万个对象。在存储设备集群中对大量的对象进行遍历寻址,速度将会非常缓慢;如果直接通过某种固定映射的Hash算法将对象映射到对象存储设备上,那么对象与对象存储设备的映射关系是固定的,当这个对象存储设备损坏时,对象无法自动迁移至其他对象存储设备。为了解决这些问题,Ceph系统引入了归置组(Placement Group,简称为PG)的概念。归置组是抽象的存储节点,在数据寻址时,每个对象都会固定映射到一个归置组中,所以当需要寻找一个对象时,只需要先找到对象所属的归置组,然后遍历这个归置组,而无需遍历所有对象。而且在数据迁移时,也是以归置组作为基本单位进行迁移,Ceph系统不会直接操作对象。
在将数据Ceph系统的过程中,首先将文件切分成多个对象,通过计算每个对象的散列值(Hash值)并且取模,使得对象映射到归置组,再由归置组映射到一组对象存储设备(OSD Set),其中,对象存储设备的数量是由设置在对象和归置组之间的命名空间(Pool)的数量决定的。每个命名空间对应于有多个不同归置组,其中的一个归置组映射到一组对象存储设备(OSD set),因此,对象存储设备的数量是由pool与副本之和的数量决定的,其中一个对象存储设备存储有一个对象(称为Primary),其他对象存储设备存储该对象的副本(称为Replicas)。
从以上的描述可以看出,在Ceph系统的架构中,当Ceph系统的客户端直接读或者写存放在对象存储设备上存储的对象时,需要经过(Pool,Object)→(Pool,PG)→OSD set这个完整的链路,Ceph系统的客户端才能获得目标数据对象的位置。
当前CRUSH算法的缺陷在于:由于归置组与对象存储设备的映射关系完全是基于伪随机算法,理论上来说,当归置组的数量很大并且对象存储设备的数量也很大的时候,每个对象存储设备对应的归置组的数量趋近于一致,但是在实际生产环境中,每个对象存储设备对应的归置组的数量会有较大差距,对象存储设备的空间使用率的最大差距可达20%。
例如,对于Ceph系统来说,默认一个对象存储设备的存储空间占用率达到85%时为接近饱和(near full)状态,占用率达到95%为饱和(full)状态,但是其他对象存储设备的存储空间占用率可能只有65%或者75%,然而,在这种情况下,Ceph系统中的存储设备集群整体接近于无法继续存入数据,造成很大的空间浪费。在使用三副本(即,一个数据对象与该数据对象的两个副本)的情况下,在达到接近饱和状态时,实际占用的存储空间仅为存储设备容量的25%,在达到饱和状态时,实际占用的存储空间仅为存储设备容量的28.3%。在使用两副本(即,一个数据对象与该数据对象的一个副本)的情况下,在达到接近饱和的状态时,实际占用的存储空间仅为存储设备容量的37.5%,在达到饱和状态时,实际占用空间仅为存储设备容量的42.5%。
发明内容
为了解决上述技术问题,本发明提供了一种数据对象存储方法和装置。使得数据对象及其副本所存储到的对象存储设备之间保持了存储空间占用率接近,Ceph系统的各个对象存储设备的存储空间占用率的差距限于预设的范围内,提高了Ceph系统的各个对象存储设备的存储效率。
为了达到本发明目的,本发明提供了一种数据对象存储方法,应用于Ceph分布式存储系统,所述方法包括:
在将一个数据对象存储到所述Ceph分布式存储系统中的对象存储设备的时候,依据所述一个数据对象及其副本两者的数量之和是第一数量,确定所述一个数据对象及其副本所映射的第一数量的归置组根据在可扩展散列下的受控复制算法分别对应的第一数量的对象存储设备各自的存储空间占用率;
重复执行下列过程,直到判断为在与所述归置组对应的对象存储设备的累计数量从所述第一数量递增到第二数量的时候,在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与所述第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值为止:判断在所有的对象存储设备中,是否有对象存储设备的存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值;针对其存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的所述对象存储设备所对应的一个归置组,根据在可扩展散列下的受控复制算法重新确定所述所对应的一个归置组所对应的对象存储设备;
在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与所述第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值的时候,将所述一个数据对象及其副本分别存储到在所述第二数量的对象存储设备中的除了被判断为其存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中。
进一步地,在将所述一个数据对象及其副本分别存储到在所述第二数量的对象存储设备中的除了被判断为其存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中的步骤之后,所述方法还包括:将存储有所述数据对象的各个对象存储设备各自的存储空间占用率以及与所述数据对象的对应关系保存到集群图。
进一步地,在所述根据在可扩展散列下的受控复制算法重新确定所述所对应的一个归置组所对应的对象存储设备的步骤中,所述在可扩展散列下的受控复制算法的对应法则是散列函数,自变量为所述所对应的一个归置组的标识、所述与所述归置组对应的对象存储设备的累计数量、以及包括有所述对象存储设备的容器的层级标识。
为了达到本发明目的,本发明还提供了一种数据对象存储装置,该数据对象存储装置包括:
空间占用率确定模块,所述空间占用率确定模块设置成:在将一个数据对象存储到所述Ceph分布式存储系统中的对象存储设备的时候,依据所述一个数据对象及其副本两者的数量之和是第一数量,确定所述一个数据对象及其副本所映射的第一数量的归置组根据在可扩展散列下的受控复制算法分别对应的第一数量的对象存储设备各自的存储空间占用率;
空间占用率比较模块,所述空间占用率比较模块设置成:重复执行下列过程,直到判断为在与所述归置组对应的对象存储设备的累计数量从所述第一数量递增到第二数量的时候,在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与所述第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值为止:判断在所有的对象存储设备中,是否有对象存储设备的存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值;针对其存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的所述对象存储设备所对应的一个归置组,根据在可扩展散列下的受控复制算法重新确定所述所对应的一个归置组所对应的对象存储设备;以及
数据对象存储模块,所述数据对象存储模块设置成:在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与所述第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值的时候,将所述一个数据对象及其副本分别存储到在所述第二数量的对象存储设备中的除了被判断为其存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中。
进一步地,所述数据对象存储装置还包括:
集群图保存模块,所述集群图保存模块设置成:在所述数据对象存储模块将所述一个数据对象及其副本分别存储到在所述第二数量的对象存储设备中的除了被判断为其存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中之后,所述集群图保存模块将存储有所述数据对象的各个对象存储设备各自的存储空间占用率以及与所述数据对象的对应关系保存到集群图。
进一步地,在可扩展散列下的受控复制算法的对应法则是散列函数,自变量为所述所对应的一个归置组的标识、所述与所述归置组对应的对象存储设备的累计数量、以及包括有所述对象存储设备的容器的层级标识。
本发明实施例的有益效果在于:在将一个数据对象存储到所述Ceph分布式存储系统中的对象存储设备的时候,首先确定对应的对象存储设备各自的存储空间占用率;然后重复地判断这些对象存储设备中是否有对象存储设备的存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值,如果有的话,则取消这个对象存储设备与数据对象的对应关系,并且增加对象存储设备,与数据对象进行对应,直到没有对象存储设备的存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值;将数据对象及其副本存储到除了被判断为其存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中,这样,数据对象及其副本所存储到的对象存储设备之间保持了存储空间占用率接近,使得Ceph系统的各个对象存储设备的存储空间占用率的差距限于预设的范围内,提高了Ceph系统的各个对象存储设备的存储效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是本发明的一个实施例提供的数据对象存储方法的流程图;
图2是本发明的一个可选的实施例提供的数据对象存储方法的流程图;
图3是本发明实施例提供的数据对象存储装置的框图;
图4是本发明的一个可选的实施例提供了数据对象存储装置的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是本发明的一个实施例提供的数据对象存储方法的流程图,该方法应用于Ceph分布式存储系统,该方法包括步骤S101、步骤S105以及步骤S109。
步骤S101,在将一个数据对象存储到Ceph分布式存储系统中的对象存储设备的时候,依据一个数据对象及其副本两者的数量之和是第一数量,确定一个数据对象及其副本所映射的第一数量的归置组根据在可扩展散列下的受控复制算法分别对应的第一数量的对象存储设备各自的存储空间占用率。
在此,数据对象指的是待存储的数据被切分成对象。在步骤S101中,首先确定数据对象和该数据对象的副本这两者的数量之和是第一数量(例如,在所谓“三副本”的情况下,具有一个数据对象与该数据对象的两个副本),然后确定这个数据对象及其副本分别映射的归置组(PG)根据在可扩展散列下的受控复制算法(CRUSH算法)分别对应的第一数量的对象存储设备(OSD)各自的存储空间占用率。归置组是抽象的存储节点,在数据寻址时,每个对象都会固定映射到一个归置组中,所以当需要寻找一个对象时,只需要先找到对象所属的归置组,然后遍历这个归置组,而无需遍历所有对象。而且在数据迁移时,也是以归置组作为基本单位进行迁移,Ceph系统不会直接操作对象。通过步骤S101,可以将数据对象和该数据对象的副本对应于对象存储设备的存储空间占用率,以便于在后续的步骤中判断对象存储设备的存储空间占用率。
步骤S105,重复执行下列过程,直到判断为在与归置组对应的对象存储设备的累计数量从第一数量递增到第二数量的时候,在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值为止:判断在所有的对象存储设备中,是否有对象存储设备的存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值;针对其存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备所对应的一个归置组,根据在可扩展散列下的受控复制算法重新确定所对应的一个归置组所对应的对象存储设备。
需要说明的是,在步骤S105中,与归置组对应的对象存储设备的累计数量指的是与归置组曾经对应的对象存储设备数量与当前对应的对象存储设备的数量之和(曾经对应的对象存储设备与当前对应的对象存储设备不重叠),例如,在以上提到的三副本的情况下,曾经对应的对象存储设备的数量是5个,当前对应的对象存储设备的数量是3个,则目前的对象存储设备的累计数量是8个。
在步骤S105中,首先判断在所有的对象存储设备中,是否有对象存储设备的存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值。这里,对象存储设备的存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比等价于在这个对象存储设备中的归置组的数量与在所有的对象存储设备中的各自的归置组的数量的平均值之比,因为每个对象存储设备都对应于数量庞大的归置组,因此,在归置组的数量趋向于无穷的时候,可以认为每个归置组所对应的所占用的存储空间相同,因此,可以采用归置组的数量来表达对象存储设备的存储空间占用率。预设值是一个比值,例如是1.05(即,某个对象存储设备的存储空间占用率比所有的对象存储设备各自的存储空间占用率的平均值高5%)。当以上的比值高于预设值时,该比值所对应的被除数(即,所对应的的对象存储设备)相对于作为除数的所有的对象存储设备这个整体,是已超出预设的存储空间占用率的。因此,对于这种情况的处理方式与对于冲突(这个数据对象已经在结果中,已被选择)、故障(即,对象存储设备发生故障,不能被选择)、超载(即,对象存储设备的存储空间占用率超过阈值,没有剩余的存储空间可供保存数据对象)这三种情况的处理方式相同,也就是说,取消数据对象与对象存储设备之间的对应关系,采用CRUSH算法重新建立这个数据对象与其他对象存储设备之间的对应关系,这时,归置组对应的对象存储设备的累计数量递增了1。然后重复以上判断过程,直到判断为在与归置组对应的对象存储设备的累计数量从第一数量递增到第二数量的时候,在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值为止。应当注意的是,第二数量并非是一个固定的数量,而是基于CRUSH算法将数据对象映射到的对象存储设备的存储空间占用率而定的,当所有的对象存储设备的存储空间占用率与第二数量的对象存储设备各自的存储空间占用率的平均值之比没有大于预设值的时候,说明所有的对象存储设备的存储空间占用率比较平均,在存储这个数据对象时,不会使得各个对象存储空间设备的存储空间占用率的差异越发拉大,这时,与归置组对应的对象存储设备的累计数量是第二数量。
步骤S109,在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值的时候,将一个数据对象及其副本分别存储到在第二数量的对象存储设备中的除了被判断为其存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中。
在步骤S109中,将一个数据对象及其副本分别存储到在第二数量的对象存储设备中的除了被判断为其存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中。这样可以排除将数据对象存储于在先前的判断过程中被判断为存储空间占用率之比超过预设值的对象存储设备,有益于平衡各个对象存储设备的存储空间占用率。
本发明实施例的有益效果在于:在将一个数据对象存储到Ceph分布式存储系统中的对象存储设备的时候,首先确定对应的对象存储设备各自的存储空间占用率;然后重复地判断这些对象存储设备中是否有对象存储设备的存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值,如果有的话,则取消这个对象存储设备与数据对象的对应关系,并且增加对象存储设备,与数据对象进行对应,直到没有对象存储设备的存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值;将数据对象及其副本存储到除了被判断为其存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中,这样,数据对象及其副本所存储到的对象存储设备之间保持了存储空间占用率接近,使得Ceph系统的各个对象存储设备的存储空间占用率的差距限于预设的范围内,提高了Ceph系统的各个对象存储设备的存储效率。
理想状态下,在归置组的数量趋向于无穷的时候,Ceph系统的各个对象存储设备的存储空间占用率趋近于相同。
进一步地,如图2所示,在一个可选的实施例中,在步骤S109之后,该方法还包括步骤S113:将存储有数据对象的各个对象存储设备各自的存储空间占用率以及与数据对象的对应关系保存到集群图。
集群图用于表示对象存储设备集群中的数据分布,CRUSH算法需要根据集群图以及副本分布策略(rule)计算数据对象与对象存储设备的对应关系。此外,在读取对象存储设备的数据对象时,也需要将集群图作为索引。在此,Ceph系统的监控节点(Mon节点)中保存了最新的版本集群数据分布图的原文件及其副本。
进一步地,在一个可选的实施例中,在步骤105中,在可扩展散列下的受控复制算法的对应法则是散列函数,自变量为所对应的一个归置组的标识、与归置组对应的对象存储设备的累计数量、以及包括有对象存储设备的容器的层级标识。
散列函数可以表示为散列函数hash(x,r,i),其中,x是归置组的标识,r是与归置组对应的对象存储设备的累计数量,i是有对象存储设备的容器(bucket)的标识。容器用于表示对象存储设备的层级关系,一个容器中包括了处于相同层级的对象存储设备。
另一方面,本发明实施例提供了一种数据对象存储装置,图3是本发明的这个实施例提供的数据对象存储装置的框图,如图3所示,该数据对象存储装置包括下列模块:
空间占用率确定模块201,设置成:在将一个数据对象存储到Ceph分布式存储系统中的对象存储设备的时候,依据一个数据对象及其副本两者的数量之和是第一数量,确定一个数据对象及其副本所映射的第一数量的归置组根据在可扩展散列下的受控复制算法分别对应的第一数量的对象存储设备各自的存储空间占用率;
空间占用率比较模块205,设置成:重复执行下列过程,直到判断为在与归置组对应的对象存储设备的累计数量从第一数量递增到第二数量的时候,在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值为止:判断在所有的对象存储设备中,是否有对象存储设备的存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值;针对其存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备所对应的一个归置组,根据在可扩展散列下的受控复制算法重新确定所对应的一个归置组所对应的对象存储设备;以及
数据对象存储模块209,设置成:在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值的时候,将一个数据对象及其副本分别存储到在第二数量的对象存储设备中的除了被判断为其存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中。
空间占用率确定模块201首先确定数据对象和该数据对象的副本这两者的数量之和是第一数量(例如,在所谓“三副本”的情况下,具有一个数据对象与该数据对象的两个副本),然后确定这个数据对象及其副本分别映射的归置组(PG)根据在可扩展散列下的受控复制算法(CRUSH算法)分别对应的第一数量的对象存储设备(OSD)各自的存储空间占用率。归置组是抽象的存储节点,在数据寻址时,每个对象都会固定映射到一个归置组中,所以当需要寻找一个对象时,只需要先找到对象所属的归置组,然后遍历这个归置组,而无需遍历所有对象。而且在数据迁移时,也是以归置组作为基本单位进行迁移,Ceph系统不会直接操作对象。空间占用率确定模块201可以将数据对象和该数据对象的副本对应于对象存储设备的存储空间占用率,以便于在后续的步骤中判断对象存储设备的存储空间占用率。
需要说明的是,与归置组对应的对象存储设备的累计数量指的是与归置组曾经对应的对象存储设备数量与当前对应的对象存储设备的数量之和(曾经对应的对象存储设备与当前对应的对象存储设备不重叠),例如,在以上提到的三副本的情况下,曾经对应的对象存储设备的数量是5个,当前对应的对象存储设备的数量是3个,则目前的对象存储设备的累计数量是8个。
空间占用率比较模块205首先判断在所有的对象存储设备中,是否有对象存储设备的存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值。这里,对象存储设备的存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比等价于在这个对象存储设备中的归置组的数量与在所有的对象存储设备中的各自的归置组的数量的平均值之比,因为每个对象存储设备都对应于数量庞大的归置组,因此,在归置组的数量趋向于无穷的时候,可以认为每个归置组所对应的所占用的存储空间相同,因此,可以采用归置组的数量来表达对象存储设备的存储空间占用率。预设值是一个比值,例如是1.05(即,某个对象存储设备的存储空间占用率比所有的对象存储设备各自的存储空间占用率的平均值高5%)。当以上的比值高于预设值时,该比值所对应的被除数(即,所对应的的对象存储设备)相对于作为除数的所有的对象存储设备这个整体,是已超出预设的存储空间占用率的。因此,对于这种情况的处理方式与对于冲突(这个数据对象已经在结果中,已被选择)、故障(即,对象存储设备发生故障,不能被选择)、超载(即,对象存储设备的存储空间占用率超过阈值,没有剩余的存储空间可供保存数据对象)这三种情况的处理方式相同,也就是说,取消数据对象与对象存储设备之间的对应关系,采用CRUSH算法重新建立这个数据对象与其他对象存储设备之间的对应关系,这时,归置组对应的对象存储设备的累计数量递增了1。然后重复以上判断过程,直到判断为在与归置组对应的对象存储设备的累计数量从第一数量递增到第二数量的时候,在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值为止。应当注意的是,第二数量并非是一个固定的数量,而是基于CRUSH算法将数据对象映射到的对象存储设备的存储空间占用率而定的,当所有的对象存储设备的存储空间占用率与第二数量的对象存储设备各自的存储空间占用率的平均值之比没有大于预设值的时候,说明所有的对象存储设备的存储空间占用率比较平均,在存储这个数据对象时,不会使得各个对象存储空间设备的存储空间占用率的差异越发拉大,这时,与归置组对应的对象存储设备的累计数量是第二数量。
数据对象存储模块209将一个数据对象及其副本分别存储到在第二数量的对象存储设备中的除了被判断为其存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中。这样可以排除将数据对象存储于在先前的判断过程中被判断为存储空间占用率之比超过预设值的对象存储设备,有益于平衡各个对象存储设备的存储空间占用率。
本发明实施例的有益效果在于:在将一个数据对象存储到Ceph分布式存储系统中的对象存储设备的时候,首先确定对应的对象存储设备各自的存储空间占用率;然后重复地判断这些对象存储设备中是否有对象存储设备的存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值,如果有的话,则取消这个对象存储设备与数据对象的对应关系,并且增加对象存储设备,与数据对象进行对应,直到没有对象存储设备的存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值;将数据对象及其副本存储到除了被判断为其存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中,这样,数据对象及其副本所存储到的对象存储设备之间保持了存储空间占用率接近,使得Ceph系统的各个对象存储设备的存储空间占用率的差距限于预设的范围内,提高了Ceph系统的各个对象存储设备的存储效率。
理想状态下,在归置组的数量趋向于无穷的时候,Ceph系统的各个对象存储设备的存储空间占用率趋近于相同。
进一步地,如图4所示,在一个可选的实施例中,该装置还包括集群图保存模块213,集群图保存模块213设置成:在数据对象存储模块209将一个数据对象及其副本分别存储到在第二数量的对象存储设备中的除了被判断为其存储空间占用率与所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中之后,集群图保存模块213将存储有数据对象的各个对象存储设备各自的存储空间占用率以及与数据对象的对应关系保存到集群图。
集群图用于表示对象存储设备集群中的数据分布,CRUSH算法需要根据集群图以及副本分布策略(rule)计算数据对象与对象存储设备的对应关系。此外,在读取对象存储设备的数据对象时,也需要将集群图作为索引。
进一步地,在一个可选的实施例中,在可扩展散列下的受控复制算法的对应法则是散列函数,自变量为所对应的一个归置组的标识、与归置组对应的对象存储设备的累计数量、以及包括有对象存储设备的容器的层级标识。
散列函数可以表示为散列函数hash(x,r,i),其中,x是归置组的标识,r是与归置组对应的对象存储设备的累计数量,i是有对象存储设备的容器(bucket)的标识。容器用于表示对象存储设备的层级关系,一个容器中包括了处于相同层级的对象存储设备。
虽然本发明所揭露的实施方式如上,但的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (6)

1.一种数据对象存储方法,应用于Ceph分布式存储系统,其特征在于,所述方法包括:
在将一个数据对象存储到所述Ceph分布式存储系统中的对象存储设备的时候,依据所述一个数据对象及其副本两者的数量之和是第一数量,确定所述一个数据对象及其副本所映射的第一数量的归置组根据在可扩展散列下的受控复制算法分别对应的第一数量的对象存储设备各自的存储空间占用率;
重复执行下列过程,直到判断为在与所述归置组对应的对象存储设备的累计数量从所述第一数量递增到第二数量的时候,在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与所述第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值为止:判断在所有的对象存储设备中,是否有对象存储设备的存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值;针对其存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的所述对象存储设备所对应的一个归置组,根据在可扩展散列下的受控复制算法重新确定所述所对应的一个归置组所对应的对象存储设备;
其中,累计数量是指在与归置组曾经对应的对象存储设备与当前对应的对象存储设备不重叠的情况下,曾经对应的对象存储设备与当前对应的对象存储设备的数量之和;
在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与所述第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值的时候,将所述一个数据对象及其副本分别存储到在所述第二数量的对象存储设备中的除了在先前的判断过程中被判断为其存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中。
2.根据权利要求1所述的数据对象存储方法,其特征在于,在将所述一个数据对象及其副本分别存储到在所述第二数量的对象存储设备中的除了在先前的判断过程中被判断为其存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中的步骤之后,所述方法还包括:将存储有所述数据对象的各个对象存储设备各自的存储空间占用率以及与所述数据对象的对应关系保存到集群图。
3.根据权利要求1所述的数据对象存储方法,其中,在所述根据在可扩展散列下的受控复制算法重新确定所述所对应的一个归置组所对应的对象存储设备的步骤中,所述在可扩展散列下的受控复制算法的对应法则是散列函数,自变量为所述所对应的一个归置组的标识、所述与所述归置组对应的对象存储设备的累计数量、以及包括有所述对象存储设备的容器的层级标识。
4.一种数据对象存储装置,其特征在于,包括:
空间占用率确定模块,所述空间占用率确定模块设置成:在将一个数据对象存储到Ceph分布式存储系统中的对象存储设备的时候,依据所述一个数据对象及其副本两者的数量之和是第一数量,确定所述一个数据对象及其副本所映射的第一数量的归置组根据在可扩展散列下的受控复制算法分别对应的第一数量的对象存储设备各自的存储空间占用率;
空间占用率比较模块,所述空间占用率比较模块设置成:重复执行下列过程,直到判断为在与所述归置组对应的对象存储设备的累计数量从所述第一数量递增到第二数量的时候,在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与所述第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值为止:判断在所有的对象存储设备中,是否有对象存储设备的存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值;针对其存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的所述对象存储设备所对应的一个归置组,根据在可扩展散列下的受控复制算法重新确定所述所对应的一个归置组所对应的对象存储设备;以及
数据对象存储模块,所述数据对象存储模块设置成:在第二数量的对象存储设备中没有对象存储设备的存储空间占用率与所述第二数量的对象存储设备各自的存储空间占用率的平均值之比大于预设值的时候,将所述一个数据对象及其副本分别存储到在所述第二数量的对象存储设备中的除了在先前的判断过程中被判断为其存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中;
其中,累计数量是指在与归置组曾经对应的对象存储设备与当前对应的对象存储设备不重叠的情况下,曾经对应的对象存储设备与当前对应的对象存储设备的数量之和。
5.根据权利要求4所述的数据对象存储装置,其特征在于,所述数据对象存储装置还包括:
集群图保存模块,所述集群图保存模块设置成:在所述数据对象存储模块将所述一个数据对象及其副本分别存储到在所述第二数量的对象存储设备中的除了在先前的判断过程中被判断为其存储空间占用率与所述所有的对象存储设备各自的存储空间占用率的平均值之比大于预设值的对象存储设备之外的对象存储设备中之后,所述集群图保存模块将存储有所述数据对象的各个对象存储设备各自的存储空间占用率以及与所述数据对象的对应关系保存到集群图。
6.根据权利要求4所述的数据对象存储装置,其中,在可扩展散列下的受控复制算法的对应法则是散列函数,自变量为所述所对应的一个归置组的标识、所述与所述归置组对应的对象存储设备的累计数量、以及包括有所述对象存储设备的容器的层级标识。
CN201710625288.5A 2017-07-27 2017-07-27 一种数据对象存储方法和装置 Active CN107391039B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710625288.5A CN107391039B (zh) 2017-07-27 2017-07-27 一种数据对象存储方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710625288.5A CN107391039B (zh) 2017-07-27 2017-07-27 一种数据对象存储方法和装置

Publications (2)

Publication Number Publication Date
CN107391039A CN107391039A (zh) 2017-11-24
CN107391039B true CN107391039B (zh) 2020-05-15

Family

ID=60342572

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710625288.5A Active CN107391039B (zh) 2017-07-27 2017-07-27 一种数据对象存储方法和装置

Country Status (1)

Country Link
CN (1) CN107391039B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109002259B (zh) * 2018-06-28 2021-03-09 苏州浪潮智能科技有限公司 一种归置组所属硬盘分配方法、系统、装置及存储介质
CN109002264B (zh) * 2018-07-24 2021-06-29 郑州云海信息技术有限公司 一种基于系统扩容确定数据分布的方法和装置
CN109960470B (zh) * 2019-03-28 2022-07-29 新华三技术有限公司 数据处理方法、装置及领导节点
CN115277736A (zh) * 2022-07-25 2022-11-01 中国工商银行股份有限公司 分布式块存储的数据自动均衡方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105187547A (zh) * 2015-09-25 2015-12-23 浪潮(北京)电子信息产业有限公司 一种负载均衡方法与系统
CN106055277A (zh) * 2016-05-31 2016-10-26 重庆大学 一种去中心化的分布式异构存储系统数据分布方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10003649B2 (en) * 2015-05-07 2018-06-19 Dell Products Lp Systems and methods to improve read/write performance in object storage applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105187547A (zh) * 2015-09-25 2015-12-23 浪潮(北京)电子信息产业有限公司 一种负载均衡方法与系统
CN106055277A (zh) * 2016-05-31 2016-10-26 重庆大学 一种去中心化的分布式异构存储系统数据分布方法

Also Published As

Publication number Publication date
CN107391039A (zh) 2017-11-24

Similar Documents

Publication Publication Date Title
CN107391039B (zh) 一种数据对象存储方法和装置
KR101502896B1 (ko) 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
CN107667363B (zh) 具有多种可选数据处理策略的基于对象的存储集群
US10356150B1 (en) Automated repartitioning of streaming data
CN106990915B (zh) 一种基于存储介质类型和加权配额的存储资源管理方法
CN109543455B (zh) 一种区块链的数据归档方法及装置
CN112565325B (zh) 镜像文件管理方法、装置及系统、计算机设备、存储介质
EP3163446B1 (en) Data storage method and data storage management server
US11188462B2 (en) Method, device, and computer program product for managing address mapping in storage system
CN107450855B (zh) 一种用于分布式存储的模型可变的数据分布方法及系统
CN109510852B (zh) 灰度发布的方法及装置
CN111290699B (zh) 数据迁移方法、装置及系统
CN104508639A (zh) 使用一致性域表的一致性管理
CN107608769A (zh) 一种数据处理方法及装置
Liu et al. An improved hadoop data load balancing algorithm
CN115048254B (zh) 数据分配策略的仿真测试方法、系统、设备和可读介质
CN103366021A (zh) 一种云计算平台上的变邻域搜索方法及系统
CN105744001A (zh) 分布式缓存系统扩容方法、数据访问方法及装置和系统
US5761498A (en) Distribution file system for accessing required portion of file
US11093862B2 (en) Locality aware data loading for machine learning
CN109788013B (zh) 分布式系统中作业资源分配方法、装置及设备
US20220391411A1 (en) Dynamic adaptive partition splitting
CN108304555A (zh) 分布式地图数据处理方法
EP3519985A1 (en) Flexible in-memory column store placement
CN112929400A (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
TA01 Transfer of patent application right

Effective date of registration: 20200420

Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province

Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd.

Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601

Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant