首页> 中国专利> 用于RAID系统的磁盘缓存

用于RAID系统的磁盘缓存

摘要

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

著录项

  • 公开/公告号CN101490662A

    专利类型发明专利

  • 公开/公告日2009-07-22

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN200780026171.X

  • 发明设计人 J·S·卡瓦略;

    申请日2007-08-09

  • 分类号G06F15/16;G06F12/00;

  • 代理机构永新专利商标代理有限公司;

  • 代理人王英

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-17 22:27:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-07-26

    未缴年费专利权终止 IPC(主分类):G06F15/16 授权公告日:20120725 终止日期:20180809 申请日:20070809

    专利权的终止

  • 2012-07-25

    授权

    授权

  • 2009-09-16

    实质审查的生效

    实质审查的生效

  • 2009-07-22

    公开

    公开

说明书

技术领域

本公开内容涉及用于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可以包括例如本领域中已知的各种处理器,诸如可从本申请的受让人处商业获得的英特IV处理器。主机处理器106、系统存储器108、芯片组110以及高速缓冲存储器114可以整体或独立包含一个或多个集成电路。如此处任意实施例中所用的,“集成电路”(IC)是指半导体器件和/或微电子器件,诸如半导体集成电路芯片。

总线116可以包括各种总线类型以传输数据和命令。例如,总线116可以符合可从美国俄勒冈州波特兰的PCI特别兴趣组获得的“PeripheralComponent Interconnect(PCI)ExpressTMBase 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中的多个指令。

芯片组114可以包括I/O控制器电路,诸如可从本申请的受让人处商业获得的那些(例如,图形存储器以及I/O控制中心芯片组),但是也可以或替代地使用其它集成电路芯片。芯片组114还可以通过总线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等级,例如RAID0、RAID1、…、RAID6。如下更详细描述的,RAID系统104的一个或多个驱动器(卷)可以包括保留分区(例如,122A、122B、122C、…、122N)以及数据分区(例如,124A、124B、124C、…、124N)。数据分区可以用于根据RAID系统104所实现的RAID等级来存储数据。因此,例如,如果RAID系统104实现了RAID5,则可以在卷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:1998Specification”中所描述的接口/协议。替代地或此外,如果串行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)T10 Technical Committee,ProjectT10/1562-D,Revision1(下文称为“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等级(例如,RAID5),则高速缓冲存储器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系统实现了RAID5级,则从高速缓冲存储器写入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的工作电路可以被集成到计算机节点部件的一个或多个集成电路内,例如,集成到主机处理器(其可以包括,例如,微处理器和/或英特D双核处理器和/或可从本申请的受让人处商业获得的其它处理器)和/或芯片组处理器和/或专用集成电路(ASIC)和/或其它集成电路中。在另一个实施例中,此处所提供的工作电路可以在RAID系统104中提供,和/或在可以控制RAID系统的操作的任意系统、处理器、集成电路或方法中提供。

因此,总而言之,本文中的至少一个实施例可以包括集成电路(IC),其用于控制独立磁盘冗余阵列(RAID)系统的操作并与其交换命令和数据。该IC可以进一步用于在RAID系统的至少一个卷上创建至少一个保留分区,并创建一个表以将存储在至少一个保留分区中的数据映射到RAID系统的至少一个卷的至少一个预期卷地址。该实施例的IC可以进一步用于将与RAID数据写请求相关联的数据写入高速缓冲存储器中,将该数据写入至少一个保留分区中,并更新该表以反映存储在所述至少一个保留分区中的数据。

本文中所采用的术语和表达用作描述用语而非限制,这些术语和表达的使用无意排除所示及所述的特征(或其部分)的等价物,并且可认识到在权利要求的范围内各种修改都是可能的。还可以进行其它修改、变更、以及替代。因此,权利要求旨在覆盖所有这些等价物。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号