CN107250975A - 数据存储系统和数据存储方法 - Google Patents
数据存储系统和数据存储方法 Download PDFInfo
- Publication number
- CN107250975A CN107250975A CN201480083890.5A CN201480083890A CN107250975A CN 107250975 A CN107250975 A CN 107250975A CN 201480083890 A CN201480083890 A CN 201480083890A CN 107250975 A CN107250975 A CN 107250975A
- Authority
- CN
- China
- Prior art keywords
- storage device
- physical storage
- data
- check information
- physical
- 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
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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID 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/061—Improving I/O performance
-
- 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/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/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
- 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
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了基于独立磁盘冗余阵列RAID机制的数据存储系统和数据存储方法。数据存储系统包括:RAID控制器;以及存储设备子系统,该存储设备子系统包括多个用于存储数据的第一物理存储设备和多个用于存储数据的校验信息的第二物理存储设备,其中第一物理存储设备被划分为彼此独立的多个物理存储设备集合,不同第一物理存储设备集合之间数据的访问不会互相干扰,以及该多个第二物理存储设备为所有第一物理存储设备集合共享,RAID控制器以RAID机制在每个第一物理存储设备集合上存储数据,而将校验信息存储在共享的多个第二物理存储设备上。数据存储系统将不同RAID卷之间的校验盘组成一个共享集合,提高了存储系统的性能和可靠性。
Description
本发明总体地涉及数据存储技术,更具体地涉及组合两种物理存储设备的数据存储系统和数据存储方法。
独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)是存储领域最为常用的提高系统可靠性的方法,按照一定的算法规则,将多个物理存储设备配置和使用为单一的、高性能的、可靠的虚拟磁盘卷,例如由两个磁盘组成的RAID-1,由四个或者五个磁盘组成的RAID-4、RAID-5和RAID-6。
RAID控制器用于管理物理存储阵列使之作为逻辑单元工作,并且物理存储阵列上存储的数据受到保护。系统通过RAID控制器可以查看到逻辑驱动器,但是不必去直接管理。RAID控制器的功能既可以由硬件也可以由软件来实现。在一个典型的磁盘阵列中,RAID控制器作为主机总线适配器到硬盘的连接设备,支持快速计算和输入/输出(I/O),并提供先进的管理功能,包括高速缓存和可扩展性。
自从RAID在1988年首次被提出以来一直到近几年,RAID已经成为一个价值数十亿美元的产业。一直以来,研究人员对RAID的研究通常集中在如何设计和优化单个RAID卷。然而,实际上,RAID控制器可以同时支持多达数百物理设备同时工作,并且管理几十个各种用途的逻辑卷。在这种情况下,多组存储设备(大多数是均匀的)将形成一个单一的RAID并且作为卷的方式一起工作,每个卷都有不同的磁盘组,相互之间的工作不受影响。虽然卷级别的管理方式简化了对RAID管理,并提供性能和故障隔离,但它同时也忽略了对整个系统的优化。
已经出现了不同类型的存储设备,例如传统的硬盘驱动器(Hard Disk Drive,HDD)和基于闪存的固态硬盘(Solid State Disk,SSD)。另外近年来也一直在研发视为未来有潜力的存储器,例如忆阻器。这些类型的存储设备
实现原理不同,从技术和经济视角看也具有不同的特点。例如,相比较而言,HDD容量大、价格低,但随机读取性能差;SSD随机读取速度快、体积小、价格高,但存在写前擦除和磨损的问题。已经提出了一些混合不同物理存储设备的技术,但一般仍是基于单个RAID卷来进行的优化的。
基于闪存的固态硬盘(SSD)在企业级的数据中心变的越来越流行,在一个RAID控制器中硬盘驱动HDD和SSD的混合组合的情况并不少见,一个虚拟卷可以跨越的一组硬盘驱动器HDD和固态硬盘SSD。虽然由固态硬盘SSD组成的RAID可以提供很高的IOPS(Input/Output Operations Per Second,每秒进行读写(I/O)操作的次数),但是研究人员已经证明,直接在固态硬盘上应用RAID算法并不能充分发挥SSD的性能特点,因此提出了一些固态硬盘专用的RAID算法。然而,这些RAID算法仍然仅局限于优化单个的RAID。除此之外,相比于由磁盘HDD组成的RAID阵列,由SSD组成的RAID具有更小的存储容量和更昂贵的价格。而且,由于固态硬盘SSD存在写前擦除和磨损的问题,使得企业级磁盘阵列中服务于不同类型应用程序的I/O请求的多个逻辑RAID更容易发生故障
在传统存储系统中,单个RAID阵列的校验信息访问常常成为存储系统的性能瓶颈。因此,在存储系统中,尤其是在企业级的数据中心,如何在不增加额外IO硬件资源的情况下解决单个RAID阵列的校验信息访问成为性能瓶颈的问题成为至关重要的挑战。
发明内容
鉴于如上情况,提出了本发明。
根据本发明的一个方面,提供了一种基于独立磁盘冗余阵列RAID机制的数据存储系统,包括:RAID控制器;以及存储设备子系统,该存储设备子系统包括多个用于存储数据的第一物理存储设备和多个用于存储数据的校验信息的第二物理存储设备,其中该多个用于存储数据的第一物理存储设备被划分为多个物理存储设备集合,每个第一物理存储设备集合独立于其他的第一物理存储设备集合,不同第一物理存储设备集合之间数据的访问不会互相干扰,以及该多个第二物理存储设备的存储校验信息的能力为所有第一物理存储设备集合共享,能够存储任何一个物理存储设备集合的数据的校验信息,所述RAID控制器以RAID机制在每个第一物理存储设备集合上存储数据,
而将校验信息存储在共享的多个第二物理存储设备上。
本发明实施例的数据存储系统将不同RAID卷之间的校验盘组成一个共享集合,换句话说,某个校验盘不是为单个特定RAID卷独占,而是可以由多个或所有RAID卷来共享,由此提高了存储系统的性能和可靠性。
根据本发明实施例的数据存储系统中,校验信息可以以日志写的形式写入到第二物理存储设备中。由此能够提高第二物理存储设备的写性能。
根据本发明实施例的数据存储系统中,具体一个或多个第一物理存储设备集合的一个或多个条带的校验信息可以被并行地以日志写的形式写入到各个第二物理存储设备中。由此进一步提高第二物理存储设备的写性能。
根据本发明实施例的数据存储系统中,各个第二物理存储设备可以被顺序写入校验信息。由此进一步提高第二物理存储设备的写性能。
根据本发明实施例的数据存储系统,还可以包括存储缓冲器,配置为缓存用户数据、校验信息和关于数据布局的数据布局元数据,所述RAID控制器包括I/O重定向器、校验信息计算器和数据重构器,其中,除非第一物理存储设备或第二物理存储设备发生故障,否则不会对第二物理存储设备进行读操作。由此能够尽量减少对于第二物理存储设备的随机读取操作,避免校验信息的访问瓶颈。
根据本发明实施例的数据存储系统,在一个示例中,当第一物理存储设备和/或第二物理存储设备发生故障而需要对第二物理存储设备进行读操作时,该读操作为顺序读操作。该顺序读操作能够提高第二物理存储设备的读取性能。
根据本发明实施例的数据存储系统,在一个示例中,当第一物理存储设备和/或第二物理存储设备发生故障时,数据重构器根据相关联的第一物理存储设备集合的校验信息映射表,建立相关联的第二物理存储设备的倒排表,倒排表中的每个项将校验信息在该第二物理存储设备上的存储地址和相关联的数据的地址信息相关联,该倒排表中的各个记录项是根据校验信息在相关联的第二物理存储设备上的存储地址而顺序排序的,从而使得与恢复故障相关联的针对第二物理存储设备的读取或者写入操作,能够顺序进行。这样,在数据恢复过程中,对第二物理存储设备进行顺序读取或顺序写入,由此大大提高了第二物理存储设备的读写性能,提高了数据恢复速度,避免或降低了数据恢复对于应用程序的I/O操作的影响。
根据本发明实施例的数据存储系统,在一个示例中,所述校验信息映射表和倒排表可以被存储于存储缓冲器中。
根据本发明的另一方面,提供了一种基于独立磁盘冗余阵列RAID机制的数据存储方法,可以包括:提供RAID控制器;提供多个固态盘SSD和多个硬盘HDD,该多个SSD用于存储数据,以及该多个硬盘HDD用于存储校验信息;将该多个SSD划分为多个SSD集合,各个SSD集合彼此独立,不同SSD集合之间数据的访问不会互相干扰,以及使得该多个HDD的每个为所有SSD集合共享,能够存储任何一个SSD集合的数据的校验信息,使得所述RAID控制器控制以RAID机制在每个SSD上存储数据,而将校验信息存储在共享的多个HDD上。
利用该数据存储方法,消除了传统SSD组成的RAID由于校验信息频繁更新导致SSD寿命降低的不利影响。
另外,根据本发明实施例的数据存储系统和数据存储方法,允许多个RAID之间以统计时分复用的方式共享校验盘组。由于所有的RAID在同一时间同时成为写密集型的情况几乎不可能发生,因此本发明实施例的数据存储系统和数据存储方法避免了校验信息的访问成为瓶颈的可能。
根据本发明实施例的数据存储方法,在一个示例中,当存储或更新数据时,以并行日志写的形式将校验信息顺序写入到各个HDD上。顺序写形式能够大大提高HDD设备的读写性能。
根据本发明实施例的数据存储方法,还可以包括:当SSD和/或HDD发生故障时,根据相关联的SSD集合的校验信息映射表,建立相关联的HDD的倒排表,倒排表中的每个项将校验信息在该HDD上的存储地址和相关联的数据的地址信息相关联,该倒排表中的各个记录项是根据校验信息在相关联的HDD上的存储地址而顺序排序的;基于HDD的倒排表,来恢复发生故障的SSD和/或HDD,其中包括根据HDD的倒排表,顺序读取HDD上的校验信息。
上述实施例的数据存储方法,通过建立校验盘HDD的倒排表(倒排表中的各个项目以校验信息在HDD上的存储地址递增的顺序进行了排序),后续即可以按照此顺序对HDD进行顺序读,由此大大提高HDD的读取性能,绕开了HDD随机读取性能差的瓶颈,从而能够提高数据恢复的速度。
根据本发明的另一方面,提供了一种RAID控制器,与存储设备子系统
一起使用,该存储设备子系统包括多个用于存储数据的第一物理存储设备和多个用于存储数据的校验信息的第二物理存储设备,该RAID控制器执行如下控制策略:该多个用于存储数据的第一物理存储设备被划分为多个物理存储设备集合,每个第一物理存储设备集合独立于其他的第一物理存储设备集合,不同第一物理存储设备集合之间数据的访问不会互相干扰;该多个第二物理存储设备的存储校验信息的能力为所有第一物理存储设备集合共享,能够存储任何一个物理存储设备集合的数据的校验信息;以及所述RAID控制器以RAID机制在每个第一物理存储设备集合上存储数据,而将校验信息存储在共享的多个第二物理存储设备上。
根据本发明一个实施例的RAID控制器还可以配置为还执行如下控制策略:当第一物理存储设备和/或第二物理存储设备发生故障时,根据相关联的第一物理存储设备集合的校验信息映射表,建立相关联的第二物理存储设备的倒排表,倒排表中的每个项将校验信息在该第二物理存储设备上的存储地址和相关联的数据的地址信息相关联,该倒排表中的各个记录项是根据校验信息在相关联的第二物理存储设备上的存储地址而顺序排序的,从而使得与恢复故障相关联的针对第二物理存储设备的读取或者写入操作,能够顺序进行。
根据本发明一个实施例的RAID控制器还可以配置为执行如下控制策略:具体一个或多个第一物理存储设备集合的一个或多个条带的校验信息被并行地以日志写的形式、以对每个第二物理设备顺序写的方式写入到各个第二物理存储设备中。
从下面结合附图对本发明实施例的详细描述中,本发明的这些和/或其它方面和优点将变得更加清楚并更容易理解,其中:
图1示出了根据本发明实施例的基于独立磁盘冗余阵列RAID机制的数据存储系统1000的结构框图。
图2示出了根据本发明实施例的基于独立磁盘冗余阵列RAID机制的数据存储系统2000的结构框图。
图3示出了图2所示的数据存储系统的数据布局和校验信息组织的示例。
图4示出了根据图2所示的实施例的数据存储系统在接收到写请求时计
算校验信息的方法4000的流程图。
图5示出了根据本发明一个实施例的当一个SSD发生故障时的数据恢复方法5000的流程图。
图6示出了根据本发明一个实施例的当一个HDD发生故障时的数据恢复方法6000的流程图。
图7示出了根据本发明一个实施例的当一个SSD盘和一个HDD同时发生故障时的数据恢复方法7000的流程图。
为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。
下文中,以RAID-4作为RAID级别的示例。在RAID-4中,RAID方案由N个数据盘和一个奇偶校验盘组成。用户数据被分成块(chunk),并以条带化的方式散布在N个数据盘上,其中奇偶校验盘扇区包含每个数据盘上相应扇区的逐位XOR,这使得在任一个盘失效的情况下RAID组中的数据内容可以保存。需要说明的是,RAID-4仅为示例,任何数据盘和校验盘分离的RAID方案都可以应用于本发明。更进一步地,未来可能出现的其它数据保护方式,只要利用了将数据和校验信息分开存储的机制,都可以应用于本发明。
本文中的术语“校验信息映射表”是指反映数据地址与校验信息地址之间的映射关系的列表,从数据存储设备视角看,能够根据自身的数据地址、利用校验信息映射表找到对应的存储校验信息的物理地址。本文中的术语“日志列表”是从校验信息存储设备视角看的,“日志列表”是校验信息映射表中只与特定校验信息存储设备相关的项目组成的列表,因为在优选实施例中,日志列表中的项目都是按照时间顺序排列的,反映了按照时间顺序的数据写和更新操作导致的校验信息的写和更新,因此叫“日志”列表,以与上述“校验信息映射表”区别。本文中的术语“倒排表”是相对于“日志列表”而言的,是以在校验信息存储设备上的地址作为主键的表。
下文中,将以SSD和HDD作为物理存储设备的例子来说明根据本发明实施例的数据存储系统和数据存储方法。不过本发明并不局限于此,而是可以应用于其他种类的物理存储设备。
在详细说明本发明的整体技术方案和实施例之前,为了便于本领域技术
人员更好地理解本发明,下面简要描述一下本发明提出的动机和主要思想。
本发明实施例的一个主要思想在于将不同RAID卷之间的校验盘组成一个共享集合,换句话说,某个校验盘不是为单个特定RAID卷独占,而是可以由多个或所有RAID卷来共享,以此来同时提高存储系统的性能和可靠性。
为了更好地理解标准数据中心服务器所产生的负载下奇偶校验块的I/O模式,发明人在一组传统RAID卷上重复了来自微软研究的块级别的访问记录文件(trace),关于该来自微软研究的块级别的访问记录文件,可参考如下文献,Dushyanth Narayanan,Austin Donnelly,and Antony Rowstron.Write Off-Loading:Practical Power Management for EnterpriseStorage.In Proceedings of the 6rd USENIX Conference on Fileand Storage Technologies(FAST’08),Pp.253-267,San Jose,CA,February 2008。通过对RAID内部校验信息访问模型的分析,发明者观察到以下规律:
1)对于一个磁盘阵列内部的多个卷,不同卷的奇偶校验盘接收完全不同强度和分布的校验信息请求。在某一个卷中,校验信息的访问可能成为性能瓶颈,然而,在其他卷中,校验信息盘几乎是空闲的;
2)在所有卷中,校验盘繁忙的卷占少数,校验盘几乎是空闲的卷占大多数。统计意义上,少于20%的卷接收了超过总IOPS的80%的请求。
3)所有卷的总校验信息IOPS趋于稳定,并且总校验信息的IOPS并不大。
由此,发明人想到,取代传统的各个逻辑卷具有独立的校验盘的情况,可以由多个逻辑卷共享多个校验盘,这样,写密集型工作负载的卷与空闲或读密集型工作负载的卷之间彼此共享校验盘,能够很好地在多个校验盘之间平衡校验信息访问负载,避免有的校验盘资源利用率低而有的校验盘负荷过大的情况,从而解决或缓和传统的单个RAID阵列的校验信息访问成为性能瓶颈的问题。
图1示出了根据本发明实施例的基于独立磁盘冗余阵列RAID机制的数据存储系统1000的结构框图。
如图1所示,数据存储系统1000可以包括RAID控制器1100和存储设备子系统1200。
该存储设备子系统1200可以包括用于存储数据的多个第一物理存储设备集合1210和用于存储校验信息的第二物理存储设备集合1220。每个第一
物理存储设备集合1210包括多个用于存储数据的第一物理存储设备1211,以及第二物理存储设备集合1220包括多个用于存储数据的校验信息的第二物理存储设备1221。
换句话说,多个用于存储数据的第一物理存储设备1211被划分成多个物理存储设备集合1210,每个第一物理存储设备集合1210独立于其他的第一物理存储设备集合1210,不同第一物理存储设备集合1210之间数据的访问不会互相干扰。
该多个第二物理存储设备1221的存储校验信息的能力为所有第一物理存储设备集合共享1210,能够存储任何一个物理存储设备集合1210的数据的校验信息。
下文中,为描述方便,有时将第一物理存储设备集合称为数据卷或者数据盘组,而将第二物理存储设备集合称为校验卷或校验盘组。
第一物理存储设备1211与第二物理存储设备1221可以是相同类型的存储设备,或者可以是不同类型的存储设备。不过优选地,第一物理存储设备1211与第二物理存储设备1221是不同类型的存储设备。更优选地,在平均存取时间性能上,第一物理存储设备1211优于第二物理存储设备1221。
在一个示例中,第一物理存储设备为固态盘SSD,第二物理存储设备为硬盘HDD。
需要说明的是,图1中示出了4个第一物理存储设备集合1210和1个第二物理存储设备集合1220,不过这仅为示例,第一物理存储设备集合1210的数目可以更多,例如可以有5个、6个或更多个第一物理存储设备集合1210,或者第一物理存储设备集合的数目可以更少例如可以有2个、3个第一物理存储设备集合。第二物理存储设备集合1220的数目也可以更多,例如2个、3个或更多个第二物理存储设备集合1220。优选地,预定数目的第一物理存储设备集合共享一个第二物理存储设备集合。例如,某4个SSD集合共享一个HDD集合,另外5个SSD集合共享另一个HDD集合,以此类推等等。
在图1中,示出了一个第一物理存储设备集合1210中有4个第一物理存储设备1211。不过,这仅为示例,一个第一物理存储设备集合1210中可以具有更多的第一物理存储设备1211,例如5个、6个等等,或者一个第一物理存储设备集合1210中也可以具有更少的第一物理存储设备1211,例如2个、3个。
在一个示例中,第二物理存储设备集合1220自身以RAID方式进行架构。例如按照RAID-4机制对第二物理存储设备集合1220中存储的校验信息进行校验保护。例如,以第一物理存储设备为SDD、第二物理存储设备为HDD为例,HDD集合中有5个HDD,其中4个HDD用于存储各个SDD集合的校验信息,1个HDD用于存储该4个HDD上条带的校验信息,即对SDD的校验信息进行校验保护,这样,如果某个HDD发生故障,可以通过HDD集合自身的RAID机制来恢复该HDD上的数据。
在一个示例中,校验信息以日志写的形式写入到第二物理存储设备中。类似于日志文件系统,当更新已经写过的数据时只需简单的无效原来的数据而不需要覆盖原来的旧数据。这样,可以提高校验信息的写入速度。优选地,具体一个或多个第一物理存储设备集合的一个或多个条带的校验信息被并行地以日志写的形式写入到各个第二物理存储设备中。更优选地,每个第二物理存储设备的写入形式为顺序写。这种写形式非常适合于第二物理存储设备随机存取性能不高的情况。例如,在第二物理存储设备为HDD的情况下,众所周知,HDD设备的寻道过程是机械方式,决定了其随机读写速度将明显低于顺序读写。因此,顺序写形式能够大大提高HDD设备的读写性能。
图2示出了根据本发明实施例的基于独立磁盘冗余阵列RAID机制的数据存储系统2000的结构框图。
相比于第一实施例的数据存储系统1000,根据本发明实施例的数据存储系统2000多了存储缓冲器2300,配置为缓存用户数据、校验信息和关于数据布局的数据布局元数据;以及在本示例中,第一物理存储设备2211为固态盘SSD,第二物理存储设备2221为硬盘HDD。多个SSD用于存储数据,该多个硬盘HDD用于存储校验信息。该多个SSD被划分为多个SSD集合,各个SSD集合彼此独立,不同SSD集合之间数据的访问不会互相干扰。
该多个HDD的每个为所有SSD集合共享,能够存储任何一个SSD集合的数据的校验信息。
利用所述RAID控制器2100控制以RAID机制在每个SSD上存储数据,而将校验信息存储在共享的多个HDD上。
在一个示例中,数据块是以轮盘制(round-robin)的数据布局存放在SSD集合中。
因为每个SSD集合独立于其他的SSD集合,对不同卷的数据存取不会相
互干扰。因此,很容易优化应用程序访问模式以获得更好的I/O性能。
RAID控制器2100可以包括I/O重定向器2110、校验信息计算器2120、数据重建器2130和访问监控器2140。
I/O重定向器2110根据数据布局的元数据,将传入的I/O请求重定向到相应的第一物理存储设备。校验信息计算器2120当发生写请求、数据恢复或者迁移数据时执行校验信息的计算。数据重建器2130当一个或者多个物理存储设备发生故障时进行数据恢复工作。访问监控器2140负责监控应用的I/O访问请求,计算I/O访问的强度,并记录每一个RAID上数据的访问热度。
在一个示例中,当存储或更新数据时,以并行日志写的形式将校验信息顺序写入到各个HDD上。日志方式写的特征在于当更新已经写过的数据时只需简单的无效原来的数据而不需要覆盖原来的旧数据。当SSD集合的一个条带内部任何数据块被更新时,需要同时更新其相应的校验信息,此时仅将新的校验信息写入到某HDD硬盘上,同时例如通过修改校验信息映射表来无效原来的校验信息,但无需覆盖原来的旧数据。校验信息的日志写方式能够保证HDD的写入为顺序写,避免磁头来回跳跃寻址,由此大大提高HDD的写入速度。顺便说一下,HDD校验盘组的日志写结构仅保存最新版本的奇偶校验块,而使旧版本的奇偶校验块分散到磁盘的不同地方。这种旧版本的数据叫做垃圾。数据存储系统可以定期查找这些垃圾,回收他们以使磁盘上的块再次成为空闲用于后续的写操作,这种操作叫做垃圾回收,垃圾回收操作可以在系统空闲的时期执行,因此不会引起额外的内存开销。
图2所示的数据存储系统允许多个RAID之间以统计时分复用的方式共享校验盘组。由于所有的RAID在同一时间同时成为写密集型的情况几乎不可能发生,因此图2所示的数据存储系统避免了校验信息的访问成为瓶颈的可能。
图2所示的数据存储系统消除了传统SSD组成的RAID由于校验信息频繁更新导致SSD寿命降低的不利影响。
另外,在一个示例中,检验盘组2200本身以RAID机制来组织,由此即使数据存储系统中同时发生一个SSD和一个HDD失效,数据也不会丢失,提供了更高级别的容错能力。
图3示出了图2所示的数据存储系统的数据布局和校验信息组织的示例。
图3中,数据卷0、1、2、3共享一个校验盘组,每个数据卷由四个SSD
组成,其中数据以Round-robin形式写入数据卷中,校验盘组由四个HDD组成,其中HDD0、1、2存储校验信息Pi,j,HDD3存储校验信息的校验信息PPk,例如,存储在HDD3上的PP0为HDD0上的P0,0、HDD1上的P0,1、HDD2上的P0,2的XOR结果;存储在HDD3上的PP1为HDD0上的P2,3、HDD1上的P1,1、HDD2上的P1,3的XOR结果;存储在HDD3上的PP2为HDD0上的P3,2、HDD1上的P0,3、HDD2上的P2,0的XOR结果;存储在HDD3上的PP3为HDD0上的P1,3的XOR结果。Pi,j代表数据卷i的条带j的校验值,其中在存储缓存空间中示出了奇偶校验缓存,其中对于每个数据卷i,维护一个校验信息映射表,例如,图3中例示了,对于数据卷0,所存储的校验信息映射表的各个项目分别为与校验值P0,0相关联的项目、与校验值P0,1相关联的项目、与校验值P0,2相关联的项目、与校验值P0,3相关联的项目;对于数据卷1,所存储的校验信息映射表的各个项目分别为与校验值P1,1相关联的项目、与校验值P1,3相关联的项目;对于数据卷2,所存储的校验信息映射表的各个项目分别为与校验值P2,3相关联的项目、与校验值P2,0相关联的项目;对于数据卷3,所存储的校验信息映射表的各个项目为与校验值P1,3相关联的项目。在一个示例中,该校验信息映射表中每项记录的形式例如为:<条带号,HDD盘号,HDD块号>,其中条带号指示该校验信息所保护的数据卷上对应条带的唯一标识;HDD盘号指示该数据卷上该条带的校验信息被存储在哪个HDD上,HDD块号指示该数据卷上该条带的校验信息被存储在该HDD盘号指示的HDD的哪个块上。
图3中的奇偶校验更新历史例示了按时间先后顺序更新的奇偶校验数据为P2,3、P1,1、P1,3、P3,2、P0,3、P2,0、P1,3。对照校验盘组可见,该来到的奇偶校验数据被并行写入各个HDD,且对于数据卷1条带3存在先后两个校验数据P1,3,其中在先的校验数据P1,3被存储在HDD2中,而在后的校验数据P1,3被写入HDD0。可见,各个HDD被以顺序写的方式写入数据。
在一个示例中,除非SDD或HDD发生故障,否则不会对HDD进行读操作,由此减少HDD中磁头跳跃寻址的可能。
具体地,例如,响应于接收到来自外界例如存储服务器的数据读取请求,I/O重定向器检查目标数据是否在存储缓冲器中,如果数据在存储缓冲器中,则从存储缓冲器中获得数据;否则I/O重定向器根据存储缓冲器中存储的数据布局元数据将该读请求重定向到相应的SSD集合。
图4示出了根据图2所示的实施例的数据存储系统在接收到写请求时计算校验信息的方法4000的流程图。
在步骤S4100中,接收到来自外界例如存储服务器的写请求。
在步骤S4200中I/O重定向器判断该写请求是大写(big write)还是小写(small write)。所谓大写例如指条带中要更新的数据大于或等于条带中数据的一半的情况,反之则指小写。不过,可以根据需要来进行大写和小写的定义。
如果步骤S4200确定该写请求是大写,则前进到步骤S4300,否则确定该写请求是小写,前进到步骤S4400。
在步骤S4300中,该I/O重定向器控制校验信息计算器以重建写(reconstruction-write)的方式来计算校验信息。在一个示例中,在重构写中,从目标条带中不需要修改的片段(segment)中读取原来的数据,再和本条带中所有需要修改的片段上的新数据一起计算(例如通过XOR操作)校验值,并将新的片段数据写入相关数据卷的SSD盘上,以及将校验值写入相关的HDD上。
在步骤S4400中,判断原始校验信息是否存在于存储缓冲器中。如果步骤S4400确定目标条带的原始校验信息在存储缓冲器中,则前进到步骤S4500,其中校验信息计算器以“读修改写(read-modify-write)”的模式计算校验信息;反之如果步骤S4400确定目标条带的原始校验信息不在存储缓冲器中,则校验信息计算器以重建写的方式来计算校验信息。在一个示例中,读修改写模式需要读入原始校验信息以及要修改的片段的原始数据,并将该两者和要修改的片段的新数据结合起来计算(例如通过XOR操作)校验信息。
可见,在图4所示的更新数据时的校验信息计算方法中,不管何种校验信息计算方式,均保证了除非发生SSD盘或HDD故障的情况,否则在校验盘组中并不发生对奇偶校验信息的读操作,由此尽量减少HDD校验盘组的磁头跳跃操作,以尽可能保证HDD校验盘组的顺序读和顺序写。
如前所述,当一个写请求是小写而需要读取当前状态时,即需要读取原始校验信息,本实施例选择从存取较快的内存缓冲器中读取原始校验信息,而不是如传统地那样从校验盘中读取原始校验信息,这样能够更快地计算校验信息,同时减少对HDD校验盘的随机读操作。
如前所述,HDD校验盘采用日志写方式以保证顺序写。日志写结构仅保存最新版本的奇偶校验块,而使旧版本的奇偶校验块分散到磁盘的不同地方。
这种旧版本的数据叫做垃圾。本实施例的数据存储系统会定期查找这些垃圾,回收他们以使磁盘上的块再次成为空闲用于后续的写操作,这种操作叫做垃圾回收。
一个HDD的容量通常大于一个SSD的容量,并且在HDD校验盘组中可以使用任意多个硬盘驱动器HDD,由于对检验盘组中存储校验信息的HDD的日志写方式所引起的垃圾回收操作可以在系统空闲的时期执行,因此,构建校验盘组的额外开销只有存储校验信息映射表的内存开销。在一个示例中,存储校验信息映射表的内存使用的是存储控制器所常用的非易失存储器NVRAM。当一个条带中多个数据块同时发生写操作或者更新操作的时候,这些操作将被成批处理,因此,校验信息只需要被更新一次,而不是被更新多次。
下面将结合附图描述根据本发明实施例的当SSD数据盘和/或HDD校验盘发生故障时的数据恢复方法。
在一个示例中,当SSD数据盘和/或HDD校验盘发生故障而需要对HDD校验盘进行读操作时,该读操作为顺序读操作,这是通过获得一个将校验信息和数据关联的记录按照校验信息在HDD校验盘上的存储地址进行排序实现的。
具体地,当SSD数据盘和/或HDD校验盘发生故障时,根据SSD盘集合的校验信息映射表,建立相关联的HDD的倒排表,倒排表中的每个项将校验信息在HDD上的存储地址和相关联的数据的地址信息相关联,该倒排表中的各个记录项是根据校验信息在相关联的HDD上的存储地址而顺序排序的,从而使得与恢复故障相关联的针对HDD上的读取或者写入操作,能够顺序进行。
图5示出了根据本发明一个实施例的当一个SSD发生故障时的数据恢复方法5000的流程图。
如图5所示,在步骤S5100中,获得降级卷的校验信息映射表。
在某个存储设备中优选地在存储缓冲器中维护每个卷的校验信息映射表,该校验信息映射表的每个项目将卷的条带号、存储该条带的校验信息的校验盘的盘号、以及该盘上的存储地址(例如块号)相关联的存储。需要说明的是,本发明并不限制校验信息映射表的具体形式,相反只要能够给出校验信息相关的卷号、条带号、所存储的校验盘号和在校验盘上的具体地址之类的信息,任何形式都可以采用。
在步骤S5100得到降级的数据卷的校验信息映射表之后,前进到步骤S5200。
在步骤S5200中,得到单个校验盘的日志列表。
例如,从降级卷的校验信息映射表中抽取与校验盘HDD0相关的项,组成了校验盘HDD0日志列表L0,该日志列表L0的每项例如为<数据卷条带号,校验盘上地址>的形式,该项表示与相关的条带的校验信息在HDD0上的存储地址。类似地,从降级卷的校验信息映射表中抽取与校验盘HDD1相关的项,组成了校验盘HDD1的日志列表L1。分别得到对于HDD2、HDD3的日志列表。
注意,这里每个校验盘的日志列表已经默认都是和降级的数据卷相关的,并不涉及其他的数据卷。
这里需要说明的是,对于步骤S5200以及以后的步骤,可以关于各个HDD独立进行,因此都可以对于各个HDD并行执行。
在步骤S5200中得到了单个HDD的日志列表之后,前进到步骤S5300。
在步骤S5300中,得到HDD的倒排表,其中各个项目已经按照在HDD上的存储地址为关键字按递增的顺序进行了排序。
具体地,将步骤S5200中得到的日志列表转换为以校验信息在HDD上的存储地址为关键字的倒排表,例如每项的形式为<校验盘上存储地址,数据卷条带号>,并且各个项目按照该“校验盘上存储地址”地址的顺序进行了排序。
在得到这样的按照在HDD上的存储地址递增的顺序进行排序的倒排表后,后续即可以按照此顺序对HDD进行顺序读,这样能够大大提高HDD的读取性能。
在步骤S5300得到了HDD的倒排表后,前进到步骤S5400。
在步骤S5400中,根据校验盘的倒排表,读取HDD中的相应校验信息,以及读取相应的SSD的健康数据。
即,根据倒排表中各项(例如每项形式为<校验盘上存储地址,数据卷条带号>),从校验盘上的存储地址读取校验信息,以及从相关的卷(即SSD集合)中除了发生故障的SSD之外的其它SSD中读取该条带的片段(下文中称之为健康数据)。
在步骤S5400之后,前进到步骤S5500。
在步骤S5500中,根据所读取的HDD中的相应校验信息和相应的SSD的
健康数据,计算失效数据,并写入热备份的SSD中。
通过对于所有的HDD执行(优选地并行执行)上述步骤S5200-S5500,即实现了在某个数据卷中的SSD发生故障时的数据恢复。
在图5所示数据恢复方法中,通过由例如存储缓冲器中维护的数据卷的校验信息映射表来得到校验盘HDD的倒排表(倒排表中的各个项目以校验信息在HDD上的存储地址递增的顺序进行了排序),后续即可以按照此顺序对HDD进行顺序读,由此大大提高HDD的读取性能,避免了HDD随机读取性能差的瓶颈。
需要说明的是,倒排表的获得方式可以不局限于图5所示的步骤流程,例如可以是在从校验信息映射表中抽取与某校验盘相关的项时,就直接按照在校验盘上存储地址进行排序,而无需专门得到步骤S5200的日志列表。
图6示出了根据本发明一个实施例的当一个HDD发生故障时的数据恢复方法6000的流程图。
在步骤S6100中,从所有卷的校验信息映射表中选取与故障HDD相关的部分组合成一个日志列表L。
在一个示例中,可以先将所有卷的校验信息映射表合并成一个总的校验信息映射表,然后从该总的校验信息映射表中只选取与故障HDD相关的部分构建成一个日志列表。
日志列表的每项将数据卷号、条带号、HDD上的存储地址相关联,指示该数据卷号指示的数据卷上的由该条带号指示的条带的校验信息存储在由该HDD上的存储地址指示的地址处。关于该存储地址例如可以由HDD上的物理块号来指示。
注意,该日志列表涉及所有数据卷,只要该数据卷的条带的校验信息存储在该故障HDD上即可。
在步骤S6100得到HDD相关的日志列表后,前进到步骤S6200。
在步骤S6200中,按照HDD中地址递增的顺序为故障HDD构建倒排表Ti。
由步骤S6100得到的日志列表来构建该倒排表,例如,以每个项目中的HDD上的存储地址为关键字来按照该存储地址递增的顺序进行排序。这样,倒排表上的每个项目指示与HDD上该存储地址上存储的校验信息相关的数据存储在该数据卷(由数据卷号指示)的该条带(由条带号指示)上。
需要说明的是,关于每个项目的具体形式,没有限制,只要能够给出上述信息即可。
接下来,依次对倒排表中每个项目的相关校验信息执行如下步骤S6300到S6600的操作。
在步骤S6300中,判断该校验信息对应的SSD卷(由数据卷号指示)是否处于空闲状态。如果对应SSD处于空闲状态(S6300的是),前进到步骤S6400,否则对应SSD卷并非处于空闲状态(S6300的否),则过程前进到步骤S6500。
在步骤S6400中,读取该SSD卷中相应条带的数据。
在步骤S6500中,读取校验盘组中相应条带(由HDD上的存储地址指示)的数据。
步骤S6400或S6500完成后,前进到步骤S6600。
在步骤S6600中,计算失效数据,并写入热备份的HDD中。例如,如果在前步骤是S6400,则由S6400得到的SSD卷中相应条带的数据的例如XOR操作来得到该校验信息作为恢复的失效数据,并写入热备份的;否则如果在前步骤是S6500,则由得到的检验盘组中的相应条带的数据。
对于倒排表中的每项,重复上述步骤S6300到S6600,由此实现了对故障HDD中数据的恢复。
需要说明的是,图6所示的示例是以校验盘组本身是按照RAID机制组织的情况执行的恢复方法,因此存在步骤S6300和S6500,以在SSD卷忙时,选择从检验盘组本身来恢复故障校验盘的数据,这样能够尽可能地使得故障HDD的数据恢复不会干扰正常的数据读写操作。不过,在检验盘组未按照RAID机制组织的情况下,可以去除步骤S6300和S6500,而直接通过读取SSD数据卷中的数据来计算得到HDD上的校验信息。
在图6所示的方法中的,倒排表的安排是出于如下考虑,一是使得对应校验盘组中其他校验盘的数据的读取为顺序读模式;二是使得热备份HDD的写入为顺序写,由此大大提高了校验盘的读写性能。
图7示出了根据本发明一个实施例的当一个SSD盘和一个HDD同时发生故障时的数据恢复方法7000的流程图。
此时的发明思想是,优先恢复数据盘中的数据,以尽快使得对应的数据卷能够正常工作。
为此,首先,参考图5所示的SSD发生故障时的恢复方法,针对发生故障的SSD,为每个HDD建立倒排表;然后根据未发生故障的HDD的倒排表,恢复发生故障的SSD中存储的部分用户数据。然后,参考图6所示的HDD发生故障时的恢复方法,针对所有SSD,为发生故障的HDD建立倒排表,然后利用该发生故障的HDD的倒排表,优先恢复该发生故障的HDD中与降级的SSD集合对应的校验信息,然后使用恢复的校验信息来恢复发生故障的SSD中的数据,重复此过程直至整个发生故障的SSD恢复完成。最后,恢复发生故障的HDD中尚未恢复的校验信息。
具体地,如图7所示,步骤S7100-S7500为参考图5的当SSD发生故障时的SSD盘恢复方法,不过其中排除了发生故障的HDD;以及步骤S7600-S8100为参考图6的当HDD发生故障时的恢复方法,不过其中加入了SSD的恢复步骤。
在步骤S7100中,获得降级卷的校验信息映射表。
在步骤S7200中,得到未发生故障的校验盘的日志列表。
在步骤S7300中,得到未发生故障的校验盘的记录按照校验信息在校验盘上存储地址排序的倒排表。
在步骤S7400中,根据未发生故障的校验盘的倒排表,读取HDD中的相应校验信息,以及读取相应的SSD的健康数据。
在步骤S7500中,根据所读取的HDD中的相应校验信息和相应的SSD的健康数据,计算发生故障的SSD的失效数据,并写入热备份的SSD中。
与图5的数据恢复方法类似,步骤S7200到S7500对于各个HDD(除了发生故障的HDD和存储校验盘的校验信息的HDD之外)可以并行执行。
在步骤S7600中,从所有卷的校验信息映射表中选取与故障HDD相关的部分组合成一个日志列表L。
在步骤S7700中,按照HDD中地址递增的顺序为故障HDD构建倒排表。
在步骤S7800中,根据该故障HDD的倒排表,优先恢复其中与故障SSD对应的校验信息。
在步骤S7900中,读取与步骤S7800中的校验信息对应的健康SSD的数据。
在步骤S8000中,利用步骤S7800的校验信息和步骤S7900的健康SSD的数据来恢复故障SSD中的剩余数据
在步骤S8100中,根据故障HDD的倒排表,恢复该HDD中未被恢复的校验信息。
通过图7所示的故障恢复方法,尽可能快地恢复发生故障的SSD上的数据,以便最大程度地降低数据恢复对于应用程序的正常输入/输出(I/O)的影响。
此外,在图7所示的故障恢复方法中,仍然通过构建HDD的倒排表而保障了对HDD的顺序读写,大大提高了HDD的读写性能。
利用图7所示的故障恢复方法,即使数据存储系统中同时发生一个SSD和一个HDD失效,数据也不会丢失,提供比传统单纯SSD的RAID形式更高级别的容错能力。
上述数据存储系统(或数据存储方法)的各个构成部分(或各个步骤)的结构和数量不对本发明的范围构成限制。根据本发明的一个实施例,各个构成部分和/或各个步骤可以进一步合并为一个集成的装置和/或步骤来执行和实现相应的功能和操作,或者各个构成部分和/或各个步骤进一步拆分为更小的单元来实现他们各自的功能和操作。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (27)
- 一种基于独立磁盘冗余阵列RAID机制的数据存储系统,包括:RAID控制器;以及存储设备子系统,该存储设备子系统包括多个用于存储数据的第一物理存储设备和多个用于存储数据的校验信息的第二物理存储设备,其中该多个用于存储数据的第一物理存储设备被划分为多个物理存储设备集合,每个第一物理存储设备集合独立于其他的第一物理存储设备集合,不同第一物理存储设备集合之间数据的访问不会互相干扰,以及该多个第二物理存储设备的存储校验信息的能力为所有第一物理存储设备集合共享,能够存储任何一个物理存储设备集合的数据的校验信息,所述RAID控制器以RAID机制在每个第一物理存储设备集合上存储数据,而将校验信息存储在共享的多个第二物理存储设备上。
- 根据权利要求1的数据存储系统,其中,第一物理存储设备与第二物理存储设备是相同类型的存储设备,或者是不同类型的存储设备。
- 根据权利要求2的数据存储系统,其中,第一物理存储设备与第二物理存储设备是不同类型的存储设备,且在平均存取时间性能上,第一物理存储设备优于第二物理存储设备。
- 根据权利要求1的数据存储系统,其中,第一物理存储设备为固态盘SSD,第二物理存储设备为硬盘HDD。
- 根据权利要求1或2的数据存储系统,其中,校验信息以日志写的形式写入到第二物理存储设备中。
- 根据权利要求1或2的数据存储系统,其中,具体一个或多个第一物理存储设备集合的一个或多个条带的校验信息被并行地以日志写的形式写入到各个第二物理存储设备中。
- 根据权利要求6的数据存储系统,其中,各个第二物理存储设备以顺序写的形式写入校验信息。
- 根据权利要求1或2的数据存储系统,还包括存储缓冲器,配置为缓存用户数据、校验信息和关于数据布局的数据布局元数据,所述RAID控制器包括I/O重定向器、校验信息计算器和数据重构器,其中,除非第一物理存储设备或第二物理存储设备发生故障,否则不会 对第二物理存储设备进行读操作。
- 根据权利要求8的数据存储系统,响应于接收到来自外界的数据读取请求,I/O重定向器检查目标数据是否在存储缓冲器中,如果数据在存储缓冲器中,则从存储缓冲器中获得数据;否则I/O重定向器根据存储缓冲器中存储的数据布局元数据将该读请求重定向到相应的第一物理存储设备集合。
- 根据权利要求8的数据存储系统,响应于来自外界的数据写请求,I/O重定向器判断该写请求是否是大写;如果确定该写请求是大写,则I/O重定向器控制校验信息计算器以“重建写”的方式来计算校验信息;如果确定该写请求是小写,则I/O重定向器尝试从存储缓冲器中获取目标条带的原始检验信息,以及如果目标条带的原始校验信息在存储缓冲器中,则校验信息计算器以“读修改写”的模式计算校验信息;反之如果目标条带的原始校验信息不在存储缓冲器中,则校验信息计算器以“重建写”的方式来计算校验信息。
- 根据权利要求1或2的数据存储系统,所述多个第二物理存储设备按照RAID-4机制对第二物理存储设备中存储的校验信息进行校验保护。
- 根据权利要求8的数据存储系统,当第一物理存储设备和/或第二物理存储设备发生故障而需要对第二物理存储设备进行读操作时,该读操作为顺序读操作。
- 根据权利要求1或2的数据存储系统,当第一物理存储设备和/或第二物理存储设备发生故障时,数据重构器根据相关联的第一物理存储设备集合的校验信息映射表,建立相关联的第二物理存储设备的倒排表,倒排表中的每个项将校验信息在该第二物理存储设备上的存储地址和相关联的数据的地址信息相关联,该倒排表中的各个记录项是根据校验信息在相关联的第二物理存储设备上的存储地址而顺序排序的,从而使得与恢复故障相关联的针对第二物理存储设备的读取或者写入操作,能够顺序进行。
- 根据权利要求13的数据存储系统,所述校验信息映射表和倒排表被存储于存储缓冲器中。
- 根据权利要求13的数据存储系统,所述根据相关联的第一物理存储设备集合的校验信息映射表,建立相关联的第二物理存储设备的倒排表包括:从所述相关联的第一物理存储设备集合的校验映射信息表中抽取所有与 该第二物理存储设备相关的项,该项表示与该第一物理存储设备集合相关的条带的校验信息存储在第二物理存储设备上的地址,将所抽取的项以在第二物理存储设备上的地址为关键字按照地址递增的顺序进行排序,得到倒排表。
- 根据权利要求13的数据存储系统,其中,当具体第一物理存储设备集合中某个第一物理存储设备发生故障时,所述RAID控制器被配置为,针对发生故障的第一物理存储设备集合,对每个第二物理存储设备,进行下述有效校验信息获取操作:根据该发生故障的第一物理存储设备集合的校验信息映射表,数据重构器为每个第二物理存储设备生成按照在该第二物理存储设备上的存储地址的顺序排序的倒排表,该倒排表中的每项将有效校验信息相关的在第一物理设备集合的数据地址与该有效校验信息在该第二物理存储设备上的存储地址相关联,该有效校验信息是关于该发生故障的第一物理存储设备集合上的条带的、并且被存储在该第二物理存储设备上,根据该按照在该第二物理存储设备上的存储地址的顺序排序的倒排表,从第二物理存储设备上顺序读取有效校验信息,以用于恢复发生故障的第一物理存储设备集合上的发生故障的第一物理存储设备上的数据。
- 根据权利要求15的数据存储系统,其中,针对各个第二物理存储设备进行的有效检验信息读取操作是并行进行的。
- 根据权利要求13的数据存储系统,其中,当某个第二物理存储设备发生故障时,所述控制器被配置为,根据所有第一物理存储设备集合的校验信息映射表,数据重构器获取所有与发生故障的第二物理存储设备相关联的校验信息映射表项,生成按照在该第二物理存储设备上的存储地址的顺序排序的倒排表,该倒排表的每项将有效校验信息相关的数据地址与该有效校验信息在该第二物理存储设备上的存储地址相关联,该有效校验信息被存储在该第二物理存储设备上,该有效校验信息相关的数据地址涉及第一物理存储设备集合的集合编号信息、该集合编号的第一物理存储设备集合中的第一物理存储设备的设备编号信息、以及该设备编号的第一物理存储设备的具体地址信息,根据按照在该第二物理存储设备上的存储地址的顺序排序的倒排表,数据重构器顺序查看每个项目,确定该项目相关联的第一物理存储设备集合,以及判断该第一物理存储设备集合是否处于空闲状态,如果该第一物理存储 设备集合处于空闲状态,则数据重构器利用相应的第一物理存储设备集合中的相应条带中的数据来恢复该发生故障的第二物理存储设备上有效检验信息,否则利用发生故障的第二物理存储设备相关联的RAID-4机制来恢复存储于该发生故障的第二物理存储设备上的有效校验信息。
- 根据权利要求13的数据存储系统,其中,当某个第一物理存储设备和某个第二物理存储设备同时发生故障时,所述控制器被配置为,针对发生故障的第一物理存储设备集合的校验信息映射表,为每个非故障第二物理存储设备建立第一倒排表;针对所有第一物理存储设备集合的映射表,为发生故障的第二物理存储设备建立第二倒排表;首先,数据重构器利用多个第二物理存储设备中的未发生故障的第二物理存储设备,基于第一倒排表,恢复发生故障的第一物理存储设备中存储的部分用户数据;然后,根据第二倒排表,优先利用发生故障的第二物理存储设备相关联的RAID-4机制恢复第二物理存储设备中与降级的第一物理存储设备集合对应的校验信息,然后使用恢复的校验信息恢复发生故障的第一物理存储设备中的数据,重复这个过程直到整个发生故障的第一物理存储设备恢复完成;最后,再恢复发生故障的第二物理存储设备中的未被恢复的奇偶校验信息。
- 根据权利要求1或2的数据存储系统,所述RAID控制器包括:I/O重定向功能模块、校验信息计算功能模块、数据重建功能模块和访问监控模块,其中I/O重定向器根据数据布局的元数据,将传入的I/O请求重定向到相应的第一物理存储设备;校验信息计算器当发生写请求、数据恢复或者迁移数据时执行校验信息的计算;数据重建器当一个或者多个物理存储设备发生故障时进行数据恢复工作;访问监控器负责监控应用的I/O访问请求,计算I/O访问的强度,并记录每一个RAID上数据的访问热度。
- 根据权利要求1或2的数据存储系统,还包括:存储缓冲器,该存储缓冲器用来缓存用户数据、校验信息和布局的元数据。
- 一种基于独立磁盘冗余阵列RAID机制的数据存储方法,包括:提供RAID控制器;提供多个固态盘SSD和多个硬盘HDD,该多个SSD用于存储数据,以及该多个硬盘HDD用于存储校验信息;将该多个SSD划分为多个SSD集合,各个SSD集合彼此独立,不同SSD集合之间数据的访问不会互相干扰,以及使得该多个HDD的每个为所有SSD集合共享,能够存储任何一个SSD集合的数据的校验信息,使得所述RAID控制器控制以RAID机制在每个SSD上存储数据,而将校验信息存储在共享的多个HDD上。
- 根据权利要求22的数据存储方法,还包括:当存储或更新数据时,以并行日志写的形式将校验信息顺序写入到各个HDD上。
- 根据权利要求22的数据存储方法,还包括:当SSD和/或HDD发生故障时,根据相关联的SSD集合的校验信息映射表,建立相关联的HDD的倒排表,倒排表中的每个项将校验信息在该HDD上的存储地址和相关联的数据的地址信息相关联,该倒排表中的各个记录项是根据校验信息在相关联的HDD上的存储地址而顺序排序的;基于HDD的倒排表,来恢复发生故障的SSD和/或HDD,其中包括根据HDD的倒排表,顺序读取HDD上的校验信息。
- 一种RAID控制器,与存储设备子系统一起使用,该存储设备子系统包括多个用于存储数据的第一物理存储设备和多个用于存储数据的校验信息的第二物理存储设备,该RAID控制器执行如下控制策略:该多个用于存储数据的第一物理存储设备被划分为多个物理存储设备集合,每个第一物理存储设备集合独立于其他的第一物理存储设备集合,不同第一物理存储设备集合之间数据的访问不会互相干扰;该多个第二物理存储设备的存储校验信息的能力为所有第一物理存储设备集合共享,能够存储任何一个物理存储设备集合的数据的校验信息;以及所述RAID控制器以RAID机制在每个第一物理存储设备集合上存储数据,而将校验信息存储在共享的多个第二物理存储设备上。
- 根据权利要求25的RAID控制器,配置为还执行如下控制策略:当第一物理存储设备和/或第二物理存储设备发生故障时,根据相关联的第一物理存储设备集合的校验信息映射表,建立相关联的第二物理存储设备的倒排表,倒排表中的每个项将校验信息在该第二物理存储设备上的存储地址和相关联的数据的地址信息相关联,该倒排表中的各个记录项是根据校验信息在相关联的第二物理存储设备上的存储地址而顺序排序的,从而使得与恢复故障相关联的针对第二物理存储设备的读取或者写入操作,能够顺序进行。
- 根据权利要求25或26的RAID控制器,还配置为执行如下控制策略:具体一个或多个第一物理存储设备集合的一个或多个条带的校验信息被并行地以日志写的形式、以对每个第二物理设备顺序写的方式写入到各个第二物理存储设备中。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/093320 WO2016090541A1 (zh) | 2014-12-09 | 2014-12-09 | 数据存储系统和数据存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107250975A true CN107250975A (zh) | 2017-10-13 |
CN107250975B CN107250975B (zh) | 2020-07-10 |
Family
ID=56106410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480083890.5A Active CN107250975B (zh) | 2014-12-09 | 2014-12-09 | 数据存储系统和数据存储方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10346245B2 (zh) |
CN (1) | CN107250975B (zh) |
WO (1) | WO2016090541A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542342A (zh) * | 2018-11-09 | 2019-03-29 | 锐捷网络股份有限公司 | 元数据管理与数据重构方法、设备及存储介质 |
CN109725823A (zh) * | 2017-10-27 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 用于管理混合存储盘阵列的方法和设备 |
CN111095217A (zh) * | 2017-11-13 | 2020-05-01 | 清华大学 | 资源全局共享的基于raid机制的数据存储系统 |
CN112363674A (zh) * | 2020-11-12 | 2021-02-12 | 新华三技术有限公司成都分公司 | 一种数据写入方法和装置 |
CN112416248A (zh) * | 2020-11-18 | 2021-02-26 | 海光信息技术股份有限公司 | 一种磁盘阵列的实现方法、装置及电子设备 |
CN112748849A (zh) * | 2019-10-29 | 2021-05-04 | 伊姆西Ip控股有限责任公司 | 用于存储数据的方法、设备和计算机程序产品 |
CN112783831A (zh) * | 2021-01-28 | 2021-05-11 | 新华三大数据技术有限公司 | 一种文件迁移方法及装置 |
WO2021088615A1 (zh) * | 2019-11-06 | 2021-05-14 | 华为技术有限公司 | 一种校验数据计算方法及装置 |
CN113448502A (zh) * | 2020-03-27 | 2021-09-28 | 株式会社日立制作所 | 分布式存储系统和存储控制方法 |
CN113535069A (zh) * | 2020-04-22 | 2021-10-22 | 联想企业解决方案(新加坡)有限公司 | 数据存储系统、计算设备及数据存储系统的构建方法 |
CN113687978A (zh) * | 2021-09-07 | 2021-11-23 | 天津津航计算技术研究所 | 用于存储阵列控制器的数据处理方法 |
CN113687977A (zh) * | 2021-09-07 | 2021-11-23 | 天津津航计算技术研究所 | 基于raid控制器以实现计算性能提升的数据处理装置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933490A (zh) * | 2015-12-29 | 2017-07-07 | 伊姆西公司 | 控制对磁盘阵列进行读写操作的方法和装置 |
US20190034306A1 (en) * | 2017-07-31 | 2019-01-31 | Intel Corporation | Computer System, Computer System Host, First Storage Device, Second Storage Device, Controllers, Methods, Apparatuses and Computer Programs |
CN111949434B (zh) * | 2019-05-17 | 2022-06-14 | 华为技术有限公司 | 磁盘冗余阵列raid管理方法、raid控制器和系统 |
US20200264800A1 (en) * | 2020-05-04 | 2020-08-20 | Intel Corporation | Erasure coding write hole closure for solid-state drive (ssd) erasure coding |
US11675747B2 (en) * | 2020-07-10 | 2023-06-13 | EMC IP Holding Company, LLC | System and method for early tail-release in a log structure log using multi-line PLB structure supporting multiple partial transactions |
US11592988B2 (en) * | 2021-01-12 | 2023-02-28 | EMC IP Holding Company LLC | Utilizing a hybrid tier which mixes solid state device storage and hard disk drive storage |
CN114282073B (zh) * | 2022-03-02 | 2022-07-15 | 支付宝(杭州)信息技术有限公司 | 数据存储方法及装置、数据读取方法及装置 |
CN116931845B (zh) * | 2023-09-18 | 2023-12-12 | 新华三信息技术有限公司 | 一种数据布局方法、装置及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7516354B2 (en) * | 2004-08-25 | 2009-04-07 | International Business Machines Corporation | Storing parity information for data recovery |
CN101833422A (zh) * | 2010-03-08 | 2010-09-15 | 成都市华为赛门铁克科技有限公司 | 磁盘阵列的数据处理方法及设备 |
US20120054430A1 (en) * | 2010-08-26 | 2012-03-01 | Hitachi, Ltd. | Storage system providing virtual volume and electrical power saving control method for the storage system |
CN102982122A (zh) * | 2012-11-13 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | 一种适用于海量存储系统的重复数据删除方法 |
US8495469B2 (en) * | 2011-05-16 | 2013-07-23 | International Business Machines Corporation | Implementing enhanced IO data conversion with protection information model including parity format of data integrity fields |
CN103713973A (zh) * | 2014-01-08 | 2014-04-09 | 浪潮(北京)电子信息产业有限公司 | 一种基于hdd和ssd的混合存储备份方法及系统 |
US8719619B2 (en) * | 2011-09-20 | 2014-05-06 | International Business Machines Corporation | Performance enhancement technique for raids under rebuild |
US20140317447A1 (en) * | 2010-09-28 | 2014-10-23 | Pure Storage, Inc. | Adaptive raid for an ssd environment |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010044879A1 (en) * | 2000-02-18 | 2001-11-22 | Moulton Gregory Hagan | System and method for distributed management of data storage |
US9483349B2 (en) * | 2014-01-17 | 2016-11-01 | Netapp, Inc. | Clustered raid data organization |
US9253257B2 (en) * | 2014-03-11 | 2016-02-02 | Hitachi, Ltd. | Storage subsystem |
US10013359B2 (en) * | 2014-12-24 | 2018-07-03 | University Of New Hampshire | Redundant disk array storage system and method using heterogeneous disks and a lookup table |
-
2014
- 2014-12-09 WO PCT/CN2014/093320 patent/WO2016090541A1/zh active Application Filing
- 2014-12-09 US US15/533,924 patent/US10346245B2/en active Active
- 2014-12-09 CN CN201480083890.5A patent/CN107250975B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7516354B2 (en) * | 2004-08-25 | 2009-04-07 | International Business Machines Corporation | Storing parity information for data recovery |
CN101833422A (zh) * | 2010-03-08 | 2010-09-15 | 成都市华为赛门铁克科技有限公司 | 磁盘阵列的数据处理方法及设备 |
US20120054430A1 (en) * | 2010-08-26 | 2012-03-01 | Hitachi, Ltd. | Storage system providing virtual volume and electrical power saving control method for the storage system |
US20140317447A1 (en) * | 2010-09-28 | 2014-10-23 | Pure Storage, Inc. | Adaptive raid for an ssd environment |
US8495469B2 (en) * | 2011-05-16 | 2013-07-23 | International Business Machines Corporation | Implementing enhanced IO data conversion with protection information model including parity format of data integrity fields |
US8719619B2 (en) * | 2011-09-20 | 2014-05-06 | International Business Machines Corporation | Performance enhancement technique for raids under rebuild |
CN102982122A (zh) * | 2012-11-13 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | 一种适用于海量存储系统的重复数据删除方法 |
CN103713973A (zh) * | 2014-01-08 | 2014-04-09 | 浪潮(北京)电子信息产业有限公司 | 一种基于hdd和ssd的混合存储备份方法及系统 |
Non-Patent Citations (1)
Title |
---|
徐在泉: "基于SSD的虚拟硬盘的研究设计与应用", 《基于SSD的虚拟硬盘的研究设计与应用》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109725823B (zh) * | 2017-10-27 | 2021-11-16 | 伊姆西Ip控股有限责任公司 | 用于管理混合存储盘阵列的方法和设备 |
CN109725823A (zh) * | 2017-10-27 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 用于管理混合存储盘阵列的方法和设备 |
CN111095217A (zh) * | 2017-11-13 | 2020-05-01 | 清华大学 | 资源全局共享的基于raid机制的数据存储系统 |
CN111095217B (zh) * | 2017-11-13 | 2024-02-06 | 清华大学 | 资源全局共享的基于raid机制的数据存储系统 |
CN109542342B (zh) * | 2018-11-09 | 2022-04-26 | 锐捷网络股份有限公司 | 元数据管理与数据重构方法、设备及存储介质 |
CN109542342A (zh) * | 2018-11-09 | 2019-03-29 | 锐捷网络股份有限公司 | 元数据管理与数据重构方法、设备及存储介质 |
CN112748849A (zh) * | 2019-10-29 | 2021-05-04 | 伊姆西Ip控股有限责任公司 | 用于存储数据的方法、设备和计算机程序产品 |
WO2021088615A1 (zh) * | 2019-11-06 | 2021-05-14 | 华为技术有限公司 | 一种校验数据计算方法及装置 |
CN113448502A (zh) * | 2020-03-27 | 2021-09-28 | 株式会社日立制作所 | 分布式存储系统和存储控制方法 |
CN113448502B (zh) * | 2020-03-27 | 2024-04-12 | 株式会社日立制作所 | 分布式存储系统和存储控制方法 |
CN113535069A (zh) * | 2020-04-22 | 2021-10-22 | 联想企业解决方案(新加坡)有限公司 | 数据存储系统、计算设备及数据存储系统的构建方法 |
CN112363674A (zh) * | 2020-11-12 | 2021-02-12 | 新华三技术有限公司成都分公司 | 一种数据写入方法和装置 |
CN112363674B (zh) * | 2020-11-12 | 2022-04-22 | 新华三技术有限公司成都分公司 | 一种数据写入方法和装置 |
CN112416248A (zh) * | 2020-11-18 | 2021-02-26 | 海光信息技术股份有限公司 | 一种磁盘阵列的实现方法、装置及电子设备 |
CN112783831B (zh) * | 2021-01-28 | 2022-05-27 | 新华三大数据技术有限公司 | 一种文件迁移方法及装置 |
CN112783831A (zh) * | 2021-01-28 | 2021-05-11 | 新华三大数据技术有限公司 | 一种文件迁移方法及装置 |
CN113687977A (zh) * | 2021-09-07 | 2021-11-23 | 天津津航计算技术研究所 | 基于raid控制器以实现计算性能提升的数据处理装置 |
CN113687978A (zh) * | 2021-09-07 | 2021-11-23 | 天津津航计算技术研究所 | 用于存储阵列控制器的数据处理方法 |
CN113687977B (zh) * | 2021-09-07 | 2024-05-28 | 天津津航计算技术研究所 | 基于raid控制器以实现计算性能提升的数据处理装置 |
CN113687978B (zh) * | 2021-09-07 | 2024-05-28 | 天津津航计算技术研究所 | 用于存储阵列控制器的数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
US10346245B2 (en) | 2019-07-09 |
US20170337107A1 (en) | 2017-11-23 |
WO2016090541A1 (zh) | 2016-06-16 |
CN107250975B (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107250975A (zh) | 数据存储系统和数据存储方法 | |
CN111433732B (zh) | 存储设备以及由存储设备执行的计算机实现的方法 | |
US11947423B2 (en) | Data reconstruction in distributed storage systems | |
Bjørling et al. | {LightNVM}: The linux {Open-Channel}{SSD} subsystem | |
US9378093B2 (en) | Controlling data storage in an array of storage devices | |
US20220137849A1 (en) | Fragment Management Method and Fragment Management Apparatus | |
US20190004716A1 (en) | Providing redundancy in a virtualized storage system for a computer system | |
CN1965298B (zh) | 用于管理奇偶raid数据重建的方法、系统和设备 | |
US8904230B2 (en) | Dynamically resizing a parity declustered group | |
US8719520B1 (en) | System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity | |
KR101821001B1 (ko) | Raid 어레이에서 장치내 데이터 보호 | |
US20120079175A1 (en) | Apparatus, system, and method for data transformations within a data storage device | |
CN107220148A (zh) | 针对独立磁盘冗余阵列的重建方法和设备 | |
US10564865B2 (en) | Lockless parity management in a distributed data storage system | |
CN107515726B (zh) | 用于管理存储设备的方法和系统 | |
CN105531677A (zh) | Raid奇偶校验条带重建 | |
US10592365B2 (en) | Method and apparatus for managing storage system | |
KR20200113047A (ko) | 오픈 채널 스토리지 장치의 동작 방법 | |
US10481979B2 (en) | Storage system, computing system, and methods thereof | |
US20120260035A1 (en) | Zero rebuild extensions for raid | |
US20070101188A1 (en) | Method for establishing stable storage mechanism | |
CN108733326B (zh) | 一种磁盘处理方法及装置 | |
US11379326B2 (en) | Data access method, apparatus and computer program product | |
Wu et al. | LDM: Log disk mirroring with improved performance and reliability for SSD-based disk arrays | |
US20170220481A1 (en) | Raid Data Migration Through Stripe Swapping |
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 |