CN101490662B - 用于raid系统的磁盘缓存 - Google Patents

用于raid系统的磁盘缓存 Download PDF

Info

Publication number
CN101490662B
CN101490662B CN200780026171XA CN200780026171A CN101490662B CN 101490662 B CN101490662 B CN 101490662B CN 200780026171X A CN200780026171X A CN 200780026171XA CN 200780026171 A CN200780026171 A CN 200780026171A CN 101490662 B CN101490662 B CN 101490662B
Authority
CN
China
Prior art keywords
raid
data
cache memory
raid system
volume
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
Application number
CN200780026171XA
Other languages
English (en)
Other versions
CN101490662A (zh
Inventor
J·S·卡瓦略
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN101490662A publication Critical patent/CN101490662A/zh
Application granted granted Critical
Publication of CN101490662B publication Critical patent/CN101490662B/zh
Expired - Fee Related 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

根据一个实施例的方法可以包括:在RAID系统的至少一个卷上创建保留分区。该方法还可以包括:创建一个表,以将存储在保留分区中的数据映射到所述RAID系统的至少一个卷的至少一个预期卷地址。该方法还可以包括:将与RAID数据写请求相关联的数据写入高速缓冲存储器中,将该数据写入保留分区中,以及更新该表以反映存储在保留分区中的数据。

Description

用于RAID系统的磁盘缓存
技术领域
本公开内容涉及用于RAID系统的磁盘缓存(on-disk caching)。 
背景技术
由于存在奇偶校验操作数读和奇偶校验结果写,RAID-5卷以单个磁盘卷上严重的写性能损失为代价提供数据保护。该损失可导致1/3到1/7的写吞吐量损失。有各种策略用于降低该损失。一种策略是RAID-1/RAID-5混合,其尝试令卷的繁重工作部分使用RAID-1保护,而该卷的剩余部分使用RAID-5。其缺点如下。RAID-1仍不如单个磁盘快。当需要在RAID-1部分和RAID-5部分之间传输数据时,会引发比仅用RAID-5的情况甚至更差的性能。这降低了整个卷的性能。 
另一种策略是电池备份(battery backed up)的、可拔式(unpluggable)的回写式高速缓存(write back cache)或写缓冲(write buffer)。该方式的一个缺点是:很少有硬件方案包括电池备份的存储器,更少有包括可拔式存储器。如果存储器不是可拔式的,则其缺少所期望的RAID-5保护,这是由于对于RAID-5卷的数据而言,期望即使硬件电路板自身发生故障仍能保存该数据。可拔式电池备份高速缓存缺少RAID-5预期,这是因为如果存储器芯片自身发生故障(这是单点故障),则数据将会丢失。 
附图说明
随着以下详细说明的进行并参考附图(其中相同数字描述相同部件),所要求保护的主题的实施例的特性和优点将显而易见,附图中: 
图1是说明一个示例性系统实施例的图; 
图2是说明根据一个实施例的示例性表的图; 
图3是说明根据一个实施例的示例性操作的图; 
图4是说明根据另一个实施例的示例性操作的图; 
图5是说明根据另一个实施例的示例性操作的图; 
图6是说明根据另一个实施例的示例性操作的图; 
图7是说明根据另一个实施例的示例性操作的图; 
图8是说明另一个示例性系统实施例的图。 
虽然参考说明性的实施例进行了以下详细说明,但其许多替代、修改、以及变更对本领域技术人员来说是显而易见的。因此,所要求保护的主题要被广泛看待,并仅被定义为如所附权利要求中所阐述的那样。 
具体实施方式
图1是说明本发明一个示例性系统实施例100的图。系统100通常可以包括主机系统102,用于控制大容量存储系统104的操作。大容量存储系统104可以包含一个或多个RAID(独立磁盘冗余阵列)系统。主机系统102可以包括,例如,主机处理器106、系统存储器108、芯片组110、用户接口112、总线116以及高速缓冲存储器114。主机处理器106可以包括例如本领域中已知的各种处理器,诸如可从本申请的受让人处商业获得的英特尔
Figure G200780026171XD00021
奔腾
Figure G200780026171XD00022
IV处理器。主机处理器106、系统存储器108、芯片组110以及高速缓冲存储器114可以整体或独立包含一个或多个集成电路。如此处任意实施例中所用的,“集成电路”(IC)是指半导体器件和/或微电子器件,诸如半导体集成电路芯片。 
总线116可以包括各种总线类型以传输数据和命令。例如,总线116可以符合可从美国俄勒冈州波特兰的PCI特别兴趣组获得的“PeripheralComponent Interconnect (PCI)ExpressTM Base Specification”(修订版1.0,2002年7月22日发布)(下文称为“PCI ExpressTM总线”)。 
主机处理器106可以用于执行一个或多个RAID驱动程序118,以控制RAID系统104的操作来处理RAID相关命令和数据。如此处所用的,“RAID相关数据”是指,对于与实现和/或维护RAID(例如,RAID系统104)有关的操作,其中所涉及的数据、作为其结果而生成的数据、用作其中的输入或操作数的数据、和/或在执行所述操作的过程中所使用的和/或用以促进所述操作的数据。因此,主机处理器106可以用于执行与RAID系统104的一个或多个I/O(输入/输出)操作,这可以包括,例如,与RAID 系统104交换命令和数据以执行一个或多个RAID相关数据读和/或数据写操作。为此,主机处理器106可以用于执行RAID计算,例如,使用和/或涉及RAID相关数据的一个或多个算术和/或逻辑运算,例如,逻辑异或(XOR)运算(可以根据原始用户数据生成RAID奇偶校验数据,和/或根据这种RAID奇偶校验数据重新生成原始用户数据)。因此,RAID系统104的RAID I/O通信业务可以通过主机系统102来处理。 
此外,处理器106可以用于执行操作系统(OS)119,其可以包括,例如,诸如Windows XP、Linux等等的通用操作系统。替代地或此外,OS 119可以包括嵌入式OS,其可以包括,例如,BSD变体(OpenBSD、NetBSD、FreeBSD)、Linux、Windows CE、和/或其它操作系统(例如,实时OS(VxWorks、ThreadX、RTLinux))。替代地,在其它实施例中,主机系统102可以用于执行无OS的运行环境(例如EFI)。在工作中,OS 119可以执行一个或多个RAID驱动程序118以控制通过总线116耦合到芯片组114的RAID系统104的操作。当然,OS 119和RAID驱动程序118可以包括驻留在存储器108中的多个指令。 
芯片组110可以包括I/O控制器电路,诸如可从本申请的受让人处商业获得的那些(例如,图形存储器以及I/O控制中心芯片组),但是也可以或替代地使用其它集成电路芯片。芯片组110还可以通过总线116耦合到多个大容量存储系统。 
系统存储器108和高速缓冲存储器114可以包括一个或多个以下类型的存储器:半导体固件存储器、可编程存储器、非易失性存储器、只读存储器、电可编程存储器、随机存取存储器、闪速存储器(其可以包括,例如,NAND或NOR型存储器结构)、磁盘存储器、和/或光盘存储器。此外或替代地,存储器108和/或114可以包括其它和/或后续开发的各种类型的计算机可读存储器。机器可读固件程序指令可以存储在存储器114中。如下所述,这些指令可以被主机处理器104和/或主机处理器106的嵌入部分102访问并执行。当被主机处理器106执行时,这些指令可以导致主机处理器106执行此处所述的由主机处理器106执行的操作。此外,高速缓冲存储器114可以作为用于临时存储RAID数据的直写式高速缓存(write-through cache)。 
RAID系统104可以包含多个大容量存储设备120A、120B、120C、…、120N。大容量存储设备120A、120B、120C、…、120N可以包括,例如,硬盘驱动器卷。RAID系统104可以实现一个RAID等级,例如RAID 0、RAID 1、…、RAID 6。如下更详细描述的,RAID系统104的一个或多个驱动器(卷)可以包括保留分区(例如,122A、122B、122C、…、122N)以及数据分区(例如,124A、124B、124C、…、124N)。数据分区可以用于根据RAID系统104所实现的RAID等级来存储数据。因此,例如,如果RAID系统104实现了RAID 5,则可以在卷120A、120B、120C、…、120N的数据分区124A、124B、124C、…、124N上对数据和奇偶校验信息进行分条(strip)(并且交错(interleave))。 
在该实施例中,主机处理器106能够控制芯片组110,以使用多种通信协议中的至少一种来与耦合到芯片组110的RAID系统104的一个或多个卷交换命令和/或数据。如果光纤通道(Fibre Channel,FC)协议被主机处理器106用来与RAID系统104交换数据和/或命令,则其可以符合或兼容在“ANSI Standard Fibre Channel Physical and Signaling Interface-3X3.303:1998 Specification”中所描述的接口/协议。替代地或此外,如果串行ATA(SATA)协议被主机处理器106用来与RAID系统104交换数据和/或命令,则其可以符合或兼容在2003年1月7日由串行ATA工作组发布的“Serial ATA:High Speed Serialized AT Attachment”修订版1.0a中所描述的协议、和/或在2004年8月27日由串行ATA工作组发布的“Serial ATA II:Extensions to Serial ATA 1.0a”修订版1.2中所描述的协议、和/或之前和/或以后发布的各种版本的SATA标准。进一步替代地或此外,如果串行连接小型计算机系统接口(SAS)协议被主机处理器106用来与RAID系统104交换数据和/或命令,则其可以符合或兼容在2003年9月18日由美国国家标准学会发布的“Information Technology-Serial Attached SCSI-1.1”,Working Draft American National Standard of International Committee ForInformation Technology Standards(INCITS)T10Technical Committee,ProjectT10/1562-D,Revision 1(下文称为“SAS标准”)中所描述的协议、和/或之前和/或以后发布的各种版本的SAS标准。当然,主机处理器106可以使用其它和/或后续开发的通信协议与RAID系统104进行通信,而不背离该 实施例。 
主机处理器106可以用于控制RAID系统104中所包含的一个或多个大容量存储设备120A、120B、120C、…、120N,以创建一个或多个保留分区122A、122B、122C、…、122N。保留分区122A、122B、122C、…、122N中的每一个可以包括相应卷120A、120B、120C、…、120N的非保护部分。保留分区122A、122B、122C、…、122N组合起来的容量可以至少与高速缓冲存储器114的存储容量一样大。替代地,可以在RAID系统的一个卷上创建一个保留分区,而非创建多个保留分区。至少一个保留分区122A、122B、122C、…、122N可以用于存储可被临时存储在例如高速缓冲存储器114中的数据的一份拷贝。此外,主机处理器106可以用于创建存储在各个分区122A、122B、122C、…、122N中的表126A、126B、126C、…、126N。表126A、126B、126C、…、126N可以包含映射信息,其用于将包含在分区122A、122B、122C、…、122N中的数据关联到各个数据分区124A、124B、124C、…、124N。映射操作可以基于例如RAID系统104所实现的RAID等级。在至少一个实施例中,表和保留分区可以在RAID系统104的相同卷上创建。 
在工作中,主机处理器106可以用于响应于要求将数据写到RAID系统104的请求,将数据写入高速缓冲存储器114中。将数据写到高速缓冲存储器114的选择可以基于例如由RAID驱动程序118实现的一个或多个缓存算法(例如,最近最常使用(MRU)算法)。主机处理器106可以进一步用于响应于要求将数据写到RAID系统104的请求,将数据写到一个或多个保留分区122A、122B、122C、…、122N中。此外,主机处理器106可以用于更新表126A、126B、…、和/或126N。简要参考图2,描述了示例性表126。表126可以存储保留分区202中数据的逻辑块地址(LBA)信息,并将该数据关联到RAID系统104的一个或多个卷的数据分区204中的一个或多个预期LBA。以这种方式,在不同位置可以存在数据的两份拷贝,并因此可以实现数据冗余(如RAID等级所要求的)。一旦数据被写入一个或多个保留分区122A、122B、122C、…、122N中,RAID系统104可以向主机系统102确认写完成。因此,一个磁盘I/O事务处理(数据写到一个或多个保留分区122A、122B、122C、…、122N)可以完成向RAID系统 104的RAID数据写。此外,由于RAID数据写可以通过向RAID系统104的一个卷进行写入来完成,因此可以提高系统100的写吞吐量和总体效率。此外,主机处理器106可以用于从高速缓冲存储器114中为针对与之前的数据写请求相对应的地址的数据读请求提供服务,而非从RAID系统104读取数据。 
当存储在高速缓冲存储器114中的数据被降级(demote)(例如,由于不频繁访问而被删除和/或被其它数据替代)时,主机处理器106可以用于根据RAID系统104所实现的RAID等级,控制RAID系统104将所降级的数据从高速缓存写到RAID系统104的卷120A、120B、120C、…、120N上。保留分区122A、122B、122C和/或122N上对应于所降级的数据的空间可以被用于另外的数据(例如,高速缓冲存储器114中新升级的数据)。在替代实施例中,主机处理器106可以用于在例如主机处理器106和/或主机系统102的预先选定的空闲时间期间,将数据从高速缓冲存储器114传送到RAID系统104的卷120A、120B、120C、…、120N上,而非在根据RAID等级提交数据到RAID系统之前等待高速缓冲存储器114中的数据被降级。 
在高速缓冲存储器114发生故障的情况下,主机处理器106可以用于通过读取表126A、126B、126C、…、126N以确定对应于RAID系统104的多个卷的预期LBA信息,来恢复数据。主机处理器106可以进一步用于读取存储在一个或多个分区122A、122B、122C、…、122N中的数据,并根据RAID系统104所实现的RAID等级,将存储在其中的数据写到RAID系统104的卷120A、120B、120C、…、120N的数据分区上。高速缓冲存储器114的故障可能源于例如主机系统102的电源故障、主机系统故障、和/或高速缓冲存储器114自身的故障。如果主机系统102发生故障,则数据恢复可以包括:替换主机系统和RAID驱动程序,以使得能够读取RAID系统104的一个或多个分区122A、122B、122C、…、122N。 
在RAID系统104的一个或多个卷120A、120B、120C、…、120N发生故障的情况下,主机处理器106可以用于将高速缓冲存储器114中的数据降级到RAID系统104中的剩余卷。例如,如果RAID等级是受保护的RAID等级(例如,RAID 5),则高速缓冲存储器114中的数据可以被降级, 并且,依照驱动程序118所实现的RAID操作,所降级的数据可以被写到剩余的RAID卷。此外,主机处理器106可以用于执行一个或多个RAID相关恢复操作,其可以包括例如X-OR运算,用于基于RAID系统104的一个或多个剩余卷中包含的奇偶校验信息来恢复另外的数据。主机处理器106可以进一步用于根据RAID系统104所实现的RAID等级,在检测到故障卷之后执行将来的读和/或写操作。 
图3是说明根据一个实施例可以执行的示例性操作的流程图300。操作可以包括:在RAID系统的至少一个卷上创建至少一个保留分区,302。操作可以还包括:创建至少一个表,以将存储在该保留分区上的数据映射到RAID系统的一个或个卷上,304。 
图4是说明根据另一个实施例可以执行的示例性操作的流程图400。操作可以包括:响应于要求将数据写到RAID系统的写请求,将数据写到高速缓冲存储器中,402。操作可以进一步包括:将所述数据写到RAID系统的至少一个卷的保留分区中,404。操作可以还包括:更新该表,以反映向保留分区的数据写操作,并将保留分区中的数据关联到RAID系统的一个或多个卷,406。 
图5是说明根据另一个实施例可以执行的示例性操作的流程图500。操作可以包括:从高速缓冲存储器中降级数据,502。操作可以进一步包括:根据RAID系统所实现的RAID等级,将数据从高速缓冲存储器传送到RAID系统的目标卷中。操作还可以包括:将保留分区上的存储空间重用于另外的数据,506。 
图6是说明根据另一个实施例可以执行的示例性操作的流程图600。该实施例的操作可以在存储有RAID相关数据的高速缓冲存储器(例如,主机系统上的高速缓冲存储器)发生故障的情况下执行。为了确定在RAID卷的数据分区上的何处存储数据,操作可以包括:读取存储在一个或多个保留分区上的表,以确定对应于RAID系统的一个或多个卷的预期LBA信息,604。操作还可以包括:根据RAID系统所实现的RAID等级,将存储在一个或多个保留分区中的数据写到RAID系统的一个或多个卷上,604。 
图7是说明根据另一个实施例可以执行的示例性操作的流程图700。该实施例的操作可以在RAID系统的卷发生故障的情况下执行。操作可以 包括:确定RAID系统的一个卷是否发生故障,702。操作还可以包括:根据RAID系统所实现的RAID等级,将存储在高速缓冲存储器中的数据写到RAID系统的剩余卷中。例如,如果RAID系统实现了RAID 5级,则从高速缓冲存储器写入RAID系统的剩余卷中的数据可以使用降级写算法来写入。因此,可以根据RAID实现,来执行另外的读和/或写操作和/或故障卷替换。 
图8说明另一个示例性系统实施例800。系统800通常可以包括主机系统102’,其可以包括主机处理器106’、第一总线116’、用户接口系统112’、芯片组110’、系统存储器108、以及高速缓冲存储器114’。该实施例的主机系统102’还可以包括电路卡槽802以及电路卡804。电路卡804可以耦合到总线116’(通过电路卡槽802)。在该实施例中,电路卡804可以耦合到RAID系统104并控制其操作。该实施例的操作特性可以与参照附图1-7所述的那些类似。但是,在该实施例中,主机处理器106关于RAID相关操作的操作特性可以实现在例如电路卡804中所包含的集成电路806中。例如,电路卡802可以包括主机总线适配器(HBA),并且集成电路806可以包括能够控制RAID系统104的操作并与其交换命令和数据的协议引擎。 
在替代实施例中,主机系统102的工作电路可以被集成到计算机节点部件的一个或多个集成电路内,例如,集成到主机处理器(其可以包括,例如,英特尔
Figure G200780026171XD00081
奔腾
Figure G200780026171XD00082
微处理器和/或英特尔
Figure G200780026171XD00083
奔腾
Figure G200780026171XD00084
D双核处理器和/或可从本申请的受让人处商业获得的其它处理器)和/或芯片组处理器和/或专用集成电路(ASIC)和/或其它集成电路中。在另一个实施例中,此处所提供的工作电路可以在RAID系统104中提供,和/或在可以控制RAID系统的操作的任意系统、处理器、集成电路或方法中提供。 
因此,总而言之,本文中的至少一个实施例可以包括集成电路(IC),其用于控制独立磁盘冗余阵列(RAID)系统的操作并与其交换命令和数据。该IC可以进一步用于在RAID系统的至少一个卷上创建至少一个保留分区,并创建一个表以将存储在至少一个保留分区中的数据映射到RAID系统的至少一个卷的至少一个预期卷地址。该实施例的IC可以进一步用于将与RAID数据写请求相关联的数据写入高速缓冲存储器中,将该数据写入 至少一个保留分区中,并更新该表以反映存储在所述至少一个保留分区中的数据。 
本文中所采用的术语和表达用作描述用语而非限制,这些术语和表达的使用无意排除所示及所述的特征(或其部分)的等价物,并且可认识到在权利要求的范围内各种修改都是可能的。还可以进行其它修改、变更、以及替代。因此,权利要求旨在覆盖所有这些等价物。 

Claims (24)

1.一种用于控制独立磁盘冗余阵列RAID系统的装置,包括:
集成电路IC,用于控制独立磁盘冗余阵列RAID系统的操作并与其交换命令和数据,所述IC还用于在所述RAID系统的至少一个卷上创建至少一个保留分区,并创建一个表以将存储在至少一个保留分区中的数据映射到所述RAID系统的至少一个卷的至少一个预期卷地址,所述IC还用于将与RAID数据写请求相关联的数据写入高速缓冲存储器中,将所述数据写入至少一个保留分区中,并更新所述表以反映存储在所述至少一个保留分区中的数据;
其中,所述至少一个保留分区至少与所述高速缓冲存储器的存储容量一样大,并且其中,所述IC还用于,如果所述高速缓冲存储器中的数据被不频繁地访问,则根据由所述RAID系统实现的RAID等级,将数据从所述高速缓冲存储器传送到所述RAID系统的一个或多个卷,以及,重用所述高速缓冲存储器上对应于所传送的数据的数据空间,以便将另外的数据存储在所述高速缓冲存储器中。
2.如权利要求1所述的装置,其中:
所述IC还用于至少部分地基于由所述RAID系统实现的RAID等级,执行一个或多个RAID相关计算。
3.如权利要求1所述的装置,其中:
所述RAID系统用于实现等于1的RAID等级或者大于1的RAID等级。
4.如权利要求1所述的装置,其中:
所述IC还用于从所述高速缓冲存储器中为至少一个RAID数据读请求提供服务。
5.如权利要求1所述的装置,其中:
在所述高速缓冲存储器出现故障的情况下,所述IC还用于读取所述表以确定针对存储在至少一个保留分区中的数据的、与所述RAID系统的至少一个卷相对应的至少一个预期卷地址,并基于所述表,根据由所述RAID系统实现的RAID等级,将存储在一个或多个保留分区中的数据写到所述RAID系统的至少一个卷上。
6.如权利要求1所述的装置,其中:
在所述RAID系统的卷出现故障的情况下,所述IC还用于根据由所述RAID系统实现的RAID等级,将存储在高速缓冲存储器中的数据写到剩余的RAID卷上。
7.一种用于控制独立磁盘冗余阵列RAID系统的系统,包括:
至少一个电路卡,其能够耦合到总线,所述电路卡包括集成电路IC,所述IC用于控制独立磁盘冗余阵列RAID系统的操作并与其交换命令和数据,所述IC还用于在所述RAID系统的至少一个卷上创建至少一个保留分区,并创建一个表以将存储在至少一个保留分区中的数据映射到所述RAID系统的至少一个卷的至少一个预期卷地址,所述IC还用于将与RAID数据写请求相关联的数据写入高速缓冲存储器中,将所述数据写入至少一个保留分区中,并更新所述表以反映存储在所述至少一个保留分区中的数据;
其中,所述至少一个保留分区至少与所述高速缓冲存储器的存储容量一样大,并且其中,所述IC还用于,如果所述高速缓冲存储器中的数据被不频繁地访问,则根据由所述RAID系统实现的RAID等级,将数据从所述高速缓冲存储器传送到所述RAID系统的一个或多个卷,以及,重用所述高速缓冲存储器上对应于所传送的数据的数据空间,以便将另外的数据存储在所述高速缓冲存储器中。
8.如权利要求7所述的用于控制独立磁盘冗余阵列RAID系统的系统,其中:
所述IC还用于至少部分地基于由所述RAID系统实现的RAID等级,执行一个或多个RAID相关计算。
9.如权利要求7所述的用于控制独立磁盘冗余阵列RAID系统的系统,其中:
所述RAID系统用于实现等于1的RAID等级或者大于1的RAID等级。
10.权利要求7所述的用于控制独立磁盘冗余阵列RAID系统的系统,其中:
在所述高速缓冲存储器出现故障的情况下,所述IC还用于读取所述表以确定针对存储在至少一个保留分区中的数据的、与所述RAID系统的至少一个卷相对应的至少一个预期卷地址,并基于所述表,根据由所述RAID系统实现的RAID等级,将存储在一个或多个保留分区中的数据写到所述RAID系统的至少一个卷上。
11.如权利要求7所述的用于控制独立磁盘冗余阵列RAID系统的系统,其中:
在所述RAID系统的卷出现故障的情况下,所述IC还用于根据由所述RAID系统实现的RAID等级,将存储在高速缓冲存储器中的数据写到剩余的RAID卷上。
12.如权利要求7所述的用于控制独立磁盘冗余阵列RAID系统的系统,其中
所述IC还用于从所述高速缓冲存储器中为至少一个RAID数据读请求提供服务。
13.一种用于控制独立磁盘冗余阵列RAID系统的装置,包括:
用于在独立磁盘冗余阵列RAID系统的至少一个卷上创建至少一个保留分区的模块;
用于创建一个表,以将存储在所述至少一个保留分区中的数据映射到所述RAID系统的至少一个卷的至少一个预期卷地址的模块;
用于将与RAID数据写请求相关联的数据写入高速缓冲存储器中的模块;
用于将所述数据写入所述保留分区中的模块;
用于更新所述表,以反映存储在所述至少一个保留分区中的数据的模块;
用于如果所述高速缓冲存储器中的数据被不频繁地访问,则从所述高速缓冲存储器中降级数据的模块;
用于根据由所述RAID系统实现的RAID等级,将数据从所述高速缓冲存储器传送到所述RAID系统的一个或多个卷的模块;以及
用于重用所述高速缓冲存储器上对应于所降级的数据的数据空间,以便将另外的数据存储在所述高速缓冲存储器中的模块;
其中,所述至少一个保留分区至少与所述高速缓冲存储器的容量一样大。
14.如权利要求13所述的装置,还包括:
用于至少部分地基于由所述RAID系统实现的RAID等级,执行一个或多个RAID相关计算的模块。
15.如权利要求13所述的装置,其中:
所述RAID系统用于实现等于1的RAID等级或者大于1的RAID等级。
16.如权利要求13所述的装置,还包括:
用于从所述高速缓冲存储器中为至少一个RAID数据读请求提供服务的模块。
17.如权利要求13所述的装置,还包括:
用于在所述高速缓冲存储器出现故障的情况下,读取所述表,以确定针对存储在至少一个保留分区中的数据的、与所述RAID系统的至少一个卷相对应的至少一个预期卷地址的模块;以及
用于在所述高速缓冲存储器出现故障的情况下,基于所述表,根据由所述RAID系统实现的RAID等级,将存储在一个或多个保留分区中的数据写到所述RAID系统的至少一个卷上的模块。
18.如权利要求13所述的装置,还包括:
用于在所述RAID系统的卷出现故障的情况下,根据由所述RAID系统实现的RAID等级,将存储在高速缓冲存储器中的数据写到剩余的RAID卷上的模块。
19.一种用于控制独立磁盘冗余阵列RAID系统的方法,包括:
在独立磁盘冗余阵列RAID系统的至少一个卷上创建至少一个保留分区;
创建一个表,以将存储在所述至少一个保留分区中的数据映射到所述RAID系统的至少一个卷的至少一个预期卷地址;
将与RAID数据写请求相关联的数据写入高速缓冲存储器中;
将所述数据写入所述保留分区中;
更新所述表,以反映存储在所述至少一个保留分区中的数据;
如果所述高速缓冲存储器中的数据被不频繁地访问,则从所述高速缓冲存储器中降级数据;
根据由所述RAID系统实现的RAID等级,将数据从所述高速缓冲存储器传送到所述RAID系统的一个或多个卷;以及
重用所述高速缓冲存储器上对应于所降级的数据的数据空间,以便将另外的数据存储在所述高速缓冲存储器中;
其中,所述至少一个保留分区至少与所述高速缓冲存储器的容量一样大。
20.如权利要求19所述的方法,还包括:
至少部分地基于由所述RAID系统实现的RAID等级,执行一个或多个RAID相关计算。
21.如权利要求19所述的方法,其中:
所述RAID系统用于实现等于1的RAID等级或者大于1的RAID等级。
22.如权利要求19所述的方法,还包括:
从所述高速缓冲存储器中为至少一个RAID数据读请求提供服务。
23.如权利要求19所述的方法,还包括:
在所述高速缓冲存储器出现故障的情况下,读取所述表,以确定针对存储在至少一个保留分区中的数据的、与所述RAID系统的至少一个卷相对应的至少一个预期卷地址;以及
基于所述表,根据由所述RAID系统实现的RAID等级,将存储在一个或多个保留分区中的数据写到所述RAID系统的至少一个卷上。
24.如权利要求19所述的方法,还包括:
在所述RAID系统的卷出现故障的情况下,根据由所述RAID系统实现的RAID等级,将存储在高速缓冲存储器中的数据写到剩余的RAID卷上。
CN200780026171XA 2006-08-11 2007-08-09 用于raid系统的磁盘缓存 Expired - Fee Related CN101490662B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/464,029 US8074017B2 (en) 2006-08-11 2006-08-11 On-disk caching for raid systems
US11/464,029 2006-08-11
PCT/US2007/075637 WO2008021993A1 (en) 2006-08-11 2007-08-09 On-disk caching for raid systems

Publications (2)

Publication Number Publication Date
CN101490662A CN101490662A (zh) 2009-07-22
CN101490662B true CN101490662B (zh) 2012-07-25

Family

ID=39052199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780026171XA Expired - Fee Related CN101490662B (zh) 2006-08-11 2007-08-09 用于raid系统的磁盘缓存

Country Status (4)

Country Link
US (1) US8074017B2 (zh)
CN (1) CN101490662B (zh)
TW (1) TWI354204B (zh)
WO (1) WO2008021993A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074017B2 (en) 2006-08-11 2011-12-06 Intel Corporation On-disk caching for raid systems
US8538015B2 (en) 2007-03-28 2013-09-17 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US8234327B2 (en) * 2007-03-30 2012-07-31 Netapp, Inc. System and method for bandwidth optimization in a network storage environment
US7975100B2 (en) * 2007-08-20 2011-07-05 International Business Machines Corporation Segmentation of logical volumes and movement of selected segments when a cache storage is unable to store all segments of a logical volume
US8055839B2 (en) * 2007-08-20 2011-11-08 International Business Machines Corporation Maintaining reserved free space at the end of a physical volume for creating new segments of segmented logical volumes in the reserved free space
US7877544B2 (en) * 2007-08-20 2011-01-25 International Business Machines Corporation Storing redundant segments and parity information for segmented logical volumes
WO2010105230A2 (en) 2009-03-12 2010-09-16 Rayspan Corporation Multiband composite right and left handed (crlh) slot antenna
US8161251B2 (en) * 2009-05-27 2012-04-17 Microsoft Corporation Heterogeneous storage array optimization through eviction
US9323658B2 (en) * 2009-06-02 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Multi-mapped flash RAID
US8880843B2 (en) * 2010-02-10 2014-11-04 International Business Machines Corporation Providing redundancy in a virtualized storage system for a computer system
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US9280477B2 (en) * 2010-12-13 2016-03-08 Seagate Technology Llc Data storage management in a memory device
KR101732030B1 (ko) * 2010-12-22 2017-05-04 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
CN102662787A (zh) * 2012-04-20 2012-09-12 浪潮电子信息产业股份有限公司 一种保护系统盘raid的方法
US9280472B1 (en) 2013-03-13 2016-03-08 Western Digital Technologies, Inc. Caching data in a high performance zone of a data storage system
US9323617B2 (en) 2013-05-31 2016-04-26 Hewlett Packard Enterprise Development Lp Remap raid to maintain raid level
US10353631B2 (en) * 2013-07-23 2019-07-16 Intel Corporation Techniques for moving data between a network input/output device and a storage device
CN103678025B (zh) * 2013-12-02 2017-01-04 创新科软件技术(深圳)有限公司 一种磁盘阵列中的磁盘故障处理方法
CN104679442A (zh) * 2013-12-02 2015-06-03 中兴通讯股份有限公司 一种提高磁盘阵列性能的方法及装置
US10126950B2 (en) * 2014-12-22 2018-11-13 Intel Corporation Allocating and configuring persistent memory
US10001932B2 (en) 2015-06-09 2018-06-19 Western Digital Technologies, Inc. Enhanced redundant caching for shingled magnetic recording devices in data storage drive assemblies
US9626111B1 (en) 2016-01-07 2017-04-18 International Business Machines Corporation Sequential write of random workload in mirrored performance pool environments
CN108763531B (zh) * 2018-05-31 2021-08-27 深圳市易甲文技术有限公司 一种mdvr文件存储系统及其运行方法
CN109508147B (zh) * 2018-11-09 2022-03-08 郑州云海信息技术有限公司 一种缓存数据存储方法、系统及存储设备
CN111240903A (zh) * 2019-11-04 2020-06-05 华为技术有限公司 数据恢复方法及相关设备
US11907124B2 (en) * 2022-03-31 2024-02-20 International Business Machines Corporation Using a shadow copy of a cache in a cache hierarchy
US11704053B1 (en) * 2022-04-06 2023-07-18 Dell Products L.P. Optimization for direct writes to raid stripes

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
US6567889B1 (en) * 1997-12-19 2003-05-20 Lsi Logic Corporation Apparatus and method to provide virtual solid state disk in cache memory in a storage controller
US6922752B2 (en) * 2002-08-23 2005-07-26 Hewlett-Packard Development Company, L.P. Storage system using fast storage devices for storing redundant data
US7035974B2 (en) * 2002-11-06 2006-04-25 Synology Inc. RAID-5 disk having cache memory implemented using non-volatile RAM
US7051156B2 (en) * 2002-11-06 2006-05-23 Synology Inc. Raid-5 disk having cache memory

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0452989A3 (en) * 1985-05-29 1992-04-15 Kabushiki Kaisha Toshiba Magnetic disk controller incorporating a cache system adopting an lru system
US6067635A (en) * 1995-10-27 2000-05-23 Lsi Logic Corporation Preservation of data integrity in a raid storage device
US5822782A (en) * 1995-10-27 1998-10-13 Symbios, Inc. Methods and structure to maintain raid configuration information on disks of the array
US5778430A (en) * 1996-04-19 1998-07-07 Eccs, Inc. Method and apparatus for computer disk cache management
JPH10161938A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ディスク制御装置
US6460122B1 (en) * 1999-03-31 2002-10-01 International Business Machine Corporation System, apparatus and method for multi-level cache in a multi-processor/multi-controller environment
JP2005107838A (ja) * 2003-09-30 2005-04-21 Toshiba Corp ディスクアレイコントローラ及びログ情報記録方法
US20060259683A1 (en) * 2005-05-16 2006-11-16 Oracle International Corporation Method and system for disk stippling
US8074017B2 (en) 2006-08-11 2011-12-06 Intel Corporation On-disk caching for raid systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
US6567889B1 (en) * 1997-12-19 2003-05-20 Lsi Logic Corporation Apparatus and method to provide virtual solid state disk in cache memory in a storage controller
US6922752B2 (en) * 2002-08-23 2005-07-26 Hewlett-Packard Development Company, L.P. Storage system using fast storage devices for storing redundant data
US7035974B2 (en) * 2002-11-06 2006-04-25 Synology Inc. RAID-5 disk having cache memory implemented using non-volatile RAM
US7051156B2 (en) * 2002-11-06 2006-05-23 Synology Inc. Raid-5 disk having cache memory

Also Published As

Publication number Publication date
US20080040540A1 (en) 2008-02-14
TWI354204B (en) 2011-12-11
WO2008021993A1 (en) 2008-02-21
CN101490662A (zh) 2009-07-22
TW200817895A (en) 2008-04-16
US8074017B2 (en) 2011-12-06

Similar Documents

Publication Publication Date Title
CN101490662B (zh) 用于raid系统的磁盘缓存
US7370148B2 (en) Storage system, control method thereof, and program
US8819338B2 (en) Storage system and storage apparatus
US8700975B2 (en) Storage system and storage control apparatus
US5586291A (en) Disk controller with volatile and non-volatile cache memories
US8631199B2 (en) Storage system, storage device, and control method thereof
US5884098A (en) RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems
US7035974B2 (en) RAID-5 disk having cache memory implemented using non-volatile RAM
US7890697B2 (en) System and program for demoting tracks from cache
US20130290630A1 (en) Storage system, control method thereof, and program
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
JP2013156977A (ja) 冗長キャッシュデータのエラスティックキャッシュ
EP1770492A2 (en) A method for improving writing data efficiency and storage subsystem and system implementing the same
EP3629142B1 (en) Method of operating storage device, storage device performing the same and storage system including the same
JP2001166993A (ja) 記憶制御装置およびキャッシュメモリの制御方法
US7051156B2 (en) Raid-5 disk having cache memory
JP5977430B2 (ja) ストレージシステム、ストレージシステムの制御方法及びストレージコントローラ
JP7318367B2 (ja) ストレージ制御装置及びストレージ制御プログラム
US20230409480A1 (en) Systems and methods for a redundant array of independent disks (raid) using a raid circuit in cache coherent interconnect storage devices
JP4734432B2 (ja) データ記憶システム
US11334508B2 (en) Storage system, data management method, and data management program
JP3186725B2 (ja) ディスクアレイ制御装置、ディスクアレイ制御システム、その方法及びプログラムを記憶した記憶媒体
JP7201775B2 (ja) ストレージシステム、データ管理方法、及びデータ管理プログラム
CN115686345A (zh) 数据处理方法和装置

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: 20120725

Termination date: 20180809