Nvm组的存储介质替换

文档序号:1627676 发布日期:2020-01-14 浏览:9次 >En<

阅读说明:本技术 Nvm组的存储介质替换 (Storage medium replacement for NVM groups ) 是由 田冰 于 2018-07-05 设计创作,主要内容包括:公开了NVM组的存储介质替换。所公开的NVM组的存储介质替换方法,包括:选择待替换的源逻辑单元与目的逻辑单元;将源逻辑单元的数据复制到目的逻辑单元;还更新元数据,以使得对源逻辑单元的访问被映射到目的逻辑单元。(Storage medium replacement for NVM sets is disclosed. The disclosed storage medium replacement method for an NVM group includes: selecting a source logic unit and a target logic unit to be replaced; copying the data of the source logic unit to a target logic unit; the metadata is also updated such that accesses to the source logical unit are mapped to the destination logical unit.)

NVM组的存储介质替换

技术领域

本申请涉及存储设备,尤其涉及存储设备的构成NVM组(NVMSet)的存储介质的替换或数据迁移。

背景技术

图1展示了存储设备的框图。固态存储设备100同主机相耦合,用于为主机提供存储能力。主机同固态存储设备100之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(SmallComputer System Interface,小型计算机系统接口)、SAS(Serial Attached SCSI,串行连接SCSI)、IDE (Integrated Drive Electronics,集成驱动器电子)、USB(UniversalSerial Bus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速***组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备100。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备100包括接口110、控制部件120、一个或多个NVM芯片130以及DRAM(Dynamic Random Access Memory,动态随机访问存储器) 140。

NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、 MRAM(Magnetic Random Access Memory,磁阻存储器)、RRAM(Resistive Random AccessMemory,阻变存储器)等是常见的NVM。

接口110可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。

控制部件120用于控制在接口110、NVM芯片130以及DRAM 140 之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件120可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件120可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件120也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件120的硬件来处理IO(Input/Output)命令。控制部件120还可以耦合到DRAM 140,并可访问 DRAM 140的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。

控制部件120包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片130,并以遵循NVM芯片130 的接口协议的方式向NVM芯片130发出命令,以操作NVM芯片130,并接收从NVM芯片130输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。

存储器目标(Target)是NAND闪存封装内的共享芯片使能(CE,Chip Enable)信号的一个或多个逻辑单元(LUN,Logic UNit)。NAND闪存封装内包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而 NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从 http://www.micron.com/~/media/Documents/Products/Other%20Documents/ON FI3_0Gold.ashx获得的“Open NAND Flash Interface Specification(Revision 3.0)”中,提供了关于目标(target)、逻辑单元(LUN)、平面(Plane) 的含义,其为现有技术的一部分。

存储介质上通常按页来存储和读取数据。而按块来擦除数据。块(也称物理块)包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。

在固态存储设备中,利用FTL(Flash Translation Layer,闪存转换层) 来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在现有技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。

存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL 表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。

图2示出了大块的示意图。大块包括来自多个逻辑单元(称为逻辑单元组)的每个的物理块。优选的,每个逻辑单元为大块提供一个物理块。作为举例,在每16个逻辑单元(LUN)上构造大块。每个大块包括16个物理块,来自16个逻辑单元(LUN)的每一个。在图2的例子中,大块0包括来自 16个逻辑单元(LUN)的每个的物理块0,大块1包括来自每个逻辑单元(LUN) 的物理块1。也可以有多种其他方式来构造大块。例如在中国专利申请2017107523210(发明名称为基于可变长大块的垃圾回收方法与装置)中提供了构造可便长大块的方式。

作为一种可选的方式,在大块中构造页条带,每个逻辑单元(LUN)内相同物理地址的物理页构成了“页条带”。图2中,物理页P0-0、物理页 P0-1……与物理页P0-x构成了页条带0,其中物理页P0-0、物理页P0-1……物理页P0-14用于存储用户数据,而物理页P0-15用于存储根据条带内的所有用户数据计算得到的校验数据。类似地,图2中,物理页P2-0、物理页 P2-1……与物理页P2-x构成了页条带2。可选地,用于存储校验数据的物理页可以位于页条带中的任意位置。

存储设备还进行磨损均衡操作以使得存储设备在使用过程中各个物理块经历大体上相同的被擦除次数,从而降低个别物理块的寿命耗尽对存储设备的寿命产生不利影响。

为提升存储设备的服务质量,正在探讨在存储设备中提供NVM组 (NVMSet)机制(参见https://www.snia.org/sites/default/files/SDCEMEA/2018/Presentations/ Achieving-Predictable-Latency-Solid-State-Storage-SSD-SNIA-SDC-EMEA- 2018.pdf)。NVM组是非易失存储介质的集合。不同NVM组中的非易失存储介质彼此独立。例如,属于一个NVM组的非易失存储介质,不再属于另一个NVM组。通过在存储设备中区分NVM组,来减少或消除访问一些非易失存储介质的 IO命令,对访问另一些非易失存储介质的IO命令的处理性能的影响。还在讨论耐久性组(EnduranceGroup)。耐久性组可包括一个或多个NVM组。存储设备中存在一个或多个耐久性组。

NVMe协议中还定义了命名空间(namespace,NS)。大小为n的命名空间是具有从0到n-1的逻辑块地址的逻辑块集合。通过命名空间ID (Namespace ID,NSID)能够唯一标识命名空间。同一命名空间所使用的非易失存储介质来自同一NVM组,而不会来自多个NVM组。两个或多个命名空间可使用来自同一NVM组的非易失存储介质。

发明内容

一旦提供了NVM组,随着对NVM组的使用,存储设备中的NVM组之间将出现磨损不均衡。进而需要在NVM组之间提供磨损均衡能力,以延长存储设备的寿命。通过对诸如逻辑单元的存储介质的替换,来实现NVM组之间的磨损均衡。

根据本申请的第一方面,提供了根据本申请第一方面的第一NVM组的存储介质替换方法,包括:选择待替换的源逻辑单元与目的逻辑单元;将源逻辑单元的数据复制到目的逻辑单元;还更新元数据,以使得对源逻辑单元的访问被映射到目的逻辑单元。

根据本申请第一方面的第一NVM组的存储介质替换方法,提供了根据本申请第一方面的NVM组的第二存储介质替换方法,还包括:擦除源逻辑单元的物理块。

根据本申请第一方面的第一或第二NVM组的存储介质替换方法,提供了根据本申请第一方面的NVM组的第三存储介质替换方法,还包括:将目的逻辑单元设置为占用状态,而将源逻辑单元设置为空闲状态。

根据本申请第一方面的第一至第三NVM组的存储介质替换方法之一,提供了根据本申请第一方面的NVM组的第四存储介质替换方法,其中:所述源逻辑单元的部分数据被复制到所述目的逻辑单元;所述方法还包括:将所述源逻辑单元的又一部分数据复制到第一逻辑单元。

根据本申请第一方面的第一至第四NVM组的存储介质替换方法之一,提供了根据本申请第一方面的NVM组的第五存储介质替换方法,其中通过更新元数据将映射到所述源逻辑单元的虚拟逻辑单元修改为映射到所述目的逻辑单元。

根据本申请第一方面的第一至第四NVM组的存储介质替换方法之一,提供了根据本申请第一方面的NVM组的第六存储介质替换方法,其中通过更新元数据将访问被复制数据的逻辑地址修改为映射到所述目的逻辑单元的逻辑地址。

根据本申请第一方面的第一至第六NVM组的存储介质替换方法之一,提供了根据本申请第一方面的NVM组的第七存储介质替换方法,其中被复制的数据在所述目的逻辑单元上的物理地址同在所述源逻辑单元上的物理地址相同。

根据本申请第一方面的第一至第七NVM组的存储介质替换方法之一,提供了根据本申请第一方面的NVM组的第八存储介质替换方法,还包括:获取所述源逻辑单元上的第一大块;从包括所述目的逻辑单元的多个逻辑单元中选择第一逻辑单元;从所述第一逻辑单元中选择第一物理块替代所述源逻辑单元为所述第一大块提供的物理块;以及将所述源逻辑单元为所述第一大块提供的物理块的数据复制到所述第一物理块。

根据本申请第一方面的第八NVM组的存储介质替换方法,提供了根据本申请第一方面的NVM组的第九存储介质替换方法,其中从所述多个逻辑单元中,按指定的几率选择第一逻辑单元,以及所述多个逻辑单元各自具有被选择的几率。

根据本申请第一方面的第九NVM组的存储介质替换方法,提供了根据本申请第一方面的NVM组的第十存储介质替换方法,其中所述第一逻辑单元被选择的几率大于所述多个逻辑单元的处所述第一逻辑单元之外的其他逻辑单元被选择的几率。

根据本申请第一方面的第八或第二九NVM组的存储介质替换方法,提供了根据本申请第一方面的NVM组的第十一存储介质替换方法,还包括设置各逻辑单元的被选择的几率。

根据本申请第一方面的第十一NVM组的存储介质替换方法,提供了根据本申请第一方面的NVM组的第十二存储介质替换方法,其中在存储设备的生命周期的第一阶段,为各逻辑单元设置大体上相同的被选择的几率;以及在存储设备的生命周期的第二阶段,为各逻辑单元设置不同的被选择的几率。

根据本申请第一方面的第十一或第十二NVM组的存储介质替换方法,提供了根据本申请第一方面的NVM组的第十三存储介质替换方法,其中为一个或多个逻辑单元设置的被选择的几率,同该逻辑单元所经历的擦除次数正相关或负相关。

根据本申请第一方面的第十一至第十三NVM组的存储介质替换方法之一,提供了根据本申请第一方面的NVM组的第十四存储介质替换方法,其中响应于预计要替换所述源逻辑单元,而提高所述源逻辑单元被选择的几率。

根据本申请第一方面的第八至第十四NVM组的存储介质替换方法之一,提供了根据本申请第一方面的NVM组的第十五存储介质替换方法,还包括:响应于创建第二大块,选择第二多个逻辑单元,并从第二多个逻辑单元中获取用于构建所述第二大块的物理块。

根据本申请第一方面的第十五NVM组的存储介质替换方法,提供了根据本申请第一方面的NVM组的第十六存储介质替换方法,还包括:按指定的几率选择逻辑单元以得到所述第二多个逻辑单元。

根据本申请第一方面的第十五或第十六NVM组的存储介质替换方法,提供了根据本申请第一方面的NVM组的第十七存储介质替换方法,其中所述第二多个逻辑单元的每个逻辑单元,属于相同的耐久性组或NVM组。

根据本申请第一方面的第一至第十七NVM组的存储介质替换方法之一,提供了根据本申请第一方面的NVM组的第十八存储介质替换方法,其中所述源逻辑单元与所述目的逻辑单元属于相同的耐久性组。

根据本申请第一方面的第八至第十七NVM组的存储介质替换方法之一,提供了根据本申请第一方面的NVM组的第十九存储介质替换方法,其中所述多个逻辑单元的每个逻辑单元属于相同的耐久性组。

根据本申请的第二方面,提供了根据本申请第二方面的第一存储设备,包括控制部件与NVM芯片,所述控制部件执行根据本申请第一方面的NVM组的存储介质替换方法之一。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域技术人员来讲,还可以根据这些附图获得其他的附图。

图1为存储设备的框图;

图2为大块的示意图;

图3A是根据本申请实施例的NVM组替换非易失存储介质的示意图;

图3B展示了根据本申请实施例的数据迁移的流程图;

图4A是根据本申请又一实施例的NVM组替换非易失存储介质的示意图;

图4B是根据本申请图4A的实施例的NVM组替换非易失存储介质的结果的示意图;

图5展示了根据本申请图4A与图4B的实施例的数据迁移的流程图;

图6A是根据本申请另一实施例的迁移非易失存储介质的示意图;以及

图6B展示了根据本申请图6A的实施例的迁移非易失存储介质的结果的示意图。

具体实施方式

下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图3A是根据本申请实施例的NVM组替换非易失存储介质的示意图。

根据图3A的实施例,存储设备包括多个逻辑单元(LUN 0~LUN 9)。存储设备提供多个NVM组(NVM组310、NVM组312与NVM组314)。可选地,NVM组310与NVM组312属于耐久性组320,而NVM组322属于耐久性组322。可以理解地,根据本申请其他实施例的存储设备,可以不提供耐久性组。

根据本申请的实施例,以LUN为单位为NVM组分配非易失存储介质。 NVM组310被分配了LUN 0与LUN 1,NVM组312被分配了LUN 2与LUN 3,而NVM组314被分配了LUN 6~LUN 7。由于NVM组310与NVM组 312属于相同的耐久性组320,NVM组310与NVM组312的逻辑单元可以交换,从而在耐久性组320内实现磨损均衡。例如,LUN 1与LUN 2交换,使得LUN 1被分配给NVM组312而LUN 2被分配给NVM组310,伴随着 LUN 1与LUN 2交换,在LUN 1与LUN 2之间进行数据迁移。

可选地,存储设备还包括空闲的逻辑单元(LUN 4与LUN 5)。空闲逻辑单元是尚未被分配给任何NVM组的逻辑单元。作为举例,当LUN 2因被频繁写入而过度磨损后,将LUN 4分配给NVM组312以替代LUN 2,而将LUN 2从NVM组312移除,从而实现磨损均衡。伴随着LUN4与LUN 2 交换,在LUN 4与LUN 2之间进行数据迁移。

可选地或进一步地,空闲逻辑单元(例如LUN 4)被分配给耐久性组320,则不再将LUN 4分配给除耐久性组320之外的其他耐久性组(耐久性组322)。使得每个LUN一旦被用于某个耐久性组,在存储设备的生命周期内,其仅被用于该耐久性组,或者作为空闲逻辑单元。

除了以逻辑单元为单位为NVM组分配非易失存储介质,在其他实施方式中,以NVM芯片、管芯(Die)或目标(Target)为单位为NVM组分配非易失存储介质。

根据本申请的实施例,存储设备的逻辑单元可处于多种状态,例如占用状态、空闲状态与迁移中状态。空闲状态的逻辑单元未被分配给任何NVM 组。被分配给NVM组且未涉及数据迁移的逻辑单元处于占用状态。正在进行数据迁移的逻辑单元处于迁移中状态。

图3B展示了根据本申请实施例的数据迁移的流程图。

存储设备根据各NVM组的逻辑单元的使用情况,或者作为对主机发送给存储设备的数据迁移命令的响应而发起数据迁移。

作为举例,NVM组312承担了较多大的写入操作,使得LUN 2与LUN 3的被擦写次数显著较高(例如,同存储设备的其他逻辑单元相比),而发起数据迁移。

为进行数据迁移,参看图3B,选择待迁移的源逻辑单元(LUN(s))与目的逻辑单元(LUN(d))(340),其中源逻辑单元是待迁移的NVM组中处于被占用状态的逻辑单元,而目的逻辑单元是空闲逻辑单元。以及将被选中的源逻辑单元与目的逻辑单元均标记为迁移中状态。作为举例,也参看图 3,选择NVM组312的LUN3为源逻辑单元,而选择LUN 4为目的逻辑单元。

将源逻辑单元(LUN 3)的数据复制到目的逻辑单元(LUN 4)(350)。可选地,将源逻辑单元(LUN 3)的数据复制到属于NVM组312的除目的逻辑单元(LUN 4)之外的其他逻辑单元(例如,LUN 2),而同样能实现本申请的目的。可选地,仅迁移源逻辑单元中的有效数据,而提高数据迁移的效率,降低数据迁移过程中的数据写入量。

还更新存储设备的元数据,以记录数据迁移后的新存储位置(360)。例如,对于每份被迁移的数据,在存储设备的FTL表中记录其在目的逻辑单元或其他逻辑单元中的物理地址。从而当主机以逻辑地址访问数据时,通过FTL 表查询出被访问的逻辑地址由目标逻辑单元(LUN 4)或其他逻辑单元(LUN 2)提供对应的物理地址。

在可选的实施方式中,存储设备中没有FTL表,而主机以物理地址访问存储设备。存储设备提供虚拟的逻辑单元(vLUN),以及提供虚拟逻辑单元到逻辑单元的映射。响应于在数据迁移中将源逻辑单元的数据迁移到目的逻辑单元,更新元数据,以将原本映射到源逻辑单元的虚拟逻辑单元修改为映射到目的逻辑单元。以及在数据迁移过程中,将数据仅复制到目的逻辑单元而不复制到其他逻辑单元,并且不改变被迁移数据在逻辑单元内的物理地址。例如,将源逻辑单元(LUN 3)的物理地址P1处的数据复制到目的逻辑单元(LUN 4)的物理地址P1处。可选地或进一步地,若LUN 4的物理地址P1处为坏块,向存储设备向主机上报同LUN 3对应的虚拟逻辑单元的物理地址P1处出现坏块或数据错误,由主机发起对数据错误处理过程,例如将物理地址P1所在块的所有数据或所有有效数据搬移到新物理地址。

响应于对源逻辑单元(LUN 3)的所有数据或所有有效数据完成了数据迁移,将LUN3标记为空闲状态。可选地,还擦除LUN 3的所有物理块。以及将目的逻辑单元(LUN 4)标记为占用状态。

在对源逻辑单元实施数据迁移期间,对于源逻辑单元的已被迁移的部分数据,在源逻辑单元与目的逻辑单元(或者其他逻辑单元,其他逻辑单元是同源逻辑单元属于相同NVM组,且不同于源逻辑单元的逻辑单元)上都有该部分数据。对这部分数据的读命令,用源逻辑单元与目的逻辑单元都可以响应。对于源逻辑单元的尚未被迁移的部分数据,对这部分数据的读命令,用源逻辑单元来响应。例如,根据读命令访问的逻辑地址查询FTL表来获得对应的物理地址,访问所获得物理地址来获取读命令所要读取的数据。对于写命令,从目的逻辑单元(或其他逻辑单元)分配物理地址,并将写命令要写入的数据写入所分配的物理地址。

图4A是根据本申请又一实施例的NVM组替换非易失存储介质的示意图。

根据图4A的实施例,存储设备包括多个逻辑单元(LUN 0~LUN 9)。存储设备提供多个NVM组(NVM组410、NVM组412与NVM组414)。可选地,NVM组410与NVM组412属于耐久性组420,而NVM组422属于耐久性组422。可以理解地,根据本申请其他实施例的存储设备,可以不提供耐久性组。NVM组410被分配了LUN 0与LUN 1,NVM组412被分配了LUN 2与LUN 3,而NVM组414被分配了LUN 6~LUN 7。存储设备还包括空闲的逻辑单元(LUN 4与LUN 5)。

根据本申请的实施例,通过NVM组的各个逻辑单元提供大块。为相同大块提供物理块的逻辑单元来自相同的耐久性组。参看图4A,大块430、大块432与大块438的每个,包括由LUN 0~LUN 3提供的物理块。以及访问 NVM组410提供的命名空间的写命令,为其分配例如大块430,并将数据写入LUN 0和/或LUN 1为大块430提供的物理块,而不为其分配LUN 2或LUN 3为大块430提供的物理块。大块450、大块452与大块458的每个,包括由LUN 6~LUN 9提供的物理块。

根据图4A展示的实施例,根据属于相同耐久性组的逻辑单元构造大块,从而为大块提供物理块的各逻辑单元来自相同的耐久性组,以及可来自相同或不同的NVM组。

在可选的实施方式中,根据属于相同NVM组的逻辑单元构造大块,从而为大块提供物理块的各逻辑单元来自相同的NVM组。

继续参看图4A,属于同一大块的各物理块,在各自的逻辑单元内,具有相同的物理块地址。可选地,根据中国专利申请201610814552.5(多平面闪存的数据组织方法与装置)提供的技术方案来构造大块,特别是该专利申请结合对图4A、图4B、图5、图6A或图6B的相关描述而提供的大块构造方式。

继续参看图4A,对属于NVM组412的LUN 3与空闲LUN 4实施数据迁移。

图4B是根据本申请图4A的实施例的NVM组替换非易失存储介质的结果的示意图。

在对LUN 3与LUN 4实施数据迁移后,LUN 3称为存储设备中的空闲 LUN,而LUN 4成为属于NVM组412的逻辑单元。以及大块430、大块432 与大块438的每个,包括由LUN 0~LUN 2以及LUN 4提供的物理块。

在一种实施方式中,存储设备维护大块表,大块表中记录了构造各大块的逻辑单元。例如,响应于LUN 3与LUN 4进行了数据迁移,在大块表中更新构造大块430、大块432与大块438的每个逻辑单元编号。

在又一种实施方式中,根据虚拟逻辑单元构造大块。从而虽然LUN 3的数据被迁移给LUN 4,但依然由相同的虚拟逻辑单元来引用LUN 4,因而在根据虚拟逻辑单元构造大块或访问大块时,感知不到LUN 3与LUN 4发生了数据迁移。

大块的各个物理块记录的数据可能是用户数据或校验数据。在数据迁移过程中,若大块的由源逻辑单元提供的物理块存储的是用户数据,在数据迁移后,在FTL表中更新该用户数据的物理地址。若大块的由源逻辑单元提供的物理块存储的是校验数据,无需为其相应更新FTL表。

根据图4A与图4B所示的实施例,虽然为大块430、大块432与大块438 提供物理块的逻辑单元属于两个NVM组,但这些逻辑单元属于相同的耐久性组420。存储设备的垃圾回收操作,发生于耐久性组内。例如,从大块438 回收的有效数据,被写入由耐久性组420的逻辑单元所构造的大块。进一步地,对于大块438中来自NVM组410的有效数据,依然写入所构造大块的由属于NVM组410的逻辑单元所提供的物理块。而对于大块438中来自NVM 组412的有效数据,依然写入所构造大块的由属于NVM组412的逻辑单元所提供的物理块。从而确保属于NVM组410的用户数据不会被写入属于 NVM组412的物理块,也不会被写入属于NVM组414的物理块。

图5展示了根据本申请图4A与图4B的实施例的数据迁移的流程图。

存储设备根据各NVM组的逻辑单元的使用情况,或者作为对主机发送给存储设备的数据迁移命令的响应而发起数据迁移。

作为举例,存储设备收到主机指示而要实施数据迁移。作为举例,主机还指示了所选择的源逻辑单元是LUN 3,而目的逻辑单元是LUN4(也参看图4A与图4B)(510)。以及将被选中的源逻辑单元与目的逻辑单元均标记为迁移中状态。

获取源逻辑单元(LUN 3)上的各个大块(530)。逻辑单元上的大块是逻辑单元的物理块所属的大块。以及识别出源逻辑单元上的各个大块存储在源逻辑单元上的部分是用户数据还是校验数据。而源逻辑单元(LUN 3)上的未属于任何大块的物理块,不进行数据迁移。例如,通过存储设备维护的大块表来获取源逻辑单元身上的各个大块。

将获取的源逻辑单元(LUN 3)上的各大块的属于源逻辑单元的部分数据复制到目的逻辑单元(LUN 4)(540),并且被迁移的数据在源逻辑单元与在目的逻辑单元中具有相同的物理地址。以及更新包括大块表与FTL表的元数据(550)。更新后的大块表记录了发生了数据迁移的各大块的新的物理块(由目的逻辑单元(LUN 4)提供)。更新后的FTL表记录了经数据迁移的用户数据在目的逻辑单元(LUN(4)上的物理地址)。若发生数据迁移的是大块的校验数据,则无需为其更新FTL表。

根据图5的实施例,发生数据迁移的部分无论是有效数据还是无效数据,都进行迁移,以使得数据迁移后得到的新大块依然满足数据校验规则。

在可选的实施方式中,存储设备中没有FTL表,而主机以物理地址访问存储设备。存储设备提供虚拟的逻辑单元(vLUN),以及提供虚拟逻辑单元到逻辑单元的映射。响应于在数据迁移中将源逻辑单元的数据迁移到目的逻辑单元,更新元数据,以将原本映射到源逻辑单元(LUN 3)的虚拟逻辑单元修改为映射到目的逻辑单元(LUN 4)。以及在数据迁移过程中,将数据仅复制到目的逻辑单元而不复制到其他逻辑单元,并且不改变被迁移数据在逻辑单元内的物理地址。

响应于对源逻辑单元(LUN 3)的所有数据完成了数据迁移,将LUN 3 标记为空闲状态。可选地,还擦除LUN 3的所有物理块。以及将目的逻辑单元(LUN 4)标记为占用状态。

图6A是根据本申请另一实施例的迁移非易失存储介质的示意图。

根据图6A的实施例,存储设备包括属于相同NVM组或耐久性组的多个逻辑单元(LUN620~LUN 628)。存储设备还包括空闲的逻辑单元 (LUN(d))。要通过数据迁移将源逻辑单元LUN(s)620同目的逻辑单元 LUN(d)做交换。

图6A中,虚线框指示物理块,虚线框中的数字指示该物理块所属的大块。根据图6A的实施例,构成大块的各个物理块无须具有相同的物理地址,而是可位于逻辑单元的任何位置。作为举例,大块的物理块遵循这样的规则,构成大块的多个物理块没有任何两个物理块来自相同的逻辑单元,换句话说,构成大块的各个物理块来自不同的逻辑单元。

依然作为举例,大块1包括来自LUN 620、LUN 622与LUN 624的每个提供的物理块,大块4包括来自LUN 620、LUN 622与LUN 626的每个提供的物理块。可选地,各大块不必包括相同数量的物理块。

可选地,存储设备维护大块表,其中记录了构造各大块的各物理块。可选地,在大块的各物理块中记录构成该大块的所有物理块的信息。

为了将源逻辑单元LUN(s)620同目的逻辑单元LUN(d)交换,需要将源逻辑单元LUN(s)620中已用于构建大块的多个物理块(由LUN(s)620中带有标记1、2、3、4、5的虚线框所指示)的数据迁移到目的逻辑单元LUN(d) 和/或同源逻辑单元LUN(s)620属于相同NVM组或耐久性组的其他逻辑单元 (LUN 622、LUN 624、LUN 626或LUN 628)。

图6B展示了根据本申请图6A的实施例的替换非易失存储介质的结果的示意图。

图6B中,源逻辑单元LUN(s)620的各物理块(由带阴影的虚线框指示) 的数据被迁移到其他逻辑单元,而由带有上标“’”的数字的虚线框指示作为数据迁移目标的物理块。

源逻辑单元LUN(s)620的由数字1、2与3指示的物理块被迁移到目的逻辑单元LUN(d);源逻辑单元LUN(s)620的由数字4指示的物理块被迁移到逻辑单元LUN 626;源逻辑单元LUN(s)620的由数字5指示的物理块被迁移到逻辑单元LUN 624。

以此方式,将源逻辑单元LUN(s)620中要迁移的数据,写入多个逻辑单元(目的逻辑单元LUN(d)、逻辑单元LUN626与逻辑单元LUN624),减少了对目的逻辑单元LUN(d)的写入数据量,将写入数据分散到多个逻辑单元,使得数据迁移引起的写入操作在多个逻辑单元上被并行处理,也加快了数据迁移的进程。

作为举例,要对源逻辑单元LUN(s)620中由数字4指示的物理块的数据进行迁移,选择用于承载待迁移数据的物理块。考虑多种策略来选择承载迁移数据的物理块。例如,(1)基于迁移数据所在的大块,被选择的物理块要满足构造大块的条件。参看图6A,数据迁移前,大块4的物理块由LUN(s)620、 LUN 622与LUN 626提供,那么新选择的物理块要避免来自这些逻辑单元,以符合构造大块的条件。(2)目的逻辑单元LUN(d)已经为大块1、大块2与大块3提供了物理块(参看图6B,由数字1’、2’与3’所在的虚线框指示),那么新选择的物理块要避免来自目的逻辑单元LUN(d)。(3)剩余可选择的逻辑单元为LUN 624与LUN 628,通过例如随机的方式选择LUN 624与LUN 628之一来承载源逻辑单元LUN(s)620的物理块4。在图6B的例子中,选择了LUN 628提供的由数字4’所在的虚线框所指示的物理块来承载待迁移数据。

可选地或进一步地,在选择承载待迁移数据的逻辑单元时,使各可选的逻辑单元以不同的几率被选中。依然参看图6A与图6B,要迁移源逻辑单元 LUN(s)的由数字5所在的虚线框的物理块的数据,可选择的承载待迁移数据的逻辑单元是LUN(d)、LUN 622与LUN624。基于逻辑单元LUN 624的剩余寿命较长(例如,其擦写次数较低),而选择由LUN 624提供物理块来承载待迁移的数据。选择剩余寿命较长的逻辑单元来承载待迁移数据,有助于实现存储设备的各逻辑单元的磨损均衡。

发明人也意识到,各逻辑单元的磨损程度均匀有利于延长NVM组或耐久性组的使用寿命,却不利于将属于NVM组或耐久性组的逻辑单元同空闲逻辑单元交换。因为空闲逻辑单元同在被占用的逻辑单元的磨损程度差异可能较大,在交换后,导致NVM组或耐久性组的各逻辑单元的寿命出现显著差异。为此,作为另一种实施方式,要迁移源逻辑单元LUN(s)的由数字5所在的虚线框的物理块的数据,可选择的承载待迁移数据的逻辑单元是LUN(d)、LUN 622与LUN 624。基于逻辑单元LUN 624的剩余寿命较短(例如,其擦写次数较高),而选择由LUN 624提供物理块来承载待迁移的数据。从而使得LUN 624的寿命被比其他逻辑单元(参看图6,LUN(s)620、LUN 622、 LUN 626与LUN 628)更快的速度消耗。进而在将来交换LUN624与空闲逻辑单元后,空闲逻辑单元与NVM组或耐久性组中的其他逻辑单元的寿命差异不会过大。

依然可选地,在选择承载待迁移的数据的逻辑单元时,指定各候选逻辑单元被选择的几率,以使得NVM组或耐久性组中的各逻辑单元被按指定的几率使用,进而随着使用,各逻辑单元的剩余寿命呈现出差异。例如,对于候选逻辑单元LUN 624、LUN 626与LUN 628,按20%、30%与50%的几率被选择,从而使得LUN 628的寿命消耗最快,而LUN 624的寿命消耗最慢。进而,在需要交换逻辑单元时,优先将LUN 628同空闲逻辑单元交换。

依然可选地,除了在选择承载待迁移的数据的逻辑单元时,指定各候选逻辑单元被选择的几率,还在构建大块时,指定用于构建大块的各候选逻辑单元被选择的几率,从而进一步使得随着存储设备被使用,各逻辑单元的剩余寿命呈现出差异。从而便于在需要交换逻辑单元时,从NVM组或耐久性组中选择出适宜被交换的逻辑单元。

在依然可选的实施方式中,在存储设备被使用的初期,为构建大块,而以大体上相同的几率选择各逻辑单元来构建大块,以实现存储设备的存储介质的磨损均衡。随着存储设备被使用,和/或预计将要交换占用的逻辑单元与空闲逻辑单元,而改变构建大块和/或进行数据迁移时,选择各逻辑单元的几率,以使得一些逻辑单元被更多地用于构建大块,而另一些逻辑单元被相对更少地用于构建大块。例如,以逻辑单元各物理块的被擦除次数的和,除以存储设备中发生的擦除次数的总数,所得到的商作为选择逻辑单元的几率。从而使逻辑单元被选中用于构建大块或承载被迁移的数据的几率同该逻辑单元被擦除的次数正相关。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种分布式存储方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类