电力丢失事件期间非易失性存储装置数据的迅速保护的制作方法

文档序号:6348179阅读:171来源:国知局
专利名称:电力丢失事件期间非易失性存储装置数据的迅速保护的制作方法
技术领域
本发明总地涉及计算机,尤其涉及通过与存储器件(memory device)通信的处理器来保护非易失性存储装置(nonvolatile storage,NVS)数据的方法、系统、和计算机程序
女口
广 PFt ο
背景技术
像盘那样的存储设备(storage device)在当今社会中是常见的。像控制器那样的装置响应于读写请求控制对存储设备的访问。为了冗余和备份的目的,存储控制器还将数据映射到不同存储设备并且在不同存储设备之间传播数据。存储控制器可以根据几个独立盘冗余阵列(RAID)安全级别之一存储数据。一般说来,RAID级别越高,数据存储的冗余度就越大。联合存储设备可以用于扩大存储容量以及提供恢复和备份服务。像IBM Enterprise Storage Server (ESS)那样的存储服务器也正在变得常见(IBM和Enterprise Storage Server (企业存储服务器)是国际商用机器公司在美国、其它国家或两者的注册商标)。一个IBM ESS存储服务器包括两个处理器群集以及相关硬件。通常,在每个群集中存在多个处理器。每个存储控制器控制以RAID阵列为单位分组的多个存储设备。在一种环境下,带有光纤通道主机总线适配器(“HBA”)的客户机经由光纤通道与交换机耦合。交换机也经由光纤通道HBA与存储服务器耦合。对于每个客户机可能有多个存储服务器。每个客户机被指定或分配了映射到以RAID阵列为单位分组的存储设备上的物理位置的存储“卷”。因此,客户机针对它们的所分配卷内的数据向存储服务器提出数据访问请求(读和写),存储服务器访问高速缓冲存储装置中的映射位置以满足请求,或如果数据未驻留在高速缓冲存储装置中,就从盘中访问。一个IBM ESS包括具有两个群集和每个群集四个处理器的存储控制器。每个群集具有它自己的由该群集中的所有处理器共享的高速缓冲(半导体)存储器。每个群集还具有群集中的所有处理器共享的由电池供电的非易失性存储装置(“NVS”)。另外,每个群集还具有它自己的高速缓冲存储装置(cache storage) 0高速缓冲存储器(cache memory) 用于迅速访问从外部存储装置传来的数据,以便为来自存储器的读取数据访问请求服务和提供修改数据的缓冲。所有写请求被写入管理给定卷的群集上的高速缓存并映射在其它群集上的非易失性存储器中。像ESS那样的存储系统在完成了将写入数据传送到高速缓存和NVS两者之后,并在将写入数据写入盘中之前将提交消息发送给相连数据主机。在接收到提交消息之后,主机不再需要保存这个写入数据的副本。在一些系统中,在电力丢失(power loss)的情况下,NVS不起保留数据的作用,而是通过在电池后备部件的帮助下将数据转移到硬盘上来实现非易失性。在电力丢失事件期间NVS不保留数据但促使将数据转移到盘中的实现中,期望尽可能迅速地写入NVS数据,以便使后备电池系统的容量最小化。加密这样的数据提供防止数据被窃的额外安全性。虽然存在在电力丢失事件的情况下将NVS数据写入盘(例如共享的存储设备)中的解决方案,但在迅速完成数据传送的同时向这样的数据提供加密功能的解决方案并不存在。

发明内容
本发明的一个方面提供了一种在电力丢失事件之后通过与存储器件通信的处理器保护非易失性存储装置(NVQ数据的方法。将NVS数据的第一部分加密到第一缓冲模块。在将数据加密到第一数据缓冲器之后,将第一数据缓冲器传送到共享存储设备,同时, 将NVS数据的第二部分加密到第二缓冲模块。优选地,接着在第一和第二缓冲模块之间交替地重复这个过程,直到将所有NVS数据加密到一个或另一个缓冲模块并传送到盘中。在 NVS数据的第一部分被加密到第一缓冲模块之后,一个缓冲器的加密操作与另一个缓冲器到共享盘的传送重叠。换句话说,一个缓冲器的全部或部分加密操作与另一个缓冲器到共享盘的全部或部分传送同时(即,在相同时间)进行。本发明的进一步方面提供了一种在电力丢失事件之后通过与存储器件通信的处理器保护非易失性存储装置(NVQ数据的系统。提供第一和第二缓冲模块。将NVS数据的第一部分加密到第一缓冲模块。在将数据加密到第一数据缓冲器之后,将第一数据缓冲器传送到共享存储设备,同时,将NVS数据的第二部分加密到第二缓冲模块。优选地,接着在第一和第二缓冲模块之间交替地重复这个过程,直到将所有NVS数据加密到一个或另一个缓冲模块并传送到盘中。在NVS数据的第一部分被加密到第一缓冲模块之后,一个缓冲器的加密操作与另一个缓冲器到共享盘的传送重叠。本发明的进一步方面提供了一种通过与存储器件通信的处理器保护非易失性存储装置(NVQ数据的计算机程序产品。该计算机程序产品包括具有存储在其中的计算机可读程序代码部分的计算机可读存储媒体。该计算机可读程序代码部分包括执行如下步骤的几个可执行部分。将NVS数据的第一部分加密到第一缓冲模块。在将数据加密到第一数据缓冲器之后,将第一数据缓冲器传送到共享存储设备,同时,将NVS数据的第二部分加密到第二缓冲模块。优选地,接着在第一和第二缓冲模块之间交替地重复这个过程,直到将所有 NVS数据加密到一个或另一个缓冲模块并传送到盘中。在NVS数据的第一部分被加密到第一缓冲模块之后,一个缓冲器的加密操作与另一个缓冲器到共享盘的传送重叠。


为了容易理解本发明的优点,下面将参考例示在附图中的特定实施例给出上面简述的本发明的更具体描述。应该理解,这些图形只描绘了本发明的典型实施例,因此不应该认为是对本发明范围的限制,将利用附图对本发明作更专门和详细的描述和说明,在附图中图1是包括存储服务器和存储管理服务器的分布式计算机系统的方块图,其中可以实现如下描述和所要求保护主题的一些方面;图2是图1的存储服务器之一的方块图;以及图3是根据电力丢失事件保护NVS数据的示范性方法的流程图。
具体实施方式
下面的例示性实施例提供了保护NVS数据的机制,包括根据电力丢失事件,加密数据以便提供额外安全性以及将数据写入共享存储装置中。在整个如下描述和所附权利要求书中,提到“电力丢失事件”可以指本领域技术人员理解的许多情形,包括电力波动。于是,本文所使用的电力丢失事件可以指期望将NVS数据写入共享存储设备的任何状况。另外,本文所使用的NVS数据可以指不被硬化到盘中的任何客户数据。可以看到,例示的实施例根据电力丢失事件,通过并行地同时向存储设备写入和加密NVS数据的一些部分来保护NVS数据。也就是说,当正在加密NVS数据的一个部分时, 将以前加密的另外一个部分写入存储设备中。其结果是,在将NVS数据写入存储装置所通常花费的几乎相同的时间内,也加密了 NVS数据以提供额外安全性。在一个实施例中,两个缓冲模块被并行配置以加密和向共享存储设备写入NVS中的数据。两个缓冲器(本文称为缓冲器A和缓冲器B)交替地用于加密和写入数据。当缓冲器A正在加密数据时,缓冲器B正忙于将加密数据写入存储设备中。当缓冲器B完成了向存储设备写入时,缓冲器A接着开始写入它保存的加密数据,而缓冲器B开始加密NVS数据的下一个块。在任何时候,一个缓冲器正在加密数据,而另一个缓冲器正在向盘写入。于是,缓冲器A和缓冲器B并行地操作,加密和向存储设备写入数据。通过并行地工作,NVS数据不仅被写入设备中,而且在相同时间内被加密。使用并行工作的缓冲器使得在电力丢失事件 (例如,对一个或多个存储控制器的供电丢失)期间能够将加密数据写入存储设备中。例示的实施例可应用于处理不被硬化到客户盘中的客户数据的所有实现方式。经由流水式转储(fire hose dump, FHD)或类似方法保存的任何数据都可以使用本发明的例示性实施例的一个或多个方面来处理。图1提供了其中可以实现例示性实施例的机制的映射数据存储系统体系结构的一部分的一个例子。但是,应该理解,图1只是示范性的,而无意表明或暗示对可以实现例示性实施例的示范性方面的特定体系结构的任何限制。可以不偏离如下描述和所要求保护主题的范围和精神对描绘在图1中的体系结构做出许多修改。图1例示了包括本发明的用10总体表示的示范性分布式计算机系统。系统10包括多个类似的存储服务器/控制器14a,b,c,它具有每个群集的多个CPU 40a,b,c (关于每个群集中的CPU组织,参照下面图2)、高速缓存44a,b,c,非易失性存储装置(“NVS”)46a, b,c,操作系统48a,b,c,I/O单元50a,b,c,和TCP/IP适配器卡52a,b,c。每个存储服务器14a,b,c管理存储分配和客户机40,41和42分别对多个存储设备(例如盘)30al-an, 30bl-bn 和 30cl_cn 的访问。客户机40,41和42具有像光纤通道适配器卡那样的适配器卡50,51和52,以便经由像光纤通道那样的通信路径53a,b,c与交换机55连接。交换机55可以经由主机总线 Ma,b,c与存储服务器14a,b,c耦合,并且可以如在客户机上配置的那样,将来自任何客户机40,41或42的请求转发给任何存储服务器14a,b,C。管理者对客户机40,41和42的每一个分配许多存储“卷”。每个“卷”驻留在存储阵列上。“存储阵列”可以包括一个或多个存储设备,并且由诸如RAID 5,RAIDlO或磁盘簇(通常称为JB0D)的多种RAID级别构成。在例示在图2中的示范性实施例中,存储控制器14a (和类似地,存储控制器14b 和c)包括CPU 68a和78a、高速缓存66a和76a、NVS 69a和79a、和任意数目的设备适配器对(每个群集62a-(N) a和72a-(N) a)的两个相同群集61a和71a。每个群集61a和71a分别拥有共享高速缓冲(半导体)存储器66a和76a。每个群集还包括电池供电的存储装置 69b和79a(也叫做“NVS”)。在图2中,“D”代表数据盘,“P”代表存储数据盘中的数据的奇偶校验位的奇偶校验盘,“S”代表在数据盘或奇偶校验盘出故障的情况下的备用盘。每个群集保存将每个存储卷与存储阵列上的相应物理位置相关联的存储分配到每个客户机的映射。如图2所示的一个或多个盘可以是流水式转储(FHD)盘6 和75a,用于根据流水式转储操作存储数据。通常,FHD数据被存储在像AIX 操作系统引导盘(AIX是国际商用机器公司在美国、其它国家或两者的注册商标)那样的引导盘上。这些引导盘本质上是非加密的/未被加密的。由于本来就不希望将高速缓冲数据写到非加密存储设备上,所以本发明的例示性实施例用作在尽可能最短的时间内保护高速缓冲数据(使用如进一步描述的加密)的方式。因此,静态的FHD数据(在像上述引导盘那样的设备上)是安全的。NVS 69a和79a经由通信链路60a和70a分别与盘6 和7 互连。在某些实施例中,通信链路60a和70a是从像RS-232或RS-422那样的串行互连线、以太网互连线、SCSI 互连线、光纤通道互连线、ESCON互连线、FICON互连线、局域网(LAN)、专用广域网(WAN)、公用广域网、存储区域网(SAN)、传输控制协议/互联网协议(TCP/IP)网络、互联网、和它们的组合中选取的。在某些实施例中,盘6 和7 包括一个或多个光存储媒体、一个或多个磁存储媒体、一个或多个电子存储媒体、和它们的组合。在某些实施例中,盘6 和7 在群集61a 和71a的外部。在某些实施例中,盘65a和75a在群集61a和71a的内部。当客户机请求访问存储装置,S卩,从分配给客户机的卷之一中读取数据或将数据写入分配给客户机的卷之一中时,管理该卷的存储群集将处理该请求,即,将客户机更新临时存储到成对群集上的高速缓冲存储器和NVS中。对于更新请求,根据NVS存储将I/O完成通知发送给客户机。一旦到达等待写入的内部阈值,该群集就将客户机请求映射到物理位置,然后将映射的请求从高速缓冲存储装置转发到适当存储阵列。对于读取请求,数据或者从高速缓冲存储器中被满足或者要求盘访问(由于“高速缓存未命中”)。读取请求的高速缓存未命中要求群集将客户机请求映射到存储阵列上的物理位置上,并且将数据从阵列上的物理位置传送到满足客户机I/O请求的高速缓冲存储器。再次参照图1,系统100还包括存储管理服务器91中的存储管理程序(SMP)模块 90,按照本发明,它检测故障转移的发生,实现上述保留存储器高速缓存,和处理保留磁道。 在例示性实施例中,计算机91经由SAN网络与存储服务器14a,b,c耦合。可替代的是,可以存在模块90的分立实例,它在每个存储服务器/控制器14a,b,c上执行并经由TCP/IP 网络与其它存储服务器上的程序90的其它实例通信。本领域技术人员应该理解,可以设想出与整个存储子系统通信的SMP模块的多种实现方式。再次参照图2,服务器1 被显示成包括四个缓冲模块67a,b和77a,b,每个群集两个。如下面进一步所述,缓冲模块67a,b和77a,b可以适用于执行按照本发明的功能。 虽然缓冲模块67a,b和77a,b被显示成包括在群集61a和71a中,但本领域技术人员应该理解,缓冲模块67a,b和77a,b在物理上可以位于别的地方,但仍然与描绘的存储控制器、 高速缓冲存储器、NVS等通信。缓冲模块67a,b和77a,b可以适用于根据例如电力丢失事件加密和向盘存储NVS数据的一些部分。这种以及进一步的功能将在下面作进一步描述。接着,图3例示了根据电力丢失事件将NVS数据保护到共享存储装置的示范性方法100。本领域技术人员应该理解,方法100中的各种步骤可以按适合特定应用的不同方式实现。另外,所述方法可以通过可在存储环境上运行,或以其他方式与存储环境相关联的诸如硬件、软件、固件,或它们的组合的各种手段实现。例如,这些方法可以部分或全部实现成包括具有存储在其中的计算机可读程序代码部分的计算机可读存储媒体的计算机程序产品。该计算机可读存储媒体可以包括盘驱动器、闪速存储器、数字多功能盘(DVD)、致密盘 (CD)、和其它类型的存储媒体。本领域技术人员应该理解,随着数据的一些部分被读取,加密和写入共享存储设备中,方法100的流程通常经过几次迭代。在例示性实施例中所述的过程可以一起构成流水式转储(FHD)操作的全部或一部分,其中通过FHD操作将NVS移入FHD盘中。现在转到图3,方法100从检测电力丢失事件(步骤104)开始(步骤102)。例如, 电力丢失事件可以是对一个或多个存储控制器的供电的短暂或永久丢失。控制转移到步骤 106,步骤106描述了 NVS地址指针指向NVS存储器的起点,和两个缓冲模块(这里指定为 “1”和“2”)的内容是空的和非激活(inactive)的开始情形。由于还没有NVS数据被处理过(步骤108),所以方法100询问第一缓冲器是否激活(步骤112)。如果不是,则使缓冲器1激活(步骤114)。从NVS地址指针所指的地址 (在这种情况下,与在步骤106中所述的存储器起点一致的地址)开始读取NVS数据的一部分。可以将该数据部分组织成一个或多个数据块。本领域技术人员应该理解,该部分可以随特定实现(例如,缓冲器的大小)而变。加密读入缓冲器1中的NVS数据(步骤116)。作为下一个步骤,方法100询问缓冲器2是否处在向盘传送的过程中(步骤S118)。如果是,方法100返回到步骤118(等待), 直到该过程完成,并且缓冲器2变成非激活(步骤120)。此刻,将缓冲器1的加密内容传送到盘中并清除缓冲器1 (步骤122),然后将NVS指针增加到还未读取的下一个数据部分的开头(步骤124)。然后该方法返回到步骤108。如果还有NVS数据要处理(再次,步骤108),则方法100再次询问缓冲器1是否激活(再次,步骤11 。如果是,则使缓冲器2激活(步骤126),像步骤116那样将NVS数据读入缓冲器2中并加密它(步骤128)。然后该方法100询问缓冲器1当前是否处在将数据传送到盘的过程中(步骤S130)。如果是,方法100返回到步骤130(等待),直到该过程完成,并且缓冲器1变成非激活(步骤13幻。此刻,将缓冲器2的加密内容传送到盘中并清除缓冲器2 (步骤134),然后将NVS指针增加到还未读取的下一个数据部分的开头(步骤 136)。然后该方法返回到步骤108。再次地,方法100询问所有NVS数据是否都被处理。 如果NVS数据都被处理,那么结束方法100(步骤110)。在本说明书中描述的一些功能单元被标记成模块,以便更具体地强调它们的实现独立性。例如,一个模块可以实现成包括定制超大规模集成(VLSI)电路或门阵列、像逻辑芯片那样的成品半导体、晶体管或其它分立部件的硬件电路。一个模块也可以实现在像现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等那样的可编程硬件器件中。模块也可以用软件实现,以便被各种类型的处理器执行。可执行代码的标识模块可以包括,例如,可以组织成例如对象、过程或功能的计算机指令的一个或多个物理或逻辑块。不过,标识模块的可执行性使得无需在物理上处在一起,而是可以包括存储在不同位置,当在逻辑上连接在一起时,包括该模块并实现该模块的规定目的的不同指令。事实上,可执行代码的模块可以是单条指令,或多条指令,甚至可以分布在几个不同代码段上,在不同程序之间,和跨几个存储器件。类似地,操作数据在这里可以在模块内标识和例示,可以以任何适当形式实施和组织在任何适当类型的数据结构内。操作数据可以集中成单个数据组,或可以分布在不同位置上,包括在不同存储设备上,并且可以至少部分作为系统或网络上的电子信号而存在。虽然已经详细例示了本发明的一个或多个实施例,但本领域技术人员应该理解, 可以不偏离如所附权利要求书所述的本发明的范围地对那些实施例做出修改和调整。
权利要求
1.一种用于在电力丢失事件之后通过与存储器件通信的处理器来保护非易失性存储装置(NVQ数据的方法,包括使用第一缓冲模块加密NVS数据的第一部分;以及随后将NVS数据的第一部分传送到至少一个共享存储设备而同时使用第二缓冲模块加密NVS数据的第二部分,随后将NVS数据的第二部分传送到所述至少一个共享存储设备。
2.如权利要求1所述的方法,其中传送NVS数据的第一部分和加密NVS数据的第二部分重叠。
3.如权利要求1或2所述的方法,进一步包括使用第一缓冲模块加密NVS数据的第三部分,其中传送NVS数据的第二部分和加密NVS数据的第三部分重叠。
4.如权利要求3所述的方法,其中传送NVS数据的第一部分和传送NVS数据的第二部分不重叠。
5.如前面任何一项权利要求所述的方法,进一步包括执行NVS数据的另外部分的另外加密和NVS数据的另外部分的另外传送,直到NVS数据的所有部分都被处理。
6.如前面任何一项权利要求所述的方法,其中使用第一缓冲模块加密NVS数据的第一部分和将NVS数据的第一部分传送到至少一个共享存储设备一起构成流水式转储(FHD)操作的一部分。
7.如前面任何一项权利要求所述的方法,进一步包括,在将NVS数据的第一部分传送到至少一个共享存储设备之后,清除第一缓冲模块。
8.如权利要求7所述的方法,进一步包括,在清除了第一缓冲模块之后,递增NVS地址指针。
9.如前面任何一项权利要求所述的方法,进一步包括,在使用第一缓冲模块加密NVS 数据的第一部分之前,检测电力丢失事件。
10.一种用于在电力丢失事件之后通过与存储器件通信的处理器来保护非易失性存储装置(NVS)数据的系统,包括可并行地被处理器操作并与存储器件通信的第一和第二缓冲模块,其中 所述第一缓冲模块适用于加密NVS数据的第一部分以及随后将NVS数据的第一部分传送到至少一个共享存储设备;以及所述第二缓冲模块适用于,与将NVS数据的第一部分传送到至少一个共享存储设备同时,加密NVS数据的第二部分,并且进一步适用于随后将NVS数据的第二部分传送到该至少一个共享存储设备。
11.如权利要求10所述的系统,其中传送NVS数据的第一部分和加密NVS数据的第二部分重叠。
12.如权利要求10或11所述的系统,所述第一缓冲模块进一步适用于加密NVS数据的第三部分,其中传送NVS数据的第二部分和加密NVS数据的第三部分重叠。
13.如权利要求12所述的系统,其中传送NVS数据的第一部分和传送NVS数据的第二部分不重叠。
14.如权利要求10至13的任何一项所述的系统,其中所述第一和第二缓冲模块进一步适用于执行NVS数据的另外部分的另外加密和NVS数据的另外部分的另外传送,直到NVS 数据的所有部分都被处理。
15.如权利要求10至14的任何一项所述的系统,其中使用第一缓冲模块加密NVS数据的第一部分和将NVS数据的第一部分传送到至少一个共享存储设备一起构成流水式转储 (FHD)操作的一部分。
16.如权利要求10至15的任何一项所述的系统,所述第一缓冲模块进一步适用于在将 NVS数据的第一部分传送到至少一个共享存储设备之后,清除所述第一缓冲模块。
17.如权利要求16所述的系统,所述第一缓冲模块进一步适用于在清除了所述第一缓冲模块之后,递增NVS地址指针。
18.一种在电力丢失事件之后通过与存储器件通信的处理器来保护非易失性存储装置 (NVS)数据的计算机程序产品,所述计算机程序产品包括具有存储在其中的计算机可读程序代码部分的计算机可读存储媒体,所述计算机可读程序代码部分包括第一可执行部分,用于使用第一缓冲模块加密NVS数据的第一部分;以及第二可执行部分,用于随后将NVS数据的第一部分传送到至少一个共享存储设备而同时使用第二缓冲模块加密NVS数据的第二部分,随后将NVS数据的第二部分传送到至少一个共享存储设备,其中传送NVS数据的第一部分和加密NVS数据的第二部分重叠。
19.如权利要求18所述的计算机程序产品,进一步包括第三可执行部分,用于使用第一缓冲模块加密NVS数据的第三部分,其中传送NVS数据的第二部分和加密NVS数据的第三部分重叠。
20.如权利要求18或19所述的计算机程序产品,其中传送NVS数据的第一部分和传送 NVS数据的第二部分不重叠。
21.如权利要求19或20所述的计算机程序产品,进一步包括第四可执行部分,用于执行NVS数据的另外部分的另外加密和NVS数据的另外部分的另外传送,直到NVS数据的所有部分都被处理。
22.如权利要求18至21的任何一项所述的计算机程序产品,其中用于使用第一缓冲模块加密NVS数据的第一部分的第一可执行部分和用于将NVS数据的第一部分传送到至少一个共享存储设备的第二可执行部分一起构成流水式转储(FHD)操作的一部分。
23.如权利要求18至22的任何一项所述的计算机程序产品,进一步包括在将NVS数据的第一部分传送到至少一个共享存储设备之后,清除第一缓冲模块的可执行部分。
24.如权利要求23所述的计算机程序产品,进一步包括在清除了第一缓冲模块之后, 递增NVS地址指针的可执行部分。
25.如权利要求18至M的任何一项所述的计算机程序产品,进一步包括在使用第一缓冲模块加密NVS数据的第一部分之前,检测电力丢失事件的可执行部分。
全文摘要
本发明提供了用于在电力丢失事件之后通过与存储器件通信的处理器来保护非易失性存储装置(NVS)数据的方法、系统和计算机程序产品。使用第一缓冲模块加密NVS数据的第一部分。随后将NVS数据的第一部分传送到至少一个共享存储设备,而同时使用第二缓冲模块加密NVS数据的第二部分。随后将NVS数据的第二部分传送到至少一个共享存储设备。
文档编号G06F21/00GK102301371SQ201080005540
公开日2011年12月28日 申请日期2010年1月20日 优先权日2009年2月9日
发明者A·梅塞尔, D·R·卡勒, R·A·利普伯格 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1