非易失性存储器系统中的同步镜像的制作方法

文档序号:9583641阅读:391来源:国知局
非易失性存储器系统中的同步镜像的制作方法
【专利说明】非易失性存储器系统中的同步镜像
[0001]相关申请的交叉引用
[0002]本申请要求2013年3月15日提交的US 13/842,079的优先权,其全部内容在此引入以供参考。
技术领域
[0003]本文献通常涉及非易失性存储器系统。
【背景技术】
[0004]计算机系统通常使用存储器模块来存储数据。一些存储器模块由包括非易失性存储器,诸如闪存的存储卡实现。

【发明内容】

[0005]本公开内容描述用于通过跟踪最近写入存储段的序号,在非易失性存储设备中执行同步镜像的方法、系统和设备。在一些实现中,主存储设备定期地与用于同步镜像的辅助存储设备共享最近写入的存储段的序号。所共享的信息在辅助存储设备中存储为逻辑结构,称为标记。当辅助存储设备从崩溃恢复时,恢复存储设备已知的标记与可用在主存储设备的最近更新段的信息比较来确定自辅助存储设备崩溃以来,在主存储设备更新的存储块。
[0006]在一个方面,接收第一数据使得存储在第一不对称存储设备中,其中,不对称存储设备中读操作的延迟(latency)不同于写操作的延迟。将第一写入阶段识别为当前写入阶段。将包括在第一不对称存储设备中的第一段识别为可用于写入数据的下一段,其中,段包括不对称存储设备中的物理存储位置的逻辑映射并且与在单一操作中被擦除的物理存储位置的一部分有关。将第一数据写入第一段,其中,第一数据被写入包括在第一段中的下一可用于写入数据的第一存储块。与把第一数据写入第一段中的下一可用存储块相关,存储与第一段和第一存储块有关的信息连同指示第一段和存储块在第一写入阶段被写入的信息。
[0007]接收第二数据以使得存储在不对称存储器中。识别第一写入阶段已经完成并且第二写入阶段是当前写入阶段。将包括在第一不对称存储设备中的第二段识别为可用于写入数据的下一段。将第二数据写入第二段,其中,数据被写入包括在第二段中的下一可用于写入数据的第二存储块。与把第二数据写入第二段中的下一可用存储块相关,存储与第二段和第二存储块有关的信息连同指示第二段和第二存储块在第二写入阶段被写入的信息。
[0008]实现可以包括下述特征的一个或多个。可以从同步镜像模块接收关于最近被填充数据的段的信息的请求。响应请求,可以确定第一写入阶段和第二写入阶段的哪一个已经完成以及哪一个是当前写入阶段。基于确定第一写入阶段已经完成而且第二写入阶段是当前写入阶段,可以检索所存储的与第一段和第一存储块有关的信息。可以将与第一段和第一存储块有关的信息连同指示第一段和第一存储块在第一写入阶段被写入的信息发送到同步镜像模块。
[0009]同步镜像模块可以发送关于最近被填充数据的段的信息的第一查询。响应第一查询,可以接收与第一段和第一存储块有关的信息。可以将与第一段和第一存储块有关的信息连同指示第一段和第一存储块在第一写入阶段被写入的信息发送到第二不对称存储设备。第二不对称存储设备可以被配置成与第一不对称存储设备类似地存储数据,并且通过网络连接,连接到第一不对称存储设备。与第一段和第一存储块有关的信息被存储在第二不对称存储设备中,作为不同于配置用于存储数据的存储位置的第一存储位置中的第一标记。
[0010]同步镜像模块可以发送关于最近被填充数据的段的信息的第二查询,其中,在发送第一查询之后发送第二查询。响应第一查询,接收与第二段和第二存储块有关的信息。可以与将与第二段和第二存储块有关的信息连同指示第二段和第二存储块在第二写入阶段被写入的信息发送到第二不对称存储设备。与第二段和第二存储块有关的信息被存储在第二不对称存储设备中,作为不同于配置用于存储数据的存储位置的第二存储位置中的第二
ο
[0011]发送第一查询或第二查询可以包括由同步镜像模块确定是否已经达到用于查询有关最近填充数据的段的信息的阈值。基于确定已经达到阈值,可以发送第一查询或第二查询。
[0012]指示第一段和第一存储块在第一写入阶段被写入的信息可以连同第一标记一起,存储在第二不对称存储设备中,以及指示第二段和第二存储块在第二写入阶段被写入的信息可以连同第二标记一起,存储在第二不对称存储设备中。可以从由随机存取存储器(RAM)和非易失性不对称存储器组成的组,选择第一和第二存储位置。
[0013]可以在同步镜像模块处并且从第二不对称存储器接收包括第一标记的副本的消息。消息可以指示第二不对称存储设备已经从故障恢复。基于接收到消息,可以发送关于最近被填充数据的段的信息的新查询。响应新查询,可以接收与新段和新存储块有关的信息,其中,在第一写入阶段期间写入新段。可以将从所接收的第一标记的副本提取的与第一段和第一存储块有关的信息和与新段和新存储块有关的信息比较,当在第一写入阶段或第二写入阶段中写入数据时,执行这种比较。基于比较,可以识别存储在第一不对称存储设备中但未存储在第二不对称存储设备中的数据。可以将所识别的数据发送到第二不对称存储设备。
[0014]从第二不对称存储设备接收的第一标记的副本可以包括指示第一段和第一存储块在第一写入阶段被写入的信息。发送新查询可以包括发送有关在第一写入阶段中最近被填充数据的段的信息的新查询。
[0015]与写入第一段和第一存储块的数据相比,可以在较晚的时间,将数据写入新段和新存储块。识别存储在第一不对称存储设备中但未存储在第二不对称存储设备中的数据可以包括基于与第一段和第一存储块有关的信息和与新段和新存储块有关的信息的比较,识别自第一标记被发送到第二不对称存储设备以来并且在第二不对称存储设备接收第一标记的副本前,已经在第一不对称存储设备中写入的物理存储块。可以使用与第一不对称存储设备有关的转换表,执行对应于所识别的物理存储块的第一不对称存储设备中的逻辑存储块的查找,可以确定逻辑存储块是否保存有效数据。基于逻辑存储块保存有效数据的确定,可以将所识别的物理存储块和相应的逻辑存储块发送到第二不对称存储设备。
[0016]物理存储块可以包括写入页。不对称存储设备中,转换表提供段和写入页与逻辑存储块的映射。选择第一段和第二段中的一个或多个,用于在第一写入阶段和第二写入阶段中存储数据。
[0017]与第一段和第一存储块有关的信息可以包括与第一段有关的第一序号和与第一段中的第一块有关的第二序号。第二序号是从第一段中的初始块的偏移量。
[0018]第一和第二不对称存储设备的每一个包括基于闪存的系统。
[0019]另一方面,接收第一数据以存储在第一不对称存储设备中,其中,不对称存储设备中读操作的延迟不同于写操作的延迟。将包括在第一不对称存储设备中的第一段识别为可用于写入数据的下一段,其中,第一段作为第一段组的一部分被写入,以及其中,段包括不对称存储设备中的物理存储位置的逻辑映射并且与在单一操作中被擦除的物理存储位置的一部分有关。将第一数据写入第一段,其中,第一数据被写入包括在第一段中的下一可用于写入数据的第一存储块。与将第一数据写入第一段中的下一可用存储块相关,存储与第一段和第一存储块有关的信息。
[0020]接收用于存储在不对称存储器中的第二数据。确定第一段被该第一段中存储的数据充满。基于第一段被充满的确定,选择第一不对称存储设备中的第二段组,其中,将数据交替写入第一段组和第二段组。将包括在第二段组中的第二段识别为可用于写入数据的下一段。将第二数据写入第二段,其中,数据被写入包括在第二段中的下一可用于写入数据的第二存储块。与将第二数据写入第二段中的下一可用存储块相关,存储与第二段和第二存储块有关的信息。
[0021]实现可以包括下述特征的一个或多个。可以从同步镜像模块接收有关最近被填充数据的段的信息的请求。响应请求,可以确定第一段和第二段中的哪一个最近填充数据。基于第一段最近被填充数据的确定,可以检索与第一段和第一存储块有关的所存储的信息。可以将与第一段和第一存储块有关的信息发送到同步镜像模块。
[0022]同步镜像模块可以将第一数据和第二数据发送到第二不对称存储设备,其中,第二不对称存储设备被配置成与第一不对称存储设备类似地存储数据,以及其中,通过网络连接,连接第一不对称存储设备和第二不对称存储设备。同步镜像模块可以确定是否已经达到用于查询有关最近填充数据的段的信息的阈值。基于确定已经达到阈值,可以发送有关最近被填充数据的段的信息的请求。响应请求,可以接收与第一段和第一存储块有关的信息。可以将与第一段和第一存储块有关的信息发送到第二不对称存储设备。与第一段和第一存储块有关的信息可以被存储在第二不对称存储设备中,作为与被配置用于存储数据的存储位置不同的存储位置中的第一标记。
[0023]可以在同步镜像模块处并且从第二不对称存储器接收包括第一标记的副本的消息。消息指示第二不对称存储设备已经从故障恢复。基于接收到消息,可以发送有关最近被填充数据的段的信息的新请求。可以响应新请求,接收与新段和新存储块有关的信息,其中,新段包括在第一段组中。可以将从所接收的第一标记的副本提取的、与第一段和第一存储块有关的信息和与新段和新存储块有关的信息比较。当将数据写入包括在第二段组中的段时,可以执行该比较。基于比较,可以识别存储在第一不对称存储设备的第一段组中但未存储在第二不对称存储设备中的数据。可以将所识别的数据发送到第二不对称存储设备。
[0024]与写入第一段和第一存储块的数据相比,可以在较晚的时间,将数据写入新段和新存储块。识别存储在第一不对称存储设备的第一段组中但未存储在第二不对称存储设备中的数据可以包括基于与第一段和第一存储块有关的信息和与新段和新存储块有关的信息的比较,识别自第一标记被发送到第二不对称存储设备以来并且在第二不对称存储设备接收第一标记的副本前,包括在已经在第一不对称存储设备中写入的第一段组中的段的存储块。可以使用与第一不对称存储设备有关的转换表,执行对应于所识别的第一段组中的存储块的第一不对称存储设备中的物理存储块的查找。可以确定物理存储位置是否保存有效数据。可以从物理存储位置检索有效数据。
[0025]存储块可以包括写入页。不对称存储设备中,转换表提供段和写入页与物理存储位置的映射。可以仅当包括在最近存储数据的第一段组中的段被充满时,才将数据存储在包括在第二段组中的段中。
[0026]与第一段和第一存储块有关的信息可以包括与第一段有关的第一序号和与第一段中的第一块有关的第二序号。第二序号是从第一段中的初始块的偏移量。
[0027]另一方面,接收用于在第一不对称存储设备中存储的第一数据,其中,不对称存储设备中读操作的延迟不同于写操作的延迟。将包括在第一不对称存储设备中的第一段识别为可用于写入数据的下一段。段包括不对称存储设备中的物理存储位置的逻辑映射并且与在单一操作中被擦除的物理存储位置的一部分有关。
[0028]将第一数据写入第一段,其中,第一数据被写入包括在第一段中的下一可用于写入数据的第一存储块。与将第一数据写入第一段中的下一可用存储块相关,存储与第一段和第一存储块有关的信息。
[0029]具体实现可以包括下述特征的一个或多个。可以从同步镜像模块接收有关最近被填充数据的段的信息的请求。响应请求,可以检索所存储的与第一段和第一存储块有关的信息。可以将与第一段和第一存储块有关的信息发送到同步镜像模块。
[0030]同步镜像模块可以发送有关最近被填充数据的段的信息的第一查询。响应第一查询,可以接收与第一段和第一存储块有关的信息。可以将与第一段和第一存储块有关的信息发送到第二不对称存储设备。第二不对称存储设备可以被配置成存储与第一不对称存储设备类似的数据,并且通过网络连接,连接到第一不对称存储设备。与第一段和第一存储块有关的信息被存储在第二不对称存储设备中,作为第一存储位置中的第一标记。
[0031]发送第一查询可以包括由同步镜像模块确定是否已经达到用于查询有关最近填充数据的段的信息的阈值。基于确定已经达到阈值,可以发送第一查询。
[0032]第一和第二不对称存储设备的每一个包括基于闪存的系统。
[0033]可以在同步镜像模块处并且从第二不对称存储器接收包括第一标记的副本的消息。消息可以指示第二不对称存储设备已经从故障恢复。基于接收到消息,可以发送有关最近被填充数据的段的信息的新查询。响应新查询,可以接收与新段和新存储块有关的信息。可以将从所接收的第一标记的副本提取的、与第一段和第一存储块有关的信息和与新段和新存储块有关的信息比较。基于比较,可以识别存储在第一不对称存储设备中但未存储在第二不对称存储设备中的数据。可以将所识别的数据发送到第二不对称存储设备。
[0034]与写入第一段和第一存储块的数据相比,可以在较晚的时间,将数据写入新段和新存储块。识别存储在第一不对称存储设备中但未存储在第二不对称存储设备中的数据可以包括基于与第一段和第一存储块有关的信息和与新段和新存储块有关的信息的比较,识别自第一标记被发送到第二不对称存储设备以来并且在第二不对称存储设备接收第一标记的副本前,已经在第一不对称存储设备中写入的物理存储块。可以使用与第一不对称存储设备有关的转换表,查找对应于所识别的物理存储块的第一不对称存储设备中的逻辑存储块。可以确定逻辑存储块是否保存有效数据。基于逻辑存储块保存有效数据的确定,可以将所识别的物理存储块和相应的逻辑存储块发送到第二不对称存储设备。
[0035]物理存储块可以包括写入页。不对称存储设备中,转换表提供段和写入页与逻辑存储块的映射。与第一段和第一存储块有关的信息可以包括与第一段有关的第一序号,以及与第一段中的第一块有关的第二序号。第二序号可以是与第一段中的初始块的偏移量。
[0036]实现上述技术包括一个或多个方法、计算机程序产品和系统。在非瞬态机器可读介质中适当地实现计算机程序产品并且包括可由一个或多个处理器执行的指令。指令被配置成使一个或多个处理器执行上述动作。
[0037]系统包括一个或多个处理器和可由一个或多个处理器执行的、在非瞬态机器可读介质中实现的指令。指令当被执行时,被配置成使一个或多个处理器执行上述动作。系统还包括被配置成执行上述动作的一个或多个模块。模块可以与可由一个或多个处理器执行的、在非瞬态机器可读介质中实现的指令有关。
[0038]在下述附图和描述中阐述了在本说明书中所述的主题的一个或多个方面的细节。从说明书、附图和权利要求,本主题的其他特征、方面和优点将是显而易见的。
【附图说明】
[0039]图1示例将闪存用于存储数据的系统的实例。
[0040]图2A-2B示例包括闪存晶片(dice)的存储设备的实例。
[0041]图3示例在闪存晶片中存储的存储页面的实例。
[0042]图4示例在闪存晶片组上分布的数据分条中,冗余地存储数据的一组闪存晶片的实例。
[0043]图5使用段序号,执行同步镜像的存储器服务器的实例。
[0044]图6示例可以用于将数据写入存储器服务器的存储块的示例性过程。
[0045]图7示例可以用于识别实现同步镜像的存储器服务器中的活动闪存段的示例性过程。
[0046]图8示例可以用于执行使用基于闪存存储的主动和被动存储器服务器之间的同步镜像的示例性过程。
[0047]不同图中相同的参考符号表示相同的元件。
【具体实施方式】
[0048]计算机系统通常包括用在数据和指令的存储中的存储器模块。存储器模块包括通常用于在处理期间,临时数据存储的易失性存储器和用于长期数据存储的磁存储盘的动态随机存取存储器(DRAM)集成电路(ICs)。在一些计算机系统中,除或替代DRAM和磁存储盘,非易失性随机存取存储器(NVRAM)系统用于数据存储。NVRAM可以被配置成提供具有可与DRAM相比的存取粒度的高性能读访问。同时,NVRAM可以提供可与磁存储盘相比的大的非易失性存储容量,同时提供利用与磁存储盘更少物理空间的高密度存储。此外,NVRAM会消耗比DRAM和磁存储盘更少的功率。计算机系统的NVRAM实现其中,包括闪存,诸如NAND闪存和NOR闪存,以及相变存储器。
[0049]在一些实现中,闪存设备包括在其上贴作为集成电路存储器芯片的闪存晶片的一个或多个存储卡。在该上下文中,存储器晶片可以表示或称为存储器芯片,以及可以互换地使用两个术语“晶片”或“芯片”。闪存设备可以表示或称为在其上贴闪存晶片的一个存储卡,以及可以互换地使用术语“闪存设备”、“闪存卡” “存储器设备”和“存储卡”。
[0050]大规模处理数据的一些计算机系统,诸如企业计算机系统或服务器群可以使用大量存储器。这些系统可以使用托管多个存储卡的存储器设备,每一卡上具有大量闪存晶片或芯片。计算机系统可以实现如数据分条、数据镜像和奇偶编码(类似独立磁盘冗余阵列)以便提供性能改进和数据可靠性。
[0051]在某种意义上,数据分条(data striping)可以指逻辑地拆分顺序数据,例如文件,使得从不同物理存储设备如安装在存储卡上的不同闪存晶片来存储和访问顺序逻辑段的管理和访问。由此通过分条创建的数据的每一逻辑部分称为数据分条。
[0052]数据镜像(data mirroring)是将逻辑存储器卷实时复制到单独的物理存储器以确保连续可用性。镜像卷是单独卷副本的完整逻辑表示。用在闪存设备中的一种数据镜像是同步镜像,其中,用在主存储器设备中的一种数据镜像是同步镜像,其中,在一个或多个辅助存储器设备中克隆或复制在主存储器设备中存储的数据。在一些实现中,使用两个服务器系统或多服务器系统,实现同步镜像,当正在位于服务器的一个中的存储卡中进行写入时,将正在写入的数据发送到网络链路上的第二服务器,其中,在相对于第二服务器上的存储卡,相同操作被执行,使得如果第一服务器故障,第二服务器能接管并且恢复操作,而不丢失任何正在进行的写入。两个服务器上的写入操作同时发生。
[0053]在同步镜像系统中,主存储器设备可以称为主动服务器,而辅助存储器设备可以称为被动服务器。主动和被动服务器上的逻辑相对于主动服务器的本地存储和被动服务器的远程存储,协调用于存储应用数据的写入操作。该系统必须相对于主动服务器的本地存储以及被动服务器的远程存储,等待写入操作完成。仅当操作均完成时,向发布应用或操作系统确认写入操作。由于同步镜像,存储器写入操作看来花费更长时间,因为在本地存储和远程存储上执行写入操作。
[0054]故障可能发生在同步镜像系统中并且能采用许多形式。例如,主动服务器中的本地存储元件可能崩溃,但与被动服务器的网络连接可用,因为是被动服务器和远程存储元件。作为另一例子,网络连接可能故障,使得仅在主动服务器的本地存储上,而不在被动服务器的远程存储上执行写入操作。或者,可以在网络上传输写入操作,但在由远程端接收操作前,被动服务器崩溃。
[0055]同步镜像系统应当能重新创建当崩溃发生并且已经替换故障的存储器设备或已经重启服务器后,主动和被动服务器上的存储元件继续同步的状态。在该上下文中,处于同步是指当在主动和被动服务器上查询对应于存储器块的特定逻辑块地址时,应用或操作系统在主动和被动服务器中均能有效地获得相同数据内容,由该系统提供
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1