CN109196459B - 一种去中心化的分布式异构存储系统数据分布方法 - Google Patents
一种去中心化的分布式异构存储系统数据分布方法 Download PDFInfo
- Publication number
- CN109196459B CN109196459B CN201780026690.XA CN201780026690A CN109196459B CN 109196459 B CN109196459 B CN 109196459B CN 201780026690 A CN201780026690 A CN 201780026690A CN 109196459 B CN109196459 B CN 109196459B
- Authority
- CN
- China
- Prior art keywords
- data
- data object
- data objects
- read
- stored
- 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
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
-
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving 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
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
Abstract
本发明公开了一种去中心化的分布式异构存储系统数据分布方法,它包括以下步骤:1、将数据对象分类;2、将存储设备分类;3、将存储数据分成不同的“放置组集群”,每种存储设备的类型对应于一类“放置组集群”;4、计算待存入的每种数据对象应该放置到不同类型“放置组集群”的比例;5、利用哈希算法确定待存入的数据对象属于“放置组集群”中的哪一个“放置组”;6、利用存储系统的数据分布算法,将每个“放置组”中的数据对象存储到多个对应的存储设备中;7、在系统运行过程中,根据数据对象的访问特征计算迁移阈值,并动态迁移数据对象。本发明的优点是:保持了存储系统的性能、负载均衡和可扩展性,又减少了对固态硬盘的写操作次数。
Description
技术领域
本发明属于分布式计算机存储技术领域,具体涉及一种去中心化的分布式异构存储系统数据分布方法。
背景技术
在大数据应用、科学计算和云计算平台中,可靠并且可扩展的存储系统对系统性能有着至关重要的作用。随着数据量增大(PB级别),存储系统的数据分布策略必须保证性能和可扩展性。去中心化的数据分布策略,比如Ceph,利用存储设备本身的处理能力提供可靠的对象存储系统。固态硬盘(SSD)读写性能优于传统的机械硬盘(HDD),越来越被广泛地应用到存储系统中,形成大规模分布式异构存储系统。此外,新型归档硬盘(Archive HDD)也被越来越多地用在数据中心,这类硬盘拥有更大的容量,适合大数据存储,但是其读写速度比传统的机械硬盘更慢。因此,存储系统的数据分布策略必须考虑固态硬盘的“写耐受性”和各类硬盘的性能差异,同时保证系统的可扩展性和负载均衡,因为过多的写操作会加速固态硬盘存储介质的损耗,放置过多的数据在归档硬盘中会使系统读写性能受影响。
目前,有许多研究致力于工作流系统的数据分布和任务调度。比如在科学计算中,“工作流管理系统”会更具执行计算站点的存储资源和计算能力分配计算任务。根据工作流模型中任务的依赖关系,可以确定这些任务所需数据的数据量大小,然后将不同阶段的计算任务分配到不同的计算站点,分配方案中主要考虑减少不同站点的远程访问传输开销。Ceph利用存储设备自身的通信能力,设计出了一种新的数据分布方法,该方法分为两步,第一步利用哈希算法,将数据对象映射到“放置组”,哈希函数的输入就是数据对象的全局唯一的标识符,哈希函数的输出结果相同的数据对象被放置到同一个“放置组”。第二步利用伪随机哈希算法,将每个“放置组”分布到多个存储设备。该数据分布方法没有考虑存储系统的异构特性,这样会导致对固态硬盘产生密集的写操作。还有一些技术利用固态硬盘提升中心化的存储性能,这种中心化的数据分布策略使得系统不具备扩展性,不适合超大规模的数据应用。
发明内容
针对现有技术存在的不足,本发明所要解决的技术问题是提供一种去中心化的分布式异构存储系统数据分布方法,它通过分析数据对象的访问方式来保持存储系统的性能、负载均衡和可扩展性,同时减少对固态硬盘的写操作。
本发明所要解决的技术问题是通过这样的技术方案实现的,本发明的第一种方法包括以下步骤:
步骤1、在程序的执行过程中,统计每个数据对象被读/写的次数,将读写次数转换为权值,作为数据的访问模式;根据数据的访问模式,将数据对象分类;
步骤2、根据存储设备的容量和读写性能,将存储设备分类;
步骤3、将存储数据分成不同的“放置组集群”,“放置组集群”包含多个“放置组”,每种存储设备的类型对应于一类“放置组集群”;
步骤4、根据存储系统的负载均衡目标和性能指标,计算待存入的每种数据对象应该放置到不同类型“放置组集群”的比例;
步骤5、利用哈希算法确定待存入的数据对象属于“放置组集群”中的哪一个“放置组”;
步骤6、利用存储系统的数据分布算法,将每个“放置组”中的数据对象存储到多个对应的存储设备中;固态硬盘的“放置组”会被分配到固态硬盘,机械硬盘的“放置组”会被分配到机械硬盘。
在经上述步骤进行初始存储数据分布之后,为了能将访问特征变化的数据迁移到合适的设备,保持存储系统的性能、负载均衡和可扩展性,通过在不同的存储设备之间移动数据,达到减少对固态硬盘的写操作目的,对上述方法进行改进有:
本发明的第二种方法包括以下步骤:
步骤1、在程序的执行过程中,统计一段时间内系统总的读写次数和被访问的数据对象的总数,用来确定该段时间内系统的访问模式;
步骤2、根据存储设备的容量和读写性能,将存储设备分类;
步骤3、将数据对象分成不同的“放置组集群”,“放置组集群”包含多个“放置组”,每种存储设备的类型对应于一类“放置组集群”;
步骤4、对新存入的数据对象,利用均匀哈希算法将数据对象映射到“放置组集群”和“放置组”,并为每个数据对象增加一个标识,用来表示该数据对象属于哪一个“放置组集群”;
步骤5、利用存储系统的数据分布算法,将每个“放置组”中的数据对象存储到多个对应的存储设备中;固态硬盘的“放置组”会被分配到固态硬盘,机械硬盘的“放置组”会被分配到机械硬盘。
步骤6、在系统运行过程中,根据数据的访问模式,计算每个存储设备数据访问的迁移阈值,并根据这些阈值将数据对象动态迁移到合适的存储设备,以使对固态硬盘的写次数减少,并提升系统读写性能。
本发明的技术效果:
本发明第一种方法根据数据对象的访问模式,将不同类别的数据分布到不同的“放置组集群”,此时需要计算待存入的不同类型数据对象放到不同的“放置组集群”的比例,用来控制“放置组集群”之间的负载均衡,在确定了每个数据对象所属的“放置组集群”之后,再利用哈希算法计算该数据对象对应的“放置组”;再把“放置组”中的数据对象分布到存储设备中。这样将数据均匀分布到存储设备中,排除了中心化的数据存储结构,既保持了存储系统的性能、负载均衡和可扩展性,又减少了对固态硬盘的写操作次数,延长其寿命。
本发明第二种方法根据数据对象访问模式的动态变化,在系统运行过程中,将不同类别的数据迁移到合适的“放置组集群”,数据迁移的过程需要设置不同的访问阈值,用来控制“放置组集群”之间的负载均衡。
本发明第二种方法的步骤4中对每个数据对象增加一个标识,在步骤6中数据移动之后,原来存储的“放置组集群”可能发生变化,则有记录当前数据对象属于哪一个“放置组集群”的标识。步骤6中,在系统运行过程中统计数据对象的访问情况,并为每个存储设备设定阈值,超过阈值的数据对象会产生动态迁移的操作。使用动态迁移的策略可以在达到减少对固态硬盘写操作的同时,使系统更具有通用性。
附图说明
本发明的附图说明如下:
图1为第一种方法计算每种待存入数据对象存储到每种“放置组集群”的比例算法流程图;
图2为本发明的数据存储过程图;
图3为映射读密集型数据对象映射到“放置组”的示意图;
图4为映射写密集型数据对象映射到“放置组”的示意图;
图5为第二种方法步骤6中的阈值算法流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明:
一、本发明的第一种方法包括以下步骤:
步骤1、在程序的执行过程中,统计每个数据对象被读/写的次数,将读写次数转换为权值,作为数据的访问模式;根据数据的访问模式,将数据对象分类,比如读密集型,写密集型和混合型;分类方法可以采用常见的K-Means聚类算法,每种类型的数据对象有个属性值用来表示这类数据对象平均写次数。
步骤2、根据存储设备的容量和读写性能,将存储设备分类,比如高速固态硬盘,低速固态硬盘,高速机械硬盘,低速机械硬盘,每种存储设备有自己的读写性能参数,比如平均读写延迟时间、容量。
步骤3、将存储数据分成不同的“放置组集群”,“放置组集群”包含多个“放置组”,每种存储设备类型对应于一类“放置组集群”。“放置组集群”用来将读写属性相似的数据对象组合到一起;“放置组集群”是一个逻辑的概念,主要用来对数据对象做聚合,同时,“放置组集群”也有容量和读写性能的属性,容量就是该“放置组集群”对应的所有硬盘的容量,读写性能是这些硬盘的平均读写延迟。
步骤4、根据存储系统的负载均衡目标和性能指标,计算待存入的每种数据对象应该放置到不同类型“放置组集群”的比例;
例如,假设系统有3个“放置组集群”,对于读密集型数据,20%放入第一个“放置组集群”,30%放入第二个“放置组集群”,50%放入第三个“放置组集群”,这个比例指的是放入每类“放置组集群”的个数占该类数据总数的比例。
存储系统的性能指标根据存储设备的读写性能来设定,比如,要求对所有的数据对象,读取操作的平均延迟为0.2毫秒,写入操作的平均延迟为0.5毫秒。设置每种数据对象在不同类型“放置组集群”比例的目的就是要保证数据在“放置组集群”之间均衡分布。在极端的情况下,所有的数据对象都是写密集型,按照存储设备分配的目标,写密集型数据对象应分配到机械硬盘中,以便减少对固态硬盘的写操作,但如果所有数据对象都是写密集型的,那么全都会被分配到机械硬盘对应的“放置组集群”,使得固态硬盘中没有数据。为了避免这种情况,需要将同一种类型的数据对象分配到不同的“放置组集群”,用这个比例来控制“放置组集群”之间的负载均衡。
步骤5、利用哈希算法确定待存入的数据对象属于“放置组集群”中的哪一个“放置组”,因为一个“放置组集群”中包含多个“放置组”。
步骤6、利用存储系统的数据分布算法,将每个“放置组”中的数据对象存储到多个对应的存储设备中,固态硬盘对应“放置组集群”中的“放置组”会被分配到固态硬盘,机械硬盘对应“放置组集群”中的“放置组”会被分配到机械硬盘。
一个“放置组”存储到多个存储设备的原因是为了对同一个数据多次备份。备份数由系统初始化设置。因为同一个“放置组”对应的存储设备有多个,所以需要有个映射算法将确定每个“放置组”应该放入哪一个存储设备。在Ceph的存储策略中,会利用伪随机哈希算法将每个“放置组”中的数据创建多个备份,分别存到不同的存储设备。
上述步骤4中,计算每种待存入数据对象放置到每种“放置组集群”的比例算法流程图如图1所示:
该流程开始于步骤801,然后:
在步骤802,计算所有待存入数据对象的总数,即不同类型数据对象的总和;
在步骤803,计算已有数据对象的总数,即在初始状态下,所有存储设备已经存储的数据对象的个数;
在步骤804,根据负载均衡条件,计算每个“放置组集群”能存储的数据对象最大值;即确定每个“放置组集群”的容量;
负载均衡是系统的配置参数,例如,在所有数据对象完全平均分布的情况下,根据每个存储设备的容量增加或者减少5%都认为是负载均衡的。比如,某个“放置组集群”在完全平均分布的状态下能存储100个数据对象,负载均衡的平衡条件允许5%的浮动,那么该“放置组集群”最多能存储100+100*0.05=105个数据对象;
在步骤805,将所有待存入数据对象按照平均写次数升序排列,平均写次数是不同类的数据对象的属性;
假设待存入数据对象被分成了3类,读密集性,写密集型和混合型,其中读密集型数据的平均写次数是10,写密集型的平均写次数是80,混合型的平均写次数是50。
在步骤806,将所有“放置组集群”按照性能降序排列,其中“放置组集群”的性能就是与其对应的存储设备的读写性能,固态硬盘的读写性能优于机械硬盘;
在步骤807,初始化变量i=0,用来扫描待存入数据对象类别;
假设待存入数据对象被分成了3类,这个流程中的i就是1,2,3,这是一个循环迭代过程,即分别扫描待存入的每个类别的数据对象;
在步骤808,初始化变量j=0,用来扫描“放置组集群”类别;
假设数据“放置组集群”被分成了4类,这个流程中的j就是1,2,3,4;
在步骤809,将第i类待存入的数据对象分配到第j类“放置组集群”;
该步骤是按照步骤805和步骤806中排好的顺序,依据步骤804所计算的“放置组集群”容量依次填充待存入的每类数据对象的个数;
在步骤810,记录存储在“放置组集群”j中i类待存入的数据对象的个数,用于计算待存入的每类数据对象的存储比例;
每一类待存入的数据对象的总个数是已知的,记录每一类待存入数据对象放置到每一个“放置组集群”的个数,用该数值除以每一类待存入记录数据对象的总数,就得到了比值。
在步骤811,判断“放置组集群”j是否达到最大存储个数,如果是,执行步骤812,否则执行步骤813;
在步骤813,判断是否所有待存入数据对象处理完毕,如果是,执行步骤816,否则,执行步骤814;
在步骤814,将用来扫描数据对象类别数组的指针i移动到下一个位置,即处理下一类待存入数据对象,执行步骤809;
在步骤812,将用来扫描“放置组集群”数组的指针j移动到下一个位置,即处理下一个“放置组集群”;
在步骤815,判断是否所有“放置组集群”处理完毕,如果是,执行步骤816,否则,执行步骤809;
在步骤816,根据步骤810中记录的每个“放置组集群”存储的每类待存入数据对象的个数,计算每类待存入数据对象分配到每种“放置组集群”的比例;
在步骤817,每类待存入数据分配到各类“放置组集群”的算法结束。
上述步骤5和步骤6的数据存储过程如图2所示,将存储系统的“放置组”划分为不同的“放置组集群”,每一个“放置组集群”包含多个“放置组”。存储数据对象时,需要首先根据每个数据对象的类别和该类别的数据对象在“放置组集群”的分配比例,确定该数据属于哪一个“放置组集群”,这个过程要通过图1的流程来计算不同类型的对象放到不同的“放置组集群”的比列,以来控制“放置组集群”之间的负载均衡,再利用哈希算法确定该数据对象属于这个“放置组集群”中的哪一个“放置组”。步骤6利用一个伪随机哈希算法(CRUSH)把这个“放置组”映射到不同的存储设备中去。
(一)、图1所示流程图的实施例
假设存储系统有5类存储设备,每类存储设备对应一个“放置组集群”,那么系统有5个“放置组集群”。所有放置组集群已经按照性能从高到低进行排序(对应于步骤806)。如表1所示。
表1 系统存储设备的属性
存储系统的总容量为:1000+1500+2000+2500+3000=10000
假设待存入的数据对象分成了3类,每类对象的平均读写次数和数量如表2所示。每个类型已经按照写次数进行排序(对应于步骤805)。
表2 所有待存入数据对象的属性
根据图1所示的流程,算法的运行过程如下:
在步骤802,所有待存入的数据对象总数为350+150+200=700;
在步骤803,计算已有数据对象的总数为60+260+300+530+700=1850;
数据对象的总数量为:700+1850=2500;
在步骤804,假设系统负载均衡的平衡因子e=0.001,则对于每一个“放置组集群”计算出其相应可容纳的最大值RMAX,计算公式如下:
“放置组集群”1:RMAX.1:(1+0.001)*(1000*(700+1850))/10000=255;
“放置组集群”2:RMAX.2:(1+0.001)*(1500*(700+1850))/10000=383;
“放置组集群”3:RMAX.3:(1+0.001)*(2000*(700+1850))/10000=511;
“放置组集群”4:RMAX.4:(1+0.001)*(2500*(700+1850))/10000=638;
“放置组集群”5:RMAX.5:(1+0.001)*(3000*(700+1850))/10000=766;
因此,对五个“放置组集群”,假设数据完全平均分配时的最大容量RMAX分别为:255,383,511,638,766。
在步骤807,i初始化为0,用来扫描A,B,C三类待存入的数据对象。
在步骤808,j初始化为0,用来扫描“放置组集群”1,2,3,4,5.
在步骤809的分配与步骤810记录过程如下:
对三种类型数据对象进行分类时,对平均写次数最少读次数较多的A类优先分配到写延迟小读延迟小的OSD.1上。
1.放置组集群1本身负载为60,计算出的可容纳最大值为255,可容纳量255-60=195。
故可分配类型A的195个数据对象分配到放置组集群1中,此时类型A剩余350-195=155。
放置组集群1已满。
2.放置组集群2本身负载为260,计算出的可容纳最大值为383,可容纳量383-260=123。
继续将类型A的123个数据对象分配到放置组集群2中,类型A剩余155-123=32。
放置组集群2已满。
3.放置组集群3本身负载为300,计算出的可容纳最大值为511,可容纳量511-300=211;
继续将类型A的32个数据对象分配到放置组集群3中,类型A分配完毕,剩余0;
放置组集群3剩余容量为211-32=179;
对类型B进行分配,优先分配到读写延迟都相对较小的放置组集群3中;
将类型B的150个数据对象全部分配到放置组集群3中。此时放置组集群3剩余容量179-150=29;
对类型C进行分配,仍优先分配到读写延迟都相对较小的放置组集群3中;
将类型C的29个数据对象分配到放置组集群3中,类型C剩余200-29=171。
放置组集群3已满。
4.放置组集群4本身负载530,计算出的可容纳最大值为638,可容纳量为638-530=108;
继续将类型C的108个数据对象分配到放置组集群4中,类型C剩余63=171-108。
放置组集群4已满。
5.放置组集群5本身负载700,计算出的可容纳最大值为766,可容纳量为766-700=66;
将类型C的63个数据对象分配到放置组集群5中,类型C分配完毕,剩余0。
放置组集群5剩余容量仍为66-63=3。
在步骤816,根据最后的结果,计算每类待存入的数据对象分配到每个“放置组集群”的比例:
(二)、下面说明本发明的步骤5如何将不同类型的数据对象映射到不同的“放置组”。
本实施例中,假设系统有100个“放置组”,编号从1到100。根据系统存储设备类型,这些“放置组”被分成了3个“放置组集群”:1-20号为第一个“放置组集群”,21-50号为第二个“放置组集群”,51-100号为第三个“放置组集群”。
如图3所示,将一个读密集型的数据对象映射到“放置组”13。假设通过如图1的流程算法得出读密集型数据对象在三个“放置组集群”中的分布比例为6∶2∶2,也就是:1-20号“放置组”为第一个“放置组集群”,有60%的读密集型的数据属于第一个“放置组集群”,21-50号“放置组”为第二个“放置组集群”,有20%的读密集型数据属于第二个“放置组集群”,51-100号“放置组”为第三个“放置组集群”,有20%的读密集型数据属于第三个“放置组集群”。由于当前这个读密集型数据对象的标识经过哈希函数得到的结果是50,在第一个“放置组集群”的范围之内,再利用哈希算法,计算出此该数据对象的目标“放置组”为13。
如图4所示,将一个写密集型的数据对象映射到“放置组”62。假设写密集型数据对象在三个“放置组集群”中的分布比例为1∶3∶6,该数据对象的标识经过哈希函数得到的结果也是50,但50属于第三个“放置组集群”(因为读密集型数据和写密集型数据对应放置到每个放置组集群的比例是不一样的,图4中间哈希值列出三个“放置组集群”的放置比例,哈希值1-10的数据对象可以认为是放置到第一类“放置组集群”的,哈希值11-40的数据对象是放置到第二类“放置组集群”的,哈希值41-100的数据对象是放置到第三类“放置组集群”的),因此这个对象最终被映射到“放置组”62中。
由于上述第一种方法的步骤4通过计算比例来确定数据对象应该放到哪一个“放置组集群”,并且这个结果确定之后,后续操作就不会再变化,所以第一种方法的不足之处是:只适用于数据的静态存储,即只能对离线的数据进行分类并存储,而在一个存储系统中,数据对象的特征可能会随着系统的运行而发生变化,这样的趋势会导致静态存储的分类失效,最终不能有效达到减小固态硬盘写次数的目的。为此,本发明还提供了第二种方法。
二、本发明的第二种方法包括以下步骤:
步骤1、在程序的执行过程中,统计一段时间内系统总的读写次数和被访问的数据对象的总数,用来确定该段时间内系统的访问模式。比如,在一天之内,读次数为1的数据对象有M个,读此次为2的数据对象有N个,写次数为1的数据对象有K个,以此类推,可以得到这一天总的读次数,总的写次数和被访问的数据对象的总数。
步骤2、根据存储设备的容量和读写性能,将存储设备分类,比如固态硬盘,机械硬盘和归档硬盘,每种存储设备有自己的读写性能参数,比如平均读写延迟时间、容量。
步骤3、将数据分到不同的“放置组集群”,“放置组集群”包含多个“放置组”,每种存储设备类型对应于一类“放置组集群”。“放置组集群”用来将读写属性相似的数据对象组合到一起;“放置组集群”是一个逻辑的概念,主要用来对数据对象做聚合。
步骤4、对新存入的数据对象,利用均匀哈希算法将数据对象映射到“放置组集群”和“放置组”,并为每个数据对象增加一个标识,用来表示该数据对象属于哪一个“放置组集群”。比如,系统有100个“放置组”,被分成了5类“放置组集群”,每个“放置组集群”包含20个“放置组”,假设系统需要存储1000个新的数据对象,则均匀哈希算法会基本保证每个“放置组”有10个数据对象。
步骤5、利用存储系统的数据分布算法,将每个“放置组”中的数据对象存储到多个对应的存储设备中。在Ceph的存储策略中,会利用CRUSH算法将每个“放置组”中的数据创建多个备份,分别存到不同的存储设备。
步骤6、在系统运行过程中,根据数据的访问模式,计算每个存储设备数据访问的迁移阈值,并根据这些阈值将数据对象动态迁移到合适的存储设备,以使对固态硬盘的写次数减少,并提升系统读写性能。
例如,假设系统有三类存储设备,分别为固态硬盘,机械硬盘和归档硬盘。固态硬盘有个写次数阈值,当存储在固态硬盘的数据对象写次数超过写阈值时,需要将数据对象迁移到机械硬盘,以减小固态硬盘的写次数;机械硬盘有读次数阈值,如果存储在其中的数据对象读次数超过阈值,则数据对象会从机械硬盘迁移到固态硬盘,用来提升系统读性能;归档硬盘有两个阈值,读阈值和写阈值,当存储在归档硬盘中的数据对象写次数超过阈值时,数据对象迁移到机械硬盘,提升写性能,当数据对象的读阈值超过阈值时,这些数据对象会迁移到固态硬盘和机械硬盘。
具体的数据对象迁移过程如下:在读写流程中,运行在存储设备(OSD)上的进程在每次读写操作完成之后会更新本次操作涉及的数据对象的访问次数,并用这个更新之后的访问次数和计算出的迁移阈值作比较,如果达到迁移阈值,就会利用伪随机哈希算法CRUSH,计算该数据对象应该存放到哪些新的存储设备,这个OSD上的进程会将该数据对象以及所有备份迁移到新的设备,然后通知上层读写流程结束。也就是说,数据迁移在读写流程中完成,这个迁移过程对上层的应用来说是透明的。
由本发明第二种方法可以看出,确定迁移的阈值是该方案的关键点,如果阈值设定太小,会使得数据对象的迁移很频繁,产生很大的迁移开销,如果阈值设定太大,则会使得对固态硬盘的写次数很多。因此,设定阈值的判断条件需要综合考虑系统的性能和负载均衡。本发明还提供一种阈值算法。
表3列出了各字母或字母组合的意义。
表3:字母标识的定义
表3中,Rs=Cs/(Cs+Ch+Ca),Rh=Ch/(Cs+Ch+Ca),Ra=Cs/(Cs+CH+Ca)。
该阈值算法的流程图如图5所示,程序的输入参数:数据对象满足负载均衡的限制值α,性能提升比例β,均匀分布条件下初始性能P0;读操作信息记录表;写操作信息记录表(输入参数当作已知量处理)。程序的输出:四个阈值。
该流程开始于步骤000,然后:
在步骤001,获取输入参数:初始性能P0、性能提升比例β、数据对象满足负载均衡的限制值α;
在步骤002,定义以下变量:数据对象单位数k=0、数据对象从HDD移到SSD性能提升PGs h=0、从HDD移到SSD性能下降PLh s=0、从Archive HDD移到HDD性能提升PGw a=0、从Archive HDD移到SSD和HDD性能提升PGr a=0、读操作数据记录表的行号i=0、写操作数据记录表的行号j=0;
在步骤003,判断性能提升是否满足PGs h+PGw a+PGr a-PLh s<=P0·β,如果是执行步骤017,否则执行步骤004;
在步骤004,将数据对象单位数k做加1操作;在初始化时,设置以k·Vssd个数据对象移动,在不能满足性能提升要求的情况下,本步骤就执行操作k=k+1,以k·Vssd个数据对象进行移动,其中Vssd表示满足负载均衡条件下从SSD中移出的数据对象个数;
在步骤005,赋值j=j+1,并读取写操作数据记录表中的第j行的数据,即找出写次数相对于上次循环增加1次的数据对象个数,j行数据的对应的写次数为W(j)。j的初始值为0,即第一次执行此循环的j为1,读取写操作记录表的第1行数据。
在步骤006,若将SSD中写次数大于j-1次的数据对象移动到HDD中,判断移动的数据对象个数是否大于k·Vssd,若是,执行步骤005,否则,将阈值WS赋值为W(j),W(j)是第j行数据的写次数值,执行步骤007;
在步骤007,记录阈值WS、性能下降值PLh s,执行操作j=0,然后执行步骤008;
在步骤008,赋值i=i+1,并读取读操作数据记录表中的第i行的数据,即找出读次数相对于上次循环增加1次的数据对象个数,i行数据的对应的读次数为R(i)。i的初始值为0,即第一次执行此循环的i为1,读取读操作记录表的第1行数据,该行对应读次数R(i)为0次数据的相关数据;
在步骤009,若将HDD中读次数大于i-1次的数据对象移动到SSD中,判断移动的数据对象个数是否大于等于k·Vssd,若是,则执行步骤008,否则,将阈值RH赋值为R(i),执行步骤010;
在步骤010,记录阈值RH,性能提高值PGs h,执行操作i=0,然后执行步骤011;
在步骤011,赋值i=i+1,读取读操作数据记录表中的第i行的数据,即找出读次数相对于上次循环增加1次的数据对象个数,i行数据的对应的写次数为R(i);
在步骤012,为了避免SSD存储空间不足,将Archive HDD的数据对象移到SSD与HDD中的数据单位个数比为CS/Ch。判断将Archive HDD中读次数大于R(i)次的数据对象移到SSD和HDD中的个数是否大于CS/Ch·Vssd,若是,则执行步骤011,否则,将阈值RA赋值为R(i),此循环结束,执行步骤013;
在步骤013,记录阈值RA,性能提高值PGr a;执行操作i=0,然后执行步骤014;
在步骤014,赋值j=j+1,并读取写操作数据记录表中的第j行的数据,即找出写次数相对于上次循环增加1次的数据对象个数,j行数据的对应的写次数为W(j);
在步骤015,将Archive HDD中写次数大于j-1的数据对象移到HDD中,判断移动的个数是大于(Ch-CS)/Ch·Vssd,若是,则执行步骤014,否则,将阈值WA赋值为W(j),此循环结束,执行步骤016;
在步骤016,记录阈值WA,性能提高值PGw a;执行操作j=0,然后执行步骤003;
在步骤017,输出阈值WS、RH、RA、WA;
在步骤018,程序结束。
上述阈值算法的流程中四个循环是独立的,但是有先后顺序,这就是该算法的设计思想。即先考虑从SSD移出一部分数据对象到HDD(第一个循环),为了达到负载均衡,需要从HDD移动相同个数的数据对象到SSD(第二个循环),在这个移动过程中,需要考虑到底移动多少个数据对象,以及移动之后性能的变化情况,根据输入参数α和SSD的容量,可以计算出存放到SSD的数据的波动范围Vssd,比如,在完全平均分布的状态下能存储100个数据对象,负载均衡的平衡条件允许5%的浮动,则α是5%,即SSD最多存105个数据对象,最少存95个数据对象,Vssd=5。移动数据对象的单位就是按照Vssd的倍数进行,即程序中的k,也就是说,可以从SSD移动5个,10个,15个.....,在移动数据之后,需要计算移动之后的性能变化。第三、四个循环的作用是计算从Archieve HDD移出的阈值。第三个循环考虑读阈值,Archieve HDD上读密集的数据会被移动到SSD和HDD,但是移动的数据不能超过SSD的最大允许波动容量Vssd,archieve HDD上读密集的数据对象会按照SSD和HDD的容量比例移动到SSD和HDD。第四个循环考虑写阈值,写密集的数据对象只会移动到HDD,需要考虑ArchieveHDD能移出的最大个数和HDD的容量限制。
阈值算法的实施例
一个阈值算法的实例,假设如下(即程序的输入信息):
①SSD数据容量,HDD数据容量,Archive HDD数据容量比值为1∶3∶5;
②数据对象在不同存储介质上迁移的延迟都为10毫秒;
③α=20%,β=10%;
④各存储设备的读写延迟如表4:
表4 读写延迟表
表4中:各种存储设备的延迟根据读写性能指标归一化转换而来。
⑤假设一组存储数据的读次数记录表为表5、写次数记录表为表6:
表5 读操作数据输入表
表6 写操作数据输入表
表7 读操作公式符号定义表
表7中,各项数值的计算公式:
①NOi=NOi-1+Nr i
②NRi=NRi-1+Fr i·Nr i
③PGs h=Rh·(NRi·(Lr h-Lr s)-NOi·Lh~s)
④PGr a=PGr a~h+PGr a~s
⑤PGr a~h=Ra·Ch/Cs+Ch·Cs/Ch·((Lr a-Lr h)·NRi-NOi·La~h)
⑥PGr a~s=Ra·Cs/Cs+Ch·Cs/Ch·((Lr a-Lr s)·NRi-NOi·La~s)
使用上述公式计算获得表8。
在表8中,对读次数而言,“≥R(i)次的数据对象数”的计算公式为①式,例如,第一行数据中,读次数≥R(1)次的数据对象数为:3400+1600=5000。“≥R(i)次的数据对象总的读次数”的计算公式为②式,例如,第一行数据中读次数≥R(1)次的数据对象总的读次数为:5940+1600×0=5940。
由SSD数据容量,HDD数据容量,Archive HDD数据容量比值为1∶3∶5,即CS∶Ch∶Ca=1∶3∶5,可知,SSD数据容量占整个系统数据容量的1/9,HDD数据容量占整个系统数据容量的3/9,Archive HDD数据容量占整个系统数据容量的5/9;由Archive HDD数据对象在读和写上迁出的比例为(CS/Ch·Vssd)∶((Ch-CS)/Ch·Vssd)=1∶2,可知,为了提高读性能将ArchiveHDD上1/3的数据迁出到SSD和HDD上,再根据SSD和HDD的容量比例1∶3分配数据,为了提高写性能将Archive HDD上2/3的数据迁出到HDD上。
在表8中,HDD移到SSD读性能变化值的计算公式为③式。Archive HDD移到HDD读性能变化值由计算公式为④式,Archive HDD移到SSD读性能变化值的计算公式为⑤式。根据以上公式计算出读操作记录表的所有值,参见表8:
表8 读操作数据记录表
表9 写操作公式符号定义表
表9中,各项数值的计算公式:
①NOj=NOj-1+Nw j
②NWj=NWj-1+Fw j·Nw ji
③PLh s=Rs·(NWj·(Lw h-Lw s)-NOj·Ls~h)
④PGh a=Ra·(Ch-CS)/Ch·((Lw a-Lw h)·NRi-NOi·La~h)
使用上述公式计算获得表10。
在表10中,对写次数而言,“≥W(j)次的数据对象数”的计算公式为①式,例如,写次数≥W(1)次的数据对象数为:2400+2600=5000;“≥W(j)次的数据对象总的写次数”的计算公式为②式,例如≥0次的数据对象总的写次数为:6100+6100×0=6100。SSD移到HDD写性能变化值的计算公式为③式,Archive HDD移到HDD写性能变化值的计算公式为④式。根据以上公式计算出写操作记录表的所有值,参见表10:
表10 写操作数据记录表
假设原始性能P0为10000毫秒,数据对象总数为5000,数据在不同存储介质上移动SSD数据容量的α为20%仍保持数据对象的均衡分布,由步骤004得可移动数据对象的总数k·Vssd,在k=1时1×5000×1/9×20%=111.11,若性能提升比例β为10%,即性能值为P0·β,即10000×10%=1000毫秒,由表中数据可知,最多移动111个数据对象,ArchiveHDD在提高读性能方面移动111×1/3=37,在提高写性能方面移动111×2/3=74时,满足均衡分布条件时,
步骤005和步骤006的循环至j由0增加到7时,满足条件,此时WS=6,PLh s=738.222毫秒。
步骤008和步骤009的循环至i由0增加到6时,满足条件,此时RH=5,PGs h=947.3333毫秒。
步骤011和步骤012的循环至i由0增加到9时,满足条件,此时RA=8,PGr a=222.2222+136.5741=358.7963毫秒,计算公式为读数据计算公式③。
步骤014和步骤015的循环至j由0增加到9时,满足条件,此时WA=8,PGw a=857.7778毫秒。
性能总体提高PGs h+PGw a+PGr a-PLh s=1425.685毫秒>1000毫秒,满足性能提高的要求,所以得到阈值WS=6,RH=5,RA=8,WA=8。
Claims (6)
1.一种去中心化的分布式异构存储系统数据分布方法,其特征是,包括以下步骤:
步骤1、在程序的执行过程中,统计每个数据对象被读/写的次数,将读写次数转换为权值,作为数据的访问模式;根据数据的访问模式,将数据对象分类;
步骤2、根据存储设备的容量和读写性能,将存储设备分类;
步骤3、将存储数据分成不同的“放置组集群”,“放置组集群”包含多个“放置组”,每种存储设备的类型对应于一类“放置组集群”;
步骤4、根据存储系统的负载均衡目标和性能指标,计算待存入的每种数据对象应该放置到不同类型“放置组集群”的比例;
步骤5、利用哈希算法确定待存入的数据对象属于“放置组集群”中的哪一个“放置组”;
步骤6、利用存储系统的数据分布算法,将每个“放置组”中的数据对象存储到多个对应的存储设备中。
2.根据权利要求1所述的一种去中心化的分布式异构存储系统数据分布方法,其特征是,所述步骤4中,计算待存入每种数据对象放置到每种“放置组集群”的比例的步骤包括:
步骤802,计算所有待存入数据对象的总数;
步骤803,计算已有数据对象的总数;
步骤804,根据负载均衡条件,计算每个“放置组集群”能存储的数据对象最大值;
步骤805,将所有待存入数据对象按照平均写次数升序排列;
步骤806,将所有“放置组集群”按照性能降序排列;
步骤807,初始化变量i=0,用来扫描待存入数据对象类别;
步骤808,初始化变量j=0,用来扫描“放置组集群”类别;
步骤809,将第i类待存入的数据对象分配到第j类“放置组集群”;
步骤810,记录存储在“放置组集群”j中i类待存入的数据对象的个数;
步骤811,判断“放置组集群”j是否达到最大存储个数,如果是,执行步骤812,否则执行步骤813;
步骤813,判断是否所有待存入数据对象处理完毕,如果是,执行步骤816,否则,执行步骤814;
步骤814,处理下一类待存入数据对象,执行步骤809;
步骤812,处理下一个“放置组集群”;
步骤815,判断是否所有“放置组集群”处理完毕,如果是,执行步骤816,否则,执行步骤809;
步骤816,根据步骤810中记录的每个“放置组集群”存储的每类待存入数据对象的个数,计算每类待存入数据对象分配到每种“放置组集群”的比例。
3.根据权利要求2所述的一种去中心化的分布式异构存储系统数据分布方法,其特征是,所述步骤809中,第i类待存入的数据对象分配到第j类“放置组集群”的方法是:按照步骤805和步骤806中排好的顺序,依据步骤804所计算的“放置组集群”容量依次填充待存入的每类数据对象的个数。
4.根据权利要求1所述的一种去中心化的分布式异构存储系统数据分布方法,其特征是:步骤6中,采用伪随机哈希算法把这个“放置组”映射到不同的存储设备中。
5.一种去中心化的分布式异构存储系统数据分布方法,其特征是,包括以下步骤:
步骤1、在程序的执行过程中,统计一段时间内系统总的读写次数和被访问的数据对象的总数,用来确定该段时间内系统中数据对象的访问模式;
步骤2、根据存储设备的容量和读写性能,将存储设备分类;
步骤3、将数据对象分成不同的“放置组集群”,“放置组集群”包含多个“放置组”,每种存储设备的类型对应于一类“放置组集群”;
步骤4、对新存入的数据对象,利用均匀哈希算法将数据对象映射到“放置组集群”和“放置组”,并为每个数据对象增加一个标识,用来表示该数据对象属于哪一个“放置组集群”;
步骤5、利用存储系统的数据分布算法,将每个“放置组”中的数据对象存储到多个对应的存储设备中;
步骤6、在系统运行过程中,根据数据的访问模式,计算每个存储设备数据访问的迁移阈值,并根据这些阈值将数据对象动态迁移到合适的存储设备,以使对固态硬盘的写次数减少,并提升系统读写性能。
6.根据权利要求5所述的一种去中心化的分布式异构存储系统数据分布方法,其特征是,所述步骤6中,计算每个存储设备数据访问的迁移阈值的步骤包括:
在步骤001,获取输入参数:初始性能P0、性能提升比例β、数据对象满足负载均衡的限制值α;
在步骤002,定义以下变量:数据对象单位数k=0、数据对象从HDD移到SSD性能提升PGs h=0、从HDD移到SSD性能下降PLh s=0、从Archive HDD移到HDD性能提升PGw a=0、从ArchiveHDD移到SSD和HDD性能提升PGr a=0、读操作数据记录表的行号i=0、写操作数据记录表的行号j=0;
在步骤003,判断性能提升是否满足PGs h+PGw a+PGr a–PLh s<=P0·β,如果是执行步骤017,否则执行步骤004;
在步骤004,将数据对象单位数k做加1操作;在初始化时,设置以k·Vssd个数据对象移动,在不能满足性能提升要求的情况下,本步骤就执行操作k=k+1,以k·Vssd个数据对象进行移动,其中Vssd表示满足负载均衡条件下从SSD中移出的数据对象个数;
在步骤005,赋值j=j+1,并读取写操作数据记录表中的第j行的数据,即找出写次数相对于上次循环增加1次的数据对象个数,j行数据的对应的写次数为W(j);j的初始值为0,即第一次执行此循环的j为1,读取写操作记录表的第1行数据;
在步骤006,若将SSD中写次数大于j-1次的数据对象移动到HDD中,判断移动的数据对象个数是否大于k·Vssd,若是,执行步骤005,否则,将阈值WS赋值为W(j),W(j)是第j行数据的写次数值,执行步骤007;
在步骤007,记录阈值WS、性能下降值PLh s,执行操作j=0,然后执行步骤008;
在步骤008,赋值i=i+1,并读取读操作数据记录表中的第i行的数据,即找出读次数相对于上次循环增加1次的数据对象个数,i行数据的对应的读次数为R(i);i的初始值为0,即第一次执行此循环的i为1,读取读操作记录表的第1行数据,该行对应读次数R(i)为0次数据的相关数据;
在步骤009,若将HDD中读次数大于i-1次的数据对象移动到SSD中,判断移动的数据对象个数是否大于等于k·Vssd,若是,则执行步骤008,否则,将阈值RH赋值为R(i),执行步骤010;
在步骤010,记录阈值RH,性能提高值PGs h,执行操作i=0,然后执行步骤011;
在步骤011,赋值i=i+1,读取读操作数据记录表中的第i行的数据,即找出读次数相对于上次循环增加1次的数据对象个数,i行数据的对应的写次数为R(i);
在步骤012,为了避免SSD存储空间不足,将Archive HDD的数据对象移到SSD与HDD中的数据单位个数比为CS/Ch,CS为SSD数据容量,Ch为HDD数据容量;判断将Archive HDD中读次数大于R(i)次的数据对象移到SSD和HDD中的个数是否大于CS/Ch·Vssd,若是,则执行步骤011,否则,将阈值RA赋值为R(i),此循环结束,执行步骤013;
在步骤013,记录阈值RA,性能提高值PGr a;执行操作i=0,然后执行步骤014;
在步骤014,赋值j=j+1,并读取写操作数据记录表中的第j行的数据,即找出写次数相对于上次循环增加1次的数据对象个数,j行数据的对应的写次数为W(j);
在步骤015,将Archive HDD中写次数大于j-1的数据对象移到HDD中,判断移动的个数是大于(Ch-CS)/Ch·Vssd,若是,则执行步骤014,否则,将阈值WA赋值为W(j),此循环结束,执行步骤016;
在步骤016,记录阈值WA,性能提高值PGw a;执行操作j=0,然后执行步骤003;
在步骤017,输出阈值WS、RH、RA、WA。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610376033.5A CN106055277A (zh) | 2016-05-31 | 2016-05-31 | 一种去中心化的分布式异构存储系统数据分布方法 |
CN2016103760335 | 2016-05-31 | ||
PCT/CN2017/082718 WO2017206649A1 (zh) | 2016-05-31 | 2017-05-02 | 一种去中心化的分布式异构存储系统数据分布方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109196459A CN109196459A (zh) | 2019-01-11 |
CN109196459B true CN109196459B (zh) | 2020-12-08 |
Family
ID=57171584
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610376033.5A Pending CN106055277A (zh) | 2016-05-31 | 2016-05-31 | 一种去中心化的分布式异构存储系统数据分布方法 |
CN201780026690.XA Active CN109196459B (zh) | 2016-05-31 | 2017-05-02 | 一种去中心化的分布式异构存储系统数据分布方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610376033.5A Pending CN106055277A (zh) | 2016-05-31 | 2016-05-31 | 一种去中心化的分布式异构存储系统数据分布方法 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN106055277A (zh) |
WO (1) | WO2017206649A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055277A (zh) * | 2016-05-31 | 2016-10-26 | 重庆大学 | 一种去中心化的分布式异构存储系统数据分布方法 |
CN106506636A (zh) * | 2016-11-04 | 2017-03-15 | 武汉噢易云计算股份有限公司 | 一种基于OpenStack的云平台集群方法及系统 |
CN106991170A (zh) * | 2017-04-01 | 2017-07-28 | 广东浪潮大数据研究有限公司 | 一种分布式文件容量均衡的方法与装置 |
CN107317864B (zh) * | 2017-06-29 | 2020-08-21 | 苏州浪潮智能科技有限公司 | 一种存储设备的数据均衡方法及装置 |
CN107329705B (zh) * | 2017-07-03 | 2020-06-05 | 中国科学院计算技术研究所 | 一种针对异构存储的Shuffle方法 |
CN107391039B (zh) * | 2017-07-27 | 2020-05-15 | 苏州浪潮智能科技有限公司 | 一种数据对象存储方法和装置 |
CN110231913A (zh) * | 2018-03-05 | 2019-09-13 | 中兴通讯股份有限公司 | 数据处理方法、装置及设备、计算机可读存储介质 |
CN109002259B (zh) | 2018-06-28 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种归置组所属硬盘分配方法、系统、装置及存储介质 |
CN110347497B (zh) * | 2019-06-03 | 2020-07-21 | 阿里巴巴集团控股有限公司 | 一种将多个存储设备划分设备组的方法及装置 |
US11099759B2 (en) | 2019-06-03 | 2021-08-24 | Advanced New Technologies Co., Ltd. | Method and device for dividing storage devices into device groups |
CN111026337A (zh) * | 2019-12-30 | 2020-04-17 | 中科星图股份有限公司 | 一种基于机器学习和ceph思想的分布式储存方法 |
CN111258508B (zh) * | 2020-02-16 | 2020-11-10 | 西安奥卡云数据科技有限公司 | 一种分布式对象存储中的元数据管理方法 |
CN113467700B (zh) * | 2020-03-31 | 2024-04-23 | 阿里巴巴集团控股有限公司 | 基于异构存储的数据分配方法以及装置 |
CN111708486B (zh) * | 2020-05-24 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种主放置组均衡优化的方法、系统、设备及介质 |
CN111880747B (zh) * | 2020-08-01 | 2022-11-08 | 广西大学 | 一种基于分级映射的Ceph存储系统自动均衡存储方法 |
CN112463043B (zh) * | 2020-11-20 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种存储集群的扩容方法、系统及相关装置 |
CN112835530A (zh) * | 2021-02-24 | 2021-05-25 | 珠海格力电器股份有限公司 | 延长存储器使用寿命的方法及空调 |
CN113885797B (zh) * | 2021-09-24 | 2023-12-22 | 济南浪潮数据技术有限公司 | 一种数据存储方法、装置、设备及存储介质 |
CN114048239B (zh) * | 2022-01-12 | 2022-04-12 | 树根互联股份有限公司 | 时间序列数据的存储方法、查询方法及装置 |
CN115827757B (zh) * | 2022-11-30 | 2024-03-12 | 西部科学城智能网联汽车创新中心(重庆)有限公司 | 一种对多HBase集群的数据操作方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102170460A (zh) * | 2011-03-10 | 2011-08-31 | 浪潮(北京)电子信息产业有限公司 | 一种集群存储系统及其数据存储方法 |
CN102831088A (zh) * | 2012-07-27 | 2012-12-19 | 国家超级计算深圳中心(深圳云计算中心) | 基于混合存储器的数据迁移方法和装置 |
CN103778255A (zh) * | 2014-02-25 | 2014-05-07 | 深圳市中博科创信息技术有限公司 | 一种分布式文件系统及其数据分布方法 |
CN103905540A (zh) * | 2014-03-25 | 2014-07-02 | 浪潮电子信息产业股份有限公司 | 基于两级哈希的对象存储数据分布机制 |
CN105138476A (zh) * | 2015-08-26 | 2015-12-09 | 广东创我科技发展有限公司 | 一种基于hadoop异构存储的数据存储方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8321645B2 (en) * | 2009-04-29 | 2012-11-27 | Netapp, Inc. | Mechanisms for moving data in a hybrid aggregate |
US8700842B2 (en) * | 2010-04-12 | 2014-04-15 | Sandisk Enterprise Ip Llc | Minimizing write operations to a flash memory-based object store |
CN103150263B (zh) * | 2012-12-13 | 2016-01-20 | 深圳先进技术研究院 | 分级存储方法 |
CN103124299A (zh) * | 2013-03-21 | 2013-05-29 | 杭州电子科技大学 | 一种异构环境下的分布式块级别存储系统 |
CN103605615B (zh) * | 2013-11-21 | 2017-02-15 | 郑州云海信息技术有限公司 | 一种分级存储中基于块级数据的定向分配方法 |
US9448924B2 (en) * | 2014-01-08 | 2016-09-20 | Netapp, Inc. | Flash optimized, log-structured layer of a file system |
CN103916459A (zh) * | 2014-03-04 | 2014-07-09 | 南京邮电大学 | 一种大数据归档存储系统 |
CN105589937A (zh) * | 2015-12-14 | 2016-05-18 | 江苏鼎峰信息技术有限公司 | 一种分布式数据库存储架构系统 |
CN106055277A (zh) * | 2016-05-31 | 2016-10-26 | 重庆大学 | 一种去中心化的分布式异构存储系统数据分布方法 |
-
2016
- 2016-05-31 CN CN201610376033.5A patent/CN106055277A/zh active Pending
-
2017
- 2017-05-02 CN CN201780026690.XA patent/CN109196459B/zh active Active
- 2017-05-02 WO PCT/CN2017/082718 patent/WO2017206649A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102170460A (zh) * | 2011-03-10 | 2011-08-31 | 浪潮(北京)电子信息产业有限公司 | 一种集群存储系统及其数据存储方法 |
CN102831088A (zh) * | 2012-07-27 | 2012-12-19 | 国家超级计算深圳中心(深圳云计算中心) | 基于混合存储器的数据迁移方法和装置 |
CN103778255A (zh) * | 2014-02-25 | 2014-05-07 | 深圳市中博科创信息技术有限公司 | 一种分布式文件系统及其数据分布方法 |
CN103905540A (zh) * | 2014-03-25 | 2014-07-02 | 浪潮电子信息产业股份有限公司 | 基于两级哈希的对象存储数据分布机制 |
CN105138476A (zh) * | 2015-08-26 | 2015-12-09 | 广东创我科技发展有限公司 | 一种基于hadoop异构存储的数据存储方法及系统 |
Non-Patent Citations (1)
Title |
---|
Ceph分布式文件系统的研究及性能测试;李翔;《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》;20141015;正文第15-17,40页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106055277A (zh) | 2016-10-26 |
WO2017206649A1 (zh) | 2017-12-07 |
CN109196459A (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109196459B (zh) | 一种去中心化的分布式异构存储系统数据分布方法 | |
CN101556557B (zh) | 一种基于对象存储设备的对象文件组织方法 | |
US9081702B2 (en) | Working set swapping using a sequentially ordered swap file | |
US10387038B1 (en) | Storage space allocation for logical disk creation | |
US9189389B2 (en) | Memory controller and memory system | |
US8756392B2 (en) | Storage control apparatus and storage system comprising multiple storage control apparatuses | |
CN101777026B (zh) | 一种存储管理方法、硬盘及存储系统 | |
KR102290540B1 (ko) | 네임스페이스/스트림 관리 | |
KR20180027326A (ko) | 확장 가능한 멀티-스테이지 데이터 처리 시스템들에서의 효율적인 데이터 캐싱 관리 | |
US8103824B2 (en) | Method for self optimizing value based data allocation across a multi-tier storage system | |
JP2023536693A (ja) | 階層マッピングに基づくCephストレージシステムの自動均等化ストレージ方法 | |
WO2010024027A1 (ja) | 仮想サーバシステム及び物理サーバ選択方法 | |
US20140089582A1 (en) | Disk array apparatus, disk array controller, and method for copying data between physical blocks | |
CN101419573A (zh) | 一种存储管理的方法、系统和存储设备 | |
CN1794208A (zh) | 大容量存储设备和用于动态管理大容量存储设备的方法 | |
CN104461914A (zh) | 一种自动精简配置的自适应优化方法 | |
CN103455526A (zh) | 一种etl数据处理方法、装置及系统 | |
CN108920100B (zh) | 基于Ceph的读写模型优化和异构副本组合方法 | |
CN108519856B (zh) | 基于异构Hadoop集群环境下的数据块副本放置方法 | |
CN114064588B (zh) | 存储空间调度方法及系统 | |
CN104376094A (zh) | 一种考虑访问随机性的文件分级存储方法和系统 | |
CN107203479B (zh) | 层级化存储系统、存储控制器及层级化控制方法 | |
CN109298949B (zh) | 一种分布式文件系统的资源调度系统 | |
JPWO2015140931A1 (ja) | トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム | |
CN116364148A (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 |