CN111414271A - 一种基于自适应存储冗余策略的存储方法 - Google Patents
一种基于自适应存储冗余策略的存储方法 Download PDFInfo
- Publication number
- CN111414271A CN111414271A CN202010187685.0A CN202010187685A CN111414271A CN 111414271 A CN111414271 A CN 111414271A CN 202010187685 A CN202010187685 A CN 202010187685A CN 111414271 A CN111414271 A CN 111414271A
- Authority
- CN
- China
- Prior art keywords
- storage
- block
- pool
- subsequent
- data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- 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/0626—Reducing size or complexity 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/0629—Configuration or reconfiguration 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于自适应存储冗余策略的存储方法,该存储方法包括以下步骤:部署步骤:分别设置条带化存储方式中第一个分块和后续分块的最大容量;部署存储冗余策略配置信息,分别设定第一个分块和后续分块的存储冗余策略;数据写入步骤:通过条带化存储方式,并根据部署的存储冗余策略,分别将数据的第一个分块和后续分块写入对应存储池中;数据读取步骤:通过条带化存储方式,并根据部署的存储冗余策略,分别将数据的第一个分块和后续分块从对应存储池中读取,与现有技术相比,本发明具有无需花费大量时间迁移原先已经写入的副本数据,且保证原先副本数据的可用性等优点。
Description
技术领域
本发明涉及存储领域的数据冗余策略,尤其是涉及一种基于自适应存储冗余策略的存储方法。
背景技术
近年来,非结构化数据呈爆炸式、火箭式增长。传统存储在面对非结构化数据的时候,是心有余而力不足的。越来越多的企业级业务系统,在架构时,选择分布式存储系统用来存储它们的非结构化数据。
企业级业务系统在规划它们的存储系统时,会从扩展性、性价比、高可靠性等多方面进行考量。在初期时,往往会部署较小规模的存储集群满足企业近期存储的需求,通常三节点的集群可以满足高可用,高可扩展性的要求。但是三节点的集群存储冗余策略基本都是副本冗余策略的,很少可以采用纠删码(EC)冗余策略的。随着数据量的膨胀式增长,后续的存储集群规模越扩越大,采用副本冗余策略成本太高,逐步地会考虑采用纠删码冗余策略。
以副本冗余策略中三副本和纠删码冗余策略中EC 4+2(4个数据块,2个校验块)为例进行对比,三副本的存储利用率为三分之一,而EC 4+2的存储利用率为三分之二,纠删码的存储利用率为三副本的两倍。但是,如果一开始企业就选择纠删码的冗余策略,通常需要部署6个节点,而部署三副本,通常只需要部署3个节点,那么初期的规划成本就要高出一倍。
针对这种企业级业务的需求,初期成本投入成本低一些,部署副本冗余策略,后期逐步扩展到可支持纠删码的规模时,能够部署纠删码策略。这时存在一个问题是:原先大量的副本冗余策略的数据怎么处理?大多情况下采用数据迁移的方法,将副本数据重新上传一遍。这种方法周期长,且需要停止业务,等全部迁移完成后才能恢复业务。数据规模较大时,可能需要几十天的时间进行数据迁移,业务停止时间周期太长,恐怕难以接受。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种无需花费大量时间迁移原先已经写入的副本数据,且保证原先副本数据的可用性的基于自适应存储冗余策略的存储方法。
本发明的目的可以通过以下技术方案来实现:
一种基于自适应存储冗余策略的存储方法,该存储方法包括以下步骤:
部署步骤:分别设置条带化存储方式中第一个分块和后续分块的最大容量;部署存储冗余策略配置信息,分别设定第一个分块和后续分块的存储冗余策略;
数据写入步骤:通过条带化存储方式,并根据部署的存储冗余策略,分别将数据的第一个分块和后续分块写入对应存储池中;
数据读取步骤:通过条带化存储方式,并根据部署的存储冗余策略,分别将数据的第一个分块和后续分块从对应存储池中读取。
该自适应存储冗余策略包括存储策略转变自适应和大小对象自适应;
所述的存储策略转变自适应具体包括:
S101:执行部署步骤,设置第一个分块和后续分块的最大容量,并设定第一个分块和后续分块的存储冗余策略采用相同的存储策略;
S102:执行数据写入步骤和/或数据读取步骤;
S103:集群规模扩展,再次执行部署步骤,改变后续分块采用的存储冗余策略;
S104:执行数据写入步骤和/或数据读取步骤;
所述的大小对象自适应具体包括:
S201:执行部署步骤,设置第一个分块和后续分块的最大容量,并设定第一个分块采用副本冗余策略,后续分块采用纠删码冗余策略;
S202:执行数据写入步骤和/或数据读取步骤。
所述的存储冗余策略配置信息包括第一存储池(head pool)和第二存储池(tailpool),所述的第一存储池(head pool)指向第一个分块对应存储策略的存储池,所述的第一个分块存放于第一存储池(head pool)指向的存储池中,所述的第二存储池(tail pool)指向后续分块对应存储策略的存储池,所述的后续分块存放于第二存储池(tail pool)指向的存储池中。
所述的条带化存储方式具体包括以下步骤:
S11:判断待处理数据的大小是否小于等于第一个分块的最大容量,若是,则设置第一个分块的大小为该数据的大小,结束,否则设置第一个分块的大小为其最大容量,并执行步骤S12;
S12:计算剩余容量rest,所述的剩余容量rest计算式为:rest=n-h,其中n为数据的大小,h为第一个分块的最大容量;
S13判断剩余容量rest是否小于等于后续分块的最大容量,若是,则设置最后一个后续分块的大小为剩余容量rest,结束;否则执行步骤S14;
S14:设置后续分块大小为其最大容量,将当前剩余容量rest减去后续分块的最大容量,得到新的剩余容量rest,并返回执行步骤S13。
所述的第一个分块的元数据信息中包含后续分块的存储冗余策略信息。
所述的数据写入步骤具体包括:
S21:读取存储冗余策略配置信息,分别确定第一存储池和第二存储池指向的存储池;
S22:往第一存储池指向的存储池中写入第一个分块,同时在第一个分块的元数据中记录第二存储池指向的存储池;
S23:判断是否有后续分块,若是,则执行步骤S24,否则完成数据写入;
S24:往第二存储池指向的存储池中写入一个后续分块,并返回执行步骤S23;
所述的数据读取步骤具体包括:
S31:读取存储冗余策略配置信息,确定第一存储池指向的存储池;
S32:从第一存储池指向的存储池中读取第一个分块,同时读取第一个分块的元数据,确定该数据写入时第二存储池指向的存储池;
S33:判断是否有后续分块,若是,则执行步骤S34,否则完成数据读取;
S34:从数据写入时第二存储池指向的存储池中读取一个后续分块,并返回执行步骤S33。
在存储策略转变自适应中,当存储策略为初始部署时,第一个分块和后续分块均写入同一个存储池中;后续集群规模扩展后,改变第二存储池指向的存储池,对于新写入的数据,除了第一个分块写入原来的存储池中,所有的后续分块都写入更改后第二存储池指向的存储池,完成存储策略的自适应转化。对于原先写入的数据,在读取第一个块元数据信息时,可以获得该数据写入时后续分块所在的存储池,那么也可以读出原先写入的数据的完整内容。
在大小对象自适应中,第一分块和后续分块分别匹配不同的存储策略,对于小于第一个分块最大容量的数据(可称为小对象),自动匹配副本策略,对于大于第一个分块最大容量的数据(可称为大对象),其超出第一个分块最大容量的数据自动匹配到纠删码策略,既能提升小对象的读写性能,又能提升大对象的存储利用率。
所述的步骤S101具体包括:执行部署步骤,设置第一个分块和后续分块的最大容量,并设定第一个分块和后续分块均采用副本冗余策略,所述的步骤S103具体包括:集群规模扩展,再次执行部署步骤,设定后续分块采用纠删码冗余策略。对于新写入的数据,除了第一个分块写入副本存储池中,所有的后续分块都写入纠删码存储池中,极大的提升了存储效率。
所述的步骤S103中,还包括将第一个分块的最大容量设置为0,进一步提升在集群规模扩展之后的存储利用率。
所述的步骤S201中,将第一个分块的最大容量设置为512KB,将后续分块的最大容量设置为4MB,可以自适应地将小对象写入到副本存储池中,大对象的后续分块写入到纠删码存储池中,提升小对象的访问性能,同时提升大对象的存储利用率。
当第一个分块和后续分块采用的存储策略相同时,所述的第一存储池(headpool)和第二存储池(tail pool)指向同一个存储池,所述的第一个分块和后续分块存放于同一个存储池中;当第一个分块和后续分块采用的存储策略不同时,所述的第一存储池(head pool)和第二存储池(tail pool)指向不同的存储池,所述的第一个分块和后续分块存放于不同的存储池中。
与现有技术相比,本发明具有以下优点:
1)本发明通过将数据以条带化方式存储,同时在第一个分块元数据中记录后续分块的存储冗余策略,使得第一个分块和后续分块可以采用相同或不同的存储策略,并且能够自适应匹配和调整;
2)本发明通过对存储策略的不同部署,支持将副本存储策略变更为纠删码存储策略,这种方法保证原有副本策略的数据的可用性,无需长时间的数据迁移,可以做到无缝变更;新写入的数据为纠删码存储策略,大大地提高了存储利用率;
3)本发明通过对存储策略的不同部署,将副本冗余策略和纠删码冗余策略混合的方式,这种自适应冗余策略可以将小对象存储到副本规则的存储池中,将大对象存储到纠删码规则的存储池中,这种方法可以提升小对象性能,同时提升大对象的存储利用率。
附图说明
图1为条带化存储方式示意图;
图2为数据读写流程图,其中图(2a)为数据写入流程图,图(2b)为数据读取流程图;
图3为新老数据的条带化分布图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
实施例
本发明提供一种基于自适应存储冗余策略的存储方法,包括以下步骤:
部署步骤:分别设置条带化存储方式中第一个分块和后续分块的最大容量;部署存储冗余策略配置信息,分别设定第一个分块和后续分块的存储冗余策略;
数据写入步骤:通过条带化存储方式,并根据部署的存储冗余策略,分别将数据的第一个分块和后续分块写入对应存储池中;
数据读取步骤:通过条带化存储方式,并根据部署的存储冗余策略,分别将数据的第一个分块和后续分块从对应存储池中读取。
其中,该存储冗余策略自适应的方法包括两个方面:
(1)存储策略转变自适应:
S101:执行部署步骤,设置第一个分块和后续分块的最大容量,并设定第一个分块和后续分块的存储冗余策略采用相同的存储策略;
S102:执行数据写入步骤和/或数据读取步骤;
S103:集群规模扩展,再次执行部署步骤,改变后续分块采用的存储冗余策略;
S104:执行数据写入步骤和/或数据读取步骤;
(2)大小对象自适应具体包括:
S201:执行部署步骤,设置第一个分块和后续分块的最大容量,并设定第一个分块和后续分块的存储冗余策略采用不同的存储策略;
S202:执行数据写入步骤和/或数据读取步骤。
本发明在副本冗余策略的基础上,提供新的纠删码冗余策略,原先已经写入的副本数据继续以副本形式存储,新写入的数据以纠删码形式存储,无需迁移原先副本数据,并保证原先副本数据的可用性。
本发明方法中的数据以条带化方式存储,其第一个分块的大小和后续的块的大小不一致,且第一个分块和后续分块可以采用相同或不同的存储策略,同时在第一个分块元数据中包含后续分块的存储冗余策略。
如图1所示,为条带化存储方式的流程示意图,以存储一个n字节大小的数据为例,设置第一个分块的大小最大为h字节,后续分块的大小最大为t字节,其具体步骤包括:
11)判断n<=h是否成立,若是,则设置第一个分块的大小为n字节,结束,否则设置第一个分块的大小为h字节,并执行步骤12);
12)设置剩余容量rest=n-h字节;
13)判断rest<=t是否成立,若是,则设置最后一个后续分块的大小为rest字节,结束;否则执行步骤14);
14)设置后续分块大小为t字节,设置剩余容量rest=rest-t字节,并返回执行步骤13)。
本发明中,我们将采用同一种存储策略的块放置在同一个存储池(pool)中。同一个数据的存储冗余策略配置信息包含两个存储池:第一存储池(head pool)和第二存储池(tail pool)。
其中,第一存储池反应第一个分块对应的存储策略,例如,当第一个分块采用副本冗余策略时,第一存储池指向副本存储池(replica pool),当第一个分块采用纠删码冗余策略时,第一存储池指向纠删码存储池(ec pool);第二存储池反应后续分块对应的存储策略,例如,当后续分块采用副本冗余策略时,第二存储池指向副本存储池,当后续分块采用纠删码冗余策略时,第二存储池指向纠删码存储池。根据条带化存储方式,对于同一个数据可以分别采用两种存储冗余策略,同时,这两种存储冗余策略可以相同,也可以不同。当第一个分块和后续分块存储冗余策略相同时,第一个分块和后续分块存放于同一个存储池中,当第一个分块和后续分块存储冗余策略配置信息不同时,第一个分块和后续分块存放于不同的存储池中。
如图(2a)所示,为本发明方法的数据写入流程示意图,具体包括:
21)读取存储冗余策略配置信息,分别确定head pool和tail pool指向的存储池;
22)往head pool指向的存储池中写入第一个分块,同时在第一个分块的元数据中记录tail pool指向的存储池;
23)判断是否有后续分块,若是,则执行步骤24),否则结束完成数据写入;
24)往tail pool指向的存储池中写入一个后续分块,并返回执行步骤23)。
如图(2b)所示,为本发明方法的数据读取流程示意图,具体包括:
31)读取存储冗余策略配置信息,确定head pool指向的存储池;
32)从head pool指向的存储池中读取第一个分块,同时读取第一个分块的元数据,确定该数据写入时tail pool指向的存储池,记为tail pool2;
33)判断是否有后续分块,若是,则执行步骤34),否则结束完成数据读取;
34)从tail pool2指向的存储池中读取一个后续分块,并返回执行步骤33)。
其中,步骤32)中,将该数据写入时tail pool指向的存储池记为tail pool2,是为了与当前的tail pool区分,因为其可能与当前tail pool所指向的存储池不同,而与曾经tail pool所指向的存储池相同。
当存储策略为仅采用副本冗余策略时,head pool和tail pool同时指向副本存储池(replica pool),后续集群规模扩展后,若需要将存储策略改为纠删码冗余策略,则新建一个纠删码存储池(ec pool),然后将tail pool由原先指向replica pool改为指向ecpool。此时,对于新写入的数据,除了第一个分块写入了replica pool中,所有的后续分块都将写入ec pool中,极大的提升了存储效率。而对于原先已写入的数据,在读取第一个分块元数据信息时,可以获得数据写入时后续分块存储的存储池,即replica pool,于是可以读出原先写入的数据的完整内容。
另外,当设定head pool指向replica pool,tail pool指向ec pool时,可以实现自适应匹配存储冗余策略。对于小于第一个分块的容量的数据(称为小对象),将自动匹配副本冗余策略,对于大于第一个分块的容量的数据(称为大对象),其大于第一个分块的数据将自动匹配到纠删码冗余策略。这种自适应的存储冗余既能提升小对象的读写性能,又能提升大对象的存储利用率。
实施例1
本实施例中,以第一个分块大小为512KB,后续分块大小为4MB为例,初始部署时存储冗余策略配置信息的head pool指向3副本存储池(rep3_pool),tail pool也指向rep3_pool。
当写入一个大小为10MB、名称为a.rep3.log的数据时,具体步骤如下:
1、读取存储冗余策略配置信息,确定head pool指向rep3_pool,tail pool指向rep3_pool;
2、往rep3_pool写入第一个分块,其内容为数据的第0-512KB;
3、在第一个分块的元数据信息中记录tail pool为rep3_pool;
4、往rep3_pool写入第二个块,其内容为数据的第512KB-4.5MB;
5、往rep3_pool写入第三个块,其内容为数据的第4.5MB-8.5MB;
6、往rep3_pool写入第四个块,其内容为数据的第8.5MB-10MB。
集群规模扩展后,创建4+2的纠删码存储池(ec42_pool),将tail pool由指向rep3_pool改为指向ec42_pool,head pool仍指向rep3_pool。
读取a.rep3.log的具体步骤如下:
1、读取存储冗余策略配置信息,确定head pool指向rep3_pool);
2、从rep3_pool读取第一个分块,块的大小为512KB;
3、从第一个分块的元数据信息中读取记录的tail pool,确定tail pool指向rep3_pool,此处为写入时存储冗余配置信息的tail pool,而非当前存储冗余配置信息的tail pool;
4、从rep3_pool中读取第二个块,块的大小为4MB;
5、从rep3_pool中读取第三个块,块的大小为4MB;
6、从rep3_pool读取第四个块,块的大小为1.5MB。
此时写入一个大小为10MB、名称为b.ec42.log的数据,具体步骤如下:
1、读取存储冗余策略配置信息,确定head pool指向rep3_pool,tail pool指向ec42_pool;
2、往rep3_pool写入第一个分块,块的内容为数据的第0-512KB;
3、在第一个分块的元数据信息中记录tail pool指向ec42_pool;
4、往ec42_pool写入第二个块,块的内容为数据的第512KB-4.5MB;
5、往ec42_pool写入第三个块,块的内容为数据的第4.5MB-8.5MB;
6、往ec42_pool写入第四个块,块的内容为数据的第8.5MB-10MB。
读取修改为纠删码之后写入的数据b.ec42.log时,具体步骤如下:
1、读取存储冗余策略配置信息,确定head pool指向rep3_pool;
2、从rep3_pool读取第一个分块,块的大小为512KB;
3、从第一个分块中的元数据信息中读取tail pool,确定tail pool指向ec42_pool,此处为当前存储冗余策略配置信息的tail pool;
4、从ec42_pool中读取第二个块,块的大小为4MB;
5、从ec42_pool中读取第三个块,块的大小为4MB;
6、从ec42_pool写入第四个块,块的大小为1.5MB。
如图3所示,可以清晰的看到数据a.rep3.log和数据b.ec42.log的条带分布,通过在第一个分块的元数据信息中记录tail pool,从而可以达到变更tail pool的存储策略的目的。
实施例2
为了进一步提升在集群规模扩展之后修改为纠删码的第一个分块的存储利用率,在实施例1的基础上,可以将第一个分块的大小设置为0KB,那么新写入数据的全部内容都位于ec42_pool中,在rep3_pool中只写入一个大小为0的空数据。
实施例3
初始部署时,设置存储冗余策略配置信息的head pool指向副本存储池,tailpool指向纠删码存储池,且设置第一个分块大小为512KB,后续分块大小为4MB,实现自适应冗余策略。这种自适应冗余策略可以自适应地将小对象写入到副本存储池中,大对象的后续分块写入到纠删码存储池中,提升小对象的访问性能,同时提升大对象的存储利用率。
实施例4
本发明所说的存储领域包括但不限于:对象存储和文件存储领域。例如在统一的分布式存储系统Ceph的对象存储中,可以将bucket的存储冗余策略中的head pool对应本发明中的head pool,tail pool对应本发明中的tail pool。
实施例5
本发明中数据冗余策略的自适应变化包含但不限于:副本冗余策略变化为纠删码冗余策略、纠删码冗余策略变化为副本冗余策略、一种纠删码冗余策略变化为另一种纠删码冗余策略、一种副本冗余策略变化为另一种副本冗余策略。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于自适应存储冗余策略的存储方法,其特征在于,该存储方法包括以下步骤:
部署步骤:分别设置条带化存储方式中第一个分块和后续分块的最大容量;部署存储冗余策略配置信息,分别设定第一个分块和后续分块的存储冗余策略;
数据写入步骤:通过条带化存储方式,并根据部署的存储冗余策略,分别将数据的第一个分块和后续分块写入对应存储池中;
数据读取步骤:通过条带化存储方式,并根据部署的存储冗余策略,分别将数据的第一个分块和后续分块从对应存储池中读取。
2.根据权利要求1所述的一种基于自适应存储冗余策略的存储方法,其特征在于,自适应存储冗余策略包括存储策略转变自适应和大小对象自适应;
所述的存储策略转变自适应具体包括:
S101:执行部署步骤,设置第一个分块和后续分块的最大容量,并设定第一个分块和后续分块的存储冗余策略采用相同的存储策略;
S102:执行数据写入步骤和/或数据读取步骤;
S103:集群规模扩展,再次执行部署步骤,改变后续分块采用的存储冗余策略;
S104:执行数据写入步骤和/或数据读取步骤;
所述的大小对象自适应具体包括:
S201:执行部署步骤,设置第一个分块和后续分块的最大容量,并设定第一个分块和后续分块的存储冗余策略采用不同的存储策略;
S202:执行数据写入步骤和/或数据读取步骤。
3.根据权利要求2所述的一种基于自适应存储冗余策略的存储方法,其特征在于,所述的存储冗余策略配置信息包括第一存储池和第二存储池,所述的第一存储池指向第一个分块对应存储策略的存储池,所述的第一个分块存放于第一存储池指向的存储池中,所述的第二存储池指向后续分块对应存储策略的存储池,所述的后续分块存放于第二存储池指向的存储池中。
4.根据权利要求3所述的一种基于自适应存储冗余策略的存储方法,其特征在于,所述的条带化存储方式具体包括以下步骤:
S11:判断待处理数据的大小是否小于等于第一个分块的最大容量,若是,则设置第一个分块的大小为该数据的大小,结束,否则设置第一个分块的大小为其最大容量,并执行步骤S12;
S12:计算剩余容量rest,所述的剩余容量rest计算式为:rest=n-h,其中n为数据的大小,h为第一个分块的最大容量;
S13判断剩余容量rest是否小于等于后续分块的最大容量,若是,则设置最后一个后续分块的大小为剩余容量rest,结束;否则执行步骤S14;
S14:设置后续分块大小为其最大容量,将当前剩余容量rest减去后续分块的最大容量,得到新的剩余容量rest,并返回执行步骤S13。
5.根据权利要求4所述的一种基于自适应存储冗余策略的存储方法,其特征在于,所述的第一个分块的元数据信息中包含后续分块的存储冗余策略信息。
6.根据权利要求5所述的一种基于自适应存储冗余策略的存储方法,其特征在于,所述的数据写入步骤具体包括:
S21:读取存储冗余策略配置信息,分别确定第一存储池和第二存储池指向的存储池;
S22:往第一存储池指向的存储池中写入第一个分块,同时在第一个分块的元数据中记录第二存储池指向的存储池;
S23:判断是否有后续分块,若是,则执行步骤S24,否则完成数据写入;
S24:往第二存储池指向的存储池中写入一个后续分块,并返回执行步骤S23;
所述的数据读取步骤具体包括:
S31:读取存储冗余策略配置信息,确定第一存储池指向的存储池;
S32:从第一存储池指向的存储池中读取第一个分块,同时读取第一个分块的元数据,确定该数据写入时第二存储池指向的存储池;
S33:判断是否有后续分块,若是,则执行步骤S34,否则完成数据读取;
S34:从数据写入时第二存储池指向的存储池中读取一个后续分块,并返回执行步骤S33。
7.根据权利要求2所述的一种基于自适应存储冗余策略的存储方法,其特征在于,所述的步骤S101具体包括:执行部署步骤,设置第一个分块和后续分块的最大容量,并设定第一个分块和后续分块均采用副本冗余策略,所述的步骤S103具体包括:集群规模扩展,再次执行部署步骤,设定后续分块采用纠删码冗余策略。
8.根据权利要求7所述的一种基于自适应存储冗余策略的存储方法,其特征在于,所述的步骤S103中,还包括将第一个分块的最大容量设置为0。
9.根据权利要求2所述的一种基于自适应存储冗余策略的存储方法,其特征在于,所述的步骤S201中,将第一个分块的最大容量设置为512KB,将后续分块的最大容量设置为4MB。
10.根据权利要求3所述的一种基于自适应存储冗余策略的存储方法,其特征在于,当第一个分块和后续分块采用的存储策略相同时,所述的第一存储池和第二存储池指向同一个存储池,所述的第一个分块和后续分块存放于同一个存储池中;当第一个分块和后续分块采用的存储策略不同时,所述的第一存储池和第二存储池指向不同的存储池,所述的第一个分块和后续分块存放于不同的存储池中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010187685.0A CN111414271B (zh) | 2020-03-17 | 2020-03-17 | 一种基于自适应存储冗余策略的存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010187685.0A CN111414271B (zh) | 2020-03-17 | 2020-03-17 | 一种基于自适应存储冗余策略的存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414271A true CN111414271A (zh) | 2020-07-14 |
CN111414271B CN111414271B (zh) | 2023-10-13 |
Family
ID=71491295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010187685.0A Active CN111414271B (zh) | 2020-03-17 | 2020-03-17 | 一种基于自适应存储冗余策略的存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414271B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631511A (zh) * | 2020-12-04 | 2021-04-09 | 苏州浪潮智能科技有限公司 | 一种分布式集群存储池容量智能应急系统、方法及介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587425A (zh) * | 2009-06-16 | 2009-11-25 | 杭州华三通信技术有限公司 | 一种增加独立磁盘冗余阵列冗余性的方法及装置 |
CN104503706A (zh) * | 2014-12-23 | 2015-04-08 | 中国科学院计算技术研究所 | 一种基于磁盘阵列的数据存储及读取方法 |
CN104731526A (zh) * | 2015-03-17 | 2015-06-24 | 中国科学院计算技术研究所 | 一种不满条带写的方法及装置 |
US20160006461A1 (en) * | 2012-10-11 | 2016-01-07 | Zte Corporation | Method and device for implementation data redundancy |
CN105824720A (zh) * | 2016-03-10 | 2016-08-03 | 中国人民解放军国防科学技术大学 | 一种面向数据连续读取的重删纠删混合系统的数据放置方法器 |
CN106095807A (zh) * | 2016-05-31 | 2016-11-09 | 中广天择传媒股份有限公司 | 一种分布式文件系统纠删码缓存装置及其缓存方法 |
CN106227731A (zh) * | 2016-07-06 | 2016-12-14 | 联想(北京)有限公司 | 一种数据处理方法、装置及分布式文件系统 |
CN107589916A (zh) * | 2017-09-29 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种基于纠删码的纠删池的创建方法及相关装置 |
CN107807794A (zh) * | 2017-10-31 | 2018-03-16 | 新华三技术有限公司 | 一种数据存储方法和装置 |
CN108196978A (zh) * | 2017-12-22 | 2018-06-22 | 新华三技术有限公司 | 数据存储方法、装置、数据存储系统及可读存储介质 |
CN109828868A (zh) * | 2019-01-04 | 2019-05-31 | 新华三技术有限公司成都分公司 | 数据存储方法、装置、管理设备和双活数据存储系统 |
CN109992204A (zh) * | 2019-03-19 | 2019-07-09 | 新华三技术有限公司成都分公司 | 数据存储方法及装置 |
CN110196682A (zh) * | 2018-06-15 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 数据管理方法、装置、计算设备及存储介质 |
CN110347344A (zh) * | 2019-07-19 | 2019-10-18 | 北京计算机技术及应用研究所 | 一种基于分布式存储系统的自动配置块存储方法 |
CN110874284A (zh) * | 2018-09-03 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 数据处理的方法和装置 |
-
2020
- 2020-03-17 CN CN202010187685.0A patent/CN111414271B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587425A (zh) * | 2009-06-16 | 2009-11-25 | 杭州华三通信技术有限公司 | 一种增加独立磁盘冗余阵列冗余性的方法及装置 |
US20160006461A1 (en) * | 2012-10-11 | 2016-01-07 | Zte Corporation | Method and device for implementation data redundancy |
CN104503706A (zh) * | 2014-12-23 | 2015-04-08 | 中国科学院计算技术研究所 | 一种基于磁盘阵列的数据存储及读取方法 |
CN104731526A (zh) * | 2015-03-17 | 2015-06-24 | 中国科学院计算技术研究所 | 一种不满条带写的方法及装置 |
CN105824720A (zh) * | 2016-03-10 | 2016-08-03 | 中国人民解放军国防科学技术大学 | 一种面向数据连续读取的重删纠删混合系统的数据放置方法器 |
CN106095807A (zh) * | 2016-05-31 | 2016-11-09 | 中广天择传媒股份有限公司 | 一种分布式文件系统纠删码缓存装置及其缓存方法 |
CN106227731A (zh) * | 2016-07-06 | 2016-12-14 | 联想(北京)有限公司 | 一种数据处理方法、装置及分布式文件系统 |
CN107589916A (zh) * | 2017-09-29 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种基于纠删码的纠删池的创建方法及相关装置 |
CN107807794A (zh) * | 2017-10-31 | 2018-03-16 | 新华三技术有限公司 | 一种数据存储方法和装置 |
CN108196978A (zh) * | 2017-12-22 | 2018-06-22 | 新华三技术有限公司 | 数据存储方法、装置、数据存储系统及可读存储介质 |
CN110196682A (zh) * | 2018-06-15 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 数据管理方法、装置、计算设备及存储介质 |
CN110874284A (zh) * | 2018-09-03 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 数据处理的方法和装置 |
CN109828868A (zh) * | 2019-01-04 | 2019-05-31 | 新华三技术有限公司成都分公司 | 数据存储方法、装置、管理设备和双活数据存储系统 |
CN109992204A (zh) * | 2019-03-19 | 2019-07-09 | 新华三技术有限公司成都分公司 | 数据存储方法及装置 |
CN110347344A (zh) * | 2019-07-19 | 2019-10-18 | 北京计算机技术及应用研究所 | 一种基于分布式存储系统的自动配置块存储方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631511A (zh) * | 2020-12-04 | 2021-04-09 | 苏州浪潮智能科技有限公司 | 一种分布式集群存储池容量智能应急系统、方法及介质 |
CN112631511B (zh) * | 2020-12-04 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种分布式集群存储池容量智能应急系统、方法及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111414271B (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8225029B2 (en) | Data storage processing method, data searching method and devices thereof | |
US9645750B2 (en) | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory | |
US8843691B2 (en) | Prioritized erasure of data blocks in a flash storage device | |
KR100577380B1 (ko) | 플래시 메모리와 그 제어 방법 | |
CN103049349B (zh) | 基于分层存储的快照方法及系统 | |
KR20090115917A (ko) | 시퀀스 번호 랩 어라운드 장치, 방법 및 물품 | |
CN110532201B (zh) | 一种元数据处理方法及装置 | |
CN106339276B (zh) | 一种基于数据备份状态的数据恢复方法及系统 | |
CN101419573A (zh) | 一种存储管理的方法、系统和存储设备 | |
US11128535B2 (en) | Computer system and data management method | |
CN110764704A (zh) | 一种环境变量写入方法、存储介质及电子装置 | |
US8819329B2 (en) | Nonvolatile storage device, access device and nonvolatile storage system | |
CN102096613B (zh) | 一种生成快照的方法及装置 | |
CN111414271A (zh) | 一种基于自适应存储冗余策略的存储方法 | |
CN107506466A (zh) | 一种小文件存储方法及系统 | |
US20110047409A1 (en) | Storage device supporting auto backup function | |
CN113010105A (zh) | 一种数据备份的方法、装置、设备和计算机可读存储介质 | |
US8996786B2 (en) | Nonvolatile memory system and block management method | |
CN110262980B (zh) | 基于有限寿命存储介质的高速存储系统 | |
US20110264848A1 (en) | Data recording device | |
CN103605587A (zh) | 一种磁带库数据备份归档方法 | |
CN116069252A (zh) | 一种zns ssd设备的控制方法、装置及设备 | |
US9513826B2 (en) | Storage apparatus and storage apparatus control method | |
CN101794254B (zh) | Nand flash的数据处理方法 | |
CN111367474B (zh) | 面向嵌入式存储器的fat文件系统后分配方法及系统 |
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 |