使用通过电力丢失数据保护技术存储的写入数据来进行恢复的制作方法

文档序号:14033534阅读:218来源:国知局
使用通过电力丢失数据保护技术存储的写入数据来进行恢复的制作方法



背景技术:

存储系统可以包括存储数据的持久性存储介质。持久性存储介质是这样的存储介质:即使到系统的电力丢失或被移除也维持存储在存储介质中的数据。为了得到改进的性能,存储系统还可以包括临时存储尚未被写入到持久性存储介质的(与写入操作相关联的)写入数据的写入高速缓存。写入操作可以是响应于来自远程请求设备的请求。为了得到改进的性能,存储系统可以在写入数据已经被存储到写入高速缓存之后、但是在将写入数据存储到持久性存储介质之前向请求设备发送写入请求的确认。

附图说明

关于以下附图来描述本公开的一些实现方式。

图1是根据一些示例的存储系统的过程的流程图。

图2是根据一些示例的存储系统的框图。

图3和4是根据一些示例的不同存储系统的框图。

图5是根据一些示例的存储指令的非暂时性存储介质的框图。

具体实施方式

存储系统可以包括存储设备或存储设备的布置。在包括多个存储设备的存储系统的示例中,可以将存储设备布置为存储设备的阵列,诸如盘驱动器或其它类型的存储设备(包括固态存储设备)的阵列。一般地,(一个或多个)存储设备包括持久性存储介质。

在随后的讨论中,对存储系统的“持久性存储介质”进行参考,其可以是指一个存储设备的持久性存储介质,或者多个存储设备的持久性存储介质。

为了得到存储系统的改进的吞吐量,可以在存储系统中提供写入高速缓存。写入高速缓存用于临时存储用于写入操作的写入数据(以及与写入数据相关联的任何元数据),所述写入操作是响应于通过网络从远程请求设备接收的写入请求。存储系统可以通过网络向请求设备发送写入请求的成功完成的确认,即使针对所述写入请求的写入数据和相关联的元数据尚未被写入到持久性存储介质。通过在向请求设备发送确认之前不必等待直到写入数据(和任何相关联的元数据)被写入到持久性存储介质,存储系统可以更快速地向请求设备提供确认,以提供存储系统的更快操作的表象。

写入高速缓存可以利用存储器来实现,所述存储器诸如动态随机存取存储器(dram)、静态随机存取存储器(sram)或其它类型的存储器,其具有比存储系统的持久性存储介质的存取速度更大的存取速度。一般地,dram或sram是易失性存储器,如果从存储器移除电力则该易失性存储器可能丢失存储在存储器中的数据。因此,如果包括利用易失性存储器实现的写入高速缓存的存储系统意外丢失电力,则写入高速缓存的内容可能丢失,这可能导致数据不一致状况,因为虽然与写入请求相关联的写入数据尚未被存储在存储系统的持久性存储介质中但是写入请求的成功完成的确认已经被发送给了请求设备。在这样的场景中,请求设备预期针对所述写入请求的写入数据被持久地存储在存储系统中,即便如果存储系统中的写入高速缓存的内容丢失则这样的数据丢失。

为了解决当在存储系统中电力意外丢失时丢失数据的问题,可以在存储系统处提供电力备用布置。电力备用布置包括备用电力源和用于在某个持续时间内提供临时电力以允许在到存储系统的电力丢失的情况下留存写入高速缓存的内容的任何相关联的(一个或多个)组件。

不同的存储系统(诸如存储系统的不同世代或存储系统的不同版本)可能采用不同类型的电力备用布置。例如,第一类型的存储系统可以使用第一类型的电力备用布置,其中备用电力源要向第一存储器(其可以是易失性存储器)但是不向系统的某些其它组件(诸如处理器和可能地系统中的另一存储器)供给电力。使用备用电力源向易失性存储器供给电力实际上提供了非易失性存储器(备用电力源和易失性存储器的组合构成非易失性存储器),因为备用电力源可以用于向易失性存储器临时提供电力以防止易失性存储器丢失其数据,只要备用电力源能够继续向易失性存储器供给电力即可。

在一些示例中,备用电力源可以包括电池布置(包括一个电池或多个电池)。在其它示例中,备用电力源可以包括电容器布置(包括电容器或多个电容器),其电荷可以用于为易失性存储器临时供电。在第一类型的电力备用布置的情况下,备用电力源(例如电池布置或电容器布置)可以具有能够在相对短的时间段内供给电力的较小的电力容量。如相比于与使用可以用于为更多组件供电并且可以持续较长时间段的较大容量电力源相关联的成本,使用较小容量的备用电力源可以降低存储系统的总体成本。

作为另外的示例,第二类型的存储系统可以包括第二类型的电力备用布置,其可以包括较大的电容器备用电力源(例如较大容量电池布置或较大容量电容器布置)以向较大数目的组件供给电力,所述组件包括第一存储器(其可以利用易失性存储器实现)、存储系统的处理器以及可能地存储系统中的其它组件。

尽管对两种不同类型的备用电力布置进行参考,但是要指出的是,在其它示例中,可以在不同类型的存储系统中选择性地使用超过两种不同类型的备用电力布置。

取决于在存储系统中使用何种类型的电力备用布置,可以在存储系统中使用不同的电力丢失数据保护技术。电力丢失数据保护技术可以是指当到存储系统的电力丢失时进行保护以防写入高速缓存中的数据丢失的技术。例如,如果存储系统使用第一类型的电力备用布置,则使用第一电力丢失数据保护技术,而如果存储系统采用第二类型的电力备用布置,则使用第二电力丢失数据保护技术。不同的电力丢失数据保护技术可以采用不同的相应过程以响应于检测到到存储系统的电力的丢失而保护写入高速缓存中的数据。

在其中存储系统的制造商可以构建采用相应不同类型的电力备用布置的不同类型的存储系统的场景中,取决于每个具体的存储系统采用何种类型的电力备用布置来为不同的存储系统提供(以机器可读指令的形式的)不同的存储系统代码可能不是合期望的。存储系统代码可以是指管理存储系统的各种操作的软件或固件(或更一般地,机器可读指令),所述各种操作包括将数据保存到持久性存储介质、在写入高速缓存中存储数据、与远程请求设备交换通信、从到存储系统的电力丢失进行恢复等等。

在一些示例中,第一存储系统代码可以用于采用第一类型的电力备用布置的存储系统,而第二、不同的存储系统代码可以用在采用第二类型的电力备用布置的存储系统中。必须写入和维护用于不同存储系统的不同存储系统代码可能增加制造复杂度和成本。

依照本公开的一些实现方式,可以在存储系统中使用能够支持不同类型的电力备用布置中的任何的公共存储系统代码。在一些示例中,存储系统代码可以执行根据图1的过程。存储系统代码确定(在102处)在存储系统中使用不同类型的电力备用布置中的哪一个。不同类型的电力备用布置中的每一个使用备用电力源为存储系统中的相应不同组件组合供电。例如,第一类型的电力备用布置使用备用电力源为存储系统中的第一组件组合(包括易失性存储器和相关联的组件)供电,而第二类型的电力备用布置使用备用电力源为第二存储系统中的第二组件组合(包括易失性存储器、处理器和其它组件)供电。第一组件组合不同于第二组件组合。

响应于确定在存储系统中使用不同类型的电力备用布置中的哪一个,存储系统代码从对应于不同类型的电力备用布置的不同电力丢失数据保护技术之中动态地选择(在104处)所选电力丢失数据保护技术以用于保存尚未被写入到存储系统的持久性存储介质的写入数据。这样的写入数据可能已经被写入到写入高速缓存,但是尚未从写入高速缓存存储到持久性存储介质。

为了增强与使用不同电力丢失数据保护技术相关联的效率,不同电力丢失数据保护技术中的每一个通过根据公共格式执行写入数据向指定存储位置(诸如恢复存储介质)的保存来对存储系统的电力丢失进行响应;换言之,如由不同电力丢失数据保护技术中的每一个保存的已保存写入数据的格式是相同的。用于保存写入数据的公共格式以特定方式组织写入数据以及与写入数据相关联的元数据。例如,写入数据和元数据可以被划分成不同区段,或者具有根据指定格式的其它组织。

尽管对在写入高速缓存中存储写入数据并且从写入高速缓存向存储系统的持久性存储介质写入这样的写入数据进行参考,但是要指出的是,写入高速缓存还可以存储要写入到持久性存储介质的元数据。元数据可以是指与写入数据相关联并且涉及存储系统的特征或多个特征的信息。例如,存储系统的特征可以包括精简配置,其中可以由多个请求设备共享的存储系统提供具有比存储系统所具有的更多的存储容量的表象。在精简配置的情况下,按需分配而不是预先分配存储系统的存储资源。涉及精简配置的元数据可以包括追踪记录已经被分配的存储资源的信息(诸如文件系统的信息)。

存储系统的另一示例特征可以包括快照特征,其中快照存储相应时间点处的数据版本。快照是可以用于在数据损坏或者存储系统错误或故障的情况下恢复存储系统的数据的备用数据的部分。涉及快照的元数据可以追踪存储在快照中的数据片段。

在另外的示例中,元数据可以涉及存储系统的其它特征。

可以将根据公共格式的写入数据和相关联的元数据保存到恢复存储介质,所述恢复存储介质可以是持久性的,因为恢复存储介质即使是在移除存储系统中的电力时也能够维持其所存储的内容。恢复存储介质可以包括盘驱动器(或多个盘驱动器)、固态驱动器(或多个固态驱动器)或可以持久地存储数据的任何其它类型的存储介质。恢复存储介质可以用作分级存储区以在恢复过程期间存储写入数据和任何相关联的元数据,以用于在发生了到存储系统的电力丢失之后将数据恢复到持久性存储介质。

响应于存储系统中的电力丢失,使用所选电力丢失数据保护技术根据公共格式向恢复存储介质存储(在106处)写入高速缓存中的写入数据(和任何元数据)。

响应于存储系统中的电力恢复,使用(在108处)恢复存储介质中的写入数据来恢复写入高速缓存的写入数据(和任何元数据)。

图2是根据一些示例的示例存储系统200的框图。要指出的是,存储系统200意图表示可以采用不同类型的电力备用布置中的任何一个的通用存储系统。

存储系统200包括能够向写入高速缓存存储器204提供电力的备用电力源202(例如包括一个或多个电池的电池布置),所述写入高速缓存存储器204可以被实现为易失性存储器。备用电力源202和写入高速缓存存储器204的组合可以被视为非易失性存储器。在一些示例中,写入高速缓存存储器204可以被实现为包括多个存储器设备(诸如多个dram设备)的存储器模块。这样的存储器模块的示例可以是双列直插存储器模块(dimm),但是可以采用其它类型的存储器模块。在再另外的示例中,写入高速缓存存储器204可以被实现为单个独立存储器设备,或者被实现为布置在电路板上的一组存储器设备。

存储系统200还包括恢复存储介质205,出于响应于到存储系统200的电力丢失而恢复写入数据(和任何相关联的元数据)的目的,可以如上文讨论的那样根据公共格式将写入高速缓存存储器204中的写入数据保存在所述恢复存储介质205中。

存储系统200还包括处理器206。尽管在图2中示出仅一个处理器,但是要指出的是,存储系统200可以包括多个处理器。处理器可以包括微处理器、多核微处理器的核、可编程集成电路设备、可编程门阵列或任何其它类型的硬件处理电路。存储系统200还包括非暂时性机器可读存储介质208,其存储可在处理器206(或替换地,多个处理器)上执行的机器可读指令。

存储在机器可读存储介质208中的机器可读指令包括电力备用布置确定指令210,其用以从由存储系统200使用的不同类型的电力备用布置之中确定给定类型的电力备用布置。不同类型的电力备用布置可以包括使用备用电力源202为第一存储器204而非处理器206供电的第一类型的电力备用布置,以及使用备用电力源202为第一存储器204和处理器206供电的第二类型的电力备用布置。

机器可读指令还可以包括电力丢失数据保护技术选择指令212,其可以基于所确定的由存储系统使用的给定类型的电力备用布置,从对应于不同类型的电力备用布置的不同电力丢失数据保护技术之中动态地选择所选电力丢失数据保护技术,以响应于到存储系统200的电力丢失而用在根据指定格式将写入高速缓存存储器204中的写入数据存储到恢复存储介质205中,所述指定格式与由所述不同电力丢失数据保护技术中的另一个用在响应于电力丢失而存储写入数据中的格式是共同的。

机器可读指令还包括写入数据恢复指令214,其用以使用根据指定格式存储到恢复存储介质的写入数据来恢复写入高速缓存存储器204的写入数据。

在一些示例中,电力备用布置确定指令210、电力丢失数据保护技术选择指令212和写入数据恢复指令214可以是执行根据图1的任务的上文讨论的存储系统代码的部分。

图3是采用第一类型的电力备用布置的示例存储系统300的框图。在图3的示例中,dimm302是图2的写入高速缓存存储器204,其中dimm302可以由备用电力源202供电。响应于来自远程请求设备的写入请求,首先将写入数据和相关联的元数据存储到dimm302中,并且在向持久性盘阵列310写入所述写入数据和相关联的元数据之前向请求设备发送写入请求的确认,所述持久性盘阵列310包括盘驱动器的阵列。

在图3中,微控制器304和闪速存储器306也由备用电力源202供电。然而,在第一类型的电力备用布置的情况下,备用电力源202不向处理器206和可能地第二存储器(未示出)供给电力,所述第二存储器也可以是易失性存储器。微控制器304包括用于在dimm302与闪速存储器306之间传输数据的硬件处理电路(或硬件处理电路和机器可读指令的组合)。闪速存储器306是即使从闪速存储器306移除电力也能够维持闪速存储器306的内容的非易失性存储器。在其它示例中,可以使用不同类型的非易失性存储器306。

存储系统300还包括存储存储系统代码308的机器可读存储介质208。由于存储系统300使用第一类型的电力备用布置,因此可在处理器206上执行的存储系统代码308动态地选择第一电力丢失数据保护技术以保护dimm302中的写入数据和相关联的元数据以防电力丢失。在一些示例中,由于dimm302受备用电力源202支援,因此由存储系统代码308采用的第一电力丢失数据保护技术将用于由远程请求设备请求的写入操作的写入数据(和相关联的元数据)存储到dimm302、而非存储到不受备用电力源202备电的另一存储器。

响应于到存储系统300的电力丢失,当来自备用电力源202的电力可用于dimm302、微控制器304和闪速存储器306时,微控制器304可以从dimm302向闪速存储器306自动传输数据(包括写入数据和相关联的元数据)。

在数据已从dimm302传输至闪速存储器306之后,数据被安全地保持在闪速存储器306中,直到到存储系统300的电力被复原。以此方式,dimm302中的数据将不会由于到存储系统300的电力的丢失而丢失。备用电力源202可以持续达某个指定时间量,在此期间,微控制器304可以执行从dimm302到闪速存储器306的数据传输。

稍后,响应于通过微控制器304检测到复原了到存储系统300的电力,微控制器304可以将数据从闪速存储器306传输回到dimm302。

在数据已从闪速存储器306传输至dimm302之后,数据恢复过程可以继续。例如,可以根据公共格式向恢复存储介质205保存dimm302中的数据,并且可以处理恢复存储介质205中的数据以使得所述数据(包括写入高速缓存的写入数据和元数据)被写入到盘阵列310。在恢复过程期间,可以处理恢复存储介质205中的元数据以确定要如何存储恢复存储介质205中的写入数据的相应部分以将存储系统300恢复到电力丢失之前的状态。例如,如果采用诸如独立盘冗余阵列(raid)冗余性之类的冗余性,那么元数据可以用于确定可以如何以与所采用的冗余性方案一致的方式将写入数据从恢复存储介质205保存到盘阵列310。类似地,如果写入数据涉及快照,那么元数据可以指定要如何按照相应快照将写入数据存储到盘阵列310。

图4是使用第二类型的电力备用布置的另一示例存储系统400的框图,其中备用电力源202可以用较大的电池布置来实现,所述较大的电池布置可以用于向dimm302以及向其它组件供给备用电力,所述其它组件包括处理器206、第二存储器402(其也可以利用易失性存储器实现)和恢复存储介质205。

在根据图4的示例中,写入高速缓存可以包括dimm302和第二存储器402,使得用于来自(一个或多个)远程请求设备的写入请求的写入数据和相关联的元数据可以被存储在dimm302和第二存储器402二者中。这不同于关于图3的存储系统300的情况,其中用于写入请求的写入数据和相关联的元数据因为存储系统300中的备用电力源202不向另一存储器供给电力而必须被存储在dimm302中。

由于存储系统400使用第二类型的电力备用布置,因此可在处理器206上执行的存储系统代码308动态地选择第二电力丢失数据保护技术以用在保护写入高速缓存(包括dimm302和第二存储器402)中的写入数据和相关联的元数据以防到存储系统400的电力丢失。

存储系统400中的较大容量的备用电力源202可以比图3的存储系统300中的较小容量的备用电力源202向更多的组件提供电力。响应于到存储系统400的电力丢失,存储系统代码308可在处理器206上执行以向恢复存储介质205传输在dimm302中和可能地在第二存储器402中保持的写入数据和相关联的元数据。以公共格式向恢复存储介质205传输写入数据和相关联的元数据。

一旦复原了到存储系统400的电力,恢复存储介质205的内容就可以用于恢复写入数据和相关联的元数据以用于以上文结合图3所讨论的方式写入到盘阵列310。

在与图3的存储系统300一起使用的第一电力丢失数据保护技术的情况下,响应于检测到在到存储系统300的电力丢失之后已经恢复了到存储系统300的电力而发生写入数据和相关联的元数据根据公共格式向恢复存储介质205的保存。

相比之下,在与图4的存储系统400一起使用的第二电力丢失数据保护技术的情况下,响应于到存储系统300的电力丢失并且在耗尽备用电力源202之前发生写入数据和相关联的元数据根据公共格式向恢复存储介质205的保存。

图5是示例非暂时性机器可读或计算机可读存储介质500的框图,其存储了根据一些实现方式的可在处理器(或多个处理器)上执行的机器可读指令。机器可读指令包括电力丢失数据保护技术选择指令502,其响应于用在存储系统中的所确定的类型的电力备用布置来从对应于不同类型的电力备用布置的不同电力丢失数据保护技术之中动态地选择所选电力丢失数据保护技术,所述不同电力丢失数据保护技术各自通过根据公共格式保存写入数据来来对电力丢失进行响应。

机器可读指令还包括写入数据存储指令504,其用以响应于存储系统中的电力丢失,使用所选电力丢失数据保护技术根据公共格式向恢复存储介质存储对应于存储系统中的写入操作的写入数据。

机器可读指令还包括恢复指令506,其用以通过使用根据公共格式使用所选电力丢失数据保护技术存储的写入数据来从存储系统的电力丢失进行恢复。

图2、图3或图4的存储介质208或图5的存储介质500可以包括一个或多个不同形式的存储器,包括半导体存储器设备,诸如动态或静态随机存取存储器(dram或sram)、可擦和可编程只读存储器(eprom)、电可擦和可编程只读存储器(eeprom)和闪速存储器;磁盘,诸如固定盘、软盘和可移除盘;其它磁性介质,包括磁带;光学介质,诸如紧凑盘(cd)或数字视频盘(dvd);或其它类型的存储设备。要指出的是,上文讨论的指令可以被提供在一个计算机可读或机器可读存储介质上,或者替换地,可以被提供在分布在可能具有复数个节点的大型系统中的多个计算机可读或机器可读存储介质上。这样的一个或多个计算机可读或机器可读存储介质被视为商品(或制品)的部分。商品或制品可以是指任何制造的单个组件或多个组件。一个或多个存储介质可以位于运行机器可读指令的机器中,或者位于可以通过网络从其下载机器可读指令以供执行的远程站点处。

在前述描述中,阐述众多细节以提供本文所公开的主题的理解。然而,可以在没有这些细节中的一些的情况下实践实现方式。其它实现方式可以包括从上文讨论的细节的修改和变型。意图在于随附权利要求覆盖这样的修改和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1