CN103136114B - 存储方法及存储装置 - Google Patents
存储方法及存储装置 Download PDFInfo
- Publication number
- CN103136114B CN103136114B CN201110390178.8A CN201110390178A CN103136114B CN 103136114 B CN103136114 B CN 103136114B CN 201110390178 A CN201110390178 A CN 201110390178A CN 103136114 B CN103136114 B CN 103136114B
- Authority
- CN
- China
- Prior art keywords
- physical disk
- continuously
- partition
- disk
- virtual 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.)
- Expired - Fee Related
Links
- 230000005055 memory storage Effects 0.000 title claims abstract description 23
- 238000005192 partition Methods 0.000 claims abstract description 233
- 238000013507 mapping Methods 0.000 claims abstract description 43
- 238000000034 method Methods 0.000 claims description 25
- 238000013508 migration Methods 0.000 claims description 5
- 230000005012 migration Effects 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 11
- 238000011084 recovery Methods 0.000 description 10
- 230000001105 regulatory effect Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 4
- 238000013316 zoning Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003716 rejuvenation Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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
-
- 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/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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
-
- 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/0689—Disk arrays, e.g. RAID, JBOD
-
- 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/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种存储方法及存储装置,涉及信息技术领域,能提高数据存储的可靠性。本发明所述存储方法,包括将原始数据划分为若干个数据块;按照预设的映射算法,计算第一数据块所映射到的三个连续虚拟存储分区,其中,虚拟存储分区是由虚拟存储区划分成的分区,每个所述虚拟存储分区与一个物理磁盘相映射,物理磁盘具有连续的编号,与所述三个连续虚拟存储分区相映射的三个物理磁盘的编号为等差数列,且公差不为零;根据计算出的所述三个连续虚拟存储分区和与所述三个连续虚拟存储分区相映射的三个物理磁盘,将所述第一数据块以及所述第一数据块的第一副本和第二副本依次存储到所述三个物理磁盘中。本发明应用于改进存储装置。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种存储方法及存储装置。
背景技术
云存储,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。目前,云存储的架构有两种,一种是以谷歌文件系统为代表的集中式架构,另外一种是基于对等(PeertoPeer,P2P)技术的去中心节点海量分布式存储架构(对等式存储架构)。
对等式存储系统中的逻辑卷是由一定大小的存储块组成的虚拟存储空间,对外提供块存储服务。底层存储引擎主要依赖采用DHT技术构建的分布式哈希环表(DistributedHashTable,DHT)环来支撑。该DHT环采用虚拟化技术统一整个存储空间,对上透明提供一定容量的逻辑卷服务。DHT环在逻辑上被分割成的N个分区,然后逻辑卷中每一个存储块存储的数据块,通过哈希算法都分配到DHT环上某个确定的分区中。为了提高数据存储的可靠性,同时该数据块也会在该分区的随后2个相邻分区存储2份副本数据(用于备份的副本数是可调的),可看成该数据块相映射到这三个分区,即该数据块相映射到一组逻辑上连续的分区。由于每份数据块及其副本都分别存放于3个连续的分区中,因此需要确保这三个连续分区的存储可靠性。现有方法仅仅确保这三个分区不被映射到同一个物理磁盘上,即在所有物理磁盘中随机选出三个物理磁盘形成物理磁盘组合用于存储这三个连续分区。
在上述过程中,发明人发现现有技术至少存在如下问题:
现有技术采取随机映射的策略,当分区数目相对于物理磁盘数目非常大时,为了均衡物理磁盘数据及输出/输入流量,结果每个随机选出物理磁盘组合都至少会有一组三个连续分区被放置其中,当物理磁盘组合中的任意一组坏掉时,则都会有数据块集合连同它的两份副本集合一起丢失,导致数据的可靠性低。例如,如物理磁盘总数为5时,三个物理磁盘的组合数为5中取3有10种,当这10种物理磁盘组合中的任意一组坏掉即有任意的三个物理磁盘坏掉时,都会有储存其上的数据块及它的两份副本集合一同丢失。即便是当分区数目小于物理磁盘数目时,因物理磁盘组合坏掉,引起的数据块连同它的两份副本一起丢失的概率也过大,同样会导致数据的可靠性低的技术问题。
发明内容
本发明所要解决的技术问题在于提供一种存储方法及存储装置,能够解决现有技术中数据连同副本一起丢失的概率过大的问题,提高数据存储的可靠性。
为达到上述目的,本发明的实施例采用如下技术方案:
一种存储方法,包括:
将原始数据划分为若干个数据块;
按照预设的映射算法,计算第一数据块所映射到的三个连续虚拟存储分区,其中,虚拟存储分区是由虚拟存储区划分成的分区,每个所述虚拟存储分区与一个物理磁盘相映射,物理磁盘具有连续的编号,与所述三个连续虚拟存储分区相映射的三个物理磁盘的编号为等差数列,且公差不为零;
根据计算出的所述三个连续虚拟存储分区和与所述三个连续虚拟存储分区相映射的三个物理磁盘,将所述第一数据块以及所述第一数据块的第一副本和第二副本依次存储到所述三个物理磁盘中。
本发明实施例还提供一种存储装置,包括:
划分模块,用于将原始数据划分为若干个数据块;
计算模块,用于按照预设的映射算法,计算第一数据块所映射到的三个连续虚拟存储分区,其中,虚拟存储分区是由虚拟存储区划分成的分区,每个所述虚拟存储分区与一个物理磁盘相映射,物理磁盘具有连续的编号,与所述三个连续虚拟存储分区相映射的三个物理磁盘的编号为等差数列,且公差不为零;
存储模块,用于根据计算出的所述三个连续虚拟存储分区和与所述三个连续虚拟存储分区相映射的三个物理磁盘,将所述第一数据块以及所述第一数据块的第一副本和第二副本依次存储到所述三个物理磁盘中。
本发明实施例中的存储方法及存储装置,只将数据块及其副本存储到有规则的物理磁盘组合中,如分别存储到一组编号为等差数列的物理磁盘上;而现有技术中,仅保证数据块及其副本不被存储到同一个物理磁盘上,即将数据块及其副本随机存储到不同物理磁盘之上。相比现有技术,本发明实施例中的存储方法及存储装置,降低了逻辑上连续的三个分区映射到的物理磁盘组合的数目,从而提高了数据存储的可靠性。
附图说明
图1为本发明实施例一中存储方法的流程图一;
图2为本发明实施例一中分布式哈希表环的示意图;
图3为本发明实施例一中虚拟存储分区与物理磁盘相映射的示意图一;
图4为本发明实施例一中连续虚拟存储分区与三个物理磁盘相映射的示意图一;
图5为本发明实施例一中存储方法的流程图二;
图6为本发明实施例一中连续虚拟存储分区与物理磁盘相映射的示意图二;
图7为本发明实施例一中数据块集合及其副本集合在物理磁盘上放置的示意图;
图8为本发明实施例一中4#物理磁盘失效时,数据块集合及其副本进行数据恢复的示意图;
图9为本发明实施例一中存储方法的流程图三;
图10为本发明实施例一中连续虚拟存储分区与物理磁盘相映射的示意图三;
图11为本发明实施例一中新增物理磁盘时,数据块集合及其副本转移的示意图;
图12为本发明实施例二中存储装置的结构框图一;
图13为本发明实施例二中存储装置的结构框图二;
图14为本发明实施例二中存储装置的结构框图三。
具体实施方式
本发明实施例所要解决的技术问题在于提供一种存储方法和存储装置,能够解决现有技术中数据连同副本一起丢失的概率过大的问题,提高数据存储的可靠性。
下面结合附图对本发明实施例进行详细描述。此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
实施例一
本发明实施例提供一种存储方法,如图1所示,该方法包括:
步骤101、将原始数据划分为若干个数据块;
本步骤中数据块的大小可设置,典型值为1M。
步骤102、按照预设的映射算法,计算第一数据块所映射到的三个连续虚拟存储分区,其中,虚拟存储分区是由虚拟存储区划分成的分区,每个所述虚拟存储分区与一个物理磁盘相映射,物理磁盘具有连续的编号,与所述三个连续虚拟存储分区相映射的三个物理磁盘的编号为等差数列,且公差不为零;
本步骤中的虚拟存储区可通过DHT环来虚拟,如图2所示,一个取值空间为0~232-1的DHT环11,在逻辑上被分割成的N份(N远远小于232),DHT环11上的每一个区域称为一个虚拟存储分区13,按顺时针方向DHT环上的每个虚拟存储分区13依次命名为p1~pn。存储时先将原始数据划分为若干个数据块12;然后提取数据块12中的关键字如文件名等,通过预设的映射算法算出一个结果,再根据该结果落在DHT环上那一个取值区域,则将该数据块12分配到相应的虚拟存储分区13中,为了提高数据存储的可靠性,同时也会将该数据块的2份副本分别分配到在逻辑上与该相应的虚拟存储分区连续的2个虚拟存储分区中,因此可看成该数据块映射到这三个逻辑上连续的虚拟存储分区,即该数据块相映射到一组逻辑上连续的虚拟存储分区,最终每一个数据块都与一组连续虚拟存储分区相映射。
假设DHT环上一共有6个虚拟存储分区依次命名为p1~p6,典型情况下,逻辑上连续的三个虚拟存储分区即为连续的三个相邻的虚拟存储分区,共有六组这样的连续虚拟存储分区,分别为{p1,p2,p3}、{p2,p3,p4}、{p3,p4,p5}、{p4,p5,p6}、{p5,p6,p1}和{p6,p1,p2}。假设物理磁盘总数为5,并且具有连续的编号1#~5#,且这5个物理磁盘在逻辑上是首尾相接的环,即编号为1#的物理磁盘排在5#物理磁盘之后。本步骤中每个虚拟存储分区与一个物理磁盘相映射,多出来的存储分区从头开始依次按顺序映射到这五个物理磁盘中,如图3所示。
本步骤中与所述三个连续虚拟存储分区相映射的三个物理磁盘的编号为等差数列,若等差数列的公差为1,即与所述三个连续虚拟存储分区相映射的三个物理磁盘为三个连续编号的物理磁盘,这三个连续编号的物理磁盘形成一个物理磁盘组合。编号为1#~5#的5个物理磁盘中,编号成等差数列的物理磁盘组合有五个,分别为{1#,2#,3#},{2#,3#,4#},{3#,4#,5#},{4#,5#,1#},{5#,1#,2#}。最终如图4所示,所述三个连续虚拟存储分区{p1,p2,p3}分别与编号为{1#,2#,3#}的三个物理磁盘相映射,而{p2,p3,p4}分别与编号为{2#,3#,4#}的三个物理磁盘相映射,以此类推,{p5,p6,p1}分别与最后一组的编号为{5#,1#,2#}的三个物理磁盘相映射。为了均衡各物理磁盘上存储的数据以及输入输出流量,则{p6,p1,p2}从头开始映射到第一组物理磁盘组合中,即{p6,p1,p2}与编号为{1#,2#,3#}的三个物理磁盘相映射。
本步骤中物理磁盘具有连续的编号,但编号应理解为不限于自然数,如连续的编号可为1、3、5、7等,中间不存在编号为2、4、6的物理磁盘。
所述预设的映射算法为哈希算法。
步骤103、根据计算出的所述三个连续虚拟存储分区和与所述三个连续虚拟存储分区相映射的三个物理磁盘,将所述第一数据块以及所述第一数据块的第一副本和第二副本依次存储到所述三个物理磁盘中
本步骤中根据计算出的虚拟存储分区对数据块进行存储,若按照预设的映射算法,所述第一数据块分配到p1虚拟存储分区,同时将该第一数据块的2份副本分别分配到在逻辑上与该相应的虚拟存储分区连续的2个虚拟存储分区中,按照上面叙述中的假设,分配到近邻的p2、p3虚拟存储分区中,即所述第一数据块映射到三个连续虚拟存储分区p1、p2和p3,而这三个连续虚拟存储分区按照上述假设与编号为{1#,2#,3#}的三个物理磁盘相映射,所以则将第一数据块存储到编号为1#的物理磁盘中,并将第一数据块的第一副本存储到编号为2#的物理磁盘中,第一数据块的第二副本存储到编号为3#的物理磁盘中,即在编号为2#、3#的物理磁盘中各存储一份与第一数据块内容完全相同的数据块作为第一数据块的第一副本和第二副本。同样地,分配到p1虚拟存储分区的其余数据块都会被存储到{1#,2#,3#}这三个物理磁盘中;而分配到虚拟存储分区p6的所有数据块,因所述三个连续虚拟存储分区{p6,p1,p2}按照上述假设也与{1#,2#,3#}这三个物理磁盘相映射,所以存储过程与第一数据块类似,最终也被存储到{1#,2#,3#}这三个物理磁盘中。
另外,类似地,当所述公差为2时,按上述假设第一数据块被存储到{1#,3#,5#}这三个物理磁盘中。
作为一个优选方案,所述等差数列的所述公差为1。
具体地,等差数列的公差为1时,本实施例中存储方法具体过程如下:
步骤S101、根据物理磁盘标示信息即磁盘标示和节点标示,对所有物理磁盘进行统一编号;
本步骤中物理磁盘标示为物理磁盘序列号,本步骤中的节点为数据存储单元,实际存储时一个硬盘即可认为是一个节点。
步骤S102、根据物理磁盘总数,建立一个一维的数组Q,并为数组Q中的每个元素赋值,即在数组Q中存放物理磁盘标示信息;
在本步骤中,物理磁盘总数为M,则有M个连续物理磁盘组合,则建立一个一维的大小为M的数组Q,即数组Q的元素的个数为M,将编号为i的物理磁盘的标示信息即磁盘标示和节点标示,赋值给数组Q中的元素Q[i]。
步骤S103、读取系统配置信息,获取系统分割的虚拟存储分区数目,根据上述虚拟存储分区数目总数N,建立一个一维的大小为N的数组P,数组P中每个元素的数据格式为长整型;
本步骤所述系统配置信息为存储系统预先设置。
步骤S104、针对DHT环上的所有虚拟存储分区(0~N-1),建立一个依次循环进行虚拟存储分区数据的具体映射,具体包括:获取当前虚拟存储分区应该映射到哪个物理磁盘并保存到数组Q中,将分配到当前虚拟存储分区中的所有数据块存储到实际分配的物理磁盘组合中。
本步骤中当前虚拟存储分区中的所有数据块既包括分配到该虚拟存储分区中的数据块,也包括分配到该虚拟存储分区中的数据块的副本。
按照规则完成上述的映射之后,保存上述数组Q的数据,即保存了所有的物理磁盘标示信息和编号的对应关系,以备后用。
本发明实施例所述存储方法的主要的思路,为降低连续虚拟存储分区映射到的物理磁盘组合的总数目,建立了一种特定的虚拟存储分区与物理磁盘的映射,并且映射建立方法可以有很多,如物理磁盘编号成等差数列或其他组合方式等等,实际上,只需要按照一定的规则来进行物理磁盘组合,并让DHT环上的连续虚拟存储分区只映射到这样的有规则的物理磁盘组合之上,则相比现有技术,物理磁盘组合的总数目都会降低,从而提高数据存储的可靠性。
另外,本发明实施例所述存储方法中,与每组连续虚拟存储分区相映射的是三个物理磁盘,原因在于现有技术中一般每个数据块都会存储三份(其中两份是用于备份的副本),所以可知一组连续虚拟存储分区中虚拟存储分区的数目,与存储中需要用于备份的副本数目有关,因此,一组连续虚拟存储分区中虚拟存储分区的数目及与连续虚拟存储分区相映射的物理磁盘的数目同样不限于三个。
在本实施例所述的存储方法中,连续虚拟存储分区只映射到有规则物理磁盘组合之上,如编号为等差数列的三个物理磁盘上,相比现有技术中将一组连续虚拟存储分区中的虚拟存储分区,随机映射到三个物理磁盘之上而言,降低了物理磁盘组合的数目,数据存储的可靠性显著提升,且用于存储的物理磁盘的个数越多,物理磁盘组合的数目降低的越显著,数据存储的可靠性提升的也就越显著。
假设本发明相关装置中有10个物理磁盘,单个物理磁盘年均失效率4%,则三个物理磁盘在12个小时内同时失效的概率为0.12×10-9。对于现有技术的随机映射方式而言,三个物理磁盘的组合数为10中取3有120种,当这120种物理磁盘组合中任意一组坏掉,都会可能有储存其上的数据块集合及它的两份副本集合一同丢失,导致数据的可靠性低。基于其上的存储装置的数据的可靠性为:
1-120×(0.12×10-9)=0.9999999856(1)
对于本实施例中的存储方法而言,连续虚拟存储分区与三个成等差数列的物理磁盘相映射,若公差为1,编号为等差数列的三个物理磁盘的组合数有10种,所以,基于其上的存储装置的数的可靠性为:
1-10×(0.12×10-9)=0.9999999998(2)
对比(1)(2)式,可知基于本发明实施例的存储装置的可靠性显著提升,按照上述的假设,在10个物理磁盘的时候,数据的可靠性提升了约100倍。
进一步,本实施例所述存储方法,当所述物理磁盘的其中一个发生故障,成为失效物理磁盘时,能够自动为放置其上的数据块寻找目标磁盘来进行数据拷贝恢复,如图5所示,该存储方法还包括:
步骤201、对映射到所述失效物理磁盘的每一个虚拟存储分区,获取包括该虚拟存储分区的三组所述三个连续虚拟存储分区;
步骤202、对每一组所述三个连续虚拟存储分区,获取除映射到所述失效物理磁盘的虚拟存储分区之外的,其余两个虚拟存储分区映射到的第一物理磁盘与第二物理磁盘;
步骤203、根据所述第一物理磁盘与第二物理磁盘,确定用于恢复数据的目标物理磁盘;
步骤204、将存储在第一物理磁盘和/或第二物理磁盘上的目标数据块拷贝到所述目标物理磁盘上,所述目标数据块为映射到所述三个连续虚拟存储分区的数据块,或者为该数据块的第一副本或第二副本;
循环执行步骤202至步骤204,直至轮询完所有所述三个连续虚拟存储分区。
步骤205、对部分物理磁盘进行重新编号,使未发生故障的物理磁盘具有连续的编号。
下面结合具体实例对上述数据恢复过程作详细叙述。等差数列的所述公差为1,根据上面所述,每一数据块都分配到一组连续虚拟存储分区,或者每一数据块及副本都映射到一组连续虚拟存储分区,而映射到同一组连续虚拟存储分区的所有数据块都会被存储到同一个物理磁盘组合中,例如映射到连续虚拟存储分区{p1,p2,p3}的所有数据块都会被存储到{1#,2#,3#}这三个物理磁盘中,所以为了方便描述,将映射到同一组连续虚拟存储分区中的数据块集合称为P,对应地将该数据块集合中的各数据块的第一副本组成的集合和第二副本组成的集合分别称为P’和P”。
假设有24个虚拟存储分区分别命名p1~p24,有8个编号为1#~8#的物理磁盘用于存储,前8个存储分区依次与8个物理磁盘相映射,多出来的存储分区从头开始映射到这8个物理磁盘中,最终如图6所示,连续存储分区组与这8个物理磁盘组合相映射。分配到每一个虚拟存储分区中数据块的集合,即映射到每一组连续虚拟存储分区中的数据块的集合分别命名为P1~P24,对应地各第一副本集合和各第二副本集合称为P1’~P24’和P1”~P24”,最终各数据块的集合P1~P24,各第一副本集合P1’~P24’和各第二副本集合P1”~P24”在这8个物理磁盘上放置的示意图如图7所示。假设按照预设的映射算法,若第一数据块分配到虚拟存储分区p1,则第一数据块映射到{p1,p2,p3},第一数据块属于集合P1,第一数据块的第一副本属于集合P1’,第一数据块的第二副本属于集合P1”,则从图7可看出,第一数据块存储在1#物理磁盘,第一数据块的第一副本存储在2#物理磁盘,第一数据块的第二副本存储在3#物理磁盘。当上述物理磁盘中的4#物理磁盘发生故障,成为失效物理磁盘,数据拷贝恢复过程如下:
步骤201中,对映射到所述失效物理磁盘4#的每一个虚拟存储分区,获取包括该虚拟存储分区的三组所述三个连续虚拟存储分区。
失效物理磁盘的编号为4#,与4#物理磁盘具有映射关系的虚拟存储分区为p4、p12、p20。其中,虚拟存储分区p4的所述三个连续虚拟存储分区为{p2,p3,p4}、{p3,p4,p5}和{p4,p5,p6},虚拟存储分区p12的所述三个连续虚拟存储分区为{p10,p11,p12}、{p11,p12,p13}和{p12,p13,p14},而虚拟存储分区p20的所述三个连续虚拟存储分区为{p20,p21,p22}、{p19,p20,p21}和{p18,p19,p20}。
对所有所述三个连续虚拟存储分区中的每一组,即{p2,p3,p4}、{p10,p11,p12}、{p18,p19,p20}、{p3,p4,p5}、{p11,p12,p13}、{p19,p20,p21}、{p4,p5,p6}、{p12,p13,p14}和{p20,p21,p22},循环执行步骤202至步骤204,直至轮询完所有的所述三个连续虚拟存储分区,下面以连续虚拟存储分区{p10,p11p12}为例进行说明。
步骤202中,对三个连续虚拟存储分区{p10,p11,p12},除映射到失效物理磁盘4#的虚拟存储分区p12之外,虚拟存储分区p10与第一物理磁盘2#相映射,虚拟存储分区p11与第二物理磁盘3#相映射。
步骤203中,根据所述第一物理磁盘2#与第二物理磁盘3#,确定用于恢复数据的目标物理磁盘;原来与{p10,p11,p12}相映射的三个物理磁盘为{2#,3#,4#},当4#物理磁盘出现故障,按照每个虚拟存储分区与一个物理磁盘相映射,连续虚拟存储分区{p10,p11,p12}相映射的三个物理磁盘的编号为公差为1的等差数列即连续映射的原则,只有2个物理磁盘可作为恢复数据的目标物理磁盘,即1#或5#物理磁盘,这样经步骤205重新编号后,三个物理磁盘的编号才能仍然满足公差为1的等差数列;
确定1#或5#物理磁盘可作为目标物理磁盘后,优选的,再比较1#物理磁盘和5#物理磁盘的负载情况,即1#物理磁盘和5#物理磁盘上已用存储空间或可用存储空间的大小,选择负载轻的(可用存储空间大的)物理磁盘作为用于恢复数据的目标物理磁盘。假设5#物理磁盘的负载轻,则选5#物理磁盘作为目标物理磁盘。
步骤204中,将存储在第一物理磁盘2#和/或第二物理磁盘3#上的目标数据块拷贝到所述目标物理磁盘5#上,对应的,所述目标数据块为所有映射到所述三个连续虚拟存储分区的数据块的第二副本,即数据块的第二副本集合P10”。
本步骤中可选择2#物理磁盘上的P10或3#物理磁盘上的P10’作为数据拷贝恢复时的数据源,将P10或P10’拷贝到目标物理磁盘(5#物理磁盘)作为数据恢复后的P10”;也可选择P10和P10’共同作为数据拷贝恢复时的数据源,将目标数据块并行拷贝到目标物理磁盘作为恢复后的P10”,并行拷贝时速度较快,但最终目标物理磁盘中仍然只有一份内容与P10或P10’相同。
与连续虚拟存储分区{p10,p12,p13}的处理过程类似,轮询处理下一个连续虚拟存储分区,直至所有连续虚拟存储分区即{p2,p3,p4}、{p10,p11,p12}、{p18,p19,p20}、{p3,p4,p5}、{p11,p12,p13}、{p19,p20,p21}、{p4,p5,p6}、{p12,p13,p14}和{p20,p21,p22},都轮询一遍。再以连续虚拟存储分区{p4,p5,p6}为例,虚拟存储分区p5与第一物理磁盘5#相映射,虚拟存储分区p6与第二物理磁盘6#,可作为目标物理磁盘的是3#或7#物理磁盘,考虑负载情况,确定7#物理磁盘为目标物理磁盘,将5#或6#物理磁盘的所有目标数据块,拷贝一份到7#物理磁盘作为数据恢复后的P4。此处所述目标数据块,指映射到连续虚拟存储分区{p4,p5,p6}的数据块的第一副本集合P4’或第二副本集合P4”。最终如图8所示,将P4恢复至7#物理磁盘,P2”恢复至1#物理磁盘,P3’恢复至2#物理磁盘,P12恢复至3#物理磁盘等等。
步骤205中,对失效物理磁盘4#之后的部分物理磁盘进行重新编号,使未发生故障的物理磁盘具有连续的编号。5#物理磁盘重新编号变为4#,类似地将原物理磁盘的编号减一,原5#~8#的编号变为4#~7#。数据恢复后储存P4的物理磁盘变为6#,而储存P4’和P4”的物理磁盘编号变为4#和5#,这样P4及其副本P4’和P4”仍然存储在{4#,5#,6#}上,编号仍然成等差数列。
具体地,当检测到磁盘序列号为X的物理磁盘发生故障时,触发数据块保序恢复过程,所述保序恢复是指当数据恢复后,数据块及其副本在仍然存储在编号成等差数列的物理磁盘组合中,本实施例中的数据拷贝恢复的具体过程如下:
步骤S201、根据物理磁盘号序列号X,通过检索数组Q,获得失效物理磁盘的磁盘编号j。
步骤S202、根据上述获取的磁盘编号j,获取当前编号为j的失效物理磁盘上映射的数据块组的信息,找到编号为j-1和j-2的物理磁盘,特别地,当j-2≤0时,将j-2替换成N+(j-2);当j-1≤0时,将j-1号替换成N+(j-1)。
本步骤中的数据块组,指映射到失效物理磁盘j上的数据块集合,或第一副本集合,或第二副本集合。如图8所示,若j为4#物理磁盘,其中,映射到失效物理磁盘j上数据块集合,指映射到{p4,p5,p6}、{p12,p13,p14}或{p20,p21,p22}上的数据块的集合即P4、P12或P20;映射到失效物理磁盘j上的第一副本集合,指映射到{p3,p4,p5}、{p11,p12,p13}或{p19,p20,p21}上的数据块的第一副本的集合即P3’、P11’或P19’;同理,第二副本集合指映射到{p2,p3,p4}、{p10,p11,p12}或{p18,p19,p20}上的数据块的第二副本的集合即P2”、P11”或P19”。
步骤S203、针对失效物理磁盘j中的每个数据块组,建立一次循环,轮询j-2和j-1这2个物理磁盘,找到第一个出现该数据块组的磁盘编号K。
若磁盘编号K为j-2,则存储在失效物理磁盘j上的是该数据块组中的第二副本,因此应该恢复到j+1或j-3物理磁盘,优选的,查询这两个物理磁盘上的负载,选择一个负载较轻的物理磁盘进行数据恢复,即从物理磁盘j-2和j-1上并行拷贝数据到编号为j+1或j-3的物理磁盘。特别地,当j+1>N时,将j+1替换成(j+1)-N,当j-3≤0时,将j-3替换成N+(j-3)。
若磁盘编号K为j-1,则存储在物理磁盘j上的是该数据块组中的第一副本,因此应该恢复到编号为j+2或j-2的物理磁盘,查询这两个物理磁盘上的负载,选择一个负载较轻的物理磁盘进行数据恢复,即从物理磁盘j-1和j+1上并行拷贝数据到编号为j+2或j-2的物理磁盘。特别地,当j+2>N时,将j+1替换成(j+2)-N,当j-2≤0时,将j-3替换成N+(j-2)。
否则,磁盘编号K为j,存储在物理磁盘j上的是映射到该数据块组中的数据块,因此应该恢复到j-1或j+3物理磁盘,查询这两个物理磁盘上的负载,选择一个负载较轻的物理磁盘进行数据恢复,即从物理磁盘j+1和j+2上并行拷贝数据到编号为j+3或j-1的物理磁盘。特别地,当j+3>N时,将j+1替换成(j+3)-N,当j-1≤0时,将j-1替换成N+(j-1)。
步骤S204、当上述数据块组完成数据恢复之后,需要重新整理数组Q中的数据,将物理磁盘数目M调整为M-1,并重新编号,即当前编号为j+1及其后的数组元素内存放的磁盘编号减一。
本实施例中的存储方法还包括,当用于存储的物理磁盘中的一个发生故障,成为失效物理磁盘时,自动为放置其上的数据块寻找目标磁盘来进行数据拷贝恢复,使恢复后的数据块及其副本仍然放在成等差数列的物理磁盘组合中,确保故障恢复之后数据的可靠性没有降低。
进一步地,如图9所示,本实施例中的存储方法,当检测到有新增的物理磁盘时,在新增的磁盘上线后,自动将部分物理磁盘上数据转移到新增的物理磁盘上,该存储方法还包括:
步骤301、以连续编号的方式,将新增的物理磁盘编为最大编号;
本步骤中,只要新增的物理磁盘与原有的物理磁盘最终连续编号即可,但最优的方法是在原有编号基础上继续以连续编号的方式,为新增的物理磁盘编号。例如,假设有16个虚拟存储分区分别命名p1~p16,有7个编号为1#~7#的物理磁盘用于存储,与所述三个连续虚拟存储分区相映射的物理磁盘的编号成等差数列,且公差为1,映射关系如图10所示。最终各数据块的集合P1~P16,各第一副本集合P1’~P16’和各第二副本集合P1”~P16”在这7个物理磁盘上放置的示意图如图11所示,当新增一个物理磁盘时,在逻辑上直接编号为8#。
步骤302、对映射到第一个编号的物理磁盘上的每一个虚拟存储分区,获取包括该虚拟存储分区的三组所述三个连续虚拟存储分区;
本步骤中继续按上述假设,可知虚拟存储分区p1、p8和p15与1#物理磁盘相映射。其中,包括虚拟存储分区p1的三组连续虚拟存储分区为{p1,p2,p3}、{p15,p16,p1}和{p16,p1,p2};包括p8的三组连续虚拟存储分区为{p6,p7,p8}、{p7,p8,p9}和{p8,p9,p10};而包括p15的三组连续虚拟存储分区为{p13,p14,p15}、{p14,p15,p16}和{p15,p16,p1}。
步骤303、逐个判断每一组所述三个连续虚拟存储分区中的虚拟存储分区是否与,比所述新增物理磁盘的编号低2的物理磁盘,具有映射关系;
本步骤继续按上述假设,可知比新增物理磁盘8#编号低2的物理磁盘为6#物理磁盘,而与6#物理磁盘具有映射关系的虚拟存储分区为p6和p13。步骤302中所有连续虚拟存储分区{p1,p2,p3}、{p15,p16,p1}、{p16,p1,p2}、{p6,p7,p8}、{p7,p8,p9}、{p8,p9,p10}、{p13,p14,p15}、{p14,p15,p16}和{p15,p16,p1}中,只有连续虚拟存储分区{p6,p7,p8}和{p13,p14,p15}中的p6和p13,与6#物理磁盘具有映射关系。
步骤304、有映射关系的,则将第一个编号的物理磁盘中的,映射到该组所述三个连续虚拟存储分区的所有数据块的第二副本,剪贴到新增的物理磁盘上;
本步骤继续按上述假设,{p6,p7,p8}和{p13,p14,p15}中的p6和p13,与6#物理磁盘具有映射关系,第一个编号的物理磁盘中即1#物理磁盘中,映射到该组连续虚拟存储分区{p6,p7,p8}中的所有数据块的第二副本,即第二副本集合P6”;映射到该组连续虚拟存储分区{p13,p14,p15}中的所有数据块的第二副本,即第二副本集合P13”。本步骤将存储1#物理磁盘中的P6”和P13”剪贴到新增的物理磁盘上。
步骤305、对映射到第二个编号的物理磁盘上的每一个虚拟存储分区,获取包括该虚拟存储分区的三组所述三个连续虚拟存储分区;
本步骤中继续按上述假设,映射到2#物理磁盘上的虚拟存储分区有p2、p9和p16,包括这些虚拟存储分区的所述三个连续虚拟存储分区有:{p1,p2,p3}、{p2,p3,p4}、{p16,p1,p2}、{p8,p9,p10}、{p7,p8,p9}、{p9,p10,p11}、{p15,p16,p1}和{p14,p15,p16}。
步骤306、再对每一组所述三个连续虚拟存储分区中的虚拟存储分区,逐个判断是否与,比所述新增物理磁盘的编号低1的物理磁盘,具有映射关系;
继续按上述假设,步骤305中的所有所述三个连续虚拟存储分区中,只有{p7,p8,p9}中的p7,{p14,p15,p16}中的p14与7#物理磁盘具有映射关系。
步骤307、有映射关系的,则将第二个编号的物理磁盘中的,映射到该组所述三个连续虚拟存储分区的所有数据块的第二副本,剪贴到新增的物理磁盘上。
继续按上述假设,本步骤将存储2#物理磁盘中的,映射到该组连续虚拟存储分区{p7,p8,p9}中的所有数据块的第二副本集合P7”,及映射到{p14,p15,p16}中的所有数据块的第二副本集合P14”剪贴到新增的物理磁盘上。
本实施例所述方法可确保在增加物理磁盘时,自动将部分物理磁盘上数据放置在新增的物理磁盘上,最终,如图11所示,数据块及其副本仍然放在成等差数列的物理磁盘中,如P7、P7”和P7’存储在{7#,8#,1#}物理磁盘中。
具体地,当用于存储的物理磁盘增加时,在新增的磁盘上线后自动将部分数据放置其上,并删除原磁盘上的多余数据。本实施例中保序扩容方法的具体逻辑过程如下:
当检测到磁盘标示为Y的物理磁盘上线时,触发数据块保序扩容过程。所述保序扩容指当增加一个物理磁盘,用于存储的空间容量扩大后,数据块及其副本仍然放置在三个有规则的物理磁盘组合之中,如三个编号成等差数列的物理磁盘上。
步骤S301、获取物理磁盘总数M,为物理磁盘Y分配编号M+1;
步骤S302、首先获取与1#物理磁盘相映射的所有数据块组;
本步骤中的数据块组指映射到1#物理磁盘上的数据块集合,或第一副本集合,或第二副本集合。如图10所示,其中,映射到1#物理磁盘上上数据块集合,指P1、P8或P15;映射到1#物理磁盘上第一副本集合,指P7’或P14’;同理第二副本集合指P6”或P13”。
步骤S303、轮询编号为M及M-1这2个物理磁盘,找到第一个出现该数据块组的磁盘编号K;
步骤S304、若K为M-1,则将存储在1#物理磁盘上的该数据块组剪切到新增物理磁盘M+1;
步骤S305、若K为M,则将存储在2#物理磁盘上的该数据块组剪切到新增物理磁盘M+1;
对步骤S302中获取的所有虚拟存储分区中的每一个数据块组,循环执行步骤S303至步骤S305。
本实施例所述存储方法还包括,在新增的物理磁盘上线后,自动将部分数据转移到新增的物理磁盘上,使得各物理磁盘负载较均衡,同时根据上述的步骤进行数据转移后,数据块及其副本仍然放置在三个有规则的物理磁盘组合之中,如三个编号成等差数列的物理磁盘上,确保增加物理磁盘后,数据的可靠性没有降低。
本实施例所述存储方法中,所述三个连续虚拟存储分区只映射到有规则的物理磁盘组合之上,降低了物理磁盘组合的数目,数据存储的可靠性提高。并且,当用于存储的物理磁盘中的一个发生故障,成为失效物理磁盘时,自动为放置其上的数据块寻找目标磁盘来进行数据拷贝恢复;当用于存储的物理磁盘增加时,自动将部分数据转移到新增的物理磁盘上,使得各物理磁盘负载较均衡,数据恢复后或数据转移后数据的可靠性没有降低。
实施例二
如图12所示,与实施例一中所述存储方法相对应的,本实施例还提供一种存储装置,包括:
划分模块11,用于将原始数据划分为若干个数据块;
计算模块12,用于按照预设的映射算法,计算第一数据块所映射到的三个连续虚拟存储分区,其中,虚拟存储分区是由虚拟存储区划分成的分区,每个所述虚拟存储分区与一个物理磁盘相映射,物理磁盘具有连续的编号,与所述三个连续虚拟存储分区相映射的三个物理磁盘的编号为等差数列,且公差不为零;
存储模块13,用于根据计算出的所述三个连续虚拟存储分区和与所述三个连续虚拟存储分区相映射的三个物理磁盘,将所述第一数据块以及所述第一数据块的第一副本和第二副本依次存储到所述三个物理磁盘中。
在本实施例所述的存储装置中,逻辑上连续的三个虚拟存储分区只映射到有规则物理磁盘组合之上,如编号为等差数列的三个物理磁盘上,相比现有技术降低了物理磁盘组合的数目,数据存储的可靠性显著提升,且用于存储的物理磁盘的个数越多,数据存储的可靠性提升越显著。
可选地,所述预设的映射算法为哈希算法。
作为一个优选方案,所述等差数列的所述公差为1。
进一步地,如图13所示,本实施例所述的存储装置,当所述物理磁盘的其中一个发生故障,成为失效物理磁盘时,所述装置还包括:
第一获取模块14,于对映射到所述失效物理磁盘的每一个虚拟存储分区,获取包括该虚拟存储分区的三组所述三个连续虚拟存储分区;
磁盘获取模块15,用于对每一组所述三个连续虚拟存储分区,获取除映射到所述失效物理磁盘的虚拟存储分区之外的,其余两个虚拟存储分区映射到的第一物理磁盘与第二物理磁盘;
目标磁盘确定模块16,用于根据所述第一物理磁盘与第二物理磁盘,确定用于恢复数据的目标物理磁盘;
拷贝模块17,用于将存储在第一物理磁盘和/或第二物理磁盘上的所有目标数据块拷贝到所述目标物理磁盘上,所述目标数据块为映射到所述三个连续虚拟存储分区的数据块,或者为该数据块的第一副本或第二副本;
编号更新模块18,用于对部分物理磁盘进行重新编号,使未发生故障的物理磁盘具有连续的编号。
本实施例中的存储装置,当用于存储的物理磁盘中的一个发生故障,成为失效物理磁盘时,还可自动为放置其上的数据块寻找目标磁盘来进行数据拷贝恢复,使恢复后的数据块及其副本仍然放在成等差数列的物理磁盘组合中,确保故障恢复之后数据的可靠性没有降低。
更进一步地,如图14所示,本实施例所述的存储装置,当检测到有新增的物理磁盘时,所述装置还包括:
编号模块19,用于以连续编号的方式,将新增的物理磁盘编为最大编号;
第二获取模块20,用于对映射到第一个编号的物理磁盘上的每一个虚拟存储分区,获取包括该虚拟存储分区的三组所述三个连续虚拟存储分区;
判断模块21,用于对每一组所述三个连续虚拟存储分区中的虚拟存储分区,逐个判断是否与,比所述新增物理磁盘的编号低2的物理磁盘,具有映射关系;
数据迁移模块22,用于有映射关系的,则将第一个编号的物理磁盘中的,映射到该组所述三个连续虚拟存储分区的所有数据块的第二副本,剪贴到新增的物理磁盘上;
所述第二获取模块20,还用于对映射到第二个编号的物理磁盘上的每一个虚拟存储分区,获取包括该虚拟存储分区的三组所述三个连续虚拟存储分区;
所述判断模块21,还用于对每一组所述三个连续虚拟存储分区中的虚拟存储分区,逐个判断是否与,比所述新增物理磁盘的编号低1的物理磁盘,具有映射关系;
所述数据迁移模块22,还用于有映射关系的,则将第二个编号的物理磁盘中的,映射到该组所述三个连续虚拟存储分区的所有数据块的第二副本,剪贴到新增的物理磁盘上。
本实施例所述存储装置,在新增的物理磁盘上线后,自动将部分数据转移到新增的物理磁盘上,使得各物理磁盘负载较均衡,同时数据转移后,数据块及其副本仍然放置在三个有规则的物理磁盘组合之中,确保增加物理磁盘后,数据的可靠性没有降低。
本实施例所述存储方法中,用于存储数据块及其副本的连续虚拟存储分区只映射到有规则的物理磁盘组合之上,降低了物理磁盘组合的数目,数据存储的可靠性显著提升。并且,当用于存储的物理磁盘中的一个发生故障或用于存储的物理磁盘增加时,没有降低数据的可靠性。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种存储方法,其特征在于,包括:
将原始数据划分为若干个数据块;
按照预设的映射算法,计算第一数据块所映射到的三个连续虚拟存储分区,其中,虚拟存储分区是由虚拟存储区划分成的分区,每个所述虚拟存储分区与至少一个物理磁盘相映射,物理磁盘具有连续的编号,与所述三个连续虚拟存储分区相映射的三个物理磁盘的编号为等差数列,且公差不为零;
根据计算出的所述三个连续虚拟存储分区和与所述三个连续虚拟存储分区相映射的三个物理磁盘,将所述第一数据块以及所述第一数据块的第一副本和第二副本依次存储到所述三个物理磁盘中。
2.根据权利要求1所述的方法,其特征在于,
所述预设的映射算法为哈希算法。
3.根据权利要求1所述的方法,其特征在于,
所述等差数列的所述公差为1。
4.根据权利要求1所述的方法,其特征在于,当所述物理磁盘的其中一个发生故障,成为失效物理磁盘时,所述方法还包括:
对映射到所述失效物理磁盘的每一个虚拟存储分区,获取包括该虚拟存储分区的三组所述三个连续虚拟存储分区;
对每一组所述三个连续虚拟存储分区,获取除映射到所述失效物理磁盘的虚拟存储分区之外的,其余两个虚拟存储分区映射到的第一物理磁盘与第二物理磁盘;
根据所述第一物理磁盘与第二物理磁盘,确定用于恢复数据的目标物理磁盘;
将存储在第一物理磁盘和/或第二物理磁盘上的所有目标数据块拷贝到所述目标物理磁盘上,所述目标数据块为映射到所述三个连续虚拟存储分区的数据块,或者为该数据块的第一副本或第二副本;
对部分物理磁盘进行重新编号,使未发生故障的物理磁盘具有连续的编号。
5.根据权利要求3所述的方法,其特征在于,当检测到有新增的物理磁盘时,所述方法还包括:
以连续编号的方式,将新增的物理磁盘编为最大编号;
对映射到第一个编号的物理磁盘上的每一个虚拟存储分区,获取包括该虚拟存储分区的三组所述三个连续虚拟存储分区;
对每一组所述三个连续虚拟存储分区中的虚拟存储分区,逐个判断是否与,比所述新增物理磁盘的编号低2的物理磁盘,具有映射关系;
有映射关系的,则将第一个编号的物理磁盘中的,映射到该组所述三个连续虚拟存储分区的所有数据块的第二副本,剪贴到新增的物理磁盘上;
对映射到第二个编号的物理磁盘上的每一个虚拟存储分区,获取包括该虚拟存储分区的三组所述三个连续虚拟存储分区;
对每一组所述三个连续虚拟存储分区中的虚拟存储分区,逐个判断是否与,比所述新增物理磁盘的编号低1的物理磁盘,具有映射关系;
有映射关系的,则将第二个编号的物理磁盘中的,映射到该组所述三个连续虚拟存储分区的所有数据块的第二副本,剪贴到新增的物理磁盘上。
6.一种存储装置,其特征在于,包括:
划分模块,用于将原始数据划分为若干个数据块;
计算模块,用于按照预设的映射算法,计算第一数据块所映射到的三个连续虚拟存储分区,其中,虚拟存储分区是由虚拟存储区划分成的分区,每个所述虚拟存储分区与至少一个物理磁盘相映射,物理磁盘具有连续的编号,与所述三个连续虚拟存储分区相映射的三个物理磁盘的编号为等差数列,且公差不为零;
存储模块,用于根据计算出的所述三个连续虚拟存储分区和与所述三个连续虚拟存储分区相映射的三个物理磁盘,将所述第一数据块以及所述第一数据块的第一副本和第二副本依次存储到所述三个物理磁盘中。
7.根据权利要求6所述的装置,其特征在于,
所述预设的映射算法为哈希算法。
8.根据权利要求6所述的装置,其特征在于,
所述等差数列的所述公差为1。
9.根据权利要求6所述的装置,其特征在于,当所述物理磁盘的其中一个发生故障,成为失效物理磁盘时,所述装置还包括:
第一获取模块,用于对映射到所述失效物理磁盘的每一个虚拟存储分区,获取包括该虚拟存储分区的三组所述三个连续虚拟存储分区;
磁盘获取模块,用于对每一组所述三个连续虚拟存储分区,获取除映射到所述失效物理磁盘的虚拟存储分区之外的,其余两个虚拟存储分区映射到的第一物理磁盘与第二物理磁盘;
目标磁盘确定模块,用于根据所述第一物理磁盘与第二物理磁盘,确定用于恢复数据的目标物理磁盘;
拷贝模块,用于将存储在第一物理磁盘和/或第二物理磁盘上的所有目标数据块拷贝到所述目标物理磁盘上,所述目标数据块为映射到所述三个连续虚拟存储分区的数据块,或者为该数据块的第一副本或第二副本;
编号更新模块,用于对部分物理磁盘进行重新编号,使未发生故障的物理磁盘具有连续的编号。
10.根据权利要求8所述的装置,其特征在于,当检测到有新增的物理磁盘时,所述装置还包括:
编号模块,用于以连续编号的方式,将新增的物理磁盘编为最大编号;
第二获取模块,用于对映射到第一个编号的物理磁盘上的每一个虚拟存储分区,获取包括该虚拟存储分区的三组所述三个连续虚拟存储分区;
判断模块,用于对每一组所述三个连续虚拟存储分区中的虚拟存储分区,逐个判断是否与,比所述新增物理磁盘的编号低2的物理磁盘,具有映射关系;
数据迁移模块:如果判断结果为比所述新增物理磁盘的编号低2的物理磁盘具有映射关系,所述数据迁移模块用于将第一个编号的物理磁盘中的,映射到该组所述三个连续虚拟存储分区的所有数据块的第二副本,剪贴到新增的物理磁盘上;
所述第二获取模块,还用于对映射到第二个编号的物理磁盘上的每一个虚拟存储分区,获取包括该虚拟存储分区的三组所述三个连续虚拟存储分区;
所述判断模块,还用于对每一组所述三个连续虚拟存储分区中的虚拟存储分区,逐个判断是否与,比所述新增物理磁盘的编号低1的物理磁盘,具有映射关系;
如果判断结果为与比所述新增物理磁盘的编号低1的物理磁盘具有映射关系,则所述数据迁移模块还用于将第二个编号的物理磁盘中的,映射到该组所述三个连续虚拟存储分区的所有数据块的第二副本,剪贴到新增的物理磁盘上。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110390178.8A CN103136114B (zh) | 2011-11-30 | 2011-11-30 | 存储方法及存储装置 |
PCT/CN2012/072925 WO2013078801A1 (zh) | 2011-11-30 | 2012-03-23 | 存储方法及存储装置 |
US14/291,314 US9442673B2 (en) | 2011-11-30 | 2014-05-30 | Method and apparatus for storing data using a data mapping algorithm |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110390178.8A CN103136114B (zh) | 2011-11-30 | 2011-11-30 | 存储方法及存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103136114A CN103136114A (zh) | 2013-06-05 |
CN103136114B true CN103136114B (zh) | 2015-11-25 |
Family
ID=48495964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110390178.8A Expired - Fee Related CN103136114B (zh) | 2011-11-30 | 2011-11-30 | 存储方法及存储装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9442673B2 (zh) |
CN (1) | CN103136114B (zh) |
WO (1) | WO2013078801A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559143A (zh) * | 2013-11-08 | 2014-02-05 | 华为技术有限公司 | 数据拷贝管理装置及其数据拷贝方法 |
CN105095290B (zh) * | 2014-05-15 | 2019-02-15 | 中国银联股份有限公司 | 一种分布式存储系统的数据布局方法 |
CN104216759B (zh) * | 2014-08-27 | 2017-08-04 | 华为技术有限公司 | 一种生成虚拟机的逻辑磁盘的方法,及装置 |
CN105786401A (zh) * | 2014-12-25 | 2016-07-20 | 中国移动通信集团公司 | 服务器集群系统中的数据管理方法及装置 |
CN105718221B (zh) * | 2016-01-22 | 2018-09-21 | 华为技术有限公司 | 一种数据存储的方法、装置和系统 |
US10162682B2 (en) * | 2016-02-16 | 2018-12-25 | Red Hat, Inc. | Automatically scaling up physical resources in a computing infrastructure |
CN107203328A (zh) * | 2016-03-17 | 2017-09-26 | 伊姆西公司 | 存储管理方法和存储设备 |
CN106250055A (zh) * | 2016-07-12 | 2016-12-21 | 乐视控股(北京)有限公司 | 一种数据存储方法及系统 |
CN108121497B (zh) * | 2016-11-29 | 2021-04-30 | 中国电信股份有限公司 | 存储方法以及存储系统 |
CN108229214A (zh) * | 2016-12-22 | 2018-06-29 | 北京兆易创新科技股份有限公司 | 一种提高数据安全性的方法和装置 |
US20180246648A1 (en) * | 2017-02-28 | 2018-08-30 | Dell Products L.P. | Continuous disaster protection for migrated volumes of data |
CN107147516B (zh) * | 2017-03-22 | 2020-04-28 | 华为技术有限公司 | 服务器、存储系统及相关方法 |
US10795860B1 (en) | 2017-04-13 | 2020-10-06 | EMC IP Holding Company LLC | WAN optimized micro-service based deduplication |
US10795859B1 (en) | 2017-04-13 | 2020-10-06 | EMC IP Holding Company LLC | Micro-service based deduplication |
CN108733307B (zh) * | 2017-04-17 | 2021-06-08 | 伊姆西Ip控股有限责任公司 | 存储管理方法、设备以及计算机可读介质 |
US10459633B1 (en) * | 2017-07-21 | 2019-10-29 | EMC IP Holding Company LLC | Method for efficient load balancing in virtual storage systems |
US10860212B1 (en) | 2017-07-21 | 2020-12-08 | EMC IP Holding Company LLC | Method or an apparatus to move perfect de-duplicated unique data from a source to destination storage tier |
US11461269B2 (en) | 2017-07-21 | 2022-10-04 | EMC IP Holding Company | Metadata separated container format |
US10936543B1 (en) | 2017-07-21 | 2021-03-02 | EMC IP Holding Company LLC | Metadata protected sparse block set for SSD cache space management |
US10949088B1 (en) | 2017-07-21 | 2021-03-16 | EMC IP Holding Company LLC | Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system |
US11113153B2 (en) | 2017-07-27 | 2021-09-07 | EMC IP Holding Company LLC | Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network |
US10481813B1 (en) | 2017-07-28 | 2019-11-19 | EMC IP Holding Company LLC | Device and method for extending cache operational lifetime |
US10929382B1 (en) | 2017-07-31 | 2021-02-23 | EMC IP Holding Company LLC | Method and system to verify integrity of a portion of replicated data |
CN109388335B (zh) * | 2017-08-10 | 2021-10-29 | 中国移动通信集团宁夏有限公司 | 一种数据存储方法及系统 |
US10067719B1 (en) * | 2017-08-30 | 2018-09-04 | Xanadu Big Data, Llc | Methods and systems for storing and accessing data in a distributed data storage system |
US11093453B1 (en) | 2017-08-31 | 2021-08-17 | EMC IP Holding Company LLC | System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication |
US10783049B2 (en) * | 2018-02-26 | 2020-09-22 | International Business Machines Corporation | Virtual storage drive management in a data storage system |
CN111694693A (zh) * | 2019-03-12 | 2020-09-22 | 上海晶赞融宣科技有限公司 | 数据流存储方法、装置以及计算机存储介质 |
CN110096904B (zh) * | 2019-04-26 | 2020-05-19 | 华润置地投资有限公司 | 数据安全控制系统及方法 |
CN110099112B (zh) * | 2019-04-28 | 2022-03-29 | 平安科技(深圳)有限公司 | 基于点对点网络的数据存储方法、装置、介质及终端设备 |
CN111756828B (zh) * | 2020-06-19 | 2023-07-14 | 广东浪潮大数据研究有限公司 | 一种数据存储方法、装置及设备 |
CN118245335B (zh) * | 2024-05-30 | 2024-09-24 | 济南浪潮数据技术有限公司 | 一种硬盘点灯方法、装置、服务器以及产品 |
CN118502678A (zh) * | 2024-07-17 | 2024-08-16 | 深圳市安信达存储技术有限公司 | 加密存储方法及存储模块 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840366A (zh) * | 2010-05-13 | 2010-09-22 | 上海交通大学 | 环链式n+1位奇偶校验码的存储方法 |
CN102117262A (zh) * | 2010-12-21 | 2011-07-06 | 清华大学 | 用于多核处理器的Cache的主动复制方法及系统 |
CN102196049A (zh) * | 2011-05-31 | 2011-09-21 | 北京大学 | 适用于存储云内数据安全迁移的方法 |
CN102222090A (zh) * | 2011-06-02 | 2011-10-19 | 清华大学 | 一种云环境下海量数据资源管理框架 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6202118B1 (en) * | 1997-09-10 | 2001-03-13 | Micron Technology, Inc. | Apparatus for address translation to selectively improve data transfer rates on a disk storage device |
US6931486B2 (en) * | 2001-11-02 | 2005-08-16 | Intel Corporation | Method and apparatus for coalescing two or more transacting requests |
US6779053B2 (en) * | 2001-12-21 | 2004-08-17 | Intel Corporation | Sequential data transfer detection |
US7346620B2 (en) * | 2004-02-12 | 2008-03-18 | International Business Machines Corporation | Adjusting log size in a static logical volume |
US7330323B1 (en) * | 2005-06-28 | 2008-02-12 | Western Digital Technologies, Inc. | Disk drive determining a head-switch preheat period used to format a disk |
US9047310B2 (en) | 2006-02-22 | 2015-06-02 | Microsoft Technology Licensing, Llc | Reliable, efficient peer-to-peer storage |
CN101192924B (zh) | 2006-11-24 | 2011-01-26 | 北京大学 | 基于Reed-Solomon码的P2P存储系统编码方法 |
CN101834897B (zh) | 2010-04-23 | 2012-10-31 | 哈尔滨工程大学 | 一种dht网络负载均衡装置及虚节点划分的方法 |
-
2011
- 2011-11-30 CN CN201110390178.8A patent/CN103136114B/zh not_active Expired - Fee Related
-
2012
- 2012-03-23 WO PCT/CN2012/072925 patent/WO2013078801A1/zh active Application Filing
-
2014
- 2014-05-30 US US14/291,314 patent/US9442673B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840366A (zh) * | 2010-05-13 | 2010-09-22 | 上海交通大学 | 环链式n+1位奇偶校验码的存储方法 |
CN102117262A (zh) * | 2010-12-21 | 2011-07-06 | 清华大学 | 用于多核处理器的Cache的主动复制方法及系统 |
CN102196049A (zh) * | 2011-05-31 | 2011-09-21 | 北京大学 | 适用于存储云内数据安全迁移的方法 |
CN102222090A (zh) * | 2011-06-02 | 2011-10-19 | 清华大学 | 一种云环境下海量数据资源管理框架 |
Non-Patent Citations (1)
Title |
---|
基于分布式并行文件系统HDFS的副本管理模型;黑继伟;《中国优秀硕士学位论文全文数据库》;20100915;第2010卷(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2013078801A1 (zh) | 2013-06-06 |
US9442673B2 (en) | 2016-09-13 |
CN103136114A (zh) | 2013-06-05 |
US20140281215A1 (en) | 2014-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103136114B (zh) | 存储方法及存储装置 | |
US9535790B2 (en) | Prioritizing data reconstruction in distributed storage systems | |
CN104067239B (zh) | 用于数据组块去复制的系统和方法 | |
RU2666241C2 (ru) | Перераспределение сегментов памяти для решения проблемы фрагментации | |
CN102831120B (zh) | 一种数据处理方法及系统 | |
US20080201335A1 (en) | Method and Apparatus for Storing Data in a Peer to Peer Network | |
CN102968503A (zh) | 数据库系统的数据处理方法以及数据库系统 | |
CN102855294A (zh) | 一种智能哈希数据布局方法、集群存储系统及其方法 | |
CN106293492B (zh) | 一种存储管理方法及分布式文件系统 | |
CN103858125A (zh) | 重复数据处理方法、装置及存储控制器和存储节点 | |
CN110096227A (zh) | 数据存储方法、数据处理方法、装置、电子设备及计算机可读介质 | |
Ibrahim et al. | Intelligent data placement mechanism for replicas distribution in cloud storage systems | |
CN107133228A (zh) | 一种数据重分布的方法及装置 | |
US11188258B2 (en) | Distributed storage system | |
CN102201005A (zh) | 一种文件系统的流媒体增强文件布局方法 | |
CN102508902A (zh) | 云存储系统中可变分块大小的块数据分块方法 | |
WO2018236429A1 (en) | METADATA LOAD DISTRIBUTION MANAGEMENT | |
US20080162830A1 (en) | Methods, systems, and computer program products for providing memory management with constant defragmentation time | |
CN105677252B (zh) | 读数据的方法、数据处理方法及相关存储设备 | |
CN108920105A (zh) | 基于社区结构的图数据分布式存储方法及装置 | |
US9009204B2 (en) | Storage system | |
CN107015883B (zh) | 一种动态数据备份方法及装置 | |
CN106293537B (zh) | 一种轻量级的数据密集型文件系统的自治块管理方法 | |
CN102929976B (zh) | 备份数据访问方法及装置 | |
KR101341995B1 (ko) | 공유 데이터 저장소 관리 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151125 |