CN106922188A - 取消映射存储空间 - Google Patents
取消映射存储空间 Download PDFInfo
- Publication number
- CN106922188A CN106922188A CN201580052302.6A CN201580052302A CN106922188A CN 106922188 A CN106922188 A CN 106922188A CN 201580052302 A CN201580052302 A CN 201580052302A CN 106922188 A CN106922188 A CN 106922188A
- Authority
- CN
- China
- Prior art keywords
- drive
- storage
- storage space
- region
- wear indicator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/253—Centralized memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
一种系统,包括存储驱动器和通信地耦合到存储驱动器的控制器。存储驱动器包括被映射至虚拟卷的存储空间的第一区域,和被保留用于超量供应操作的存储空间的至少第二区域。所述控制器将响应于所述存储驱动器的老化而取消映射存储空间的所述第一区域的可操作部分,使得被取消映射的部分能够用于超量供应操作。
Description
背景技术
本申请要求2014年9月26日提交的美国非临时申请号14/498,998的权益,该美国非临时申请通过引用以其全部内容并入本文以用于所有目的。
固态驱动器(SSD)是用于持久数据存储的非易失性数据存储设备,但不同于硬盘驱动器,固态驱动器不包含移动部件。一些SSD驱动器使用闪存,其可以保留数据而无需供电。闪存的一个缺点是:在存储单元发生故障之前,基于闪存的SSD的每个存储单元只能被写入有限的次数。为了延长基于闪存的SSD的使用寿命,采用了各种技术来延长驱动器的使用寿命,该技术例如为损耗均衡(wear leveling),其使写入操作跨驱动器的存储单元更均匀地散布。
附图说明
在以下详细描述中并且参考附图描述了某些示例性实施例,其中:
图1是具有存储驱动器的存储系统的框图,该存储驱动器可以被配置为取消映射用户存储空间以使其可用于超量供应(over-provisioning);
图2A是示出存储驱动器的示例性存储器分配的框图;
图2B是示出在不可靠的存储块至超量供应空间的某种重新映射之后的存储驱动器的示例性存储器分配的框图;
图2C是示出在不可靠的存储块至超量供应空间的额外重新映射之后的驱动器的示例性存储器分配的框图;
图2D是示出了本地超量供应空间已被完全重新映射以用于不可靠的块之后的驱动器的示例性存储器分配的框图;
图3是总结操作存储驱动器的方法的过程流程图;以及
图4是示出有形的非暂时性计算机可读介质的框图,该介质存储了被配置为取消映射存储驱动器的用户存储空间的代码。
具体实施方式
闪存的一个特性是闪存单元不能被直接覆写。因此,当将数据写入到SSD存储单元时,该单元必须首先被擦除并随后写入。在某些情况下,这可能导致针对将要存储到设备的数据的每个实际比特的两次写入。在大多数闪存中,数据按照称为页面的单元被写入,但是数据按照更大的称为块的单元被擦除。如果块内的足够数据不再需要(即,过时的页面),则整个块被擦除,并且该块中的任何好的数据被重新写入新块。余下的该新块中的剩余部分可以被写入新的数据。擦除块并将好的数据移动到新块的这个过程被称为“碎片收集(garbage collection)”。大多数SSD包括一定数量的存储空间,其被保留以用于除了别的之外的碎片收集、损耗均衡和重新映射坏块。存储容量的物理量与呈现给用户的逻辑容量之间的差异被称为超量供应。
诸如损耗均衡和碎片收集的技术影响驱动器的写入放大(writeamplification),写入放大是一种写入驱动器内的物理信息的实际量是意图写入数据的逻辑量的倍数的现象。驱动器的写入放大越高,那么针对给定的数据存储使用量,驱动器的单元将经历的写入就越多。可用于超量供应的存储空间量越大,那么损耗均衡和碎片收集算法就越高效,这可以减少写入放大。
随着时间的推移,一些存储单元将开始磨损并变得不可靠。不可靠的存储单元可以重新映射至超量供应空间的一部分。重新映射不可靠的存储元素不仅避免了数据的丢失,而且还减少了可用于超量供应的存储空间的量。随着超量供应空间被减少,损耗均衡和碎片收集算法变得不够高效,从而导致更高的写入放大和对剩余存储单元的更大磨损。因此,如果将大量不可靠的存储元素重新映射至超量供应空间,则对存储单元的磨损将开始加速,从而降低了存储设备的使用寿命。
本公开提供了用于通过动态地增加驱动器上可用于超量供应的存储空间的量来延长诸如闪存驱动器的存储驱动器的使用寿命的技术。随着不可靠的存储单元被重新映射至超量供应空间,超量供应空间将趋于减少。为了维持超量供应空间的适当的量,先前分配的作为用户空间的某些存储空间可以被取消映射并用作额外的超量供应空间。通过主动地取消映射用户空间,并且因此使其作为超量供应空间的类似物可用于驱动器,从而可以减轻驱动器老化的写入放大和损耗均衡影响。这将导致驱动器老化的加速和写入性能的损失的相应降低。
图1是具有存储驱动器的存储系统的框图,该存储驱动器可以被配置为取消映射用户存储空间以使其可用于超量供应。将认识到的是,图1中所示的存储系统100仅仅是根据实施例的存储系统的一个示例。在实际实现中,取决于特定实现的设计考虑,存储系统100可以包括可以按照任何合适的方式互连的各种额外的存储设备和网络。例如,大型存储系统通常将具有比该图示中所示的更多的客户端计算机和存储设备。
存储系统100给任何数量的客户端计算机102提供数据存储资源,客户端计算机102可以为通用的计算机、工作站、移动计算设备等。存储系统100包括存储控制器,其在本文中称为节点104。存储系统100还包括由节点104控制的存储阵列106。客户端计算机102可以直接地或通过网络108耦合到存储系统100,网络108可以是局域网(LAN),广域网(WAN),存储区域网络(SAN)或其他合适类型的网络。
客户端计算机102可以通过向节点104发送包括写入请求和读取请求的输入/输出(I/O)请求来访问存储阵列106的存储空间。节点104处理该I/O请求,使得用户数据被写入到存储阵列106中的适当存储位置,或从存储阵列106中的适当存储位置读取。如本文所使用的,该术语“用户数据”是指人在业务过程中、执行作业功能时可能使用的数据,或用于个人使用的数据,诸如用户可能希望保存到长期存储器的业务数据和报告、网页、用户文件、图像文件、视频文件、音频文件、软件应用程序或任何其他类似类型的数据。每个节点104可通信地耦合到每个存储阵列106。每个节点104还可以通过节点间通信网络110通信地耦合到每个其他节点。
存储阵列106可以包括各种类型的持久存储器,包括固态驱动器112,此处其可以简单地称为驱动器或存储驱动器112。在一些示例中,驱动器112是闪存驱动器。然而,驱动器112也可以使用其他类型的持久存储器,例如包括电阻存储器。每个存储阵列116包括多个驱动器112。存储网络系统100还可以包括除图1中所示之外的附加存储设备。
每个节点104还可以包括存储器映射控制器116,其控制存储阵列106的每个驱动器112中的存储空间的分配。存储器映射控制器116可以按照硬件、或硬件与编程代码的组合来实现。例如,存储器映射控制器116可以包括用于存储指令的非暂时性计算机可读介质,用于执行该指令的一个或多个处理器,或其组合。在一些示例中,存储器映射控制器116被实现为存储在集成电路上的计算机可读指令,该集成电路诸如专用集成电路(ASIC),现场可编程门阵列(FPGA)或其他类型的处理器。
每个节点104控制针对驱动器112的某个子集的存储器分配。在一些示例中,存储系统100可以被配置为使得每个节点104可以控制特定存储阵列106的所有驱动器112。例如,节点A可以被配置为控制存储阵列A中的驱动器112,节点B可以被配置为控制存储阵列B中的驱动器112,并且节点C可以被配置为控制存储阵列C中的驱动器112。取决于特定实现的设计考虑,其他布置也是可能的。此外,存储系统配置的某些细节可由管理员指定,该细节例如包括哪些节点104控制哪些驱动器112。
存储器映射控制器116可以将驱动器112的可用存储空间的某个部分映射为用户数据区域。用户数据区域表示暴露给文件系统并且对客户端计算机可见的存储空间。客户端计算机102的用户可以将数据存储到用户数据区域并从用户数据区域接收数据。每个驱动器112包括暴露给节点104并且可用于映射为用户数据区域的存储空间。每个驱动器还包括本文中称为本地超量供应空间的存储空间,其被保留以用于超量供应并且不暴露给节点104。随着驱动器112的老化,通过重新映射不可靠的存储段,更大量的超量供应空间将被用尽,这将剩余更小的存储空间用于损耗均衡和碎片收集。存储器映射控制器116可以基于用于重新映射不可靠的存储段的超量供应空间的量,来取消映射先前分配为用户空间的存储空间的某个部分。取消映射所分配的用户空间的一部分使得驱动器112能够使用该空闲(free)存储器用于额外的超量供应操作。
图2A是示出存储驱动器的示例性存储器分配的框图。存储器映射200示出了新驱动器的存储器分配,新驱动器例如图1中所示的驱动器112中的一个。存储空间包括多个存储段,其为了本描述的目的在本文中被称为存储块202。将认识到的是,本文描述的技术可以关于其他类型的存储段被使用,其他类型的存储段诸如是单个存储单元,存储器页面或任何其他合适的存储单元分组。
如图2A中所示,存储空间的某个部分被映射为用户数据区域204。例如,用户数据区域可以被映射至对于客户端计算机102可访问的一个或多个虚拟卷。用户数据区域包括已使用的存储空间206和未使用的存储空间208。该已使用的存储空间206是当前存储数据的存储空间。该未使用的存储空间208是已经被分配为用户数据区域204的一部分但是当前未用于存储数据的存储空间。
存储空间的某个部分被映射为内部超量供应区域210。内部超量供应区域210可以由驱动器自身保留以用于超量供应过程,诸如碎片收集、损耗均衡、坏块重映射等。超量供应过程可以由驱动器自身执行。例如,驱动器的处理器可以运行被编程用于超量供应过程的固件。在一些示例中,超量供应区域210对于诸如图1的节点104的外部设备存储控制器不可见,或不可由其访问。在这个意义上,超量供应区域210是隐藏的存储空间。内部超量供应区域210的大小可由驱动器制造商确定。此外,驱动器可以配置为能够接收指令以使用通常可见的存储空间用于超量供应。因此,用于超量供应的存储空间未被驱动器的制造商固定。
尽管图2A中未示出,驱动器还可以包括额外的存储空间(其可以被映射用于各种目的),额外的存储空间包括备用存储空间或用于由存储系统内部使用的存储器(诸如驱动器标识标签,内容标识符的存储系统表,或诊断和测试区域)。此外,典型的存储设备将具有比图2中所示的更多的存储块。进一步地,为了简单起见,各个区域被示为连续的存储段。然而,将认识到的是,区域206,208和210可以占用存储块的不连续布置。
图2B是示出在不可靠的存储块至超量供应空间的某种重新映射之后的驱动器的示例性存储器分配的框图。图2B中所示的存储器映射212与图2A中所示的相同(除了已使用的存储空间206内的两个存储块202已被确定为不可靠之外)。该不可靠的块由项目编号214指示。存储块可以基于任何合适的标准(诸如基于该存储块已被写入的次数或者基于检测到与该块202相关联的写入或读取错误)被识别为不可靠。
不可靠的块214被重新映射至超量供应区域210内的块。重新映射的块由项目编号216指示。原始地存储在块214的数据被移动到块216,并且超量供应空间210中被该块216占用的部分现在是用户数据区域204的一部分,并且对于超量供应操作是不可用的。
由于不可靠的存储块导致的驱动器的老化,可以根据本文中被称为损耗指示符的参数进行表征。损耗指示符可以是指示由于不可靠的存储块而导致的老化水平的任何合适参数。例如,该损耗指示符可以计算为针对驱动器识别的不可靠的块的数量的函数。在一些示例中,损耗指示符可以是剩余寿命百分比,其是本地超量供应区域210中所剩的原始的超量供应空间的百分比。随着更多不可靠的块被重新映射至本地超量供应空间210,剩余寿命百分比将减少。损耗指示符可以由驱动器自身计算并存储到驱动器的存储空间上的日志文件。驻留在节点104上的存储器映射控制器116有权访问该日志文件,并且可以在指定的时间或周期性地从日志中读取损耗指示符。取决于损耗指示符的值,存储器映射控制器116可以将先前映射至用户数据区域204的一部分驱动器存储空间取消映射。
图2C是示出在不可靠的存储块至超量供应空间的额外重新映射之后的驱动器的示例性存储器分配的框图。如图2C的存储器映射218中所示的,与图2B的存储器映射212相比,重新映射至本地超量供应空间的不可靠的块214的数量已经翻倍。原始地存储在块214中的数据被移动到块216。因此,超量供应区域216已经被减少至原始存储空间的四分之三。在此阶段,存储器映射控制器116已经取消映射先前映射至用户数据区域204的驱动器存储空间的可操作部分。具体来说,先前为未使用的存储空间208的一部分的块220已被取消映射。被取消映射的块220是可操作的,这意味着它们尚未被识别为不可靠的存储块并且仍然可以用于可靠地存储数据。被取消映射的存储块220现在可用于超量供应操作。在一些示例中,存储器映射控制器116通知驱动器该被取消映射的块220可用于超量供应操作。
图2D是示出了本地超量供应空间已被完全重新映射以用于不可靠的块之后的驱动器的示例性存储器分配的框图。如图2D的存储器映射222中所示的,重新映射至本地超量供应空间的不可靠的块214的数量已经完全用尽了原始的本地非供应空间。在此阶段,与图2C的存储器映射218相比,存储器映射控制器116已经取消映射用户数据区域204的更大部分。具体地,先前是未使用的存储空间208的一部分的块220已被取消映射。被取消映射的存储空间220现在可用于超量供应操作。尽管超量供应空间的原始分配被重新映射,但是驱动器仍然具有大量的存储器来执行超量供应操作。以这种方式可以避免驱动器的加速老化。作为对驱动器的表观存储容量的减少的交换,获取了额外的超量供应空间。换句话说,作为对延长驱动器的使用寿命的交换,减少了可供节点使用以存储用户数据的可用存储空间。
用户存储空间的取消映射可以按照分级和上限的方式完成。例如,可以指定驱动器老化的各种阈值,使得当达到每个阈值时,指定量的用户数据区域204可以被取消映射。下表提供了一个480千兆字节驱动器的示例实现,其中驱动器老化被表征为剩余寿命百分比。
表1:剩余寿命百分比和相应的取消映射空间。
| 剩余寿命百分比 | 取消映射空间 |
| 100 | 0千兆字节 |
| 75 | 30千兆字节 |
| 50 | 60千兆字节 |
| 25 | 90千兆字节 |
| 0 | 120千兆字节 |
在表1中,该剩余寿命百分比对应于在本地超量供应区域中仍然可用于超量供应操作的存储空间的阈值百分比。如果本地超量供应区域中仍然可用于超量供应操作的存储空间低于相应的剩余寿命百分比,则该取消映射空间对应于将被取消映射的原始用户数据区域的数量。根据该示例,如果剩余寿命百分比低于75%,则存储器映射控制器116将取消映射用户数据区域204的30千兆字节,其将被驱动器使用以进行超量供应操作。将认识到的是,表1仅仅是许多可能配置的一个示例。
图3是总结操作存储驱动器的方法的过程流程图。方法300可以由诸如图1中所示的节点104之一的存储控制器来执行。存储驱动器可以是图1中所示的驱动器112之一。存储驱动器包括被映射至虚拟卷的存储空间的第一区域,以及未被映射至虚拟卷并用于执行超量供应操作的存储空间的至少第二区域。
在框302处,向存储驱动器发送数据存储请求。该数据存储请求针对存储空间的第一区域。存储空间的第一区域在图2中也被称为用户数据区域204。在处理数据存储请求期间,存储驱动器除了别的之外执行诸如碎片收集和损耗均衡的超量供应操作。在某些情况下,数据存储请求可能导致错误以及不可靠的数据段的识别。不可靠的数据段的识别可能导致该段被映射,并且数据被复制到超量供应空间的一部分。
在识别不可靠的存储段时,驱动器可以更新其损耗指示符。在一些示例中,损耗指示符由存储驱动器计算为针对驱动器识别的不可靠的块的数量的函数。例如,损耗指示符可以是不可靠的块的数量的计数,或者是与整个用户数据区域的大小相比的不可靠的块的百分比。在一些示例中,损耗指示符由存储驱动器计算,作为驱动器的第二区域中仍然可用于超量供应操作的存储空间的百分比,在本文中称为剩余寿命百分比。
在框304处,控制器从存储驱动器获取损耗指示符。可以通过从保留用于损耗指示符的驱动器的存储器位置读取数据来获取损耗指示符。在一些示例中,通过从存储到驱动器的日志文件读取损耗指示符来获得损耗指示符。可以根据时间表或者响应于用户请求以指定的间隔周期性地从驱动器获取损耗指示符。
在框306处,控制器基于损耗指示符取消映射存储空间的一部分第一区域。取消映射存储空间的一部分第一区域的决定可以包括将损耗指示符与阈值损耗水平进行比较,该阈值损耗水平与将被取消映射的存储空间的量相关,例如上述关于表1所述。该取消映射的部分不再是虚拟卷的一部分,并且对于客户端计算机不可访问。因此,该取消映射的部分可以被驱动器用于超量供应操作。与不可靠的存储块的情况不同,框306处取消映射的存储器的部分仍然是可操作的,这意味着其可以被用于可靠地存储数据。
图4是示出有形的非暂时性计算机可读介质的框图,该介质存储了被配置为取消映射存储驱动器的用户存储空间的代码。计算机可读介质由附图标记400提及。计算机可读介质400除了别的之外可以包括RAM,硬盘驱动器,硬盘驱动器阵列,光驱动器,光驱阵列,非易失性存储器,闪存卡或闪存驱动器,数字通用盘(DVD)或光盘(CD)。计算机可读介质400可以由诸如ASIC的处理器402来访问。此外,计算机可读介质400可以包括被配置为执行本文所述的方法的代码。例如,计算机可读介质400可以包括由图1的一个或多个节点104执行的固件。
本文讨论的各种软件组件可以被存储在计算机可读介质400上。计算机可读介质400上的区域406可以包括I/O处理引擎,其处理从客户端计算机接收的I/O请求。例如,处理I/O请求可以包括将数据存储到存储驱动器或从存储驱动器检索数据并将其发送到请求它的客户端计算机。区域408可以包括存储器分配控制器,其被配置为响应于存储驱动器的老化而取消映射存储空间的第一区域的可操作部分,使得被取消映射的部分可以用于超量供应操作。
尽管示出为连续的块,但软件组件可以按照任何顺序或配置存储。例如,如果有形的非暂时性计算机可读介质是硬盘驱动器,则软件组件可以存储在不连续或甚至重叠的扇区中。
尽管本技术可能易受各种修改和替代形式的影响,但是上文讨论的示例性示例仅作为示例被示出。将被理解的是,该技术不旨在被限于本文公开的特定示例。事实上,本技术包括落在所附权利要求的真实精神和范围内的所有替代、修改和等同物。
Claims (15)
1.一种系统,包括:
存储驱动器,其包括被映射至虚拟卷的存储空间的第一区域,和被保留用于超量供应操作的存储空间的至少第二区域;以及
控制器,其通信地耦合到所述存储驱动器,所述控制器将响应于所述存储驱动器的老化而取消映射存储空间的所述第一区域的可操作部分,使得被取消映射的部分能够用于超量供应操作。
2.根据权利要求1所述的系统,所述存储驱动器的老化由通过所述存储驱动器计算的损耗指示符表征。
3.根据权利要求2所述的系统,其中所述控制器周期性地从所述驱动器获取所述损耗指示符,并且基于所述损耗指示符来确定是否取消映射存储空间的所述第一区域的一部分。
4.根据权利要求2所述的系统,其中所述损耗指示符是剩余寿命百分比,所述剩余寿命百分比指示在所述第二区域中仍然可用于超量供应操作的所述存储空间的百分比。
5.根据权利要求1所述的系统,其中所述存储驱动器是包括闪存的固态驱动器。
6.一种方法,包括:
向驱动器发送数据存储请求,所述存储请求针对被映射至虚拟卷的所述驱动器的存储空间的第一区域,所述驱动器将使用未被映射至所述虚拟卷的存储空间的至少第二区域来执行超量供应操作;
从所述驱动器获取损耗指示符;以及
基于所述损耗指示符取消映射存储空间的所述第一区域的可操作部分,使得被取消映射的部分能够用于超量供应操作。
7.根据权利要求6所述的方法,其中所述损耗指示符由存储驱动器计算为针对所述驱动器识别的不可靠的块的数量的函数。
8.根据权利要求6所述的方法,其中所述损耗指示符由存储驱动器计算为所述驱动器的第二区域中仍然可用于超量供应操作的所述存储空间的百分比。
9.根据权利要求6所述的方法,其中从所述驱动器获取所述损耗指示符包括:从存储到所述驱动器的日志文件周期性地读取所述损耗指示符。
10.根据权利要求6所述的方法,其中基于所述损耗指示符取消映射存储空间的所述第一区域的可操作部分包括:将所述损耗指示符与阈值损耗水平进行比较,所述阈值损耗水平与将被取消映射的存储空间的量相关。
11.一种有形的非暂时性计算机可读介质,包括指示处理器进行以下各项的指令:
向驱动器发送数据存储请求,所述驱动器包括被映射至虚拟卷的存储空间的第一区域,和用于执行超量供应操作并且未被映射至所述虚拟卷的存储空间的至少第二区域,其中所述存储请求针对存储空间的所述第一区域;
从所述驱动器获取损耗指示符;以及
基于所述损耗指示符取消映射存储空间的所述第一区域的可操作部分,使得被取消映射的部分能够用于超量供应操作。
12.根据权利要求12所述的计算机可读介质,其中所述损耗指示符由存储驱动器计算为针对所述驱动器识别的不可靠的块的数量的函数。
13.根据权利要求12所述的计算机可读介质,其中所述损耗指示符由存储驱动器计算为所述驱动器的第二区域中仍然可用于超量供应操作的所述存储空间的百分比。
14.根据权利要求12所述的计算机可读介质,其中指示所述处理器从所述驱动器获取所述损耗指示符的指令指示所述处理器周期性地从存储到所述驱动器的日志文件读取所述损耗指示符。
15.根据权利要求12所述的计算机可读介质,其中所述计算机可读介质被包括在存储区域网络的存储控制器节点中。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/498,998 US9513822B2 (en) | 2014-09-26 | 2014-09-26 | Unmap storage space |
| US14/498,998 | 2014-09-26 | ||
| PCT/US2015/014087 WO2016048405A1 (en) | 2014-09-26 | 2015-02-02 | Unmap storage space |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN106922188A true CN106922188A (zh) | 2017-07-04 |
Family
ID=55581710
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201580052302.6A Pending CN106922188A (zh) | 2014-09-26 | 2015-02-02 | 取消映射存储空间 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US9513822B2 (zh) |
| EP (1) | EP3198449A4 (zh) |
| CN (1) | CN106922188A (zh) |
| WO (1) | WO2016048405A1 (zh) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9760482B2 (en) | 2014-10-28 | 2017-09-12 | Toshiba Memory Corporation | Reconstruct drive for dynamic resizing |
| US11385797B2 (en) * | 2015-10-05 | 2022-07-12 | Micron Technology, Inc. | Solid state storage device with variable logical capacity based on memory lifecycle |
| US9946483B2 (en) * | 2015-12-03 | 2018-04-17 | Sandisk Technologies Llc | Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning |
| US9946473B2 (en) * | 2015-12-03 | 2018-04-17 | Sandisk Technologies Llc | Efficiently managing unmapped blocks to extend life of solid state drive |
| JP6448571B2 (ja) | 2016-03-08 | 2019-01-09 | 東芝メモリ株式会社 | ストレージシステム、情報処理システムおよび制御方法 |
| US11144453B2 (en) | 2016-04-05 | 2021-10-12 | Hewlett Packard Enterprise Development Lp | Unmap to initialize sectors |
| KR102765251B1 (ko) | 2016-11-16 | 2025-02-07 | 삼성전자주식회사 | 언맵 리드를 수행하는 메모리 장치 및 메모리 시스템 |
| US10764366B2 (en) * | 2017-01-03 | 2020-09-01 | Wipro Limited | System and method for storing data in data storage unit of virtual storage area network |
| IT201700057287A1 (it) * | 2017-05-26 | 2018-11-26 | St Microelectronics Srl | Procedimento per gestire schede a circuito integrato, scheda ed apparecchiatura corrispondenti |
| US11132134B2 (en) | 2017-12-21 | 2021-09-28 | Apple Inc. | Flexible over-provisioning of storage space within solid-state storage devices (SSDs) |
| CN110413211B (zh) * | 2018-04-28 | 2023-07-07 | 伊姆西Ip控股有限责任公司 | 存储管理方法、电子设备以及计算机可读介质 |
| US11137915B2 (en) * | 2019-06-27 | 2021-10-05 | International Business Machines Corporation | Dynamic logical storage capacity adjustment for storage drives |
| US11106580B2 (en) | 2020-01-27 | 2021-08-31 | Hewlett Packard Enterprise Development Lp | Deduplication system threshold based on an amount of wear of a storage device |
| US11029868B1 (en) * | 2020-01-29 | 2021-06-08 | Dell Products L.P. | Initialization code/data memory mapping system |
| WO2021168825A1 (en) | 2020-02-28 | 2021-09-02 | Innogrit Technologies Co., Ltd. | Systems and methods for evaluating storage medium |
| US12373342B2 (en) * | 2023-09-21 | 2025-07-29 | Dell Products L.P. | Orchestration of unmap requests received from write cache instances of a distributed storage system |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7734888B1 (en) * | 2005-04-08 | 2010-06-08 | Netapp, Inc. | Capacity guarantees in a storage system |
| US20110099320A1 (en) * | 2009-10-23 | 2011-04-28 | International Business Machines Corporation | Solid State Drive with Adjustable Drive Life and Capacity |
| US20110161496A1 (en) * | 2009-12-28 | 2011-06-30 | Nicklin Jonathan C | Implementation and management of internet accessible services using dynamically provisioned resources |
| US8364929B2 (en) * | 2009-10-23 | 2013-01-29 | Seagate Technology Llc | Enabling spanning for a storage device |
| CN103583021A (zh) * | 2011-03-31 | 2014-02-12 | 亚马逊技术公司 | 增量的高基数网络扩展 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7653778B2 (en) * | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
| US7596656B2 (en) * | 2006-09-28 | 2009-09-29 | Sandisk Corporation | Memory cards with end of life recovery and resizing |
| US8959280B2 (en) | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
| US9063874B2 (en) * | 2008-11-10 | 2015-06-23 | SanDisk Technologies, Inc. | Apparatus, system, and method for wear management |
| US8479080B1 (en) * | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
| US8850114B2 (en) | 2010-09-07 | 2014-09-30 | Daniel L Rosenband | Storage array controller for flash-based storage devices |
| JP6045567B2 (ja) | 2011-04-26 | 2016-12-14 | シーゲイト テクノロジー エルエルシーSeagate Technology LLC | 不揮発性記憶のための可変オーバープロビジョニング |
| KR20130060791A (ko) | 2011-11-30 | 2013-06-10 | 삼성전자주식회사 | 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브 |
| US8838891B2 (en) | 2012-04-13 | 2014-09-16 | Lsi Corporation | SSD cache expansion using overprovisioned space |
| US9218281B2 (en) | 2012-05-04 | 2015-12-22 | Seagate Technology Llc | Maintaining ordering via a multi-level map of a solid-state media |
| US9778860B2 (en) | 2012-09-12 | 2017-10-03 | Microsoft Technology Licensing, Llc | Re-TRIM of free space within VHDX |
| US9378135B2 (en) | 2013-01-08 | 2016-06-28 | Violin Memory Inc. | Method and system for data storage |
| US9619381B2 (en) * | 2013-12-24 | 2017-04-11 | International Business Machines Corporation | Collaborative health management in a storage system |
-
2014
- 2014-09-26 US US14/498,998 patent/US9513822B2/en not_active Expired - Fee Related
-
2015
- 2015-02-02 CN CN201580052302.6A patent/CN106922188A/zh active Pending
- 2015-02-02 EP EP15844181.6A patent/EP3198449A4/en not_active Withdrawn
- 2015-02-02 WO PCT/US2015/014087 patent/WO2016048405A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7734888B1 (en) * | 2005-04-08 | 2010-06-08 | Netapp, Inc. | Capacity guarantees in a storage system |
| US20110099320A1 (en) * | 2009-10-23 | 2011-04-28 | International Business Machines Corporation | Solid State Drive with Adjustable Drive Life and Capacity |
| US8364929B2 (en) * | 2009-10-23 | 2013-01-29 | Seagate Technology Llc | Enabling spanning for a storage device |
| US20110161496A1 (en) * | 2009-12-28 | 2011-06-30 | Nicklin Jonathan C | Implementation and management of internet accessible services using dynamically provisioned resources |
| CN103583021A (zh) * | 2011-03-31 | 2014-02-12 | 亚马逊技术公司 | 增量的高基数网络扩展 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2016048405A1 (en) | 2016-03-31 |
| US9513822B2 (en) | 2016-12-06 |
| US20160092121A1 (en) | 2016-03-31 |
| EP3198449A4 (en) | 2017-10-18 |
| EP3198449A1 (en) | 2017-08-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9513822B2 (en) | Unmap storage space | |
| US20240071485A1 (en) | Lifetime mixed level non-volatile memory system | |
| US10275162B2 (en) | Methods and systems for managing data migration in solid state non-volatile memory | |
| US9298534B2 (en) | Memory system and constructing method of logical block | |
| US10976930B2 (en) | Memory device and host device | |
| US9042181B2 (en) | Periodic erase operation for a non-volatile medium | |
| CN103092766B (zh) | 一种用于nand flash的均衡损耗实现方法 | |
| US20160342476A1 (en) | Solid state drive operations | |
| CN110678836A (zh) | 用于键值存储的持久性存储器 | |
| EP3168735A1 (en) | Apparatus, method, and multimode storage device for performing selective underlying exposure mapping on user data | |
| US9201784B2 (en) | Semiconductor storage device and method for controlling nonvolatile semiconductor memory | |
| EP3168734A1 (en) | Multimode storage management system | |
| KR100946286B1 (ko) | 플래시 파일 시스템에서 가상-물리 주소 변환 방법 및 시스템 | |
| US20180260319A1 (en) | Writing ssd system data | |
| US10621085B2 (en) | Storage system and system garbage collection method | |
| US20200110555A1 (en) | Write control method, associated data storage device and controller thereof | |
| US12327043B2 (en) | Data processing method for improving continuity of data corresponding to continuous logical addresses as well as avoiding excessively consuming service life of memory blocks and the associated data storage device | |
| US20240103732A1 (en) | Data processing method for improving continuity of data corresponding to continuous logical addresses as well as avoiding excessively consuming service life of memory blocks and the associated data storage device | |
| CN116339617A (zh) | 持久性存储设备中的自动删除 | |
| US20250110888A1 (en) | Systems and methods for reducing write buffer size in non-volatile storage devices | |
| US20230054002A1 (en) | Lifecycle-aware persistent storage | |
| JP2024033081A (ja) | メモリシステムおよび制御方法 | |
| CN108920386B (zh) | 面向非易失性内存的磨损均衡及访问方法、设备和存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170704 |
|
| WD01 | Invention patent application deemed withdrawn after publication |