CN103617010A - 数据存储方法及存储装置 - Google Patents

数据存储方法及存储装置 Download PDF

Info

Publication number
CN103617010A
CN103617010A CN201310684219.3A CN201310684219A CN103617010A CN 103617010 A CN103617010 A CN 103617010A CN 201310684219 A CN201310684219 A CN 201310684219A CN 103617010 A CN103617010 A CN 103617010A
Authority
CN
China
Prior art keywords
raid
data
storage
disk
disk block
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
Application number
CN201310684219.3A
Other languages
English (en)
Other versions
CN103617010B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310684219.3A priority Critical patent/CN103617010B/zh
Publication of CN103617010A publication Critical patent/CN103617010A/zh
Priority to PCT/CN2014/086337 priority patent/WO2015085802A1/zh
Application granted granted Critical
Publication of CN103617010B publication Critical patent/CN103617010B/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明适用数据存储技术领域,提供了一种RAID数据存储方法及装置,所述方法用于将数据存储于独立磁盘冗余阵列RAID中,所述RAID由分布于不同磁盘中的磁盘块构成,包括:接收应用服务器发送的存储请求,所述存储请求中包含有数据和数据拷贝份数,其中,所述数据拷贝份数为N,N为不小于2的自然数;在预先创建的M个RAID中选择N个RAID,其中,所述N个RAID的磁盘块均分布于不同的磁盘中,所述M为不小于N的自然数;将所述数据分别存储于所述N个RAID中。使用本发明,可提高通过虚拟化RAID存储数据的可靠性。

Description

数据存储方法及存储装置
技术领域
本发明属于存储领域,尤其涉及一种RAID数据存储方法及存储装置。
背景技术
独立冗余磁盘阵列(Redundant Array of Independent Disk,RAID)是存储领域最为常用的提高系统可靠性的方法。通过同时使用多块磁盘,并按照一定的算法规则,虚拟化成一块单独的大容量高可靠性磁盘进行使用。当具有冗余级别的RAID组中的其中一个发生成员盘损坏时,可以利用其他成员盘的数据以及冗余数据进行数据的修复,从而实现RAID组可靠性高于单个磁盘的目的。
但是由于传统的RAID必须使用一整块磁盘,故存在构成速度慢,空间使用不灵活的问题。而虚拟化RAID不再使用完整的磁盘作为RAID的成员盘,而将磁盘划分成多个磁盘块,使用这些磁盘块创建RAID。这种虚拟化RAID的组织方式使RAID的组成更灵活,磁盘使用方式更灵活,构成单个RAID的所需的存储空间更低等优势。
通常对于一些重要数据,为了提高数据的可靠性,存储系统会在多个RAID上同时保存多份相同数据。以两份数据存放在两个RAID5(每个RAID包括3个成员盘)上为例,由于每个RAID存在校验数据及冗余数据,若一个RAID中的其中一个成员盘损坏之后,可以通过该RAID中的另外两个盘中的校验及冗余数据进行恢复,故传统的两个RAID可以保证其中任意三个成员盘损坏之后,存储在两个RAID中的数据都可以被恢复,而不会丢失的,如图1所示,若RAID I中坏了两个磁盘10,RAID II坏了一个磁盘20,则坏了一个磁盘的RAID II的数据可以通过该RAID II中的另外两个磁盘20恢复,如此可根据所恢复的RAID II中的数据恢复RAID I中的数据。
如图2所示,在现有的虚拟化RAID中,虚拟化RAID由分布于不同磁盘30中的磁盘块301构成,而不再是由独立磁盘30构成。这种虚拟化的方法使得不同的RAID的磁盘块301可能同时位于同一磁盘30之上。因此,当将两份数据存储至两个RAID时,不能保证两个RAID的磁盘块301不会选到同一块磁盘30上,从而降低了可靠性。例如,如图2所示,在六个盘中,包括两个RAID,即由标识为R0的磁盘块组成的RAID以及由标识为R1的磁盘块构成的RAID,该两个RAID有两个磁盘块301在同一磁盘30中(如图2中的虚线部分所示),如此当这两个磁盘30都坏了之后,这两个RAID中存储的数据都无法恢复,降低了存储可靠性。
发明内容
本发明实施例的目的在于提供一种存储方法及存储装置,能够在将数据存储于虚拟化的RAID中时,提高数据存储的可靠性。
第一方面,本发明提供了一种数据存储方法,所述方法用于将数据存储于独立磁盘冗余阵列RAID中,所述RAID由分布于不同磁盘中的磁盘块构成,包括:
接收应用服务器发送的存储请求,所述存储请求中包含有数据和数据拷贝份数,其中,所述数据拷贝份数为N,N为不小于2的自然数;
在预先创建的M个RAID中选择N个RAID,其中,所述N个RAID的磁盘块均分布于不同的磁盘中,所述M为不小于N的自然数;
将所述数据分别存储于所述N个RAID中。
在本发明的第一方面的第一种实现方式中,所述在预先创建的M个RAID中选择N个RAID包括:
在预先创建的M个RAID中确定存储所述数据的第一RAID;
根据预设的RAID对应关系在创建的M个RAID中选择除第一RAID以外的N-1个第二RAID,其中,构建所述第一RAID和构建所述N-1个RAID的磁盘块均分布于不同的磁盘中。
在本发明的第一方面的第一种实现方式所提供的数据存储方法中,优选地,还包括:
将创建的M个RAID划分为至少一个RAID组,其中,所述RAID组中包括至少两个RAID,构成所述至少两个RAID的磁盘块分布于不同的磁盘中;
建立所述RAID组中至少两个RAID之间的RAID对应关系。
优选地,所述存储请求中还包含数据的大小,所述在预先创建的M个RAID中确定存储所述数据的第一RAID包括:
根据所述数据的大小在预先创建的M个RAID中选择第一RAID。
优选地,所述根据所述数据的大小在预先创建的M个RAID中选择第一RAID包括:
根据所述数据的大小在预先创建的M个RAID中选择空闲的存储空间最大的RAID为所述第一RAID。
第二方面,本发明提供了一种存储装置,所述装置用于将数据存储于独立磁盘冗余阵列RAID中,所述RAID由分布于不同磁盘中的磁盘块构成,所述装置包括:
接收模块,用于接收应用服务器发送的存储请求,所述存储请求中包含有数据和数据拷贝份数,其中,所述数据拷贝份数为N,N为不小于2的自然数;
确定模块,用于在预先创建的M个RAID中选择N个RAID,其中,所述N个RAID的磁盘块均分布于不同的磁盘中,所述M为不小于N的自然数;
存储模块,用于将所述数据分别存储于所述N个RAID中。
在第二方面的第一种实现方式中,所述确定模块具体用于:
在预先创建的M个RAID中确定存储所述数据的第一RAID;
并根据预设的RAID对应关系在创建的M个RAID中选择除第一RAID以外的N-1个第二RAID,其中,构建所述第一RAID和构建所述N-1个RAID的磁盘块均分布于不同的磁盘中。
优选地,所述的存储装置还包括:
配置模块,用于将创建的M个RAID划分为至少一个RAID组,其中,所述RAID组中包括至少两个RAID,构成所述至少两个RAID的磁盘块分布于不同的磁盘中;
建立所述RAID组中至少两个RAID之间的RAID对应关系。
优选地,所述存储请求中还包含包数据的大小,所述确定模块具体用于:根据所述数据的大小在预先创建的M个RAID中选择第一RAID。
优选地,所述确定模块具体用于:
根据所述数据的大小在预先创建的M个RAID中选择空闲的存储空间最大的RAID为所述第一RAID。
本发明实施例提供的数据存储方法中,存储数据的RAID由磁盘上的磁盘块构成,在接收到存储N份数据拷贝的存储请求时,可以通过预先创建的M个RAID中选择存储数据的N个RAID,其中,选择的N个RAID的磁盘块均分布于不同的磁盘中,并将所述N份数据分别存储在选择的所述N个RAID中。在本发明实施例提供的数据存储方法中,由于选择的N个RAID由分布于不同磁盘的磁盘块构成,因此,与现有技术中在虚拟化RAID中存储多份数据的方法相比,本发明实施例提供的数据存储方法能够提高在虚拟化RAID中存储的数据的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为现有技术中的一种RAID的数据存储结构示意图;
图2为现有技术中的另外一种RAID的数据存储结构示意图;
图3为本发明实施例提供的一种应用场景图;
图4为本发明实施例提供的一种数据存储方法的流程图;
图5为本发明实施例提供的一种RAID结构示意图;
图6为本发明实施例提供的又一种RAID结构示意图;
图7为本发明实施例提供的一种存储装置的结构示意图。
具体实现方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。
图3为本发明实施例提供的一种应用场景图。如图3所示,应用服务器2与RAID系统1通过有线或者无线方式连接,RAID系统1用于存储数据,应用服务器2可存储数据至RAID系统1或者从RAID系统1中获取数据。独立冗余磁盘阵列(Redundant Array of Independent Disk,RAID)系统1由阵列控制器11和一组连接至阵列控制器11的磁盘12组成。RAID系统1中的数据即存储于磁盘12中,阵列控制器11用于组织所连接的磁盘12,并将所连接的磁盘12划分为多个磁盘块,然后根据算法逻辑创建出由磁盘块构成的多个虚拟化的RAID。实际应用中,在创建虚拟化的RAID时,可以先根据需要创建的RAID的级别确定每个RAID的包括的磁盘块的数目及建立虚拟RAID的磁盘,然后在所选的磁盘上选择构成每个RAID的磁盘块。
需要说明的是,在本发明实施例中,如无特别说明,描述的RAID均是指虚拟化RAID,换一种表达方式,本发明实施例中的RAID均是指由磁盘块构建的RAID。
图4为本发明实施例提供的一种数据存储方法的流程图。该方法可以应用于图3所示的应用场景中。所述方法用于将数据存储于所述RAID系统1中,该RAID系统1中包括多个RAID,每个RAID由分布于不同磁盘中的磁盘块构成。如图4所示,所述方法包括:
步骤S40,接收应用服务器2发送的存储请求,所述存储请求中包含有数据、数据拷贝份数,其中,所述数据拷贝份数为N,N为不小于2的自然数。其中,该存储请求中除了携带数据及数据拷贝份数之外还可以包括其他信息,如数据的大小以及数据的源地址等,在此不做限定。
步骤S41,在预先创建的M个RAID中选择N个RAID,其中,N个RAID的磁盘块均分布于不同的磁盘中,所述M为不小于N的自然数。
实际应用中,可以先在预先创建的M个RAID中确定存储所述数据的第一RAID,再根据预设的RAID对应关系在创建的M个RAID中选择除第一RAID以外的N-1个第二RAID,其中,构建所述第一RAID和构建所述N-1个RAID的磁盘块均分布于不同的磁盘中。
例如,若构建RAID R0、RAID R1及RAID R2(为了描述方便,下面分别用R0、R1和R2来表示)的磁盘块均分布于不同的磁盘上,则可以预先在R0、R1及R2之间建立对应关系。在接收到数据存储请求时,如果需要存储三份数据,若将R0确定为第一RAID,则根据上述预设的对应关系,R1及R2即被确定为第二RAID,并将第一份数据存储在R0中,第二份及第三份数据则分别存储于与R0对应的R1及R2中。通过预先建立这样的对应关系,在存储多份数据时,只要确定存储第一份数据的第一RAID,即可根据预设的对应关系找到存储其他份数据的第二RAID。
实际应用中,在选择存储数据的第一RAID时,可以具体根据存储请求中携带的数据的大小在预先创建的M个RAID中选择第一RAID。进一步的,为了使各个RAID中存储的数据实现负载均衡,在实际选择第一RAID的过程中,还可以根据所述数据的大小在预先创建的M个RAID中选择空闲的存储空间最大的RAID为所述第一RAID。
预设的RAID对应关系一般在执行本实施方式的方法之前由所述阵列控制器11建立,例如可以在阵列控制器11建立虚拟RAID时建立,具体的建立方式为:将创建的M个RAID划分为至少一个RAID组,其中,所述RAID组中包括至少两个RAID,构成所述至少两个RAID的磁盘块分布于不同的磁盘中;建立所述RAID组中至少两个RAID之间的RAID对应关系。
例如,可以从创建的M个RAID中找出三个磁盘块均不在同一磁盘上R0、R1、R2组成一个RAID组,并可将该组中各个RAID之间的对应关系记录为(R0、R1、R2)。实际应用中,每组RAID中所包括的RAID的个数可以根据具体情况确定。但一般情况下,只有数据的存储份数小于等于该组RAID中的RAID的个数时,该组RAID才可以用来存储该数据。将创建的M个RAID划分为至少一个RAID组的方式可以为遍历的方式。具体的,可以通过遍历创建的RAID中的磁盘块所分布的磁盘,将分布于不同磁盘的磁盘块构建的RAID划分为一个RAID组。换一种表达方式,构建一个RAID组中的所有RAID的磁盘块均分布于不同的磁盘上。例如,可以首先确定一个RAID的磁盘块所在的磁盘后,然后在M-1个RAID中逐个查找由与确定的RAID中的磁盘块不属于同一个磁盘的磁盘块构成的RAID,并将查找获得的RAID与预先确定的RAID划分为一个RAID组。例如,以一组RAID包括两个RAID,每个RAID的级别为RAID5,且每个RAID涉及3个磁盘块为例说明。如图5所示,图5为本发明实施例提供的一种RAID结构示意图。若RAID系统1包括6个磁盘D1、D2、D3、D4、D5及D6,将要建立的一RAID组中的其中一个RAID N0的三个磁盘块所在的磁盘分别为D1、D3、D5,则其他由除磁盘D1、D3、D5之外的磁盘上的磁盘块的RAID才能被选择作为与N0对应RAID,即由磁盘D2、D4及D6上的磁盘块构建的RAID才能被选择作为与N0对应的RAID。
实际应用中,还可以在创建过程中,直接使创建的M个RAID的磁盘块均分布于不同的磁盘上。具体的,在创建M个RAID时,首先为需要建立的每个RAID分配识别码,例如,若M=2,即需要创建两个RAID,且这两个RAID构成一个RAID组,则可对该两个RAID分配识别码(R0,R1),再为每个RAID选择磁盘块。选择时,逐一为每个RAID选择磁盘块。在为其中一个RAID选择磁盘块时,首先在其中一个磁盘中选择一个磁盘块,然后判断所选择的磁盘块所在的磁盘上是否有标记有本组其他RAID的识别码的磁盘块,若没有本组其他RAID的识别码,则选择该磁盘块,并将该磁盘块标记为该RAID的识别码,若有本组其他RAID的识别码,则在其他磁盘上选择该RAID的磁盘块。例如,如图6所示,首先为识别码为R0的RAID选择磁盘块,选择时,若R0为首先创建的RAID,因此,可以在图6所示的磁盘中任意选择磁盘块创建所述R0。当创建完R0后,在创建R1时,在选择创建R1的磁盘块时,需要先判断该磁盘上是否有标记有本组其他RAID的识别码的磁盘块,即是否标记有R0的磁盘块,若没有,则将该磁盘块标记为R1,若有,则选择其他磁盘。该RAID的其他两个磁盘块也可以用同样的方法选出。在分别选择了识别码为R0和R1的磁盘块之后,可以分别在选择的磁盘块上创建R0和R1。通过这种方式,可以使该组RAID中的每个RAID的磁盘块不在同一磁盘上。
步骤S42,将所述数据分别存储于所述N个RAID中。
本发明实施例提供的数据存储方法中,存储数据的RAID由磁盘上的磁盘块构成,在接收到存储N份数据拷贝的存储请求时,可以通过预先创建的M个RAID中选择存储数据的N个RAID,其中,选择的N个RAID的磁盘块均分布于不同的磁盘中,并将所述N份数据分别存储在选择的所述N个RAID中。在本发明实施例提供的数据存储方法中,由于选择的N个RAID由分布于不同磁盘的磁盘块构成,因此,与现有技术中在虚拟化RAID中存储多份数据的方法相比,本发明实施例提供的数据存储方法能够提高数据存储的可靠性。例如,如图6所示,图6为本发明实施例提供的又一种RAID结构示意图。图6以包括在6个磁盘中建立的两个RAID的RAID组为例,其中,每个RAID的级别为RAID5,且每个RAID涉及3个磁盘块。该组RAID的对应关系为(R0,R1),,由于每组RAID的磁盘块不在同一磁盘上,即具有R0和R1标记的磁盘块不会出现在同一磁盘上。当将数据分别存储于R0和R1中后,若其中的第2盘,第3盘,及地5盘损坏,即R0的一个磁盘块以及R1中两个磁盘块中的数据丢失,则R0中丢失的数据可以通过R0的另外两个磁盘块中的数据进行恢复,则R1中两个磁盘块上丢失的数据也可以通过R0的数据进行恢复。如此也可以达到任意三盘损坏时,都可以进行数据的恢复的效果,从而提高了在虚拟化RAID中存储的数据的可靠性。
如图7所示,为本发明实施例中提供的一种存储装置7的模块图。该装置7用于将数据存储于RAID系统1中,所述RAID系统1包括多个RAID,每个RAID由分布于不同磁盘中的磁盘块构成,该装置包括接收模块71、RAID确定模块72、及数据存储模块73。
所述接收模块71,用于接收应用服务器2发送的存储请求,所述存储请求中包含有数据、数据拷贝份数,其中,所述数据拷贝份数为N,N为不小于2的自然数。其中,该存储请求中除了数据及数据拷贝份数之外还可以包括:数据的大小、数据的源地址等。
所述确定模块72,用于在预先创建的M个RAID中选择N个RAID,其中,所述N个RAID的磁盘块均分布于不同的磁盘中,所述M为不小于N的自然数;
所述存储模块73,用于可将所述数据分别存储于确定模块72选择的所述N个RAID中。
实际应用中,确定模块72具体用于在预先创建的M个RAID中确定存储所述数据的第一RAID;根据预设的RAID对应关系在创建的M个RAID中选择除第一RAID以外的N-1个第二RAID,其中,构建所述第一RAID和构建所述N-1个RAID的磁盘块均分布于不同的磁盘中。
例如,若构建RAID R0、RAID R1及RAID R2(为了描述方便,下面分别用R0、R1和R2来表示)的磁盘块均分布于不同的磁盘上,则可以预先在R0、R1及R2之间建立对应关系。在接收模块71接收到数据存储请求时,如果需要存储三份数据,若确定模块72将R0确定为第一RAID,则根据上述预设的对应关系,R1及R2即被确定为第二RAID,并将第一份数据存储在R0中,第二份及第三份数据则分别存储于与R0对应的R1及R2中。通过预先建立这样的对应关系,在存储多份数据时,只要确定存储第一份数据的第一RAID,即可根据预设的对应关系找到存储其他份数据的第二RAID。
实际应用中,确定模块72在选择存储数据的第一RAID时,可以具体根据存储请求中携带的数据的大小在预先创建的M个RAID中选择第一RAID。进一步的,为了使各个RAID中存储的数据实现负载均衡,确定模块72在实际选择第一RAID的过程中,还可以根据所述数据的大小在预先创建的M个RAID中选择空闲的存储空间最大的RAID为所述第一RAID。
在又一种情况下,本发明实施例提供的存储装置还可以包括:
配置模块74,用于将创建的M个RAID划分为至少一个RAID组,其中,所述RAID组中包括至少两个RAID,构成所述至少两个RAID的磁盘块分布于不同的磁盘中,并建立所述RAID组中至少两个RAID之间的RAID对应关系。
例如,可以从创建的M个RAID中找出三个磁盘块均不在同一磁盘上R0、R1、R2组成一个RAID组,并可将该组中各个RAID之间的对应关系记录为(R0、R1、R2)。实际应用中,每组RAID中所包括的RAID的个数可以根据具体情况确定。但一般情况下,只有数据的存储份数小于等于该组RAID中的RAID的个数时,该组RAID才可以用来存储该数据。
实际应用中,配置模块74将创建的M个RAID划分为至少一个RAID组的方式可以为遍历的方式。具体的,可以通过遍历创建的RAID中的磁盘块所分布的磁盘,将分布于不同磁盘的磁盘块构建的RAID划分为一个RAID组。换一种表达方式,构建一个RAID组中的所有RAID的磁盘块均分布于不同的磁盘上。例如,可以首先确定一个RAID的磁盘块所在的磁盘后,然后在M-1个RAID中逐个查找由与确定的RAID中的磁盘块不属于同一个磁盘的磁盘块构成的RAID,并将查找获得的RAID与预先确定的RAID划分为一个RAID组。
实际应用中,配置模块74还可以在创建过程中,使创建的M个RAID的磁盘块均分布于不同的磁盘上。具体的,在创建M个RAID时,首先为需要建立的每个RAID分配识别码,例如,若M=2,即需要创建两个RAID,且这两个RAID构成一个RAID组,则可对该两个RAID分配识别码(R0,R1),再为每个RAID选择磁盘块。选择时,逐一为每个RAID选择磁盘块。在为其中一个RAID选择磁盘块时,首先在其中一个磁盘中选择一个磁盘块,然后判断所选择的磁盘块所在的磁盘上是否有标记有本组其他RAID的识别码的磁盘块,若没有本组其他RAID的识别码,则选择该磁盘块,并将该磁盘块标记为该RAID的识别码,若有本组其他RAID的识别码,则在其他磁盘上选择该RAID的磁盘块。例如,如图6所示,首先为识别码为R0的RAID选择磁盘块,选择时,若R0为首先创建的RAID,因此,可以在图6所示的磁盘中任意选择磁盘块创建所述R0。当创建完R0后,在创建R1时,在选择创建R1的磁盘块时,需要先判断该磁盘上是否有标记有本组其他RAID的识别码的磁盘块,即是否标记有R0的磁盘块,若没有,则将该磁盘块标记为R1,若有,则选择其他磁盘。该RAID的其他两个磁盘块也可以用同样的方法选出。在分别选择了识别码为R0和R1的磁盘块之后,可以分别在选择的磁盘块上创建R0和R1。通过这种方式,可以使该组RAID中的每个RAID的磁盘块不在同一磁盘上。
本发明实施例提供的数据存储装置,在接收模块71接收到存储N份数据拷贝的存储请求时,可以通过确定模块72在预先创建的M个RAID中选择存储数据的N个RAID,其中,选择的N个RAID的磁盘块均分布于不同的磁盘中,并由存储模块73将所述N份数据分别存储在选择的所述N个RAID中。本发明实施例提供的数据存储装置,由于选择的N个RAID由分布于不同磁盘的磁盘块构成,因此能够提高数据存储的可靠性,容灾能力更强。
本发明实施例所提供的数据存储装置可以执行前述数据存储方法,各个模块功能的详细描述可参见方法实施例中的描述,在此不再赘述。
可以理解的是,图7所示的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备中,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部,模块来实现本实施例方案的目的。
本发明实施例还提供一种数据处理的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行前述任意一个方法实施例所述的方法流程。本领域普通技术人员可以理解,前述的存储介质包括:U盘、移动硬盘、磁碟、光盘、随机存储器(Random-Access Memory,RAM)、固态硬盘(Solid State Disk,SSD)或者非易失性存储器(non-volatile memory)等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。
需要说明的是,本申请所提供的实施例仅仅是示意性的。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本发明实施例、权利要求以及附图中揭示的特征可以独立存在也可以组合存在。在本发明实施例中以硬件形式描述的特征可以通过软件来执行,反之亦然。在此不做限定。

Claims (10)

1.一种数据存储方法,所述方法用于将数据存储于独立磁盘冗余阵列RAID中,所述RAID由分布于不同磁盘中的磁盘块构成,其特征在于,包括:
接收应用服务器发送的存储请求,所述存储请求中包含有数据和数据拷贝份数,其中,所述数据拷贝份数为N,N为不小于2的自然数;
在预先创建的M个RAID中选择N个RAID,其中,所述N个RAID的磁盘块均分布于不同的磁盘中,所述M为不小于N的自然数;
将所述数据分别存储于所述N个RAID中。
2.根据权利要求1所述的数据存储方法,其特征在于,所述在预先创建的M个RAID中选择N个RAID包括:
在预先创建的M个RAID中确定存储所述数据的第一RAID;
根据预设的RAID对应关系在创建的M个RAID中选择除第一RAID以外的N-1个第二RAID,其中,构建所述第一RAID和构建所述N-1个RAID的磁盘块均分布于不同的磁盘中。
3.根据权利要求2所述的数据存储方法,其特征在于,还包括:
将创建的M个RAID划分为至少一个RAID组,其中,所述RAID组中包括至少两个RAID,构成所述至少两个RAID的磁盘块分布于不同的磁盘中;
建立所述RAID组中至少两个RAID之间的RAID对应关系。
4.如权利要求2或3所述的数据存储方法,其特征在于,所述存储请求中还包含数据的大小,所述在预先创建的M个RAID中确定存储所述数据的第一RAID包括:
根据所述数据的大小在预先创建的M个RAID中选择第一RAID。
5.根据权利要求4所述的数据存储方法,其特征在于,所述根据所述数据的大小在预先创建的M个RAID中选择第一RAID包括:
根据所述数据的大小在预先创建的M个RAID中选择空闲的存储空间最大的RAID为所述第一RAID。
6.一种存储装置,所述装置用于将数据存储于独立磁盘冗余阵列RAID中,所述RAID由分布于不同磁盘中的磁盘块构成,其特征在于,包括:
接收模块,用于接收应用服务器发送的存储请求,所述存储请求中包含有数据和数据拷贝份数,其中,所述数据拷贝份数为N,N为不小于2的自然数;
确定模块,用于在预先创建的M个RAID中选择N个RAID,其中,所述N个RAID的磁盘块均分布于不同的磁盘中,所述M为不小于N的自然数;
存储模块,用于将所述数据分别存储于所述N个RAID中。
7.如权利要6所述的存储装置,其特征在于,所述确定模块具体用于:
在预先创建的M个RAID中确定存储所述数据的第一RAID;
并根据预设的RAID对应关系在创建的M个RAID中选择除第一RAID以外的N-1个第二RAID,其中,构建所述第一RAID和构建所述N-1个RAID的磁盘块均分布于不同的磁盘中。
8.根据权利要求7所述的存储装置,其特征在于,还包括:
配置模块,用于将创建的M个RAID划分为至少一个RAID组,其中,所述RAID组中包括至少两个RAID,构成所述至少两个RAID的磁盘块分布于不同的磁盘中;
建立所述RAID组中至少两个RAID之间的RAID对应关系。
9.如权利要求7或8所述的存储装置,其特征在于,所述存储请求中还包含包数据的大小,所述确定模块具体用于:根据所述数据的大小在预先创建的M个RAID中选择第一RAID。
10.根据权利要求9所述的数据存储系统,其特征在于,所述确定模块具体用于:
根据所述数据的大小在预先创建的M个RAID中选择空闲的存储空间最大的RAID为所述第一RAID。
CN201310684219.3A 2013-12-13 2013-12-13 数据存储方法及存储装置 Active CN103617010B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310684219.3A CN103617010B (zh) 2013-12-13 2013-12-13 数据存储方法及存储装置
PCT/CN2014/086337 WO2015085802A1 (zh) 2013-12-13 2014-09-12 数据存储方法及存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310684219.3A CN103617010B (zh) 2013-12-13 2013-12-13 数据存储方法及存储装置

Publications (2)

Publication Number Publication Date
CN103617010A true CN103617010A (zh) 2014-03-05
CN103617010B CN103617010B (zh) 2016-11-23

Family

ID=50167713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310684219.3A Active CN103617010B (zh) 2013-12-13 2013-12-13 数据存储方法及存储装置

Country Status (2)

Country Link
CN (1) CN103617010B (zh)
WO (1) WO2015085802A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015085802A1 (zh) * 2013-12-13 2015-06-18 华为技术有限公司 数据存储方法及存储装置
CN105159800A (zh) * 2015-09-10 2015-12-16 华为技术有限公司 数据恢复方法、数据备份方法及相关设备、系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040068610A1 (en) * 2002-10-03 2004-04-08 David Umberger Managing a data storage array, a data storage system, and a raid controller
CN102147713A (zh) * 2011-02-18 2011-08-10 杭州宏杉科技有限公司 一种网络存储系统的管理方法及装置
CN102880428A (zh) * 2012-08-20 2013-01-16 华为技术有限公司 分布式独立磁盘冗余阵列的创建方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100392382B1 (ko) * 2001-07-27 2003-07-23 한국전자통신연구원 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리볼륨 관리 방법
CN101625627B (zh) * 2009-08-05 2012-03-21 成都市华为赛门铁克科技有限公司 写入数据的方法、磁盘冗余阵列的控制器及磁盘冗余阵列
WO2012119375A1 (zh) * 2011-08-08 2012-09-13 华为技术有限公司 Raid配置信息的处理方法及装置、raid控制器
CN103617010B (zh) * 2013-12-13 2016-11-23 华为技术有限公司 数据存储方法及存储装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040068610A1 (en) * 2002-10-03 2004-04-08 David Umberger Managing a data storage array, a data storage system, and a raid controller
CN102147713A (zh) * 2011-02-18 2011-08-10 杭州宏杉科技有限公司 一种网络存储系统的管理方法及装置
CN102880428A (zh) * 2012-08-20 2013-01-16 华为技术有限公司 分布式独立磁盘冗余阵列的创建方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015085802A1 (zh) * 2013-12-13 2015-06-18 华为技术有限公司 数据存储方法及存储装置
CN105159800A (zh) * 2015-09-10 2015-12-16 华为技术有限公司 数据恢复方法、数据备份方法及相关设备、系统
CN105159800B (zh) * 2015-09-10 2018-11-16 华为技术有限公司 数据恢复方法、数据备份方法及相关设备、系统

Also Published As

Publication number Publication date
CN103617010B (zh) 2016-11-23
WO2015085802A1 (zh) 2015-06-18

Similar Documents

Publication Publication Date Title
CN107807794B (zh) 一种数据存储方法和装置
US11243706B2 (en) Fragment management method and fragment management apparatus
US11449226B2 (en) Reorganizing disks and raid members to split a disk array during capacity expansion
US10852966B1 (en) System and method for creating mapped RAID group during expansion of extent pool
CN102096557B (zh) 一种独立磁盘冗余阵列的扩容方法、装置及系统
CN103534688B (zh) 数据恢复方法、存储设备和存储系统
CN104932953A (zh) 一种数据分发方法、数据存储方法、相关装置以及系统
CN102880428A (zh) 分布式独立磁盘冗余阵列的创建方法及装置
CN107450852B (zh) 一种存储空间处理方法、装置和设备
CN104461390A (zh) 将数据写入叠瓦状磁记录smr硬盘的方法及装置
CN103500072A (zh) 数据迁移方法及数据迁移装置
CN103049220A (zh) 存储控制方法、存储控制装置和固态存储系统
CN103955433A (zh) 盖瓦磁记录硬盘、盖瓦磁记录硬盘写数据的方法及装置
US10324794B2 (en) Method for storage management and storage device
CN107665096A (zh) 加权数据分条
CN108037894B (zh) 一种磁盘空间管理方法及装置
CN111309245B (zh) 一种分层存储写入方法和装置、读取方法和装置及系统
US9135128B2 (en) Systems and methods for backing up storage volumes in a storage system
CN103049508A (zh) 一种数据处理方法及装置
CN103530206A (zh) 一种数据恢复的方法和设备
WO2012042724A1 (en) Systems and methods for managing a virtual tape library domain
US9952771B1 (en) Method and system for choosing an optimal compression algorithm
WO2015078193A1 (zh) 存储空间的管理方法和存储管理装置
CN103617010B (zh) 数据存储方法及存储装置
US9753803B2 (en) Storage system and information processing apparatus

Legal Events

Date Code Title Description
PB01 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