管理存储设备中的逻辑地址的数据的先前版本的制作方法

文档序号:13041708阅读:162来源:国知局
管理存储设备中的逻辑地址的数据的先前版本的制作方法与工艺

本文描述的实施例通常涉及管理存储设备中的逻辑地址的数据的先前版本(priorversion)。



背景技术:

作为称为检查点过程(checkpointing)的过程的一部分,可在不同时间点备份存储设备中的数据,以允许将数据恢复到保存的时间点。操作系统检验点过程涉及操作系统存储更新的数据的先前版本以创建恢复点或检查点,以允许用户将数据的状态返回到那个检查点。然而,操作系统检验点过程易受恶意软件攻击的影响,恶意软件能攻击操作系统和应用文件以破坏检查点数据,来防止用户将数据恢复到安装恶意软件之前的点。此外,基于操作系统的检验点过程易受其它软件干扰的影响,并且为了检验点过程适当地工作,防病毒程序必须被禁用。

虚拟机检验点过程涉及虚拟机监视改变以及存储更新的数据的先前版本以允许将虚拟机的状态恢复到检查点时间。虚拟机检验点过程也易受恶意软件攻击的影响。

系统备份包括将截至检查点时间的驱动器(drive)中的所有数据备份到存储设备的另一分区或另一存储设备。系统备份运行在主机系统上并且消耗大量主机资源,这可导致主机系统处的性能降级。此外,基于主机的系统备份经常是慢的,并且需要大量时间来备份和恢复。

在本领域存在对于提供用于获取写到存储设备的数据的检查点的改进解决方案的需要。

附图说明

参考附图(其未按比例绘制)通过示例来描述实施例,所述附图中相似的附图标记指类似的元件。

图1说明了其中主机系统相对于存储设备执行输入/输出(i/o)操作的存储系统的实施例。

图2说明了逻辑到物理映射的实施例。

图3说明了检查点信息中的信息的实施例。

图4说明了当仅保持一个检查点时,处理检查点命令的操作的实施例。

图5说明了当可保持多个检查点时,处理检查点命令的操作的实施例。

图6说明了处理对存储设备的写请求的操作的实施例。

图7说明了处理对于恢复信息的请求的操作的实施例。

图8说明了当可保持多个检查点时,处理恢复请求的操作的实施例。

图9说明了当仅保持一个检查点时,处理恢复请求的操作的实施例。

图10说明了处理碎片整理(defragmentation)操作的操作的实施例。

图11说明了处理对于有关逻辑地址的数据的先前版本的信息的差分请求的操作的实施例。

图12说明了执行存储设备的初始化的操作的实施例。

图13说明了其中可实现图1的主机系统的系统。

具体实施方式

现有技术检验点过程和备份解决方案可易受来自恶意软件的攻击的影响,并且可消耗大量主机计算资源。

描述的实施例将数据的先前版本保持在将新数据或更新写到存储装置中的新位置的存储设备中。逻辑到物理映射包含指示是否存在逻辑地址的数据的先前版本的每个逻辑地址的版本信息。对于具有多个检查点的实现,版本信息标识建立数据的先前版本的检查点。在接收写时,有关要更新的逻辑地址的逻辑和物理地址的信息被写到当前检查点的检查点信息。将写数据写到存储设备中与具有当前版本的物理地址不同的新位置,其中有关具有数据的先前版本的物理地址的信息被保持在检查点信息中。在恢复操作、碎片整理操作和差分操作期间,具有数据的先前版本的逻辑地址的物理地址可被用来将数据恢复到先前版本,确定那个物理地址是否可被回收,并且可被用来提供有关逻辑地址的数据的先前版本的信息。

利用描述的实施例,在存储设备控制器的控制逻辑和存储设备中实现检验点过程使得恢复规程不太易受通常操作在应用和操作系统级的恶意软件的影响。此外,加密技术可由存储设备控制逻辑用来认证来自主机系统的检查点相关通信,以防止恶意软件发出存储设备检验点过程命令来破坏存储设备中的检查点数据。管理存取控制也可被用来认证从主机系统到驱动器的检查点相关通信。

在后面的描述中,陈述了多个特定细节,诸如逻辑实现、操作码、规定操作数的部件、资源划分/共享/复制实现、系统组件的类型和相互关系以及逻辑划分/集成选择,以便提供对本发明的更透彻的理解。然而,本领域技术人员将意识到,没有这样的特定细节也可实践本发明。在其它实例中,尚未详细示出控制结构、门级电路以及全软件指令序列,以免使本发明模糊不清。本领域普通技术人员利用所包含的描述将能够实现适当的功能性,而不用过多实验。

在说明书中提到“一个实施例”、“实施例”、“示例实施例”等指示描述的实施例可包含具体特征、结构或特性,但每一个实施例可能不一定包含该具体特征、结构或特性。此外,这样的短语不一定指相同的实施例。某些实施例涉及存储设备电子装配。实施例包含用于形成电子装配的方法和设备两者。

图1说明了具有将数据(诸如可从其它附连的计算机系统和设备传递的用户数据)存储到存储设备102的主机系统100的存储环境的实施例。主机系统100包含操作系统104,所述操作系统104包含存储设备驱动器106以管理存储设备102中的数据的存储。连接108提供从主机100到存储设备102的连接。

存储设备102包含控制器110以执行存储设备操作,并对来自主机100的要存取存储设备102的存储媒体112中的数据的请求做出响应。控制器110包含具有代码和处理元件的控制逻辑114以执行存储设备102操作。控制逻辑114可具有包含逻辑到物理映射200的存储器116,所述逻辑到物理映射200将由主机系统100使用的逻辑地址映射到存储媒体112中的物理地址。控制逻辑114进一步保持具有关于自从创建检查点以来的逻辑地址的数据的先前版本的信息的检查点信息300,所述检查点信息300包括正在被更新的数据被保存用于恢复操作的时间点。在一个实施例中,如果在存储设备102中仅保持一个检查点,则可能仅存在检查点信息300的一个实例。如果控制逻辑114实现多个检查点,那么为每个检查点保持检查点信息300的实例,提供具有自从检查点以来已经改变的数据的先前版本的物理地址。

在一个实施例中,对逻辑地址的更新被写到存储媒体102中的新的可用物理地址,而不盖写具有逻辑地址的数据的之前版本的物理地址。用这种方式,逻辑地址的数据的之前版本被保持在之前版本被写到的之前物理地址。在一个实施例中,日志结构的阵列可被用来确定用于逻辑地址的更新的新物理地址。

控制逻辑114可进一步保持在处理检查点命令之前被用来认证主机系统100的安全密钥118。密钥118可以是任何安全技术(诸如主机认证机制)的一部分,例如用来解密来自主机102的消息的公用密钥、共享密钥、口令或cookie等。在一个实施例中,主机系统100可包含可信平台模块(tpm)模块以生成公用/私用密钥对,并将公用密钥发送到存储设备,以用来解密来自主机系统100的利用私用密钥来加密的通信以认证主机。

存储媒体112可存储一个或多个检查点令牌120,其中检查点令牌120被用来标识创建的检查点、在控制器110存储器中保持的逻辑到物理映射的拷贝200a以及检查点信息的拷贝300a。控制器112中的逻辑到物理映射200和检查点信息300可作为拷贝200a、300a定期存储在存储媒体112中。

存储设备102可包括硬盘驱动器、固态驱动器(ssd)、闪速驱动器等。对于ssd实现,存储媒体112可包括闪速存储器单元的nand晶片(die)、铁电随机存取存储器(fetram)、基于纳米线的非易失性存储器、三维(3d)交叉点存储器(诸如相变存储器(pcm))、结合了忆阻器技术的存储器、磁阻随机存取存储器(mram)、自旋转移扭矩(stt)-mram、单级单元(slc)闪速存储器、能源支持的(电池/超电容器)dram以及其它电可擦除可编程只读存储器(eeprom)型设备。对于硬盘驱动器实现,存储媒体112可包括磁盘驱动器。

主机100可通过接口108(诸如总线接口)与存储设备102通信。主机100和存储设备102可位于相同的机壳中或分离的机壳中。备选地,主机系统100可通过网络与存储设备102通信。

主机100和存储设备102可包含输入/输出(i/o)接口(诸如串行高级技术附连(sata)接口)以允许在其间的通信,并且包含耦合主机100和存储设备102的符合sata的总线。在其它实施例中,可使用其它类型的i/o接口和总线互连,诸如串行附连小型计算机系统接口(scsi)(或简单地sas)、外围组件互连高速(pcie)等。

图2说明了一个逻辑地址202的逻辑到物理映射200i的实例的实施例,所述逻辑到物理映射200i标识存储媒体112中的物理地址204(诸如块地址)以及版本信息206,在所述物理地址204存储逻辑地址202的当前/活动数据,所述版本信息206标识自从最后的检查点以来数据已经改变时的检查点。如果存储设备102仅具有一个检查点,那么版本信息206可指示是否存在数据的先前版本。如果存在多个检查点,那么版本信息206指示截至检查点的时间的数据的先前版本的检查点或时间点。例如,在多检查点实现中,如果逻辑地址202的数据在检查点i和j之间改变了,那么那个逻辑地址的版本信息206将指示检查点i,因为检查点i的检查点信息300i中的数据的之前版本将具有截至检查点i的时间点的逻辑地址202的数据的版本。

在一个实施例中,检查点信息300可仅包含自从当前检查点以来已经改变的那些逻辑地址的映射信息200i。在备选实施例中,检查点信息300可包括截至检查点时间为止进行的整个逻辑到物理映射200的拷贝。利用这个备选的实施例,在写操作期间不需要保存检查点信息,因为检查点信息300已经具有截至检查点时间的所有逻辑到物理映射。

图3说明了检查点i的检查点信息300i中的条目302的实施例,包含具有截至检查点i的数据的先前版本的物理地址306和逻辑地址304。对于自从检查点时间以来更新的每个逻辑地址,将存在条目302。

可能存在检查点信息300i的多个实例,每个检查点一个,具有截至检查点为止的逻辑地址302的物理地址。如所提到的,因为对逻辑地址302的更新被写到存储媒体112中的新位置,所以在用于之前版本的物理地址306处保持逻辑地址的不同版本。

图4说明了在仅保持一个检查点的实现中由控制逻辑114执行以处理从主机100驱动器106接收的检查点命令的操作的实施例。在接收(在框400)检查点命令时,控制逻辑114为新检查点清除(在框402)检查点信息300,并保存(在框404)提供有关检查点的信息的检查点令牌120。清除(在框406)逻辑到物理映射200中的所有逻辑地址的版本信息206,以指示不存在截至检查点时间的数据的之前版本。

图5说明了在可保持多个检查点的实现中由控制逻辑114执行以处理从主机100驱动器106接收的检查点命令的操作的实施例。在接收(在框500)检查点命令时,控制逻辑114创建新检查点信息300i的实例。保存(在框504)标识新检查点的令牌120,并且增加(在框506)当前检查点编号以用于新检查点编号。

图6说明了在可存在多个检查点的实现中由控制逻辑114执行的在建立检验点过程之后处理具有写数据的对目标逻辑地址的写请求的操作的实施例。在接收(在框600)对于目标逻辑地址的写请求时,做出关于目标逻辑地址202的逻辑到物理映射条目200i中的版本信息206是否指示当前检查点或最后创建的检查点的确定(在框602)。如果不是,那么控制逻辑114在映射条目200i中的版本信息206中标识的检查点的检查点信息300中指示(在框604)逻辑到物理映射200i中指示的目标逻辑地址和它的物理地址。用这种方式,截至逻辑地址的最后纪元时间或检查点的逻辑到物理映射被保存在版本信息206中标识的检查点的检查点信息中。更新(在框606)目标逻辑地址的逻辑到物理映射200i中的版本信息206,以指示当前检查点版本。在仅实现单个检查点的实现中,版本信息可以只具有指示是否存在检验点过程的指示符或标志。

如果(从框602的“是”分支)版本信息206指示当前检查点,这指示具有截至检查点的时间的数据的先前版本的物理地址已经被存储在检查点信息300中,或者从框606,控制逻辑114写(在框608)到在存储设备中与具有正在被更新的逻辑地址的当前数据的物理地址不同的位置的目标物理地址。例如,如果日志结构的阵列被用来表示如何写数据,那么更新可被写到由日志的最近使用的(mru)结尾表示的物理地址。更新(在框610)目标逻辑地址的逻辑到物理映射200i,以指示数据被写到的新目标物理地址。

利用图6的操作,具有逻辑地址的之前检查点或纪元的数据的先前版本的物理地址被指示在那个检查点的检查点信息300中,以允许恢复截至不同检查点时间的数据。用这种方式,当前纪元的进入的写将被存储在新物理地址,并且具有来自较老纪元的数据的物理地址被存储在那个纪元/检查点的检查点信息中。

图7说明了当可保持多个检查点时由控制逻辑114执行以处理对于恢复信息的请求的操作的实施例。在接收(在框700)来自主机存储设备驱动器106的对于恢复信息的请求时,控制逻辑114确定(在框702)保持检查点信息300i的一个或多个检查点,并返回(在框704)有关检查点的信息。

图8说明了由控制逻辑114执行以处理对截至如在根据图7的操作返回到主机存储设备驱动器106的恢复信息中所指示的多个检查点中的选择的检查点j的时间点的恢复数据的请求的操作的实施例。在从主机100接收(在框800)检查点中的一个检查点j的选择时,控制逻辑114从活动逻辑到物理映射200中的第一逻辑地址i开始。控制逻辑114确定(在框804)在逻辑地址i的版本信息206中指示的当前版本检查点k。如果(在框806)逻辑地址i的确定的当前检查点k大于要恢复的选择的检查点j,那么逻辑地址i的当前数据在比要恢复的选择的检查点j更后的检查点或时间。

如果(在框806)要恢复的选择的检查点j在时间上早于逻辑地址i的版本信息206中的当前检查点k,那么控制逻辑114确定(在框808)逻辑地址i的活动逻辑到物理映射200i中的物理地址p。控制逻辑114确定(在框810)在j和k之间的检查点版本的检查点信息300中是否引用物理地址p。如果在版本j和k之间的任何检查点信息300中都不引用物理地址p,那么释放(在框812)那个物理地址p以用于垃圾收集。如果在版本j和k之间的其它检查点信息300中引用了物理地址p(从框810的“是”分支),或者在释放物理地址p之后(从框812),利用选择的检查点版本j的检查点信息300j中的物理地址306来更新(在框814)活动逻辑到物理映射200i中的物理地址204。

在更新物理地址204(在框814)之后,或者如果选择的版本j与逻辑地址i的当前版本k相同或比逻辑地址i的当前版本k大,那么如果(在框816)在逻辑到物理映射200中存在更多地址要考虑,那么存取逻辑到物理映射200中的下一逻辑地址i,例如增加i,并且控制继续回到框804以处理那个下一逻辑地址。否则,如果在逻辑到物理映射200中不再存在逻辑地址要处理,则控制结束。

利用所描述的实施例,数据的先前版本留在存储媒体112的物理地址中,因为新的写或更新被写到新位置,并且检查点信息300保持不同检查点的数据的先前版本的物理地址,使得可以从对于不同检查点在检查点信息300中标识的物理地址存取先前版本。

主机存储设备驱动器106可使用不同检查点的接收的版本信息来请求读截至检查点的数据。响应于读请求,控制逻辑114将确定活动逻辑到物理映射200中的请求的逻辑地址的条目中的版本信息206中的当前检查点。如果请求的检查点比当前检查点早,那么控制逻辑114将对于请求的检查点存取检查点信息300,以确定截至请求的检查点的请求的逻辑地址304的物理地址306,并且从对于请求的检查点在检查点信息300中指示的那个物理地址读并返回数据。如果请求的检查点不比在逻辑地址的版本信息300中指示的当前检查点早,那么控制逻辑114返回对于请求的逻辑地址的活动逻辑到物理映射200中指示的物理地址的数据。

图9说明了当仅保持单个检查点时由控制逻辑114执行以将存储媒体112中的逻辑地址的数据恢复到检查点的操作的实施例。在从主机存储设备驱动器106接收(在框900)恢复请求时,控制逻辑114对于恢复应用于的存储媒体112中的逻辑地址中的每个逻辑地址执行框902至908处的操作的循环。对于逻辑地址i,如果(在框904)逻辑地址i的版本信息206指示存在对于检查点所存储的数据的先前版本,那么控制逻辑114将逻辑到物理映射200中的逻辑地址i的物理地址204设置(在框906)成对于逻辑地址i在检查点信息300中指示的物理地址306。否则,如果(从框904的“否”分支)版本信息206指示不存在数据的先前版本,或者在框906设置物理地址之后,控制继续进行框908以考虑用于存储媒体112的下一逻辑地址,直到考虑了所有逻辑地址。

图10说明了由控制逻辑114执行以处理来自主机存储设备驱动器106的碎片整理命令或在独立于主机100而自动执行碎片整理操作时的操作的实施例。在发起(在框1002)碎片整理操作时,控制逻辑114对于受到碎片整理的存储媒体112中的物理地址(即保持用户数据的)中的每个物理地址执行框1002至1012处的操作的循环。对于物理地址i,控制逻辑114确定(在框1004)与物理地址i关联的逻辑地址,所述逻辑地址可由具有存储媒体112的物理地址i、日记或其它元数据的页面数据来确定。控制逻辑114确定(在框1006)逻辑到物理映射200或任何检查点信息300是否将确定的逻辑地址映射到物理地址i。如果是,那么那个物理地址寻址具有当前数据的位置(在逻辑到物理映射200中),或者在检查点信息300中保持的数据的先前版本,并且不应当受到垃圾收集和被回收。如果(在框1006)在逻辑到物理映射200或任何检查点信息300中未标识物理地址i,那么那个物理地址i被指示为对于垃圾收集/回收可用。否则,如果(在框1006)在映射200或检查点信息300中标识了物理地址i,那么那个物理地址i被保留并且不受到垃圾收集/回收。从框1008或1010,控制继续(在框1012)回到框1002,以考虑可受到垃圾收集的任何另外的物理地址,其中垃圾收集释放物理地址以使得对于另外的写可用。

图10的描述的实施例在使存储媒体112中的物理地址受到垃圾收集之前确定那个物理地址是否具有正在为检查点保存的数据的任何先前版本或当前数据,以避免擦除打算保持的数据。

图11说明了由控制逻辑114执行以处理来自主机存储设备驱动器106的差分请求来存取有关一个或多个检查点的数据的先前版本的信息的操作的实施例。在接收(在框1100)差分请求时,控制逻辑114对于逻辑到物理映射200中的每个逻辑地址i执行框1102至1108处的操作的循环。如果(在框1104)逻辑地址i的版本信息206指示(在框1104)存在已经为一个或多个检查点保存的数据的先前版本,那么控制逻辑114在应答中包含(在框1106)有关在检查点信息300中标识的逻辑地址i的数据的一个或多个先前版本的信息。包含在应答中的信息可指示为逻辑地址提供数据的先前版本的检查点,并且可选地可包含数据的先前版本。从框1104的“否”分支,或从框1106,对于存储媒体112的下一逻辑地址,控制继续(在框1108)回到框1102。在搜集所有逻辑地址的应答中的信息之后,应答信息被返回(在框1110)到主机100以处理并呈现给用户。

差分请求可被用作碎片整理操作的一部分,以获得有关存储媒体112中的逻辑地址的数据的不同版本的信息。

图12说明了由控制逻辑114执行以初始化存储设备102(诸如作为上电或初始化例程的一部分)的操作的实施例。作为初始化的一部分(在框1200),控制逻辑114通过将存储媒体112中的逻辑到物理映射200a加载进存储器116中来初始化(在框1202)逻辑到物理映射200。如果(在框1204)存在检查点令牌120,那么控制逻辑从检查点令牌确定(在框1206)最近的检查点,并且对于最近的检查点初始化(在框1208)检查点信息300,以使得对于另外的检查点操作可用。如果对于多个检查点存在检查点信息300的多个实例,则这样的多个实例可在初始化期间被加载进存储器116中,或者随后当恢复操作需要时被加载。

如果存储媒体112中的空间达到临界水平,那么控制逻辑114可执行空间管理操作,诸如删除一个或多个检查点的检查点信息,因此在检查点信息中标识的物理地址能被回收,或者通过停止保存数据的先前版本(通过在检查点信息中对于逻辑地址不再指示数据的先前版本的物理地址)。备选地,存储设备可102可向主机存储设备驱动器106发送请求选择如何继续(诸如删除检查点信息、停止另外的检查点操作等)的消息。

类似地,应当意识到,在本发明实施例的前述描述中,各种特征有时一起组合在单个实施例、附图或其描述中,为了使本公开流畅,有助于理解各个发明方面中的一个或多个方面起见。然而,公开的这个方法不被解释为反映与在每个权利要求中明确阐述的特征相比所要求权利的主题需要更多的特征的意图。而是,如随附权利要求反映的,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循详细描述的权利要求由此被明确结合到这个详细描述中。

存储设备驱动器106和控制逻辑114的所描述的操作可使用标准编程和/或工程技术来产生软件、固件、硬件或它们的任何组合来实现为方法、装置或计算机可读存储介质。所描述的操作可实现为在“计算机可读存储介质”中保持的代码或逻辑,所述计算机可读存储介质可直接执行功能,或者其中处理器可读并执行来自计算机可读存储介质的代码。计算机可读存储介质包含电子电路、存储材料、无机材料、有机材料、生物材料、壳体、外壳、涂层和硬件中的至少一个。计算机可读存储介质可包括但不限于磁存储介质(例如硬盘驱动器、软盘、磁带等)、光存储装置(cd-rom、dvd、光盘等)、易失性和非易失性存储器设备(例如eeprom、rom、prom、ram、dram、sram、闪速存储器、固件、可编程逻辑等)、固态设备(ssd)等。计算机可读存储介质可进一步包括在硬件设备(例如集成电路芯片、可编程逻辑设备、可编程门阵列(pga)、现场可编程门阵列(fpga)、专用集成电路(asic)等)中实现的数字逻辑。更进一步,实现所描述的操作的代码可在“传送信号”中实现,其中传送信号可通过空间或通过传送媒体(诸如光纤、铜线等)来传播。其中编码代码或逻辑的传送信号可进一步包括无线信号、卫星传送、无线电波、红外信号、蓝牙等。嵌入在计算机可读存储介质上的程序代码可作为传送信号从传送站或计算机传送到接收站或计算机。计算机可读存储介质不仅仅由传送信号组成,而且包含有形组件。本领域技术人员将认识到,可对这个配置进行许多修改,而不背离本发明的范围,并且制品可包括在本领域已知的适合的信息承载介质。

图13说明了其中可实现组件的系统1300的实施例。系统1300包含通过总线1306与易失性存储器设备1308和非易失性存储设备1310(诸如存储设备102)通信的处理器1304(诸如在主机系统100中),在所述易失性存储器设备1308中高速缓存正在执行的程序、操作数和参数(包含操作系统104和存储设备驱动器106),而在所述非易失性存储设备1310中可存储数据和程序。处理器1504还可与输入/输出(i/o)设备1312a、1312b通信,所述i/o设备可包括输入设备、显示设备、图形卡、端口、网络接口等。非易失性存储设备1310可被安装到系统机壳1300(诸如在存储驱动器隔间中)或者通过端口接口或通过网络连接到系统1300。

示例

如下示例涉及此外的实施例。

示例1是一种具有计算机程序指令的计算机可读存储媒体,当所述指令被执行时促使相对于存储设备执行操作,所述操作包括:提供为被用来存取所述存储设备的每个逻辑地址指示所述存储设备中的具有所述逻辑地址的当前数据的物理地址的逻辑到物理映射,以及指示在所述存储设备中的与在所述逻辑到物理映射中提供的所述物理地址不同的物理地址处是否存在所述逻辑地址的数据的先前版本的版本信息;接收指向目标逻辑地址的写;响应于所述逻辑到物理映射指示不存在所述目标逻辑地址的所述数据的先前版本,执行:将有关在所述逻辑到物理映射中指示的所述物理地址和所述目标物理地址的信息包含在检查点信息中;更新所述目标逻辑地址的所述版本信息以指示存在数据的先前版本;将用于所述写的数据写到在所述存储设备中的与具有所述目标逻辑地址的所述当前数据的所述物理地址不同的位置处的目标物理地址;以及对于所述目标逻辑地址更新所述逻辑到物理映射以指示所述目标物理地址。

在示例2中,示例1和3-12的主题可选地能包含:所述操作进一步包括:响应于所述逻辑到物理映射指示存在对于所述目标逻辑地址的所述数据的先前版本,执行:将用于所述写的数据写到所述存储设备中的目标物理地址;以及对于所述目标逻辑地址更新所述逻辑到物理映射以指示所述目标物理地址而不更新所述检查点信息。

在示例3中,示例1-2和4-12的主题可选地能包含:所述计算机可读存储媒体在所述存储设备中实现,其中主机系统通过数据接口存取所述存储设备中的数据,其中所述操作进一步包括:响应于处理来自所述主机系统的检查点命令,执行:擦除所述检查点信息;将所述逻辑到物理映射中的所述逻辑地址中的每个逻辑地址的所述版本信息设置成指示不存在所述逻辑地址的数据的先前版本。

在示例4中,示例1-3和5-12的主题可选地能包含:所述计算机可读存储媒体在所述存储设备中实现,其中主机系统通过数据接口存取所述存储设备中的数据,其中响应于所述检查点命令,所述操作进一步包括:保持由所述检查点命令建立的检查点的安全密钥,其中所述存储设备使用所述密钥来认证与所述检查点相关的接收的命令。

在示例5中,示例1-4和6-12的主题可选地能包含:所述计算机可读存储媒体在所述存储设备中实现,其中主机系统通过数据接口存取所述存储设备中的数据,其中所述操作进一步包括:响应于处理来自所述主机系统的恢复请求,为所述逻辑到物理映射中的每个逻辑地址执行:响应于所述逻辑地址的所述版本信息指示存在所述数据的先前版本,执行:将所述逻辑到物理映射中的所述逻辑地址的所述物理地址设置成对于所述逻辑地址在所述检查点信息中指示的所述物理地址;以及将所述版本信息设置成指示不存在所述数据的先前版本。

在示例6中,示例1-5和7-12的主题可选地能包含:所述计算机可读存储媒体在所述存储设备中实现,其中主机系统通过数据接口存取所述存储设备中的数据,其中所述计算机可读存储媒体在所述存储设备中实现,其中主机系统通过数据接口存取所述存储设备中的数据,其中所述操作进一步包括:响应于处理来自所述主机系统的差分请求,返回有关其版本信息指示所述逻辑地址的所述数据自从最后的检查点已经改变的每个逻辑地址的信息。

在示例7中,示例1-6和8-12的主题可选地能包含:将指示检查点的令牌保存到所述存储设备;将所述逻辑到物理映射和所述检查点信息保存到所述存储设备;在所述存储设备的初始化期间,处理所述令牌以确定存在所述检查点;以及响应于处理所述令牌,初始化所述逻辑到物理映射和所述检查点信息以在所述初始化之后使用。

在示例8中,示例1-7和9-12的主题可选地能包含:响应于发起碎片整理操作,为是碎片整理的候选的所述逻辑到物理映射中的物理地址,回收未包含在所述逻辑到物理映射中的映射和所述检查点信息中的所选择的物理地址。

在示例9中,示例1-8和10-12的主题可选地能包含:在多个检查点的当前检查点期间接收所述写,其中所述操作进一步包括:响应于所述目标逻辑地址的所述版本信息不指示所述当前检查点,将有关在所述逻辑到物理映射中指示的所述物理地址和所述目标逻辑地址的信息包含在所述目标逻辑地址的所述版本信息中指示的所述检查点的所述检查点信息中,其中所述更新所述版本信息包括在所述目标逻辑地址的所述版本信息中指示所述当前检查点。

在示例10中,示例1-9和11-12的主题可选地能包含:所述计算机可读存储媒体在所述存储设备中实现,其中主机系统存取所述存储设备中的数据,其中所述操作进一步包括:接收恢复命令以恢复截至包括保持检查点信息的多个检查点中的一个检查点的选择的检查点的数据;对于所述逻辑到物理映射中的每个逻辑地址i执行:响应于所述逻辑地址i的所述版本信息中的当前版本检查点大于所述选择的检查点,执行:如果所述物理地址在检查点信息中对于所述选择的检查点和所述当前版本检查点之间的检查点未被引用,则释放对于所述逻辑地址i在所述逻辑到物理映射中指示的所述物理地址;以及将对于所述逻辑地址i在所述逻辑到物理映射中的所述物理地址更新成对于所述逻辑地址i对于所述选择的检查点在所述检查点信息中指示的所述物理地址。

在示例11中,示例1-10和12的主题可选地能包含:所述操作进一步包括:接收要在当前检查点期间读取在比所述当前检查点更早的请求的检查点的目标逻辑地址的数据的请求;当所述请求的检查点的所述检查点信息提供所述目标逻辑地址的物理地址时,从所述请求的检查点的所述检查点信息中的所述目标逻辑地址所提供的所述物理地址返回数据;以及当所述请求的检查点的所述检查点信息未提供所述目标逻辑地址的物理地址时,从所述逻辑到物理映射中映射到所述目标逻辑地址的所述物理地址返回数据。

在示例12中,示例1-11的主题可选地能包含:计算机可读存储介质包括控制器以管理对存储设备的存取。

示例13是存储设备,包括:具有控制逻辑的控制器,当所述控制逻辑被执行时促使相对于存储设备执行操作,所述操作包括:提供为被用来存取所述存储设备的每个逻辑地址指示所述存储设备中的具有所述逻辑地址的当前数据的物理地址的逻辑到物理映射,以及指示在所述存储设备中的与在所述逻辑到物理映射中提供的所述物理地址不同的物理地址处是否存在所述逻辑地址的数据的先前版本的版本信息;接收指向目标逻辑地址的写;响应于所述逻辑到物理映射指示不存在所述目标逻辑地址的所述数据的先前版本,执行:将有关在所述逻辑到物理映射中指示的所述物理地址和所述目标物理地址的信息包含在检查点信息中;更新所述目标逻辑地址的所述版本信息以指示存在数据的先前版本;将用于所述写的数据写到在所述存储设备中的与具有所述目标逻辑地址的所述当前数据的所述物理地址不同的位置处的目标物理地址;以及对于所述目标逻辑地址更新所述逻辑到物理映射以指示所述目标物理地址。

在示例14中,示例13和15-18的主题可选地能包含:所述操作进一步包括:响应于所述逻辑到物理映射指示存在所述目标逻辑地址的所述数据的先前版本,执行:将用于所述写的数据写到所述存储设备中的目标物理地址;以及对于所述目标逻辑地址更新所述逻辑到物理映射以指示所述目标物理地址而不更新所述检查点信息。

在示例15中,示例13-14和16-18的主题可选地能包含:主机系统通过数据接口存取所述存储设备中的数据,其中所述操作进一步包括:响应于处理来自所述主机系统的检查点命令,执行:擦除所述检查点信息;以及将所述逻辑到物理映射中的所述逻辑地址中的每个逻辑地址的所述版本信息设置成指示不存在所述逻辑地址的数据的先前版本。

在示例16中,示例13-15、17、18的主题可选地能包含:主机系统通过数据接口存取所述存储设备中的数据,其中所述操作进一步包括:响应于处理来自所述主机系统的恢复请求,为所述逻辑到物理映射中的每个逻辑地址执行:响应于所述逻辑地址的所述版本信息指示存在所述数据的先前版本,执行:将所述逻辑到物理映射中的所述逻辑地址的所述物理地址设置成对于所述逻辑地址在所述检查点信息中指示的所述物理地址;以及将所述版本信息设置成指示不存在所述数据的先前版本。

在示例17中,示例13-16和18的主题可选地能包含:在多个检查点的当前检查点期间接收所述写,其中所述操作进一步包括:响应于所述目标逻辑地址的所述版本信息不指示所述当前检查点,将有关在所述逻辑到物理映射中指示的所述物理地址和所述目标逻辑地址的信息包含在所述目标逻辑地址的所述版本信息中指示的所述检查点的所述检查点信息中,其中所述更新所述版本信息包括在所述目标逻辑地址的所述版本信息中指示所述当前检查点。

在示例18中,示例13-17的主题可选地能包含:主机系统存取所述存储设备中的数据,其中所述操作进一步包括:接收恢复命令以恢复截至包括保持检查点信息的多个检查点中的一个检查点的选择的检查点的数据;对于所述逻辑到物理映射中的每个逻辑地址i执行:响应于所述逻辑地址i的所述版本信息中的当前版本检查点大于所述选择的检查点,执行:如果所述物理地址在检查点信息中对于所述选择的检查点和所述当前版本检查点之间的检查点未被引用,则释放对于所述逻辑地址i在所述逻辑到物理映射中指示的所述物理地址;以及将对于所述逻辑地址i在所述逻辑到物理映射中的所述物理地址更新成对于所述逻辑地址i对于所述选择的检查点在所述检查点信息中指示的所述物理地址。

示例19是一种用于管理对存储设备的存取的方法,包括:提供为被用来存取所述存储设备的每个逻辑地址指示所述存储设备中的具有所述逻辑地址的当前数据的物理地址的逻辑到物理映射,以及指示在所述存储设备中的与在所述逻辑到物理映射中提供的所述物理地址不同的物理地址处是否存在所述逻辑地址的数据的先前版本的版本信息;接收指向目标逻辑地址的写;响应于所述逻辑到物理映射指示不存在所述目标逻辑地址的所述数据的先前版本,执行:将有关在所述逻辑到物理映射中指示的所述物理地址和所述目标物理地址的信息包含在检查点信息中;更新所述目标逻辑地址的所述版本信息以指示存在数据的先前版本;将用于所述写的数据写到在所述存储设备中的与具有所述目标逻辑地址的所述当前数据的所述物理地址不同的位置处的目标物理地址;以及对于所述目标逻辑地址更新所述逻辑到物理映射以指示所述目标物理地址。

在示例20中,示例19和21-24的主题可选地能包含:响应于所述逻辑到物理映射指示存在所述目标逻辑地址的所述数据的先前版本,执行:将用于所述写的数据写到所述存储设备中的目标物理地址;以及对于所述目标逻辑地址更新所述逻辑到物理映射以指示所述目标物理地址而不更新所述检查点信息。

在示例21中,示例19、20和22-24的主题可选地能包含:响应于处理来自所述主机系统的检查点命令,执行:擦除所述检查点信息;以及将所述逻辑到物理映射中的所述逻辑地址中的每个逻辑地址的所述版本信息设置成指示不存在所述逻辑地址的数据的先前版本。

在示例22中,示例19-21和23-24的主题可选地能包含:响应于处理来自所述主机系统的恢复请求,为所述逻辑到物理映射中的每个逻辑地址执行:响应于所述逻辑地址的所述版本信息指示存在所述数据的先前版本,执行:将所述逻辑到物理映射中的所述逻辑地址的所述物理地址设置成对于所述逻辑地址在所述检查点信息中指示的所述物理地址;以及将所述版本信息设置成指示不存在所述数据的先前版本。

在示例23中,示例19-22和24的主题可选地能包含:在多个检查点的当前检查点期间接收所述写,进一步包括:响应于所述目标逻辑地址的所述版本信息不指示所述当前检查点,将有关在所述逻辑到物理映射中指示的所述物理地址和所述目标逻辑地址的信息包含在所述目标逻辑地址的所述版本信息中指示的所述检查点的所述检查点信息中,其中所述更新所述版本信息包括在所述目标逻辑地址的所述版本信息中指示所述当前检查点。

在示例24中,示例19-23的主题可选地能包含:接收恢复命令以恢复截至包括保持检查点信息的多个检查点中的一个检查点的选择的检查点的数据;对于所述逻辑到物理映射中的每个逻辑地址i执行:响应于所述逻辑地址i的所述版本信息中的当前版本检查点大于所述选择的检查点,执行:如果所述物理地址在检查点信息中对于所述选择的检查点和所述当前版本检查点之间的检查点未被引用,则释放对于所述逻辑地址i在所述逻辑到物理映射中指示的所述物理地址;以及将对于所述逻辑地址i的所述逻辑到物理映射中的所述物理地址更新成对于所述逻辑地址i对于所述选择的检查点在所述检查点信息中指示的所述物理地址。

在示例25中,示例的主题可选地能包含如下至少一个附加步骤:

(1)响应于所述逻辑到物理映射指示存在所述目标逻辑地址的所述数据的先前版本,执行:将用于所述写的数据写到所述存储设备中的目标物理地址;以及对于所述目标逻辑地址更新所述逻辑到物理映射以指示所述目标物理地址而不更新所述检查点信息;和/或

(2)其中所述计算机可读存储媒体在所述存储设备中实现,其中主机系统通过数据接口存取所述存储设备中的数据,其中所述操作进一步包括:响应于处理来自所述主机系统的检查点命令,执行:擦除所述检查点信息;以及将所述逻辑到物理映射中的所述逻辑地址中的每个逻辑地址的所述版本信息设置成指示不存在所述逻辑地址的数据的先前版本;和/或

(3)其中所述计算机可读存储媒体在所述存储设备中实现,其中主机系统通过数据接口存取所述存储设备中的数据,其中响应于所述检查点命令,所述操作进一步包括:保持由所述检查点命令建立的检查点的安全密钥,其中所述存储设备使用所述密钥来认证与所述检查点相关的接收的命令;和/或

(4)其中所述计算机可读存储媒体在所述存储设备中实现,其中主机系统通过数据接口存取所述存储设备中的数据,其中所述操作进一步包括:响应于处理来自所述主机系统的恢复请求,为所述逻辑到物理映射中的每个逻辑地址执行:响应于所述逻辑地址的所述版本信息指示存在所述数据的先前版本,执行:将所述逻辑到物理映射中的所述逻辑地址的所述物理地址设置成对于所述逻辑地址在所述检查点信息中指示的所述物理地址;以及将所述版本信息设置成指示不存在所述数据的先前版本;和/或

(5)其中所述计算机可读存储媒体在所述存储设备中实现,其中主机系统通过数据接口存取所述存储设备中的数据,其中所述计算机可读存储媒体在所述存储设备中实现,其中主机系统通过数据接口存取所述存储设备中的数据,其中所述操作进一步包括:响应于处理来自所述主机系统的差分请求,返回有关其版本信息指示所述逻辑地址的所述数据自从最后的检查点已经改变的每个逻辑地址的信息;和/或

(6)其中所述操作进一步包括:将指示检查点的令牌保存到所述存储设备;将所述逻辑到物理映射和所述检查点信息保存到所述存储设备;在所述存储设备的初始化期间,处理所述令牌以确定存在所述检查点;以及响应于处理所述令牌,初始化所述逻辑到物理映射和所述检查点信息以在所述初始化之后使用;和/或

(7)响应于发起碎片整理操作,为是碎片整理的候选的所述逻辑到物理映射中的物理地址,回收未包含在所述逻辑到物理映射中的映射和所述检查点信息中的所选择的物理地址;和/或

(8)其中在多个检查点的当前检查点期间接收所述写,其中所述操作进一步包括:响应于所述目标逻辑地址的所述版本信息不指示所述当前检查点,将有关在所述逻辑到物理映射中指示的所述物理地址和所述目标逻辑地址的信息包含在所述目标逻辑地址的所述版本信息中指示的所述检查点的所述检查点信息中,其中所述更新所述版本信息包括在所述目标逻辑地址的所述版本信息中指示所述当前检查点;和/或

(9)其中所述计算机可读存储媒体在所述存储设备中实现,其中主机系统存取所述存储设备中的数据,其中所述操作进一步包括:接收恢复命令以恢复截至包括保持检查点信息的多个检查点中的一个检查点的选择的检查点的数据;对于所述逻辑到物理映射中的每个逻辑地址i执行:响应于所述逻辑地址i的所述版本信息中的当前版本检查点大于所述选择的检查点,执行:如果所述物理地址在检查点信息中对于所述选择的检查点和所述当前版本检查点之间的检查点未被引用,则释放对于所述逻辑地址i在所述逻辑到物理映射中指示的所述物理地址;以及将对于所述逻辑地址i在所述逻辑到物理映射中的所述物理地址更新成对于所述逻辑地址i对于所述选择的检查点在所述检查点信息中指示的所述物理地址;和/或

(10)其中所述操作进一步包括:接收要在当前检查点期间读取在比所述当前检查点更早的请求的检查点的目标逻辑地址的数据的请求;当所述请求的检查点的所述检查点信息提供所述目标逻辑地址的物理地址时,从所述请求的检查点的所述检查点信息中的所述目标逻辑地址所提供的所述物理地址返回数据;以及当所述请求的检查点的所述检查点信息未提供所述目标逻辑地址的物理地址时,从映射到所述逻辑到物理映射中的所述目标逻辑地址的所述物理地址返回数据;和/或

(11)其中所述计算机可读存储媒体包括控制器以管理对所述存储设备的存取。

示例26是包含代码的机器可读介质,当所述代码被执行时,促使机器执行如权利要求19-24中任一项所述的方法。

示例27是一种系统,包括:主机;以及与所述主机通信的存储设备,包括:一种具有计算机程序指令的计算机可读存储媒体,当所述指令被执行时促使相对于所述存储设备执行操作,所述操作包括:提供为被用来存取所述存储设备的每个逻辑地址指示所述存储设备中的具有所述逻辑地址的当前数据的物理地址的逻辑到物理映射以及指示在所述存储设备中的与在所述逻辑到物理映射中提供的所述物理地址不同的物理地址处是否存在所述逻辑地址的数据的先前版本的版本信息;从主机接收指向目标逻辑地址的写;响应于所述逻辑到物理映射指示不存在所述目标逻辑地址的所述数据的先前版本,执行:将有关在所述逻辑到物理映射中指示的所述物理地址和所述目标物理地址的信息包含在检查点信息中;更新所述目标逻辑地址的所述版本信息以指示存在数据的先前版本;将用于所述写的数据写到在所述存储设备中的与具有所述目标逻辑地址的所述当前数据的所述物理地址不同的位置处的目标物理地址;以及对于所述目标逻辑地址更新所述逻辑到物理映射以指示所述目标物理地址。

在示例28中,示例27的主题可选地能包含:所述操作进一步包括:接收恢复命令以恢复截至包括保持检查点信息的多个检查点中的一个检查点的选择的检查点的数据;对于所述逻辑到物理映射中的每个逻辑地址i执行:响应于所述逻辑地址i的所述版本信息中的当前版本检查点大于所述选择的检查点,执行:如果所述物理地址在检查点信息中对于所述选择的检查点和所述当前版本检查点之间的检查点未被引用,则释放对于所述逻辑地址i在所述逻辑到物理映射中指示的所述物理地址;以及将对于所述逻辑地址i在所述逻辑到物理映射中的所述物理地址更新成对于所述逻辑地址i对于所述选择的检查点在所述检查点信息中指示的所述物理地址。

示例29是装置,包括:用于提供为被用来存取存储设备的每个逻辑地址指示所述存储设备中的具有所述逻辑地址的当前数据的物理地址的逻辑到物理映射以及指示在所述存储设备中的与在所述逻辑到物理映射中提供的所述物理地址不同的物理地址处是否存在所述逻辑地址的数据的先前版本的版本信息的部件;用于从主机接收指向目标逻辑地址的写的部件;用于响应于所述逻辑到物理映射指示不存在所述目标逻辑地址的所述数据的先前版本而将有关在所述逻辑到物理映射中指示的所述物理地址和所述目标物理地址的信息包含在检查点信息中的部件;用于响应于所述逻辑到物理映射指示不存在所述目标逻辑地址的所述数据的先前版本,而更新所述目标逻辑地址的所述版本信息以指示存在数据的先前版本的部件;用于将用于所述写的数据写到在所述存储设备中的与具有所述目标逻辑地址的所述当前数据的所述物理地址不同的位置处的目标物理地址的部件;以及用于对于所述目标逻辑地址更新所述逻辑到物理映射以指示所述目标物理地址的部件。

在示例30中,示例29的主题可选地能包含:用于接收恢复命令以恢复截至包括保持检查点信息的多个检查点中的一个检查点的选择的检查点的数据的部件;用于对于所述逻辑到物理映射中的每个逻辑地址i执行如下操作的部件:响应于所述逻辑地址i的所述版本信息中的当前版本检查点大于所述选择的检查点,执行:如果所述物理地址在检查点信息中对于所述选择的检查点和所述当前版本检查点之间的检查点未被引用,则释放对于所述逻辑地址i在所述逻辑到物理映射中指示的所述物理地址;以及将对于所述逻辑地址i在所述逻辑到物理映射中的所述物理地址更新成对于所述逻辑地址i对于所述选择的检查点在所述检查点信息中指示的所述物理地址。

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