基于非易失性存储器的操作验证的安全数据提交扫描的调整
文献发布时间:2023-06-19 10:11:51
技术领域
实施例涉及基于非易失性存储器的操作验证的安全数据提交扫描的调整。
背景技术
存储系统可以控制对一个或多个主机计算设备的存储的访问,所述主机计算设备可以通过网络耦合到所述存储系统。在存储系统中执行的存储管理应用可以管理耦合到存储系统的多个存储设备、例如磁盘驱动器、磁带驱动器、闪存驱动器、直接存取存储设备(DASD)等。主机可以向存储系统发送输入/输出(I/O)命令,并且存储系统可以执行I/O命令以从存储设备读取数据或向存储设备写入数据。存储系统也可称为存储控制器。
存储系统可以包括两个或更多个服务器,其中每个服务器可以被称为节点、存储服务器、处理器复合体、中央处理器复合体(CPC)或中央电子复合体(CEC)。每个服务器可以被包括在集群中。每个服务器可以具有多个处理器核心,并且服务器可以分担存储系统的工作负荷。在存储系统的两台服务器配置中,如果存在故障或两台服务器之一的计划停机时间,则任一台服务器可以故障转移至另一台服务器。例如,如果存在第二服务器的故障,则第一服务器可以故障转移到另一个服务器。
存储系统试图在数据移动通过存储系统时保持数据的两个副本。服务器具有其主存储器的两个区域,用于保存主机数据:高速缓存和非易失性存储器(NVS)。NVS包含写数据,直到该数据从高速缓存送出到存储驱动器。当向卷发送写并且两个服务器都在运行时,写数据被放入拥有服务器的高速缓存和另一个服务器的NVS。如果发生写故障并且拥有服务器中高速缓存为空或者可能无效,则可以访问写数据的NVS副本。否则,在完成从高速缓存到存储驱动器的送出操作之后,丢弃写数据的NVS拷贝。
在高速缓存中发生掉电或设备故障的情况下,可能丢失尚未成功地从高速缓存送出到辅助存储器的数据。为了避免数据丢失,存储系统可以采用安全数据提交扫描机制,其扫描高速缓存目录以查找要送出到辅助存储器的已修改数据。可以周期性地(例如,以小时为基础)发起对高速缓存目录的这种扫描。存储系统可以记录开始安全数据提交扫描的时间。当安全数据提交扫描完成时,可在日志中显示安全数据提交扫描开始时间。结果,可以向操作员确保在安全数据提交扫描开始时间之前写入高速缓存的任何东西已经被成功地送出并且被安全地存储在辅助存储器中。在数据丢失的情况下,可能仅需要恢复在安全数据提交扫描开始时间之后写入高速缓存的数据。
发明内容
提供了一种方法、系统、计算机程序产品,其中,在基于双服务器的存储系统中的初始程序加载期间,装备(arm)第一服务器的第一非易失性双列直插存储器模块(NVDIMM)和第二服务器的第二NVDIMM,以配置所述第一NVDIMM和所述第二NVDIMM以在掉电时保持数据。在发起安全数据提交扫描以将经修改的数据从所述第一服务器送出到辅助存储之前,确定所述第一NVDIMM是否被装备。响应于确定所述第一NVDIMM未被装备,启动到所述第二服务器的故障转移。
在进一步的实施例中,响应于确定所述第二NVDIMM未被装备,降低在所述第二服务器中的连续安全数据提交扫描之间的时间间隔。
在进一步的实施例中,响应于确定第一NVDIMM已经在第一服务器中再次变成被装备的并且第一服务器已经变成可操作,将连续安全数据提交扫描之间的时间间隔改变为预定时间,所述预定时间是连续安全数据提交扫描之间的标准时间。
在另外的实施例中,响应于在所述第二服务器中完成安全数据提交扫描,并且响应于确定在所述第二服务器中的NVDIMM使用大于预定阈值或者已经过了作为连续安全数据提交扫描之间的标准时间的预定时间,开始新的安全数据提交扫描。
在某些实施例中,响应于确定所述第二NVDIMM被装备,完成到所述第二服务器的故障转移。
在进一步的实施例中,所述基于双服务器的存储系统维护第一高速缓存和第一非易失性存储(NVS)及第二高速缓存和第二NVS,其中所述第一NVS包括所述第一服务器中的第一NVDIMM,所述第二NVS包括所述第二服务器中的第二NVDIMM,其中,所述第一高速缓存中的数据也写入所述第二NVS,所述第二高速缓存中的数据也写入所述第一NVS。
在某些实施例中,响应于所述基于双服务器的存储系统中的缺陷,在所述初始程序加载之后,所述第一NVDIMM或所述第二NVDIMM变为未装备。
附图说明
现在参考附图,其中相同的附图标记始终表示相应的部分:
图1示出了根据某些实施例的包括存储系统的计算环境的框图,所述存储系统包括第一服务器和第二服务器,其中所述存储系统通过网络与多个主机通信,并且其中同步的安全数据提交扫描应用在所述存储系统中执行;
图2示出了根据某些实施例的具有第一高速缓存和第一NVS以及第二高速缓存和第二NVS的存储系统的框图,其中第一NVS包括由第一服务器控制的第一NVDIMM,第二NVS包括由第二服务器控制的第二NVDIMM;
图3示出了显示根据某些实施例的用于基于非易失性存储器的操作验证来调整安全数据提交扫描的操作的流程图;
图4示出了显示用于在安全数据提交扫描的上下文中检查NVDIMM的状态的操作的流程图;
图5示出了显示根据某些实施例的故障转移服务器(例如,第二服务器106)的操作的流程图;
图6示出了显示根据某些实施例的显示安全数据提交扫描的频率的增加的操作的流程图;
图7示出了显示根据某些实施例的用于从数据丢失中恢复的机制的操作的流程图;
图8示出了显示根据某些实施例的用于基于双服务器的存储系统102中的同步的安全数据提交扫描的操作的流程图;
图9示出了根据某些实施例的云计算环境的框图;
图10示出了根据某些实施例的图9的云计算环境50的进一步细节的框图;以及
图11示出了显示根据某些实施例的可以被包括在如图1-10所示的基于双服务器的存储系统和/或主机中的某些元件的计算系统的框图。
具体实施方式
在以下描述中,参考形成其一部分并示出若干实施例的附图。应当理解,可以利用其他实施例,并且可以进行结构和操作改变。
在某些实施例中,存储控制器的NVS可以包括一个或多个非易失性双列直插存储器模块(NVDIMM),其中NVDIMM是一种类型的用于计算机的非易失性随机存取存储器。术语"双列直插"将存储器标识为使用DIMM封装。在某些实施例中,NVDIMM在存储控制器的初始机器加载(Initial Machine Load,IML)期间被"装备(armed)"(即,即使发生掉电也被激活以保存数据),其中存储控制器使用IML来存储加电自检(POST)和基本输入/输出系统(BIOS)代码。NVDIMM提供了比电池支持的NVS快得多的存储器。
然而,在某些实施例中,在IPL期间已经被装备的NVDIMM可能由于各种原因而不能保持被装备,所述原因例如包括硬件错误、代码错误、恶意攻击、在NVDIMM上运行的诊断等。NVDIMM还可以被装备以提供数据加密,并且NVDIMM的解除装备(即,失去装备状态)还可以导致NVDIMM中的数据未被加密。
如果NVDIMM未被装备,存储控制器中发生的掉电事件,则可能由于NVDIMM不在非易失性存储器中备份数据而导致数据丢失或加密数据丢失。
在某些实施例中,为了便于从数据丢失中恢复,安全数据提交扫描过程检查以确定在基于双服务器的存储控制器的服务器上开始安全数据提交扫描之前NVDIMM是否被装备。在服务器的NVDIMM未被装备的情况下,发起到另一服务器的故障转移。在某些实施例中,如果两个服务器的NVDIMM都未被装备,则增加执行安全数据提交扫描的频率,并且因此向基于双服务器的存储控制器提供改进以避免数据丢失。当双服务器存储控制器的两个服务器的NVDIMM都未被装备时,数据被更频繁地送入到辅助存储,这降低了数据丢失的可能性。
例示性实施例
图1示出了根据某些实施例的计算环境100的框图,该计算环境包括存储系统102,该存储系统包括第一服务器104和第二服务器106,其中存储系统102通过网络与多个主机108、110通信,并且其中同步安全数据提交扫描应用112在存储系统102中执行。
存储系统102、服务器104、106和主机108、110可以包括任何适当的计算设备,包括本领域目前已知的那些,诸如个人计算机、工作站、服务器、大型机、手持式计算机、掌上计算机、电话设备、网络设备、刀片计算机、处理设备、控制器等。多个服务器104、106可以提供冗余,因为如果一个服务器发生故障而无法恢复,则替代服务器可以执行发生故障的服务器的功能。多个服务器104、106中的每一个可以被称为处理复合体,并且可以包括一个或多个处理器和/或处理器核,并且存储系统102还可以被称为基于双服务器的存储系统或存储控制器。
存储系统102、服务器104、106和主机108、110可以是任何适当网络中的元件,例如存储区域网络、广域网、因特网、内联网。在某些实施例中,存储系统102、服务器104、106和主机108、110可以是云计算环境中的元件。
第一服务器104包括包含第一高速缓存114的存储器和包含第一NVDIMM118的第一NVS116,并且第二服务器106包括包含第二高速缓存120的存储器和包含第二NVDIMM124的第二NVS122。在备选实施例中,NVS(例如,NVS116、122)可具有多于一个NVDIMM。
在某些实施例中,高速缓存114、120可以包括被划分为一个或多个分组的写高速缓存,其中每个分组可以包括一个或多个存储轨道。高速缓存114、120可以是本领域已知的或将来开发的任何合适的高速缓存。在一些实施例中,高速缓存114、120可以用易失性存储器和/或非易失性存储器来实现。高速缓存114、120可以存储修改的和未修改的数据。
NVS116、122也可以被称为"永久"高速缓存,并且利用包括NVDIMM的非易失性存储器来实现。NVS116、122可存储修改的数据。一旦数据已经被成功地写入高速缓存和NVS,就使应用知道I/O操作完成。通过保留数据的两个副本直到其被硬化到磁盘,一个副本在一个服务器上的高速缓存中,而第二个副本在另一个服务器的NVS中,来维护数据完整性和可用性。对数据的正常访问来自高速缓存中保留的副本。
安全数据提交扫描应用112可以周期性地(例如,每一个小时)执行安全数据提交扫描,以便至少将修改的数据送出到辅助存储126、128。在某些实施例中,在存储系统102中执行的同步的安全数据提交扫描应用112提供一个在安全数据提交扫描之前检查NVDIMM118、124的装备状态(arming status)的机制。在某些实施例中,同步的安全数据提交扫描应用112可以包括一个或多个应用或者可以是另一个应用的一部分。
同步的安全数据提交扫描应用112可以在服务器104、106中的任何一个或全部中执行,或者可以是在执行虚拟化以访问存储系统102的硬件元件时执行的应用。在某些实施例中,同步的安全数据提交扫描应用112可以以软件、固件、硬件或其任意组合来实现。
应当注意,可以以许多不同的方式来配置和访问存储系统102。例如,可以执行虚拟化以访问存储系统102的硬件元件。另外,在某些实施例中,存储系统102可以具有多于两个服务器。
图2示出了根据某些实施例的存储系统102的框图200,其具有第一高速缓存114和包括由第一服务器104控制的第一NVDIMM118的第一NVS,以及第二高速缓存120和包括由第二服务器106控制的第二NVDIMM124的第二NVS。
第一高速缓存114用于作为偶数号的逻辑存储系统(LSS)202的成员的所有逻辑卷。可以注意到,LSS是将逻辑卷和逻辑单元(LUN)分组为组的逻辑构造,其中在某些实施例中,如果存在256个LSS,则可以经由从0开始到255结束的整数对LSS进行编号。同样,第二高速缓存120用于作为奇数号的LSS204的成员的所有逻辑卷。对于放置到第一服务器104的第一高速缓存114中的每个写入,将副本206放置到第二服务器106中的第二NVDIMM124中。对于放置到第二服务器106的第二高速缓存120中的每个写入,将副本208放置到第一服务器104中的第一NVDIMM118中。结果,在第一服务器104发生故障的情况下,第二服务器106可以用于恢复数据,并且在第二服务器106发生故障的情况下,第一服务器104可以用于恢复数据。
图3示出了显示根据某些实施例的用于基于非易失性存储器的操作验证来调整安全数据提交扫描的操作的流程图300。图3中所示的操作可以在存储系统102中执行。
控制开始于框302,其中在第一服务器104中IML时装备第一NVDIMM118,并且在第二服务器106中IML时装备第二NVDIMM124。控制进行到框304,其中同步的安全数据提交扫描应用112确定在第一服务器104中的安全数据提交扫描开始时第一NVDIMM118是否仍然被装备。如果是("是"分支306),控制前进到框308,其中同步的安全数据提交扫描应用程序112记录指示第一NVDIMM118在第一服务器104中的安全数据提交扫描开始时被装备的消息,并开始安全数据提交扫描。
如果在框304,同步的安全数据提交扫描应用程序112确定在第一服务器104中的安全数据提交扫描开始时第一NVDIMM118未被装备("否"分支310),则控制进行到框312,其中启动到第二服务器106的故障转移,然后确定(在框314)第二NVDIMM124是否在第二服务器106中被装备。应当注意,即使第一NVDIMM118在第一服务器104中的IML期间被装备,第一NVDIMM118也可能在IML和安全数据提交扫描的开始之间的时间间隔中由于第一服务器104中的缺陷而丢失其装备状态。
如果在框314确定第二NVDIMM124在第二服务器106中被装备("是"分支316),则控制进行到框318,其中完成到第二服务器106的故障转移。
如果在框314确定第二NVDIMM124未在第二服务器106中被装备("否"分支320),则控制进行到框322,其中在第二服务器106中连续运行安全数据提交扫描,直到第一服务器104重新回到第一NVDIMM118被装备。安全数据提交扫描"连续运行"意味着一旦完成一个安全数据提交扫描,就开始另一安全数据扫描。安全数据扫描之所以要连续运行,是因为当第一NVDIMM118和第二NVDIMM124不是两个都被装备并因此在掉电的情况下易于丢失数据时,必须尽可能快地将数据保存在辅助存储126、128上。当第一NVDIMM118和第二NVDIMM124不是两个都被装备时,由于在电源故障时可能存在数据丢失,因此部分地丧失在存储系统102中具有两个服务器的冗余。
图4示出了显示用于在安全数据提交扫描的上下文中检查NVDIMM的状态的操作的流程图400。图4中所示的操作可以在存储系统102中执行。
控制开始于框402,其中确定第一服务器104的第一NVDIMM118未被装备。将消息传输(在框404)到第二服务器106以查询第二服务器106的第二NVDIMM124的状态。从第二服务器106接收(在框406)响应,并确定(在框408)第二服务器106的第二NVDIMM124是否被装备。
如果在框408确定装备了第二服务器106的第二NVDIMM124("是"分支410),则控制进行到框412,其中同步的安全数据提交扫描应用程序112在第一服务器104中开始安全数据提交扫描。在完成对第一服务器104的安全数据提交扫描时,通过使第一服务器104停机来执行(在框414)到第二服务器106的故障转移。
如果在框408确定第二服务器106的第二NVDIMM124未被装备("否"分支416),则控制进行到框418,其中在第一服务器104和第二服务器106上都开始安全数据提交扫描,并且可执行到第二服务器106的可选故障转移(在框420)。
图5示出了显示根据某些实施例的故障转移服务器(例如,第二服务器106)的操作的流程图500。图5中所示的操作可以在存储系统102中执行。
控制开始于框502,其中第二服务器106接管第一服务器104的功能(即,发生了从第一服务器104到第二服务器106的故障转移),并确定第二服务器106的第二NVDIMM124未被装备。然后,第二服务器106增加第二服务器106中的安全数据提交扫描的频率,因为在发生掉电的情况下,第二服务器106的第二NVDIMM124中的数据可能丢失。例如,代替每小时运行安全数据提交扫描(即,在该示例中,连续安全数据提交扫描之间的标准时间间隔是一小时),这可以是安全数据提交扫描的正常频率,可以每15分钟运行安全数据提交扫描(即,连续安全数据提交扫描之间的时间间隔从标准时间间隔减小)。
控制从框504进行到框506,其中确定第一服务器104是否已经变得可操作。如果在框506确定第一服务器104已经变得可操作("是"分支508),则控制前进到框510,其中安全数据提交扫描返回到安全数据提交扫描的正常频率,并且其中通过检查NVDIMM的装备状态来执行图4所示的操作。需要执行NVDIMM的装备状态的检查,因为来自框506的"是"分支508指示到双服务器配置(即,两个服务器都在运行)的故障恢复,其中在双服务器配置中,即使两个服务器都在运行,NVDIMM也可能未装备。还应当注意,可以周期性地执行NVDIMM的装备状态的检查。
如果在框506确定第一服务器104没有变为可操作的("否"分支512),则在框506再次执行对第一服务器104是否变为可操作的新检查。
因此,图5示出了某些实施例,其中当两个NVDIMM在两个服务器104、106上都已变为非装备((即,未装备)时,安全数据提交扫描的频率增加,以便减少在电源故障时的数据丢失的量。
图6示出了显示根据某些实施例的显示安全数据提交扫描的频率的增加的操作的流程图600。图6所示的操作可以在存储系统102中执行。
控制在框602开始,其中认为发生了安全数据提交扫描的完成。控制进行到框604,其中确定NVDIMM的使用是否大于预定阈值(例如,NVDIMM存储的80%),或者自从上次安全数据提交扫描以来是否已经过了预定时间量(例如,1小时)。
如果在框604,确定NVDIMM的使用大于预定阈值,或者自从上次安全数据提交扫描以来已经过了预定时间量("是"分支606),则控制进行到框608,其中立即开始下一个安全数据提交扫描(即,等待不超过几秒)。
如果在框602处,确定"确定NVDIMM的使用是否大于预定阈值或自从上次安全数据提交扫描以来已经过了预定时间量"的条件导致"否"的应答("否"分支610),控制前进到框612,其中在再次确定NVDIMM使用是否大于预定阈值或自从上次安全数据提交扫描以来已经过了预定时间量之前,将开始下一个安全数据提交扫描的安全数据提交扫描过程置于定时器上休眠(例如,30秒)(在框604)。
因此,图6示出了其中基于NVDIMM的使用量(例如,使用可以被定义为NVDIMM中有多少充满了在电源故障时可能丢失的数据)来调整安全数据提交扫描的频率的实施例。更大的使用可能导致安全数据提交扫描的频率增加。然而,安全数据提交扫描频率没有降到正常频率以下(例如,每小时一次)。
图7示出了显示根据某些实施例的用于从数据丢失中恢复的机制的操作的流程图700。图7中所示的操作可以在存储系统102中执行。
控制开始于框702,其中确定发生了数据丢失。根据日志分析确定(在框704)当NVDIMM被装备时成功完成最后一次安全数据提交扫描的时间点,并且从送出到辅助存储126、128的数据从确定的时间点进行数据丢失恢复(在框706)。
图8示出了显示根据某些实施例的用于基于双服务器的存储系统102中的同步的安全数据提交扫描的操作的流程图800。图8中所示的操作可以在基于双服务器的存储系统102中执行。
控制开始于框802,其中在基于双服务器的存储系统102中的初始程序加载期间装备第一服务器104的第一非易失性双列直插存储器模块(NVDIMM)118和第二服务器106的第二NVDIMM124,以将第一NVDIMM118和第二NVDIMM124配置为在掉电时保持数据。在启动安全数据提交扫描以将修改数据从第一服务器104送出到辅助存储126、128之前,确定(在框804)第一NVDIMM118是否被装备。响应于确定第一NVDIMM118未被装备,启动到第二服务器106的故障转移(在框806)。
控制从框806前进到框808,其中响应于确定第二NVDIMM124未被装备,减小第二服务器106中的连续安全数据提交扫描之间的时间间隔(即,安全数据提交扫描以比正常更大的频率发生)。
控制从框808前进到框810,其中响应于确定第一NVDIMM118已经在第一服务器104中再次变成被装备的并且第一服务器104已经变成可操作,连续安全数据提交扫描之间的时间间隔被改变为预定时间,该预定时间是连续安全数据提交扫描之间的标准时间(即,安全数据提交扫描恢复到正常频率)。
因此,图1-8示出了某些实施例,其中基于双服务器存储系统的服务器中的NVDIMM的故障来调整安全数据提交扫描。应当注意,虽然关于第一服务器和第二服务器描述了实施例,但是两个服务器的角色可以颠倒。
云计算环境
云计算是用于实现对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的方便的、按需网络访问的模型,该可配置计算资源可以以最小的管理努力或服务提供商交互来快速供应和释放。
现在参考图9,描绘了说明性云计算环境50。在云计算环境50中执行同步的安全数据提交扫描(经由附图标记52示出)。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,所述本地计算设备例如为个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图9中所示的计算设备54A-N的类型仅旨在说明,并且计算节点10和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参考图10,示出了由云计算环境50(图9)提供的一组功能抽象层。应当预先理解,图10中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括大型机,在一个示例中为IBM ZSERIES*系统;基于RISC(精简指令集计算机)架构的服务器,在一个示例中为IBMPSERIES*系统;IBM XSERIES*系统;IBM BLADECENTER*系统;存储设备;网络和网络组件。软件组件的示例包括网络应用服务器软件,在一个示例中为IBM WEBSPHERE*应用服务器软件;以及数据库软件,在一个示例中为IBM DB2*数据库软件。
虚拟化层62提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器;虚拟存储;虚拟网络,包括虚拟专用网络;虚拟应用和操作系统;以及虚拟客户端。
在一个示例中,管理层64可以提供以下描述的功能。资源供应提供了对被用来在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的开账单或开发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户为消费者和系统管理员提供对云计算环境的访问。服务级别管理提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)规划和履行提供了云计算资源的预安排和采购,其中根据SLA来预计未来需求。
工作负载层66提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:地图绘制和导航;软件开发和生命周期管理;虚拟教室教育传送;数据分析处理;交易处理;以及同步的安全数据提交扫描68,如图1-10所示。
另外的实施例细节
所描述的操作可以被实现为使用标准编程和/或工程技术来产生软件、固件、硬件或其任何组合的方法、装置或计算机程序产品。因此,实施例的方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施例的形式,其在这里可以被统称为"电路"、"模块"或"系统"。此外,实施例的各方面可以采取计算机程序产品的形式。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质,所述计算机可读程序指令用于使处理器执行本实施例的各方面。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
图11示出了显示根据某些实施例的可以被包括在基于双服务器的存储系统102和/或服务器104、106或其他设备中的某些元件的框图。系统1100可以包括电路1102,其在某些实施例中可以至少包括处理器1104。系统1100还可包含存储器1106(例如,易失性存储器设备)和存储装置1108。存储装置1108可以包括非易失性存储器设备(例如,EEPROM、ROM、PROM、闪存、固件、可编程逻辑等)、磁盘驱动器、光盘驱动器、磁带驱动器等。系统1100可以包括程序逻辑1110,其包括可以被加载到存储器1106中并且由处理器1104或电路1102执行的代码1112。在某些实施例中,包括代码1112的程序逻辑1110可被存储在存储装置1108中。在某些其他实施例中,程序逻辑1110可以在电路1102中实现。系统1100中的一个或多个组件可以经由总线或经由其它耦合或连接1114进行通信。因此,虽然图11示出了与其他元件分离的程序逻辑1110,但是程序逻辑1110可以在存储器1106和/或电路1102中实现。
某些实施例可以针对一种用于由人或自动处理集成计算机可读代码将计算指令部署到计算系统中的方法,其中,代码结合计算系统被使能执行所描述的实施例的操作。
术语"实施例"、"多个实施例"、"该实施例"、"这些实施例"、"一个或多个实施例"、"一些实施例"和"一个实施例"表示"本发明的一个或多个(但不是全部)实施例",除非另有明确说明。
术语"包括"、"包含"、"具有"及其变体表示"包括但不限于",除非另有明确说明。
除非另外明确规定,否则列举的项目列表并不意味着任何或所有项目是互斥的。
术语"一"、"一个"和"该"表示"一个或多个",除非另有明确说明。
除非另外明确指出,否则彼此通信的设备不需要彼此连续通信。另外,彼此通信的设备可以直接通信或通过一个或多个中间物间接通信。
具有彼此通信的若干组件的实施例的描述并不暗示需要所有此类组件。相反,描述了各种可选组件以说明本发明的各种可能的实施例。
此外,尽管可以以连续的顺序描述过程步骤、方法步骤、算法等,但这样的过程、方法和算法可以被配置为以交替的顺序工作。换句话说,可以描述的步骤的任何顺序或次序不一定指示要求以该次序执行步骤。可以以任何可行的顺序执行本文所述的过程的步骤。此外,可以同时执行一些步骤。
当在此描述单个设备或产品时,很明显,可以使用多于一个的设备/产品(无论它们是否协作)来代替单个设备/产品。类似地,在这里描述了多于一个设备或产品(无论它们是否协作)的情况下,将容易明白的是,可以使用单个设备/产品来代替多于一个设备或产品,或者可以使用不同数量的设备/产品来代替所示数量的设备或程序。设备的功能和/或特征可以替代地由一个或多个未明确描述为具有这样的功能/特征的其他设备来体现。因此,本发明的其它实施例不需要包括该设备本身。
至少已经在附图中示出的某些操作示出了以特定顺序发生的某些事件。在替代实施例中,某些操作可以以不同的顺序执行、修改或移除。此外,可以将步骤添加到上述逻辑中,并且仍然符合所描述的实施例。此外,这里描述的操作可以顺序地发生,或者某些操作可以并行地处理。此外,操作可以由单个处理单元或由分布式处理单元执行。
为了说明和描述的目的,已经给出了本发明的各种实施例的上述描述。其不是穷举的,也不是要将本发明限制为所公开的精确形式。根据上述教导,许多修改和变化是可能的。本发明的范围不是由该详细描述来限定,而是由所附权利要求来限定。上述说明、示例和数据提供了对本发明的组成的制造和使用的完整描述。由于在不脱离本发明的精神和范围的情况下可以做出本发明的许多实施例,因此本发明在于下文所附的权利要求。
*IBM、ZSERIES、PSERIES、XSERIES、BLADECENTER、WEBSPHERE、DB2是在世界各地的许多管辖区域注册的国际商业机器公司的商标或注册商标。
- 基于非易失性存储器的操作验证的安全数据提交扫描的调整
- 基于Session和操作码的数据重复提交验证方法