用于保护高速缓存数据完整性的方法和装置的制作方法

文档序号:6604224阅读:143来源:国知局
专利名称:用于保护高速缓存数据完整性的方法和装置的制作方法
技术领域
本发明一般地涉及数据存储系统,并且更具体地,涉及用于保护直接连接存储 (DAS)系统中的高速缓存数据的完整性的方法和装置。
背景技术
存储阵列或盘阵列是包括多个磁硬盘驱动器(HDD)或类似的永久存储单元的数 据存储设备。存储阵列可以允许以高效的方式存储大量数据。服务器或工作站可被直接连 接到存储阵列,从而该存储阵列对于服务器或工作站来说是本地的。在服务器或工作站被 直接连接到存储阵列的情况下,存储阵列通常被称为直接连接存储(DAS)系统。可替换地, 服务器或工作站可被通过存储阵列网络(SAN)远程地连接到存储阵列。在SAN系统中,虽 然存储阵列对于服务器或工作站不是本地的,该阵列中的盘驱动器对于服务器或工作站的 操作系统(OS)来说看似是被连接在本地的。DAS系统和SAN系统通常被配置为廉价(或独立)磁盘冗余阵列(RAID)系统。 RAID系统使用存储冗余,以便改进存储可靠性和/或以便改进输入/输出(1/0)性能。一 般地,RAID系统同时使用两个或多个磁HDD,通常被称为物理磁盘驱动器(PD),以便实现更 高级别的性能、可靠性和/或更大的数据量大小。短语“RAID” 一般用于描述在多个PD之 间划分和复制数据的计算机数据存储方案。在RAID系统中,一个或多个PD被设立为RAID 虚拟磁盘驱动器(VD)。在RAID VD中,数据可被分布在多个PD上,但是该VD被用户和服务 器或工作站的OS看作单个磁盘。在被配置为RAID系统的DAS系统内,DAS控制器作为RAID控制器。在该系统中, RAID控制器使用其本地存储器的一部分用作高速缓冲存储器。高速缓冲存储器被用于临时 存储将被写到PD的数据。用于这种目的的一种类型的高速缓冲存储器配置被称为写回式 (WB)高速缓冲存储器配置。在WB高速缓冲存储器配置中,通常一旦数据移入高速缓冲存储 器,高速缓存命令就被完成。在这种配置中,由于一旦数据被高速缓存,该数据就被提交以 便写入PD的事实,在发生失效备援(failover)和失效恢复(failback)事件的情况下,保 持高速缓存数据的完整性可能是一个挑战。因此,应当采取措施,以便确保失效备援或失效 恢复事件的发生不会导致高速缓存数据被破坏。换言之,DAS系统应当提供高速缓存一致 性。为了提供高速缓存一致性,高速缓存的数据通常被复制到另一个存储器设备内,如现在 将参考图1-3对其进行描述。图1示出了实现RAID技术的典型DAS系统2的方框图。系统2包括服务器3、RAID控制器4和外设互连(PCI)总线5。RAID控制器4包括中央处理单元(CPU)6、存储器设备 7和I/O接口设备8。存储器设备7的一部分存储空间被用作高速缓冲存储器。可替换地, RAID控制器4可以包括用作高速缓冲存储器的单独的存储器设备(未示出)。I/O接口设 备8被配置为执行符合诸如串行连接SCSI (SAS)和/或串行高级技术附件(SATA)标准的 已知数据传输协议标准的数据传输。I/O接口设备8控制去往和来自多个PD9的数据传输。 RAID控制器4通过PCI总线5与服务器CPUll和服务器存储器设备12通信。服务器存储 器设备12存储由服务器CPUll执行的软件程序和数据。在典型的写动作中,服务器CPUll通过PCI总线5向RAID控制器4发送写请求指 令。RAID控制器4的CPTO使得数据被临时存储在RAID控制器4的存储器设备7的高速缓 冲存储器内。该数据随后被从存储器设备7通过I/O接口设备8传输到一个或多个PD9。 存储器设备7包含用于在RAID VD的虚拟地址和PD9的物理地址之间执行映射的核心逻辑。 RAID控制器4的CPTO根据系统2的RAID级别执行计算,诸如奇偶校验计算。在系统2的 当前RAID级别使用奇偶校验的情况下,I/O接口设备8使得奇偶校验位被存储在一个或多 个PD9内。在典型的读操作过程中,服务器CPUll通过PCI总线5向RAID控制器4发送相应 的读请求。RAID控制器CPTO使用保持在存储器设备7内的逻辑处理该请求,并且如果被 请求的数据保持在存储器设备7的高速缓冲存储器内,从存储器设备7的高速缓冲存储器 中检索所请求的数据。如果被请求的数据未被保持在存储器设备7的高速缓冲存储器内, RAID控制器CPTO使得从PD9检索所请求的数据。检索到的数据被在PCI总线5上传输到 服务器CPU11,以便满足读请求。图2示出了已知的共享DAS系统23的方框图,该系统包括图1所示的多个RAID控 制器4和由RAID控制器4共享的图1所示的PD9的阵列。为了在共享DAS系统23中提供 高速缓存一致性,高速缓存在其中一个RAID控制器4中的存储器设备7内的数据被复制, 或镜像到其它RAID控制器4中的其中一个RAID控制器4的存储器设备7内,从而根据高 速缓存镜像给RAID控制器4配对。在图2中以箭头24表示高速缓存数据的复制。虽然这 种类型的高速缓存一致性技术一般是有效的,但如果在给定对的两个RAID控制器4中都发 生失效备援或失效恢复事件,将危及该镜像对的高速缓存数据的完整性。图3示出了图2所示的共享DAS系统23的方框图,其中通过将每个RAID控制器4 的存储器设备7内高速缓存的数据复制到每个其它RAID控制器4的存储器设备7内,以提 供高速缓存一致性。在图3中以箭头24和25表示高速缓存数据的复制。虽然这种类型的 高速缓存一致性技术一般是有效的,但这种技术的物理实现极其复杂,并且利用大量带宽。 另外,当扩大系统23的规模并且向系统23添加大量RAID控制器4时,系统23的复杂性和 用于高速缓存镜像的带宽数量指数地增加。出于这些原因,这种高速缓存一致性解决方案 在大部分情况下是不现实的。DAS系统中的高速缓存一致性问题的另一种解决方案是使用WT高速缓存配置,而 不是WB高速缓存配置。然而,取代WB高速缓存配置使用WT高速缓存配置一般会降低DAS 系统的I/O性能,并且因此对于竞争市场内的许多存储应用是不适合的。虽然可以使用SAN 控制器容易地处理高速缓存一致性问题,但这种解决方案相对昂贵,并且在许多情况下,其 实现昂贵得惊人。
因此,存在对足以保护高速缓存数据的完整性,并且克服DAS系统中所使用的已 知高速缓存一致性解决方案的上述限制的DAS系统的需求。

发明内容
本发明提供了一种用于保护高速缓存数据的完整性的DAS系统、方法和计算机可 读介质。该DAS系统包括配置为PD的RAID阵列的多个磁HDD、配置为高速缓冲存储器的 固态盘(SSD)阵列,以及连接到所述PD的RAID阵列以及连接到所述SSD阵列的至少第一 和第二 DAS控制器。每个DAS控制器具有CPU、本地存储器设备和I/O接口设备。每个CPU 和每个本地存储器设备配置为执行与所述PD的RAID阵列的RAID配置一致的RAID级别的 技术。每个CPU配置为执行高速缓存算法,该高速缓存算法使得在相应DAS控制器中接收 的数据被临时存储在所述SSD阵列的高速缓冲存储器内,并且随后被存储在所述PD的RAID 阵列的一个或多个PD内。一种用于保护DAS系统内的高速缓存数据的完整性的方法包括如下步骤在第一 DAS控制器中,接收数据;在第一 DAS控制器的CPU中,执行高速缓存算法,该高速缓存算法 使得在所述第一 DAS控制器中接收的数据被临时存储在SSD阵列的一个或多个SSD内,并 且随后被存储在配置为PD的RAID阵列的一个或多个磁HDD内;在第二 DAS控制器中,接收 数据;并且在第二 DAS控制器的CPU中,执行高速缓存算法,该高速缓存算法使得在所述第 二 DAS控制器中接收的数据被临时存储在所述SSD阵列的一个或多个SSD内,并且随后被 存储在配置为PD的RAID阵列的一个或多个磁HDD内。一种计算机可读介质包括用于由DAS控制器执行的第一指令集合和第二指令集 合。第一指令集合在DAS控制器中接收数据。第二指令集合在第一 DAS控制器中执行高速 缓存算法,该高速缓存算法使得在所述第一 DAS控制器中接收的数据被临时存储在SSD阵 列的一个或多个SSD内,并且随后被存储在配置为PD的RAID阵列的一个或多个磁HDD内。从下面的描述、附图和权利要求中,将明了本发明的这些和其它特征和优点。


图1示出了实现RAID技术的已知DAS系统的方框图。图2示出了共享DAS系统的方框图,其中图1所示的多个RAID控制器共享图1所 示的PD阵列,并且其中通过在RAID控制器对的存储器设备内镜像高速缓存数据提供高速
缓存一致性。图3示出了图2所示的共享DAS系统的方框图,其中通过将每个RAID控制器的高 速缓存数据镜像到所有其它RAID控制器的存储器设备内提供高速缓存一致性。图4示出了根据一个实施例的共享DAS系统的方框图,其中该DAS系统的DAS控 制器外部的至少一个共享的固态盘(SSD)被用作用于高速缓存将被写到DAS系统的PD的 数据的WB高速缓冲存储器。图5示出了图4所示的DAS控制器之一的方框图。图6示出了一个流程图,其表示根据一个说明性实施例,由图4所示的DAS控制器 之一的CPU执行的WB高速缓存算法。图7示出了根据一个说明性实施例的图4所示的DAS系统的方框图,其中数据被高速缓存在SSD阵列内,而相关联的元数据被高速缓存到DAS控制器内的高速缓冲存储器 内。图8示出了根据一个说明性实施例的图4所示的DAS系统的方框图,其中数据和 相关联的元数据被高速缓存在SSD阵列内。图9示出了表示由图8所示的DAS控制器执行的WB高速缓存算法的流程图。
具体实施例方式根据本发明,提供了一种实现RAID技术的DAS系统,其中该DAS系统的DAS控制 器外部的固态盘(SSD)阵列被DAS控制器用作用于执行WB高速缓存操作的WB高速缓冲存 储器。使用外部SSD阵列作为WB高速缓冲存储器使得DAS系统是完全高速缓存一致的,而 不会明显增加DAS系统的复杂性,并且不会增加用于执行高速缓存操作的带宽数量。另外, 使用外部SSD阵列作为WB高速缓冲存储器避免了以上面参考图1-3所述的方式镜像DAS 控制器的需要。图4示出了根据说明性实施例的本发明的DAS系统100的方框图,其中DAS系统 100的SSD阵列110作为WB高速缓冲存储器被DAS系统100的多个DAS控制器120共享。 图5示出了图4所示的其中一个DAS控制器120的方框图。DAS系统100的DAS控制器120 具有与图1所示的RAID控制器4相同或类似的配置。除了相对于高速缓存操作之外,每个 DAS控制器120以与RAID控制器4相同的方式操作。因此,如同图1所示的RAID控制器4 的情况,图4所示的每个DAS控制器120被配置为RAID控制器。DAS系统100采用RAID技 术。本发明不受关于DAS系统100所采用的RAID级别的限制。RAID具有相应于不同系统设计的7种基本级别,并且可以在DAS系统100中实现 那些级别中的任意一种或多种。现在将提供对不同RAID级别的简要讨论,即使这些RAID级 别是本领域公知的。通常被称为RAID级别0-6的这7种基本RAID级别如下。RAID级别0 使用条带化(striping)实现改进的数据可靠性和增加的I/O性能。术语“条带化”的含义 是逻辑上连续的数据,诸如单个数据文件,被分段并且被以循环方式分配给多个PD。因此, 当写数据时数据被称为“被条带化”在多个PD上。条带化提高了性能,并且提供额外的存 储容量。RAID级别1使用不带奇偶检验的镜像。术语“镜像”的含义是数据被实时地复制 到不同的PD上,以便确保数据持续可用。这种类型的复制提供数据冗余。RAID级别2使用 冗余和条带化。在RAID级别2中,通过使用汉明码实现冗余,对PD上的位计算汉明码,并 且将其存储在多个PD上。如果PD失效,可以使用奇偶校验位重构数据。RAID级别3系统结合交叉奇偶校验位和专用的奇偶校验PD使用字节级条带化。 使用字节级条带化和冗余产生改进的性能并且给系统提供容错。RAID级别3系统可以持续 操作而不使用奇偶校验,并且在奇偶校验PD失效的情况下不会受到性能损失。除了 RAID 级别4系统采用块级条带化而不是字节级或字级条带化之外,RAID级别4基本与RAID级 别3相同。由于每个条带相对大,单个文件可被存储在块内。每个PD独立地操作,并且可 以并行处理许多不同的I/O请求。通过使用块级奇偶校验位交叉实现错误检测。交叉的奇 偶校验位被存储在单个单独的奇偶检验PD内。RAID级别5结合分布式奇偶校验使用条带化。为了实现分布式奇偶校验,除了一 个PD之外的所有PD必须向系统呈现以便操作。任何一个PD的失效必然导致该PD的更换。然而,单个PD的失效不会引起系统失效。RAID级别6结合双重分布式奇偶校验使用条带 化。RAID级别6系统需要使用至少4个PD,2个PD用于存储分布式奇偶校验位。即使2个 PD失效,该系统还可以继续操作。双重奇偶校验在每个VD由大量PD构成的系统中变得日 益重要。使用单奇偶校验的RAID级别系统易遭受数据丢失损坏,直到重建失效设备为止。 在RAID级别6的系统中,在第一个失效的PD的重建完成之前,其它VD之一的PD失效的情 况下,使用双重奇偶校验允许重建具有失效PD的VD,不会具有丢失数据的风险。再次参考图5,DAS控制器120包括CPU130、存储器设备140,以及I/O接口设备 150。I/O接口设备150控制去往和来自PD129的数据传输。I/O接口设备150通常被配置 为执行符合例如诸如SAS和/或SATA标准以及其变体的已知数据传输协议标准的数据传 输,尽管也可以为这个目的使用其它已知的数据传输协议以及专有数据传输协议。现在将参考图4和5描述DAS系统100的操作。在典型的写操作过程中,DAS控 制器120的CPU130从外部服务器或工作站(未示出)接收将被写到一个或多个PD129的 数据。DAS控制器CPU130使用SSD阵列110作为WB高速缓冲存储器,以便临时存储将被写 到PD129的数据。下面参考图6更详细地描述在SSDllO内WB高速缓存数据的处理。在数 据已被WB高速缓存到SSDllO之后的某个时间点,DAS控制器CPU130使得高速缓存的数据 被从SSDl 10传输,并且被存储在一个或多个PD129内。存储器设备140包含用于执行RAID VD的虚拟地址和PD129的物理地址之间的映射的核心逻辑。DAS控制器120使得高速缓存 的数据被存储在PD129中相应的物理地址处。DAS控制器CPU130还根据DAS系统100的 RAID级别执行计算,诸如奇偶校验计算。例如,如果DAS系统100的RAID级别使用奇偶校 验,DAS控制器CPU130计算奇偶检验位,并且I/O接口设备150使得该奇偶校验位被存储 在一个或多个PD129内。在典型的读操作过程中,DAS控制器CPU130从外部服务器或工作站(未示出) 接收读请求,并且使用保持在存储器设备140内的逻辑,处理该读请求,以便确定将从其读 取数据的一个或多个PD129的物理地址。DAS控制器CPU130然后使得从所述数据驻留在 PD129内的地址检索请求的数据,并且将其发送到外部服务器或工作站(未示出)。存储器 设备140的一部分或DAS控制器120内的某些其它存储器设备(未示出)可被用作读高速 缓冲存储器,在该情况下,如果CPU130确定所请求的数据被保持在读高速缓冲存储器内, CPU130从读高速缓冲存储器而不是从PD129读取数据。图6示出了表示根据说明性实施例,由DAS控制器120之一的CPU130执行的WB高 速缓存算法的流程图。每个DAS控制器120的CPU130执行该WB高速缓存算法。然而,为 了简短起见,将仅参考其中一个DAS控制器120描述该算法。当服务器或工作站(未示出) 向DAS控制器120发送将被写到PD129的数据时,如方框201所指示的,DAS控制器120接 收该数据。然后CPU130处理接收到的数据,以便确定发生了高速缓存“命中”还是高速缓 存“缺失”,如方框203所指示的。高速缓存“命中”意味着CPU130确定该数据当前被保持 在SSDllO内的高速缓冲存储器中。高速缓存“缺失”意味着CPU130确定该数据当前未被 保持在高速缓冲存储器内。如果CPU130确定发生了高速缓存缺失,CPU130使得该数据被写到SSD阵列110的 高速缓冲存储器,如方框205所指示的。在数据被写到SSD阵列110的高速缓冲存储器之后 的某个时间点,CPU130使得该数据被存储在PD129内的物理地址内,如方框206所指示的。在方框203,如果CPU130确定发生了高速缓存命中,在由方框206表示的步骤中,CPU130使 得保持在SSD阵列110的高速缓冲存储器内的相应数据被存储在SSD阵列110内的相应物 理地址内。与上面参考图1-3所述的已知高速缓存一致性方法相反,根据本发明,通过为SSD 阵列110使用一定级别的RAID技术提供高速缓存一致性。具体地,当DAS控制器120在 SSD阵列110的高速缓冲存储器内存储数据时,使用RAID技术以便确保在SSD阵列110中 的高速缓存该数据的SSD失效的情况下,该数据可以被恢复。例如,可以使用RAID级别0, 从而当每个DAS控制器120在SSD阵列110的高速缓冲存储器内存储数据时,数据被条带 化在SSD阵列110的多个SSD上。例如,如果使用RAID级别1,那么当每个DAS控制器120 在SSD阵列110的高速缓冲存储器内存储数据时,该数据被复制或镜像到SSD阵列110的 多个SSD内。如果SSD阵列110的其中一个SSD失效,SSD阵列110实现的RAID级别的技 术将允许恢复数据。以这种方式,DAS系统100是完全高速缓存一致的。本发明不受用于 确保高速缓存在SSD阵列110的高速缓冲存储器内的数据的高速缓存一致性所使用的RAID 级别的限制。另外,SSD阵列110通常,但不必须,被划分为由相应DAS控制器120使用的相应部 分。例如,假设总共有N个DAS控制器120,其中N是等于或大于1的正整数,SSD阵列110 的存储容量将被划分为N个相等的部分,每个部分被相应的DAS控制器120使用。以这种 方式划分SSD阵列110避免了 DAS控制器120访问SSD阵列110时的访问冲突。然而,如 果DAS控制器120中的其中一个失效,其它DAS控制器120中的其中一个可以访问存储在 SSD阵列110内并且与失效的DAS控制器120相关联的数据。如本领域已知的,数据具有与其相关联的元数据,元数据定义该数据的属性,诸 如,例如,数据来源的标识(即,散列高速缓存标签)、数据流的长度、以及数据是否已被修 改(即,状态指示)。在DAS系统中,元数据通常被存储在DAS控制器内的动态随机存取存 储器(DRAM)内。根据本发明的一个说明性实施例,元数据存储在DAS控制器120的存储器 设备140内,而相应的数据被以参考图4-6的上述方式存储在SSD阵列110的高速缓冲存 储器内。现在将参考图7描述用于处理元数据的说明性实施例。图7示出了根据说明性实施例的图4所示的DAS系统100的方框图,其中数据被高 速缓存在SSD阵列110内,而相关联的元数据被高速缓存在DAS控制器120内的高速缓冲 存储器内。根据这个实施例,当DAS控制器120之一的CPU130在SSD阵列110的高速缓冲 存储器内存储数据时,相应的元数据被存储在该DAS控制器120的存储器设备140的高速 缓冲存储器部分(未示出)内,或被存储在该DAS控制器120的某些其它存储器设备(未 示出)内。另外,为了提供元数据的高速缓存一致性,如图7中穿过相邻DAS控制器120之 间的箭头所示,存储在该DAS控制器120内的高速缓冲存储器内的元数据被镜像到一个或 多个其它DAS控制器120内的高速缓冲存储器内。以这种方式,如果其中一个DAS控制器 120失效,可以从其中已经镜像元数据的其它DAS控制器120的高速缓冲存储器中恢复相应 的元数据。图8示出了根据说明性实施例的图4所示的DAS系统100的方框图,其中数据和 相关联的元数据被高速缓存在SSD阵列110内。在SSD中,数据通常被写到预定字节(B) 数目的块内,例如,每个块520B。由信息技术标准国际委员会(INCITS)的标准TlO管理块格式。标准TlO规定每个数据块包括数据完整性字段(DIF),该字段包括保护信息,诸如循 环冗余校验(CRC)位、应用标签位和参考标签位。标准TlO定义的DIF由每个块末尾的8B 构成。因此,每个块由512B的数据和8B的DIF构成。根据这个说明性实施例,每个数据块 的8B DIF用于表示与该数据块相关联的元数据。因此,数据和其相关联的元数据一起存储 在SSD阵列110的高速缓冲存储器内。将数据和其相关联的元数据一起高速缓存确保在操作过程中在出现电源故障的 情况下,更新数据而不更新其相关联的元数据,或反之亦然。例如,如果数据和元数据被彼 此无关地高速缓存在不同的存储器设备内,一个存储器设备的电源故障将使得不更新存储 在失效存储器设备内的数据或元数据,而更新存储在不受电源故障影响的其它存储器设备 内的数据或元数据。将数据和元数据一起高速缓存在SSD阵列110的高速缓冲存储器内避 免了这种问题。根据这个示例实施例,由64KB构成SSD阵列110的高速缓冲存储器中的高速缓存 行,其中k = 1024。由于给定的高速缓存行的每个块由512B的数据构成,每个高速缓存行 由128个块构成(即,(64BX1024)/512B = 128)。给定高速缓存行的128个块中的每一 个块的DIF由8B元数据构成。然而,对于每个高速缓存行仅需要大约64B的元数据。这些 64B的元数据被划分为8B的部分。因此,元数据仅需要用于给定高速缓存行的8块的DIF。 根据该说明性实施例,每个128块高速缓存行的前8个块被分配给与包含在该高速缓存行 内的数据相关联的8B元数据。为了提供冗余,相同的8B元数据被复制到该高速缓存行的 下8个块的8个DIF中的每一个内。该高速缓存行的最后8个块的8个DIF中包含64B元 数据的散列。由于写到高速缓存行的第一个块和最后一个块被该散列彼此相关联,这种方 法确保了原子性。图9示出了表示由图8所示的DAS控制器120执行的WB高速缓存算法的流程图。 将参考图5、8和9描述该算法。DAS控制器120中的每一个的CPU130执行该WB高速缓存 算法。然而为了简短起见,仅参考其中一个DAS控制器120描述该算法。当服务器或工作 站(未示出)向DAS控制器120发送将被写到PD129的数据时,DAS控制器120接收该数 据和其相关联的元数据,如方框301所指示的。然后CPU130处理接收到的数据,以便确定 发生了高速缓存“命中”还是高速缓存“缺失”,如方框303所指示的。如果CPU130确定发生了高速缓存缺失,CPU130计算元数据散列,并且使得数据、 元数据和元数据散列被写到SSD阵列110的高速缓冲存储器,如方框305所指示的。存在用 于计算元数据散列的各种已知散列算法。可以为这个目的使用任意适合的已知散列算法。 因此,为了简短起见,此处不对用于计算元数据散列的算法进行描述。在数据被写到SSD阵列110的高速缓冲存储器之后的某个时间点,CPU130使得该 数据和其相关联的元数据被存储到PD129中的物理地址内,如方框306所指示的。如果在 方框303,CPU130确定发生了高速缓存命中,在由方框306表示的步骤中,CPU130使得保持 在SSD阵列110的高速缓冲存储器内的相应数据和元数据被存储到SSD阵列110内的相应 物理地址内。应当注意,上述参考图6和9描述的WB高速缓存算法可被以各种方法实现。通常 在CPU130中完全以硬件或以硬件和软件或固件的组合执行该WB算法。用于这个目的的软 件或固件指令被存储在计算机可读介质内,例如,诸如存储在DAS控制器120的存储器设备140 内。本领域的技术人员应当理解,可以对上述实施例进行许多变型,并且所有这些变 型都在本发明的范围内。例如,可以在市场上获得不使用DIF的SSD。这些SSD适用于本发 明用以高速缓存数据、元数据和元数据散列。本发明不限于在SSD阵列110中使用任意特 定类型或配置的SSD。本发明还不限于有关DAS控制器120的配置。图5所示的DAS控制 器120的配置仅是适用于本发明的SSD控制器配置的一个例子。应当注意,出于证明本发明的原理和概念的目的,上面参考说明性实施例描述了 本发明。本领域的技术人员将会理解,可以对此处描述的实施例进行许多修改,并且所有这 些修改都在本发明的范围内。
权利要求
一种直接连接存储DAS系统,包括配置为物理磁盘驱动器PD的廉价或独立磁盘冗余阵列RAID阵列的多个磁硬盘驱动器HDD;配置为高速缓冲存储器的固态盘SSD阵列;以及连接到所述PD的RAID阵列并且连接到所述SSD阵列的至少第一和第二DAS控制器,每个DAS控制器具有中央处理单元CPU、本地存储器设备和输入/输出I/O接口设备,其中每个CPU和每个本地存储器设备配置为执行与所述PD的RAID阵列的RAID配置一致的RAID级别的技术,并且其中每个CPU配置为执行使得在相应DAS控制器中接收的数据被临时存储在所述SSD阵列的高速缓冲存储器内,并且随后被存储在所述PD的RAID阵列的一个或多个PD内的高速缓存算法。
2.如权利要求1所述的DAS系统,其中所述高速缓存算法是在将数据存储在PD的RAID 阵列的一个或多个PD内之前,在所述SSD阵列的高速缓冲存储器内写回式WB高速缓存所 述数据的WB高速缓存算法。
3.如权利要求2所述的DAS系统,其中所述数据具有与其相关联的元数据,并且其中所 述DAS控制器的每个本地存储器设备具有其用作高速缓冲存储器的部分,并且其中由相应 CPU执行的WB高速缓存算法使得与在相应DAS控制器内接收到的数据相关联的元数据被 临时存储在相应本地存储器设备的相应高速缓冲存储器部分内,并且随后被存储在PD的 RAID阵列的一个或多个PD内。
4.如权利要求2所述的DAS系统,其中所述数据具有与其相关联的元数据,并且其中由 相应CPU执行的WB高速缓存算法使得与在相应DAS控制器内接收到的数据相关联的元数 据被临时存储在所述SSD阵列的高速缓冲存储器内,并且随后被存储在PD的RAID阵列的 一个或多个PD内。
5.如权利要求1所述的DAS系统,其中所述相应CPU配置为执行关于数据在所述SSD 阵列内的临时存储的一定级别的RAID技术,从而为临时存储在所述SSD阵列内的数据提供高速缓存一致性。
6.如权利要求5所述的DAS系统,其中所述数据具有与其相关联的元数据,并且其中由 相应CPU执行的高速缓存算法使得所述数据被存储在所述SSD阵列的块内,每个块包括数 据完整性字段DIF,并且其中所述相应CPU使得与在相应DAS控制器内接收到的数据相关联 的元数据被存储在与所述块中的至少一个块相关联的DIF中的至少一个DIF内,相关联的 所述数据被在所述块内存储在所述SSD阵列内。
7.如权利要求6所述的DAS系统,其中由每个相应CPU执行的高速缓存算法包括计算 所述元数据的散列的散列算法,并且其中每个相应散列被存储在与所述块中的至少一个块 相关联的DIF中的所述至少一个DIF内,所述相关联数据被在所述块内存储在所述SSD阵 列内。
8.如权利要求6所述的DAS系统,其中与所述数据相关联的元数据包括数据来源的指 示、数据长度的指示、以及所述数据是否已被修改的指示。
9.一种用于保护直接连接存储DAS系统内的高速缓存数据的完整性的方法,该方法包括在第一 DAS控制器中,接收数据,所述第一 DAS控制器包括中央处理单元CPU、本地存储器设备和输入/输出I/O接口设备;在第一 DAS控制器的CPU中,执行使得在所述第一 DAS控制器中接收的数据被临时存 储在固态盘SSD阵列的一个或多个固态盘内,并且随后被存储在被配置为物理磁盘驱动器 PD的廉价或独立磁盘冗余阵列RAID阵列的一个或多个磁硬盘驱动器HDD内的高速缓存算 法;在第二 DAS控制器中,接收数据,所述第二 DAS控制器包括CPU、本地存储器设备和I/O 接口设备;和在所述第二 DAS控制器的CPU中,执行使得在所述第二 DAS控制器中接收的数据被临 时存储在所述SSD阵列的一个或多个SSD内,并且随后被存储在配置为PD的RAID阵列的 一个或多个磁HDD内的高速缓存算法。
10.如权利要求9所述的方法,其中所述高速缓存算法是在将数据存储在PD的RAID阵 列的一个或多个PD内之前,在所述SSD阵列的高速缓冲存储器内写回式WB高速缓存所述 数据的WB高速缓存算法。
11.如权利要求10所述的方法,其中所述数据具有与其相关联的元数据,并且其中所 述DAS控制器的每个本地存储器设备具有其用作高速缓冲存储器的部分,并且其中由相应 CPU执行的WB高速缓存算法使得与在相应DAS控制器内接收到的数据相关联的元数据被 临时存储在相应本地存储器设备的相应高速缓冲存储器部分内,并且随后被存储在PD的 RAID阵列的一个或多个PD内。
12.如权利要求10所述的方法,其中所述数据具有与其相关联的元数据,并且其中由 相应CPU执行的WB高速缓存算法使得与在相应DAS控制器内接收到的数据相关联的元数 据被临时存储在所述SSD阵列的高速缓冲存储器内,并且随后被存储在PD的RAID阵列的 一个或多个PD内。
13.如权利要求9所述的方法,其中所述相应CPU配置为执行关于数据在所述SSD阵列 内的临时存储的一定级别的RAID技术,从而为临时存储在所述SSD阵列内的数据提供高速缓存一致性。
14.如权利要求13所述的方法,其中所述数据具有与其相关联的元数据,并且其中由 相应CPU执行的高速缓存算法使得所述数据被存储在所述SSD阵列的块内,每个块包括数 据完整性字段DIF,并且其中所述相应CPU使得与在相应DAS控制器内接收到的数据相关联 的元数据被存储在与所述块中的至少一个块相关联的DIF中的至少一个DIF内,相关联的 所述数据被在所述块内存储在所述SSD阵列内。
15.如权利要求14所述的方法,其中由每个相应CPU执行的高速缓存算法包括计算所 述元数据的散列的散列算法,并且其中每个相应散列被存储在与所述块中的至少一个块相 关联的DIF中的所述至少一个DIF内,相关联的所述数据被在所述块内存储在所述SSD阵 列内。
16.如权利要求14所述的方法,其中与所述数据相关联的元数据包括数据来源的指 示、数据长度的指示、以及所述数据是否已被修改的指示。
17.一种用于保护直接连接存储DAS系统内的高速缓存数据的完整性的装置,所述装 置包括用于在第一 DAS控制器中接收数据的部件;和用于在所述第一 DAS控制器中执行高速缓存算法的部件,该高速缓存算法使得在所述 第一 DAS控制器中接收的数据被临时存储在固态盘SSD阵列的一个或多个固态盘内,并且 随后被存储在被配置为物理磁盘驱动器PD的廉价或独立磁盘冗余阵列RAID阵列的一个或 多个磁硬盘驱动器HDD内。
18.如权利要求17所述的装置,其中所述高速缓存算法是在将数据存储在PD的RAID 阵列的一个或多个PD内之前,在所述SSD阵列的高速缓冲存储器内写回式WB高速缓存所 述数据的WB高速缓存算法。
19.如权利要求17所述的装置,其中所述数据具有与其相关联的元数据,并且其中所 述高速缓存算法使得与在所述DAS控制器内接收到的数据相关联的元数据被临时存储在 所述DAS控制器的本地存储器设备的高速缓冲存储器部分内,并且随后被存储在PD的RAID 阵列的一个或多个PD内。
20.如权利要求17所述的装置,其中所述数据具有与其相关联的元数据,并且其中所 述高速缓存算法使得与在所述DAS控制器内接收到的数据相关联的元数据被临时存储在 所述SSD阵列的高速缓冲存储器内,并且随后被存储在PD的RAID阵列的一个或多个PD内。
21.如权利要求17所述的装置,其中所述DAS控制器配置为执行关于数据在所述SSD 阵列内的临时存储的一定级别的RAID技术,从而为临时存储在所述SSD阵列内的数据提供 高速缓存一致性。
22.如权利要求21所述的装置,其中所述数据具有与其相关联的元数据,并且其中由 所述DAS控制器执行的高速缓存算法使得所述数据被存储在所述SSD阵列的块内,每个块 包括数据完整性字段DIF,并且其中所述DAS控制器使得与在相应DAS控制器内接收到的数 据相关联的元数据被存储在与所述块中的至少一个块相关联的DIF中的至少一个DIF内, 相关联的所述数据被在所述块内存储在所述SSD阵列内。
23.如权利要求22所述的装置,其中由所述DAS控制器执行的高速缓存算法包括计算 所述元数据的散列的散列算法,并且其中每个相应散列被存储在与所述块中的至少一个块 相关联的DIF中的所述至少一个DIF内,相关联的所述数据被在所述块内存储在所述SSD 阵列内。
24.如权利要求22所述的装置,其中与所述数据相关联的元数据包括数据来源的指 示、数据长度的指示、以及所述数据是否已被修改的指示。
25.一种用于保护直接连接存储DAS系统内的高速缓存数据的完整性的方法,所述方 法包括在第一 DAS控制器中接收数据;和在所述第一 DAS控制器中执行高速缓存算法,该高速缓存算法使得在所述第一 DAS控 制器中接收的数据被临时存储在固态盘SSD阵列的一个或多个固态盘内,并且随后被存储 在被配置为物理磁盘驱动器PD的廉价或独立磁盘冗余阵列RAID阵列的一个或多个磁硬盘 驱动器HDD内。
26.如权利要求25所述的方法,其中所述高速缓存算法是在将数据存储在PD的RAID 阵列的一个或多个PD内之前,在所述SSD阵列的高速缓冲存储器内写回式WB高速缓存所 述数据的WB高速缓存算法。
27.如权利要求25所述的方法,其中所述数据具有与其相关联的元数据,并且其中所述高速缓存算法使得与在所述DAS控制器内接收到的数据相关联的元数据被临时存储在 所述DAS控制器的本地存储器设备的高速缓冲存储器部分内,并且随后被存储在PD的RAID 阵列的一个或多个PD内。
28.如权利要求25所述的方法,其中所述数据具有与其相关联的元数据,并且其中所 述高速缓存算法使得与在所述DAS控制器内接收到的数据相关联的元数据被临时存储在 所述SSD阵列的高速缓冲存储器内,并且随后被存储在PD的RAID阵列的一个或多个PD内。
29.如权利要求25所述的方法,其中所述DAS控制器配置为执行关于数据在所述SSD 阵列内的临时存储的一定级别的RAID技术,从而为临时存储在所述SSD阵列内的数据提供 高速缓存一致性。
30.如权利要求29所述的方法,其中所述数据具有与其相关联的元数据,并且其中由 所述DAS控制器执行的高速缓存算法使得所述数据被存储在所述SSD阵列的块内,每个块 包括数据完整性字段DIF,并且其中所述DAS控制器使得与在相应DAS控制器内接收到的数 据相关联的元数据被存储在与所述块中的至少一个块相关联的DIF中的至少一个DIF内, 相关联的所述数据被在所述块内存储在所述SSD阵列内。
31.如权利要求30所述的方法,其中由所述DAS控制器执行的高速缓存算法包括计算 所述元数据的散列的散列算法,并且其中每个相应散列被存储在与所述块中的至少一个块 相关联的DIF中的所述至少一个DIF内,相关联的所述数据被在所述块内存储在所述SSD 阵列内。
32.如权利要求30所述的方法,其中与所述数据相关联的元数据包括数据来源的指 示、数据长度的指示、以及所述数据是否已被修改的指示。
全文摘要
本发明涉及用于保护高速缓存数据完整性的方法和装置,提供了一种执行RAID技术的DAS系统,其中DAS系统的DAS控制器外部的固态盘(SSD)阵列被DAS控制器用作WB高速缓冲存储器,以便执行WB高速缓存操作。使用外部SSD阵列作为WB高速缓冲存储器允许DAS系统完全实现高速缓存一致性,而不会明显增加DAS系统的复杂性,并且不会增加用于执行高速缓存操作的带宽数量。另外,使用外部SSD阵列作为WB高速缓冲存储器避免了镜像DAS控制器的需要。
文档编号G06F12/16GK101982816SQ20101020076
公开日2011年3月2日 申请日期2010年6月8日 优先权日2009年6月8日
发明者L·伯特 申请人:Lsi公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1