独立磁盘冗余阵列(raid)写入高速缓存子部件的制作方法

文档序号:6480000阅读:139来源:国知局
专利名称:独立磁盘冗余阵列(raid)写入高速缓存子部件的制作方法
独立磁盘冗余阵列(RAID)写入高速缓存子部件
背景技术
独立磁盘冗余阵列(RAID)技术将多个小且廉价的磁盘驱动器组合为产生超出一个大且昂贵的磁盘驱动器的性能的性能的阵列。RAID提供诸如冗余、较低的等待时间、较高的带宽以及数据可恢复性之类的益处。RAID阵列对于计算机来说好像是一个或者多个逻辑存储单元或虚拟磁盘驱动器。对于RAID存在两种现有的方法基于硬件的RAID和基于软件的RAID。基于硬件的RAID独立于主机管理驱动器,并且向主机呈现一个或者多个虚拟磁盘。通常,基于硬件的RAID利用在磁盘驱动器与主机之间接口的RAID控制器卡。基于硬件的RAID的益处包括使主机处理器开销最小化,使主机系统存储器开销最小化,并且提供非易失性RAID写入高速缓存。然而,基于硬件的RAID对于许多消费者来说呈现不期望的费用。基于软件的RAID在主机中实施各种RAID等级。基于软件的RAID是廉价的,并且可以提供高性能。然而,其需要主机处理器和系统存储器开销。另外,由于基于软件的RAID 依靠易失性系统存储器,因此在写入处理完成之前被中断(例如由于电力故障)的情况下, 数据可能丢失。


为了详细描述本发明的示例实施例,现在将参照附图,附图中 图1图示了根据各实施例的独立磁盘冗余阵列(RAID)系统;
图2图示了根据各实施例的计算机系统;
图3A和;3B图示了根据各实施例的RAID写入高速缓存卡或者子部件(sub-assembly);
以及
图4示出了根据各实施例的方法。注释和术语
贯穿以下的描述和权利要求使用特定的术语来指代特定的系统组件。如本领域技术人员将理解的,计算机公司可以通过不同的名称来指代组件。本文献不意在在名称不同、但功能相同的组件之间进行区分。在以下的讨论中并且在权利要求中,以开放式的方式使用术语“包括”和“包含”,并且由此它们应当被解释为指“包括,但不限于…”。而且,术语“耦合” 或“耦接”意在指间接、直接、光、或者无线连接。由此,如果第一设备与第二设备耦合,则该连接可以是通过直接连接、通过经由其它设备和连接的间接连接、通过光连接、或者通过无线连接。术语“系统”指代两个或者更多个硬件和/或软件组件的集合,并且可以被用于指代一个或多个电子设备或者其子系统。另外,术语“软件”包括任何能够在处理器上运行的可执行代码,无论用于存储软件的介质如何。由此,存储在非易失性存储器中的并且有时被称作“嵌入式固件”的代码被包括在软件的定义内。
具体实施例方式以下的讨论针对本发明的各个实施例。尽管这些实施例中的一个或多个可能是优选的,但是所公开的实施例不应当被解释或者另外用作限制公开(包括权利要求书)的范围。另外,本领域技术人员将理解以下的描述具有广泛的应用,并且任何实施例的讨论仅意为该实施例的示例,而不意在暗示公开(包括权利要求书)的范围限于该实施例。所述公开的实施例在没有RAID控制器卡的情况下提供独立磁盘冗余阵列(RAID) 功能。在至少一些实施例中,基于软件的RAID通过在外围通信总线(例如快速外围组件互连(PCIe)总线)上提供非易失性RAID写入高速缓存来增强。图1图示了根据各个实施例的RAID系统100。如所示的,RAID系统100提供RAID控制器卡功能102,以支持多个磁盘 112A-112N。RAID控制器卡功能102包括、但不限于RAID等级处理逻辑104、非易失性写入高速缓存106、磁盘接口 108、以及存储器到存储器接口 110。不实施传统的RAID控制器卡, 各实施例将各功能102分配给这里所述的计算机系统的其它组件。根据各实施例,功能102支持已知的RAID操作,诸如条带化(striping)和数据镜像。条带化包含将数据分为大小一致的块并且将这些块分布在磁盘112A-112N中的至少一些上。如果磁盘112A-112N的读取/写入头同时有效,则条带化可以提高数据传输的速度。 通常,数据镜像提供数据冗余。RAID-0、RAID-1、RAID-5、以及RAID-6是数据冗余方案的示例。图2图示了根据各实施例的计算机系统200。如所示的,计算机系统200包括经由双处理器接口连接的CPU 202A和202B。在替代实施例中,可以实施额外的或者更少的CPU。 无论CPU的数量如何,CPU中的至少一个(例如CPU 202B)包括RAID等级处理逻辑104以支持前面所述的RAID操作。RAID等级处理逻辑104可以包括硬件、固件和/或软件。在至少一些实施例中,RAID等级处理逻辑104对应于基于软件的RAID功能。CPU 202B与多个双内联存储器模块(DMM)210A-210D经由诸如双数据速率3 (DDR-3)之类的存储器模块协议通信。可替代地,可以使用其它存储器模块协议。如所示的,CPU 202B还包括外围接口 208,其可以是快速外围组件互连(PCIe)接口。在这种情况下,外围接口 208与计算机系统200的各个内部或外部组件之间的通信基于PCIe协议。在一些实施例中,外围接口 208耦合到具有磁盘接口 108的南桥220。在这种实施例中,外围接口 208与南桥220之间的通信可以基于PCIe协议或者其它协议。另外,南桥 220与磁盘112A-112N之间的通信可以基于串行连接SCSI (SAS)协议、串行ATA (SATA)协议、通用串行总线(USB)协议、或者另一种由磁盘接口 108实施的通信协议。外围接口 208还耦合到RAID写入高速缓存卡或者子部件230 (即,各组件可以装配在卡或者其他位置上)。如所示的,RAID写入高速缓存卡或者子部件230包括耦合到非易失性写入高速缓存106的协议转换器逻辑232。协议转换器逻辑232将从外围接口 208接收到的通信总线数据转换为存储器模块数据,以存储在非易失性写入高速缓存106中。作为示例,协议转换器逻辑232可以将PCIe生成3数据转换为DDR-3数据,反之亦然。根据各实施例,非易失性写入高速缓存106包括动态随机存取存储器(DRAM)、电源(例如电池), 并且在一些实施例中包括快闪存储器。如由非易失性写入高速缓存106提供的写入高速缓存基于以下原理写入到高速缓存快于写入到磁盘,并且是提高RAID系统(例如RAID系统100)的I/O性能的成本有效的方式。在写入处理中,将写入数据写入到高速缓存,并且对于发出写入的主机将写入处理确认为“完成”。稍后,可以将高速缓存的写入写入或者刷到磁盘。当主机接收到“完成”确认时,其假定数据永久存储在盘上。如果I/O组件失去电力,则写入高速缓存可以导致不正确的数据被传递给应用并且在电力恢复时可以破坏数据库。为了改善或者消除这种问题, 非易失性写高速缓存106存储可以在计算机系统200从崩溃或者电力失去中恢复时完成进行中的写入所使用的信息。图3A图示了根据各个实施例的RAID写入高速缓存卡或者子部件230A。如所示的,RAID写入高速缓存卡或者子部件230A包括控制逻辑302 (例如专用集成电路(ASIC)或者其它半导体器件),其具有协议转换器逻辑232以及存储器到存储器接口 110。在一些实施例中,控制逻辑302对应于现场可编程门阵列(FPGA)。而且,存储器到存储器接口 110可以对应于直接存储器存取(DMA)接口。在一些实施例中,CPU 202B包括至少一些存储器到存储器接口 110,或者提供额外的或者替代的存储器到存储器接口。RAID写入高速缓存卡或者子部件230A还包括DRAM 304以及电池306,所述电池 306即使在计算机系统200崩溃或者失去电力的情况下也向控制逻辑302和/或DRAM 304 提供电力。DRAM 304和电池308 —起表示电池备用的DRAM (battery-backed DRAM),或者更一般地表示某种非易失性存储装置。当计算机系统200已经恢复时,存储在DRAM 304中的信息可被用于完成当计算机系统200崩溃或者失去电力时在进行中的RAID写入。图;3B图示了根据各实施例的RAID写入高速缓存卡或者子部件230B。如所示的, RAID写入高速缓存卡或者子部件230B包括控制逻辑302,其具有协议转换器逻辑232以及存储器到存储器接口 110 (例如DMA接口)。在一些实施例中,CPU 202B包括至少一些存储器到存储器接口 110,或者提供额外的或者替代的存储器到存储器接口 110。RAID写入高速缓存卡或者子部件230B还包括DRAM 304、快闪存储器308以及电源310 (例如电池或者电容器)。电源310即使在计算机系统200崩溃或者失去电力的情况下也向控制逻辑302、DRAM 304、和/或快闪存储器308提供电力。DRAM 304、快闪存储器 308和电源310 —起表示非易失性存储装置。在一些实施例中,在检测到计算机系统200崩溃或者电力失去时,电源310使得数据能够从DRAM 304经由存储器到存储器接口 110传送到快闪存储器308。当计算机系统200恢复时,数据被从快闪存储器308传送回DRAM 304, 并且存储在DRAM 304中的信息可被用于完成当计算机系统200崩溃或者失去电力时在进行中的写入。图4图示了根据各实施例的方法400。如所示的,方法400在框402处开始,并且通过将数据从通信总线协议转换为存储器模块协议(框404)而继续。数据被存储在非易失性RAID写入高速缓存中(框406),并且方法400在框408处结束。在至少一些实施例中,方法400也可以包括为非易失性RAID写入高速缓存执行存储器到存储器操作。作为示例,方法400可以包含确定计算机系统何时崩溃或失去电力以及作为响应将数据从DRAM传送到快闪存储器。DRAM和快闪存储器可以是RAID写入高速缓存卡或者子部件的一部分。上述讨论意在例示本发明的原理和各个实施例。对于本领域技术人员来说,一旦上述公开被完全理解,许多变化和修改将变得显而易见。意在随后的权利要求被解释为包括所有这种变化和修改。
权利要求
1.一种计算机系统,包括处理器;耦合到所述处理器的磁盘接口;所述处理器外部的通信总线;以及耦合到所述通信总线的独立磁盘冗余阵列(RAID)写入高速缓存子部件,RAID写入高速缓存子部件具有非易失性存储装置。
2.如权利要求1所述的计算机系统,其中所述非易失性存储装置包括电池备用的动态随机存取存储器(DRAM)。
3.如权利要求1所述的计算机系统,其中所述非易失性存储装置包括动态随机存取存储器(DRAM)、电源以及快闪存储器。
4.如权利要求3所述的计算机系统,其中所述RAID写入高速缓存子部件还包括用于在所述计算机系统失去电力时将数据从DRAM传送到快闪存储器的电池和直接存储器存取 (DMA)逻辑。
5.如权利要求1所述的计算机系统,还包括与所述处理器相关联的芯片组,其中所述芯片组包括用于与RAID磁盘驱动器通信的逻辑。
6.如权利要求1所述的计算机系统,其中所述处理器执行至少一些RAID控制器操作。
7.如权利要求1所述的计算机系统,其中所述RAID写入高速缓存子部件还包括用于将数据从所述通信总线的协议转换为动态随机存取存储器(DRAM)协议以及将数据从动态随机存取存储器(DRAM)协议转换为所述通信总线的协议的逻辑。
8.如权利要求1所述的计算机系统,其中所述通信总线对应于快速PCI总线,并且其中RAID写入高速缓存子部件包括快速PCI兼容卡。
9.一种独立磁盘冗余阵列(RAID)写入高速缓存子部件,包括用于将数据在通信总线协议与存储器模块协议之间转换的逻辑;以及耦合到所述逻辑的非易失性RAID写入高速缓存。
10.如权利要求9所述的RAID写入高速缓存子部件,其中所述非易失性RAID写入高速缓存包括电池备用的动态随机存取存储器(DRAM)。
11.如权利要求9所述的RAID写入高速缓存子部件,其中所述非易失性RAID写入高速缓存包括快闪存储器和电源。
12.如权利要求9所述的RAID写入高速缓存子部件,还包括用于对于电池备用的RAID 写入高速缓存执行存储器到存储器操作的直接存储器存取(DMA)接口。
13.一种用于独立磁盘冗余阵列(RAID)写入高速缓存子部件的方法,包括将数据从通信总线协议转换为存储器模块协议;以及将数据存储在非易失性RAID写入高速缓存中。
14.如权利要求13所述的方法,还包括对于非易失性RAID写入高速缓存执行存储器到存储器操作。
15.如权利要求13所述的方法,还包括确定计算系统何时失去电力以及作为响应将数据从动态随机存取存储器(DRAM)传送到快闪存储器。
全文摘要
在至少一些实施例中,计算系统包括处理器以及所述处理器外部的通信总线。所述计算系统还包括耦合到通信总线的独立磁盘冗余阵列(RAID)写入高速缓存子部件,RAID写入高速缓存子部件具有非易失性存储器。
文档编号G06F13/36GK102203751SQ200880131800
公开日2011年9月28日 申请日期2008年10月30日 优先权日2008年10月30日
发明者E. 福斯特 J., C. 埃利奥特 R., 塔瓦莱 S. 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1