CN113722131A - 用于促进存储设备中的快速崩溃恢复的方法和*** - Google Patents

用于促进存储设备中的快速崩溃恢复的方法和*** Download PDF

Info

Publication number
CN113722131A
CN113722131A CN202110789570.3A CN202110789570A CN113722131A CN 113722131 A CN113722131 A CN 113722131A CN 202110789570 A CN202110789570 A CN 202110789570A CN 113722131 A CN113722131 A CN 113722131A
Authority
CN
China
Prior art keywords
mapping table
driver
mapping
block device
storage drive
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
Application number
CN202110789570.3A
Other languages
English (en)
Inventor
李舒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN113722131A publication Critical patent/CN113722131A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了一种用于促进崩溃恢复的***。该***接收针对与逻辑块地址相关联的数据的输入/输出(I/O)请求。该***从与第一存储驱动器相关联的第一映射表中检索与逻辑块地址相对应的物理位置,其中第一映射表存储在包括块设备的随机存取存储器中,并且块设备的驱动程序与存储在所述块设备中的所述第一映射表分开存储在***内存中。***访问物理位置以执行I/O请求。响应于确定与驱动程序相关的崩溃,***重新启动驱动程序以恢复对第一映射表的访问,而无需重建第一映射表,该重建涉及从第一存储驱动器读取数据并提取逻辑地址和物理地址之间的映射关系。

Description

用于促进存储设备中的快速崩溃恢复的方法和***
技术领域
本公开涉及数据存储领域。更具体地,本公开涉及用于促进存储设备中的快速崩溃恢复的方法和***。
相关技术
今天,各种存储***被用于存储和访问数量不断增加的数字内容。存储***可以包括可提供持续内存的各种存储设备,例如,固态驱动器(SSD)和硬盘驱动器(HDD)。开放通道SSD是一种可以在管理非与(NAND)闪存方面提供透明度和灵活性的SSD。在开放通道SSD中,闪存转换层(FTL)以及关联的逻辑地址信息到物理地址信息的映射表驻留在主机端(例如,在内核模式或用户空间中)。这种基于主机的FTL可以允许与软件共享内部SSD信息,并且可以在执行主机应用程序的同时进一步优化FTL操作。这种共享和优化可以提高SSD和整个存储***的性能、成本、可靠性和运行效率。
在基于主机的FTL开放通道SSD中,所述FTL通常是运行在***内存中的程序。所述FTL程序负责维护映射表。所述FTL程序可能由于各种原因而崩溃,例如内存问题、主机崩溃等。在所述FTL程序崩溃的情况下,为了重建或修复映射表,所述***可以通过从SSD中读取大量数据来恢复映射表的内容。该恢复过程可能耗时较长,并且可能导致难以确保在足以满足服务级别协议(SLA)要求的时间内恢复服务。
因此,虽然所述基于主机的FTL可以在管理存储驱动器的物理介质方面提供透明性和灵活性,但是在处理因FTL程序崩溃而重建映射表所导致的耗时较长的问题时存在一些挑战。
发明内容
一个实施例提供了一种促进崩溃恢复的***。所述***接收针对与逻辑块地址相关联的数据的输入/输出(I/O)请求。所述***从与第一存储驱动器相关联的第一映射表中检索与所述逻辑块地址相对应的物理位置,其中所述第一映射表存储在包含块设备的随机存取存储器中,以及其中,所述块设备的驱动程序与存储在所述块设备中的第一映射表分开存储在***内存中。所述***访问所述物理位置以执行所述I/O请求。
在一些实施例中,所述***为多个存储驱动器中的每一个存储驱动器确定与相应存储驱动器相关联的映射表的尺寸,其中,所述存储驱动器包括所述第一存储驱动器,并且所述映射表的尺寸是基于相关联的各存储驱动器的容量的。所述***根据所述存储驱动器的先后顺序添加与所述多个存储驱动器相关联的多个映射表以获得映射文件,其中所述映射文件包括所述第一映射表。所述***将所述映射文件存储在所述块设备中。
在一些实施例中,所述对数据的I/O请求与包含所述逻辑块地址的一个或多个逻辑块地址相关联。所述***通过以下操作来获取对应于所述一个或多个逻辑块地址的所述物理位置。所述***识别与所述第一存储驱动器相关联的第一映射表。所述***基于与多个存储驱动器相关联的多个映射表的尺寸的总和,来识别所述第一映射表的第一起始点,所述多个存储驱动器在所述第一存储驱动器之前并按顺序排列。所述***基于所述一个或多个逻辑块地址中的第一逻辑块地址的值来确定第一偏移量。所述***确定与所述一个或多个逻辑块地址相关联的第一长度。相应映射表中的每个逻辑块地址对应相同大小的元数据。所述第一映射表包含逻辑块地址,所述逻辑块地址是根据所包含的逻辑块地址的值的顺序排序的。为执行所述I/O请求而访问所述物理位置是在第一起始点访问所述第一存储驱动器、再加上所述第一偏移量,单元数量与所述第一长度相等。。
在一些实施例中,所述第一长度等于一个或多个逻辑块地址的数量,所述逻辑块地址的数量按照存储在所述第一映射表中的元数据的预定尺寸进行增减。
在一些实施例中,内容管理模块与所述驱动程序和所述块设备通信,以管理所述映射文件的所述附加映射表。所述内容管理模块包括一个粒度调制器、一个访问模式分析器、一个随机引擎以及一个顺序引擎。
在一些实施例中,所述***通过所述访问模式分析器确定所请求的I/O数据的访问模式。所述***通过所述粒度调制器调整要访问的单元的尺寸。所述***确定所述I/O请求是与随机读/写操作相关联还是与顺序读/写操作相关联。
在一些实施例中,响应于确定一个随机读取或写入操作,所述***通过所述随机引擎、以第一尺寸的粒度访问所述块设备的映射文件,其中,所述随机引擎包括读取缓存。响应于确定一个顺序读取或写入操作,所述***通过所述顺序引擎以大于所述第一尺寸的第二尺寸的粒度访问所述块设备的所述映射文件。所述第二尺寸是基于预测要从所述块设备的所述映射文件中预取多少数据来确定的。
在一些实施例中,所述驱动程序与所述块设备和所述存储驱动器通信。应用程序基于以下一项或多项与所述驱动程序通信:所述应用程序与所述驱动程序之间的通信;以及所述应用程序和驱动程序之间通过管理程序进行的通信。所述管理程序基于以下一项或多项与所述驱动程序通信:所述管理程序与所述驱动程序之间的通信;所述管理程序和所述驱动程序之间通过分布式文件***进行的通信。
在一些实施例中,响应于确定与所述块设备的所述驱动程序相关联的崩溃,所述***重新启动所述驱动程序以恢复对所述第一映射表的访问,而无需重建第一映射表,该重建涉及从所述第一存储器读取数据以及提取逻辑地址和物理地址之间的映射关系。所述驱动程序中运行的闪存转换层程序管理所述第一映射表。确定与驱动程序相关联的崩溃包括确定与所述闪存转换层程序相关联的崩溃。重新启动所述驱动程序包括重新启动所述闪存转换层程序以恢复对所述第一映射表的访问。
在另一个实施例中,所述***确定与第一存储驱动器相关联的第一映射表,其中,所述第一映射表存储在包括块设备的随机存取存储器(RAM)中,其中,块设备的驱动程序与存储在块设备中的所述第一映射表分开存储在***内存中。响应于确定与所述块设备的所述驱动程序相关联的崩溃,所述***重新启动所述驱动程序以恢复对所述第一映射表的访问,而无需重建所述第一映射表,该重建涉及从所述第一存储驱动器读取数据以及提取逻辑地址和物理地址之间的映射关系。
附图说明
图1示出了根据现有技术的用于数据存储的示例性环境的架构。
图2A示出了根据现有技术的示例性环境,其中闪存转换层在***内存中运行。
图2B示出了根据本申请的实施例的示例性环境,其中闪存转换层在RAM块设备中运行。
图3示出了根据本申请的实施例的示例性访问层次结构。
图4A示出了根据现有技术的在主机-FTL崩溃之后的恢复过程的图,包括映射表重构。
图4B示出了根据本申请的实施例的在主机-FTL崩溃之后的恢复过程的图解。
图5示出了根据本申请的实施例的具有提供动态访问粒度的内容管理模块的环境。
图6呈现了根据本申请的实施例的用于在崩溃之后促进恢复的方法的流程图。
图7A示出了根据本申请的实施例的用于促进管理和访问映射文件的方法的流程图。
图7B示出了根据本申请的实施例的用于促进管理和访问映射文件的方法的流程图。
图8示出了根据本申请的实施例的用于促进恢复的示例性计算机***。
图9示出了根据本申请的实施例的用于促进恢复的示例性装置。
在所述附图中,相同的附图标记指代相同的图形元素。
具体实施方式
以下描述旨在使本领域技术人员能够制作和使用这些实施例,并且是在特定应用及其要求的上下文中提供的。对所公开的实施例的各种修改对于本领域技术人员来说将是显而易见的,并且在不脱离本公开的精神和范围的情况下,本文定义的一般原理可以应用于其他实施例和应用。因此,本文描述的实施例不限于所示的实施例,而应是符合与本文公开的原理和特征相一致的最广泛范围。
概述
本文描述的实施例提供了一种***,该***将FTL映射文件(作为对应于多个存储驱动器的多个附加映射表)放置在包括块设备的随机存取存储器(RAM)磁盘中,其中,块设备的驱动程序与FTL映射文件或映射表分开存储在***内存中,从而避免了通过从存储驱动器读取数据并提取逻辑地址和物理地址之间的映射关系来重构所述映射表的需要。
如上所述,在基于主机的FTL(例如开放通道SSD)中,逻辑地址信息到物理地址信息的关联映射表驻留在主机端(例如,在内核模式中或在用户空间)。这种基于主机的FTL可以允许与软件共享内部SSD信息,并且可以在执行主机应用程序的同时进一步优化FTL操作。这种共享和优化可以提高SSD和整个存储***的性能、成本、可靠性和运行效率。
在基于主机的FTL开放通道SSD中,FTL通常是运行在***内存中的程序。FTL程序负责维护映射表。FTL程序可能由于各种原因崩溃,例如内存问题、主机崩溃等。在FTL程序崩溃的情况下,所述***可以通过从SSD中依次读取大量数据来恢复映射表的内容,以重建或恢复所述映射表。该恢复过程可能耗时较长,并且可能导致难以确保在足以满足服务级别协议(SLA)要求的时间内恢复服务。
因此,虽然基于主机的FTL可以在管理存储驱动器的物理介质方面提供透明度和灵活性,但是在处理因FTL程序崩溃而重建映射表所导致的耗时较长的问题时存在一些挑战。
一种解决方案是提供基于设备的FTL,其中,所述FTL作为单个或嵌入式微处理器和存储设备的DRAM的一部分进行操作。这种基于设备的FTL可以与所述主机CPU和DRAM分开,这允许FTL保持独立于所述应用程序。如果主机应用程序崩溃或出现故障,FTL因其与所述主机CPU和DRAM隔离而不会受到影响。因此,这种隔离可以提供所述应用程序和所述FTL之间关系的解耦。
然而,如下图1中所示,该解决方案受到几个约束条件的限制。首先,由于FTL运行在设备端,主机对FTL缺乏可见性,这可能导致对物理存储介质(例如NAND)的管理和操作更加困难。其次,微处理器的架构越来越复杂,驱动内DRAM的容量越来越大,这些发展会导致电力和成本消耗的增加。第三,开发和调试固件(在微处理器上运行的软件)可能比主机端软件更复杂。由于在事故发生时转储的信息有限,调试可能特别困难。第四,如果基于设备的FTL程序本身崩溃,***可能需要执行重启操作,这可能涉及重建映射表的耗时过程(例如,通过从存储介质读取数据并提取逻辑到物理的映射关系)。
本文描述的实施例通过将FTL映射信息放置在块设备RAM磁盘上,来解决与传统的基于设备的FTL解决方案和从基于主机的FTL中的崩溃恢复两者相关联的挑战。所述块设备可以存储FTL映射信息,并且可以由块设备驱动程序(例如开放通道SSD驱动程序,如下图3所示)来管理或操作。块设备驱动程序可以包括FTL驱动程序。所述***可以将FTL映射信息(例如映射表和文件)与FTL驱动程序分开存储在块设备中,而不是将FTL映射信息与FTL驱动程序一起存储在***内存中。当***遇到与块设备驱动程序相关的崩溃时,***只需要重新启动驱动程序即可恢复对FTL文件的访问,如下图4B所示,这可以消除或避免通过从存储驱动器读取数据并提取逻辑地址和物理地址之间的映射关系来重构映射表的需要。也就是说,恢复过程可以涉及重新启动驱动程序以恢复对FTL映射文件/表的访问,而无需重建FTL映射文件/表。所述块设备可以将所述FTL映射信息存储为例如映射文件,该映射文件包括对应于多个存储驱动器的多个映射表。
存储在块设备中的FTL映射文件中的映射表可以基于有序序列进行添加,如下图5所示。一个I/O请求可以是针对与一个或多个逻辑块地址相关联的数据的请求。可以通过从对应于物理存储驱动器(所请求的数据被存储或写入到其上)的给定映射表中检索与一个或多个逻辑块地址相关联的物理位置来访问数据。第一LBA可以按照升序对应一个或多个LBA中最先出现的LBA。所述物理位置可以通过以下方式确定:识别给定映射表的起始点(基于FTL文件中按顺序排列的各个在先映射表尺寸);使用所述第一LBA的值作为给定映射表中的索引来确定距所述起始点的偏移量;以及确定与所述一个或多个逻辑块地址相关联的长度(基于所述给定映射表中针对每个LBA条目的固定大小)。下面有关图3和图5描述了用于访问存储在块设备中的FTL文件的映射表中的信息的示例性通信。
在本文描述的实施例中,所述***还可以包括在开放通道SSD驱动程序和块设备之间运行的内容管理层。所述内容管理层可以管理所述映射表文件,还可以根据访问模式(例如访问频率)调整访问粒度(例如I/O大小)。内容管理层可以使用随机引擎和顺序引擎来执行这些功能。下面有关图5描述了一个示例性的内容管理层。
因此,本文描述的实施例通过在作为块设备的RAM磁盘中放置FTL文件(作为对应于***中的存储驱动器的附加的多个FTL映射表)的方式,改进了在崩溃的情况下重建映射表的耗时过程,其中FTL驱动程序与FTL文件分开存储在***内存中。所述***进一步使用内容管理层来管理和操作基于访问粒度的所述块设备。所述FTL映射文件在所述存储驱动器之间共享,并且可以基于附加映射表的排列顺序以及与一个I/O请求的一个或多个逻辑块地址相关联的偏移量和长度来访问。
“存储***”是指用于促进***存储的一整套硬件和软件元件。一个存储***可以包括多个存储服务器和其他服务器集群。“存储服务器”是指可以包括多个存储设备或存储驱动器的计算设备。“存储设备”或“存储驱动器”是指具有非易失性存储器的可以提供数据持久存储的设备或驱动器,例如固态驱动器(SSD)、硬盘驱动器(HDD)、或基于闪存的存储设备。
“计算设备”是指可以提供任何计算能力的任何服务器、设备、节点、实体、驱动器或任何其他实体。
“映射表”指的是将逻辑地址映射到物理地址或物理位置的数据结构,如下图3和图5所示。“FTL映射文件”是指包括多个附加映射表的文件或其他数据结构。
“块设备”或“RAM磁盘”是指随机存取存储器,其包括作为***内存的一部分的块设备。在本申请中,所述FTL映射文件存储在所述块设备中。在发生与控制、管理、接口或与块设备通信的驱动程序相关的崩溃之后,可以在崩溃后通过***调用高效且快速地访问FTL映射文件。
术语“崩溃恢复”是指驱动程序返回到稳定和可用状态的过程。在本申请中,崩溃恢复过程可以包括对块设备中运行的FTL映射文件或FTL程序的***调用。
“开放通道SSD”是指作为存储***的一部分的存储设备,其中FTL程序不驻留在存储设备中(如在基于设备的FTL中),而是驻留在主机中(如在基于主机的FTL中)。在本公开中,所述基于主机的FTL由内容管理层和存储FTL映射文件的块设备的驱动程序管理。
现有技术中的示例性***架构
图1示出了根据现有技术的用于数据存储的示例性环境100的架构。环境100可以包括主机,该主机包括:中央处理单元(CPU)110和130。每个CPU可以包括多个内核,并且可以与多个双列直插存储器模块(DIMM)相耦合。例如,CPU 110可以包括内核112、114和116,并且与DIMM 120、122和124相耦合。类似地,CPU 130可以包括内核132、134和136,并且可以DIMM 140、142和144相耦合。所述主机可以通过主机接口170以及通信172和174与存储设备(例如SSD 150)通信。SSD 150还可以包括:微处理器152;DRAM 162和164;以及NAND 154、156、158和160。
SSD 150可以包括在(嵌入式)微处理器152上运行并存储在DRAM 162和164中的FTL程序。在环境100的这种基于设备的FTL中,由于基于设备的FTL与主机隔离,因此主机应用程序的任何问题通常不影响SSD 150中基于设备的FTL的运行。虽然此解决方案可以保护基于设备的FTL免受与主机应用程序相关的问题的影响,但仍存在一些限制。
首先,由于FTL运行在设备侧,主机对FTL缺乏可见性,这可能导致对物理存储介质(例如,NAND)的管理和操作更加困难。其次,微处理器的架构越来越复杂,驱动内DRAM的容量越来越大。这些发展会导致电力和成本消耗的增加。第三,开发和调试固件(在微处理器上运行的软件)可能比主机端软件更复杂,由于在事故发生时转储的信息有限,调试可能特别困难。第四,如果基于设备的FTL程序本身崩溃,***可能需要重新启动,并且可能需要执行耗时的重建映射表的过程(例如,通过从存储介质中读取数据并提取逻辑到物理的映射关系)。
因此,虽然当前基于设备的FTL的解决方案可以将FTL与主机隔离,但仍然存在一些挑战。
现有技术中***内存中的FTL与RAM块设备中的FTL
图2A根据现有技术示出了一个闪存转换层在***内存中运行的示例性环境200。环境200可包括具有高速缓存212的CPU 210。CPU 210可与主存储器220(例如,DRAM DIMM)通信或耦合,其可包括:一个操作***222、应用程序224、以及一个FTL/映射表226。在环境200中,FTL 226可以是一个模块或程序,它在分配区域中分配内存并更新映射表。然而,当FTL/映射表226程序崩溃(例如,***崩溃或与应用程序相关的崩溃)时,所述映射表消失或不再可用。为了从该种崩溃中恢复,所述***必须以耗时的传统方式重建映射表,如上有关图1所描述的。
图2B根据本申请的实施例示出了一个示例性环境230,其中闪存转换层在RAM块设备256中运行。环境230可包括具有高速缓存242的CPU 240。CPU240可与主存储器250(例如,DRAM DIMM)通信或耦合,其可包括:操作***252、应用程序254、以及可以存储FTL/映射表258的RAM磁盘256。在环境230中,RAM磁盘256是由***内存的DRAM(例如,主存储器250)形成的块设备。如果所述***遇到与应用程序或控制RAM磁盘256的驱动程序相关联的崩溃,则所述***可以通过重新启动FTL程序,例如通过对FTL程序258进行***调用,快速重新获得对FTL/映射表258的访问。因此,所述***可以避免因重构存储在RAM磁盘256中的FTL映射文件258的映射表而导致的耗时过程。
示例性访问层次结构
图3示出了根据本申请的实施例的示例性访问层次结构300。层次结构300可以包括:应用程序302、管理程序304、分布式文件***306、开放通道SSD驱动程序308、RAM磁盘310、以及开放通道SSD 312、314和316。在运行期间,应用程序302可以与开放通道SSD驱动程序308通信或直接操作开放通道SSD驱动程序308(通过通信346)。应用程序302还可以经由管理程序304(经由通信324)与开放通道SSD驱动器308通信以用于虚拟化。管理程序304可以与开放通道SSD驱动器308通信或直接操作它(通过通信344),或者可以通过分布式文件***306(通过通信324和326)与开放通道SSD驱动程序308通信。
开放通道SSD驱动程序308可以与RAM磁盘310(其可以是由***内存形成的块设备)通信(通过通信330)。开放通道SSD驱动程序308还可以与多个开放通道SSD通信,例如开放通道SSD 312、314和316(分别通过通信332、334和336)。
RAM磁盘310可以存储FTL映射文件340,其可以包括与开放通道SSD 312-316中的每一个相关联的附加映射表342、344和346,该附加映射表按照与关联的存储驱动器相同的排列顺序进行排序。所述排列顺序可以是例如从左到右描绘的SSD 312、SSD 314和SSD316。每个单独的映射表可以存储为单个单元或作为FTL映射文件340的一部分的块。注意FTL映射文件340可以与开放通道SSD驱动程序308(可存储于***内存中)的FTL驱动程序分开存储在RAM磁盘310中。
每个映射表的尺寸可以基于对应的存储驱动器或SSD的大小或容量。每个SSD的大小或容量可能不同,并且所述关联映射表的大小也可能不同。例如,给定1000:1的比率,如果SSD 312的容量是4太字节(TB),则映射表342(与SSD312相关联)的大小352可以是4吉字节(GB)。类似地,如果SSD314的容量是2TB,则映射表344(与SSD 314相关联)的大小354可以是2GB。此外,如果SSD 316的容量为8TB,则映射表346(与SSD 316相关联)的大小356可以为8GB。
每个映射表可以基于各LBA值的升序来组织,其中每个LBA可以对应于映射表的预定大小的元数据。例如,所述元数据可以指示与给定的LBA值对应的数据被存储在哪里的物理位置(包括例如物理块地址(PBA))的信息,并且存储在映射表中的元数据本身可以是固定大小,例如10字节。在给定的映射表中使用固定大小的元数据,各LBA值按升序排列(例如,{LBA_1,LBA_2,LBA_3,...LBA_n}:LBA_1可能对应于字节1到10;LBA_2可能对应于字节11到20;LBA_3可能对应字节21到30;而LBA_n可能对应字节((n*10)–9)到(n*10)。这允许所述***利用已知的数据格式和存储在块设备上(即在每个映射表中)的数据大小来建立寻址,即,所述***可以根据所述映射表的数据结构建立所述映射表和所述地址信息,而不需要复杂的内容管理层,例如一个文件***。以下结合图5描述了一示例性内容管理层,所述内容管理层与所述驱动程序和所述块设备通信。
因此,基于给定映射表中所述LBA值的升序、并且基于给定映射表中存储的元数据的已知或预定的大小,所述***可以确定偏移量和长度。所述***可以基于与传入I/O请求相关联的LBA(或与传入I/O请求相关联的一个或多个LBA中的第一个LBA)的值来确定偏移量。所述***可以基于与传入I/O请求相关联的一个或多个LBA的数量以及存储在所述给定映射表中的元数据的预定或固定大小来确定所述长度(例如,长度=LBA的数量*给定映射表中的元数据的固定大小)。
此外,所述***可以基于在先的映射表的累积尺寸确定每个映射表的起始点,其中,所述在先的映射表是基于有序序列确定的。即,所述***可以确定与给定存储驱动器相关联的给定映射表联的起始点,所述起始点是基于序列中位于所述给定映射表之前的、与多个存储驱动器相关联的多个映射表的尺寸的总和来确定的。
由于映射表342是FTL映射文件340中附加的多个对应映射表中的第一个表,因此映射表342的起始点362可以为0。映射表344的起始点364可以具有等于在先的映射表的尺寸总和的值,即在先的映射表342的长度或尺寸352的值。映射表346的起始点366可以具有等于在先的映射表的尺寸总和的值,即,一个至少等于前面映射表342的尺寸352加上前面映射表344的尺寸354的值(加上映射表344之后和映射表346之前的任何其他在先的映射表的尺寸,未显示)。
此外,当处理传入的I/O请求时,所述***可以确定与I/O请求相关联的偏移量和长度,并通过从所确定的起始点加上与所述偏移量的方式访问给定的存储驱动器中的物理位置或物理块地址,其单元(例如,字节)的数量与长度相等。例如,假设LBA_e对应于或映射到元数据376,LBA_f对应于或映射到元数据378,而LBA_g对应于或映射到元数据380。当处理针对与逻辑块地址LBA_e、LBA_f和LBA_g(“三个传入LBA”)相关联的数据的I/O请求时,开放通道SSD驱动程序308可以接收所述I/O请求并确定SSD 314是要访问的存储设备。驱动程序308可以访问RAM磁盘310以从映射表344(与SSD 314相关联)检索与传入的LBA相关联的物理位置。所述***可以确定映射表344的起始点364(如上所述),并且可以确定偏移量392(基于LBA_e的值确定,三个传入LBA中的第一个,对应于元数据376)。所述***可以从起始点364加上偏移量392开始读取数据,长度为394(基于传入LBA的LBA数量(三个)乘以映射表344的元数据的固定大小来确定)。
因此,层次结构300既描述了所描述的实施例中的通信层次结构,也描述了访问存储在FTL映射文件中的给定映射表的方式,该映射表是与存储驱动器的有序序列相关联的多个有序和添加的映射表的一部分。
现有技术中的映射表重建与使用块设备从崩溃中快速恢复
图4A示出了根据现有技术的在主机-FTL崩溃之后的恢复过程的图400,包括映射表重构。在图400中,当***经历与开放通道SSD驱动器(旧)402相关联的崩溃(例如,主机端FTL崩溃)时,***必须重新启动FTL程序(如“崩溃重启”所示)。开放通道SSD驱动器(新)412必须重新分配内存并从开放通道SSD414加载数据(通过通信420)以重建一个映射表(内存分配)404(如“崩溃重建”所示)。如上所述,以这种方式重建或重构映射表可能需要一个耗时的过程,这可能无法充分满足SLA的条款。
图4B示出了根据本申请的实施例的在主机-FTL崩溃之后的恢复过程的图440。在图440中,当***经历与开放通道SSD驱动程序(旧)442相关联的崩溃(例如,主机端FTL崩溃)时,***只需要重新启动或重新启动FTL程序(如“崩溃重启”)。代替从开放通道SSD 454重新分配内存和加载数据以便重建或重构映射表(如图4A的现有技术图400),开放通道SSD驱动程序(新)452只需要采用***调用462来访问映射表444(如存储在RAM块设备444中)。结果是,所述***本质上仅丢失了开放通道SSD驱动程序(旧)442之间的通信460,并且根本不需要与SSD 454通信以重建或重构映射表(如缺少图4B中的“崩溃重建”标签)。请注意,存储在RAM块设备444中的FTL映射表可以与SSD驱动程序或块设备驱动程序(442或452)的FTL驱动程序分开存储,而非一起存储,后者可以存储在***存储器中。因此,***可以消除重建或重构映射表的需要,因为所述映射表基于其在RAM块设备444中的位置而保持免受影响、可存储并且可通过***调用462快速访问,这可以促进崩溃快速恢复。
通过这种方式,图4B的所述***可以避免、消除或不存在映射表的重建(如对图400的现有技术环境的改进430所指示的),从而消除对可能不能充分满足SLA条款的耗时的过程的需求。
所描述的实施例提供了对主机端FTL崩溃的场景(如在开放通道SSD中)的解决方案和改进方式。在发生整个服务器崩溃的罕见情况下(例如在重启期间),整个服务器将需要时间来正确重新启动。由于所述FTL映射文件存储在块设备(RAM磁盘)中并且运行在易失性***内存上,因此在整个服务器重启所需的时间内,***可以根据需要重建映射表。即,本文所描述的实施例针对FTL程序、块设备的FTL映射文件或者关联的块设备驱动程序发生崩溃的情况以及对其进行的改进。
动态粒度访问的内容管理模块
图5根据本申请的实施例示出了具有提供动态访问粒度的内容管理模块512的环境500。在环境500中,开放通道驱动程序510经由内容管理模块512与块设备514通信。内容管理模块512可以包括:粒度调制器520,其调整数据单元的大小以访问存储在块设备514中的FTL映射文件;访问模式分析器522,其确定给定或请求的数据或相应元数据的访问模式;随机引擎524和顺序引擎526。块设备514可以存储一个FTL映射文件540,其可以包括与一个或多个存储驱动器相关联的映射表的元数据。例如,FTL映射文件540可以包括对应于LBA的元数据,这些LBA是基于LBA值的升序排列的,例如元数据542、544、546、548、550、552和554。
所述***可以确定I/O请求是否与随机读/写操作或顺序读/写操作相关联。所述***可以响应于确定随机读取或写入操作而使用随机引擎524。随机引擎524可以基于第一尺寸(例如,小尺寸)的粒度来访问块设备514的FTL映射文件540。随机引擎524还可以包括读取高速缓存(未示出)以增加数据的命中率并减少对块设备514的查询的数量。所述***可以使用顺序引擎526来响应确定顺序读取或写入操作,例如,通过预测相对较大的I/O大小,为其预取对应于一个或多个传入LBA的映射信息(例如,元数据或物理位置信息)。顺序引擎526可以基于第二尺寸(例如,大尺寸或大于第一尺寸的尺寸)的粒度来访问块设备514的FTL映射文件540。
如上所述,当处理I/O请求并访问存储在块设备514中的FTL映射文件540时,所述***可以确定FTL映射文件540中的给定映射表的起始点(如上所述,图5未示出)。所述***还可以确定与传入I/O数据相关联的{偏移量,长度}560。对于等于长度560(在FTL映射文件540中表示为尺寸或长度564)的多个单位,所述***可以从位置562(其可以包括起始点加偏移量560)开始检索数据。在一些实施例中,偏移量560可以包括所述起始点,其中所述***通过首先识别给定映射表的起始点,并基于由特定LBA确定的偏移量移动到给定映射表中的正确位置来确定单个偏移量值(或多个LBA值中的第一个特定LBA值)。
促进数据恢复的方法
图6呈现了根据本申请的实施例的用于促进崩溃之后的恢复的方法的流程图600。运行期间,***接收针对与逻辑块地址相关联的数据的输入/输出(I/O)请求(操作602)。该***从与第一存储驱动器相关联的第一映射表中检索对应于逻辑块地址的物理位置,其中,所述第一映射表存储在包括块设备的随机存取存储器(RAM)中,并且块设备的驱动程序与存储在块设备中的第一映射表分开存储在***内存中(操作604)。所述***访问所述物理位置以执行I/O请求(操作606)。如果所述***未确定出与控制所述块设备的驱动程序(或所述块设备的驱动程序)相关联的崩溃(决定608),则操作返回。
如果所述***确定与控制所述块设备的驱动程序(或所述块设备的驱动程序)相关联的崩溃(决定608),则所述***重新启动所述驱动程序以恢复对第一映射表的访问,而无需重建第一映射表,该重建涉及从第一存储驱动器读取数据并提取逻辑地址和物理地址之间的映射关系(操作610)。操作返回。
一种便于管理映射文件和动态访问粒度的方法
图7A呈现了根据本申请的实施例示出的用于促进映射文件的管理和访问的方法的流程图700。运行期间,所述***为多个存储驱动器中的每一个确定与相应存储驱动器相关联的映射表的尺寸,其中,存储驱动器包括至少第一存储驱动器,并且所述映射表的尺寸是基于相关联的各存储驱动器的容量的(操作702)。所述***根据存储驱动器的排序顺序添加与多个存储驱动器相关联的多个映射表,以获得映射文件,其中所述映射文件至少包括第一映射表(操作704)。***将映射文件存储在包括块设备的随机存取存储器(RAM)中,其中块设备的驱动程序与存储在块设备中的映射文件分开存储在***存储器中(操作706)。所述***接收针对与一个或多个逻辑块地址相关联的数据的I/O请求(操作708)。所述***从映射文件中检索对应于一个或多个逻辑块地址的物理位置(操作710)。在图7B的标签A处继续操作。
图7B呈现了根据本申请的实施例示出的用于促进映射文件的管理和访问的方法的流程图720。***识别与第一存储驱动器相关联的第一映射表(操作722)。所述***基于与存储驱动器相关联的映射表的尺寸的总和来识别所述第一映射表的第一起始点,所述存储驱动器按顺序排列在所述第一存储驱动器之前(操作724)。所述***基于一个或多个逻辑块地址中的第一逻辑块地址的值来确定第一偏移量(操作726)。该“第一”LBA是出现在一个或多个LBA的有序序列中的第一个LBA值。所述***确定与一个或多个逻辑块地址相关联的第一长度,其中每个逻辑块地址在各自的映射表中对应相同大小的元数据,其中。所述第一映射表包括逻辑块地址,这些逻辑块地址是根据所包含的逻辑块地址的值按顺序排序的(操作728)。
所述***基于一个或多个逻辑块地址、第一起点、第一偏移量和第一长度来确定一个物理位置(操作730)。所述***为执行所述I/O请求而访问所述物理位置是基于在第一起始点访问所述第一存储驱动器、再加上与所述第一长度相等的单元数的第一偏移量(操作732)。所述第一长度等于一个或多个逻辑块地址的数量,所述逻辑块地址的数量按照存储在所述第一映射表中的元数据的预定尺寸进行增减。在图6的操作608处继续所述操作。
确定和访问物理位置可以涉及访问模式分析器、粒度调制器、随机引擎和顺序引擎中的一个或多个,如上有关图5所描述。
示例性计算机***和设备
图8图示了根据本申请的实施例的促进恢复的示例性计算机***。计算机***800包括处理器802、易失性存储器806和存储设备808。在一些实施例中,计算机***800可以包括控制器804(由虚线指示)。易失性存储器806可以包括例如用作受管存储器的随机存取存储器(RAM)。易失性存储器806可用于存储一个或多个存储器池并形成块设备。存储设备808可以包括可以通过处理器802(或控制器804)管理或访问的持久存储。此外,计算机***800可以耦合到***输入/输出(I/O)用户设备810,例如显示设备811、键盘812和定点设备814。存储设备808可以存储操作***816、内容处理***818和数据836。
内容处理***818可以包括指令,当其由计算机***800执行时,可以使计算机***800或处理器802执行本公开中描述的方法和/或流程。具体地,内容处理***818可以包括用于接收和传输数据包的指令,包括要读取或写入的数据、输入/输出(I/O)请求(例如,读取请求或写入请求)、元数据、逻辑块地址(LBA)和物理块地址(PBA)或物理位置(通信模块820)。
内容处理***818还可以包括用于接收与逻辑块地址(通信模块820)相关联的数据的输入/输出(I/O)请求的指令。内容处理***818可以包括用于从与第一存储驱动器相关联的第一映射表中检索对应于逻辑块地址的物理位置的指令,其中,第一映射表存储在随机存取存储器(RAM)中,其包括块设备,其中块设备的驱动程序与存储在块设备中的第一映射表(映射文件管理模块822)分开存储在***内存中。内容处理***818还可以包括用于访问所述物理位置以执行I/O请求的指令(物理位置访问模块824)。内容处理***818可以包括用于响应于确定与控制所述块设备的驱动程序相关联的崩溃(驱动程序崩溃确定模块826)的指令,重新启动所述驱动程序以恢复对第一映射表的访问,而无需重建第一映射表,该重建涉及从第一存储驱动器读取数据并提取逻辑地址和物理地址之间的映射关系(驱动程序重启模块)。
内容处理***818还可以包含用于确定映射表的尺寸、添加与存储驱动器相关联的映射表以获得映射文件、以及将映射文件存储在块设备中的指令(映射文件管理模块822)。内容处理***818可以包括用于通过识别起始点并确定偏移量和长度的方式来检索物理位置的指令(物理位置访问模块824)。
内容处理***818还可以包括用于确定请求I/O数据的访问模式的指令(访问模式分析模块832)。内容处理***818可以包括用于调整要访问的单元的尺寸的指令(粒度调整模块830)。内容处理***818可以包括用于确定I/O请求是与随机读/写操作相关联、还是与顺序读/写操作相关联的指令(数据处理模块834)。内容处理***818还可包括用于响应于确定随机读取或写入操作(数据处理模块834),由随机引擎以第一尺寸的粒度访问块设备的映射文件的指令,其中所述随机引擎包括读取缓存(映射文件管理模块822)。内容处理***818可以包括用于响应于确定顺序读或写操作(数据处理模块834),由顺序引擎访问块设备的具有第二尺寸的粒度的映射文件的指令,所述第二尺寸大于所述第一尺寸(映射文件管理模块822)。
数据836可以包括本公开中描述的方法和/或流程所需要的作为输入或作为输出生成的任何数据。具体地,数据836至少可以存储:数据;I/O请求;元数据;与逻辑块地址(LBA)相关联的数据;逻辑块地址(LBA);物理块地址(PBA);物理位置;映射表;映射文件或FTL映射文件;逻辑到物理的映射;存储驱动器或相关映射表的标识符或指示符;指示;序列、升序或有序顺序;起始点;偏移量;长度;尺寸;若干单元;若干LBA;内容管理模块的标识符或指示符、访问模式分析器、粒度调制器、随机引擎或顺序引擎;应用程序的标识符或指示符、驱动程序、管理程序、分布式文件***或块设备;闪存转换层程序及相关信息;以及重新启动驱动程序的***调用。
图9示出了根据本申请的实施例的促进恢复的示例性装置900。装置900可以包括多个单元或装置,它们可以通过有线、无线、量子光或电通信信道相互通信。装置900可以使用一个或多个集成电路来实现,并且可以包括比图9所示的单元或装置更少或更多的单元或装置。此外,装置900可以集成在计算机***中,或者或作为一个单独的设备或能够与其他计算机***和/或设备通信的设备实现。
装置900可以包括模块或单元902-916,其被配置为执行类似于图8的计算机***800的模块820-834的功能或操作,包括:通信单元902;映射文件管理单元904;物理位置访问单元906;驱动程序崩溃判定单元908;驱动程序重启单元910;粒度调整单元912;访问模式分析单元914;以及数据处理单元916。
本详细描述部分中描述的数据结构和代码通常存储在计算机可读存储介质上,该计算机可读存储介质可以是能够存储代码和/或数据以供计算机***使用的任何设备或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光存储设备,例如磁盘驱动器、磁带、CD(光盘)、DVD(数字多功能光盘或数字视频光盘),或其他能够存储现在已知或以后开发的计算机可读介质。
在详细描述部分中描述的方法和流程可以呈现为代码和/或数据,其可以存储在如上所述的计算机可读存储介质中。当计算机***读取和执行存储在计算机可读存储介质上的代码和/或数据时,计算机***执行呈现为数据结构和代码并存储在计算机可读存储介质中的方法和流程。
此外,上述方法和流程可以包括在硬件模块中。例如,硬件模块可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)以及现在已知或以后开发的其他可编程逻辑设备。当硬件模块被激活时,硬件模块执行硬件模块中包含的方法和流程。
本文描述的前述实施例仅用于说明和描述的目的。它们并非旨在穷举或将本文描述的实施例限制为所公开的形式。因此,许多修改和变化对于本领域技术人员来说将是显而易见的。此外,上述公开内容并非用于限制本文所描述的实施例。在此描述的实施例的范围由所附权利要求限定。

Claims (21)

1.一种计算机实现的方法,包括:
接收针对与逻辑块地址相关联的数据的输入/输出(I/O)请求;
从与第一存储驱动器相关联的第一映射表中检索与所述逻辑块地址相对应的物理位置,
其中,所述第一映射表存储在包括块设备的随机存取存储器(RAM)中,以及
其中,所述块设备的驱动程序与存储在所述块设备中的所述第一映射表分开存储在***内存中;和
访问所述物理位置以执行所述I/O请求。
2.如权利要求1所述的方法,还包括:
为多个存储驱动器中的每一个确定与相应存储驱动器相关联的映射表的尺寸,其中,所述存储驱动器包括第一存储驱动器,并且所述映射表的尺寸是基于相关联的各存储驱动器的容量的;
根据所述存储驱动器的先后顺序添加与所述多个存储驱动器相关联的多个映射表,以获得映射文件,其中,所述映射文件包括第一映射表;和
将所述映射文件存储在所述块设备中。
3.如权利要求2所述的方法,其中,所述针对数据的I/O请求与包含所述逻辑块地址的一个或多个逻辑块地址相关联,并且所述方法还包括通过如下操作检索对应于所述一个或多个逻辑块地址的物理位置:
识别与所述第一存储驱动器相关联的第一映射表;
基于与多个存储驱动器相关联的多个映射表的尺寸的总和,来识别所述第一映射表的第一起始点,所述多个存储驱动器在所述第一存储驱动器之前并按顺序排列;
基于所述一个或多个逻辑块地址中的第一逻辑块地址的值确定第一偏移量;和
确定与所述一个或多个逻辑块地址相关联的第一长度,其中,相应映射表中的每个逻辑块地址对应相同大小的元数据,并且其中所述第一映射表包括逻辑块地址,所述逻辑块地址基于所包含的逻辑块地址的值进行有序排序,以及
其中,为执行所述I/O请求而访问所述物理位置是在第一起始点访问所述第一存储驱动器、再加上所述第一偏移量,单元数量与所述第一长度相等。
4.如权利要求3所述的方法,
其中,所述第一长度等于一个或多个逻辑块地址的数量,所述逻辑块地址的数量按照存储在所述第一映射表中的元数据的预定尺寸进行增减。
5.如权利要求1所述的方法,
其中,内容管理模块与所述驱动程序和所述块设备通信,以管理映射文件的附加映射表,以及
其中,所述内容管理模块包括粒度调制器、访问模式分析器、随机引擎和顺序引擎。
6.如权利要求5所述的方法,还包括:
通过所述访问模式分析器确定所请求的I/O数据的访问模式;
通过所述粒度调制器调整要访问的单元的尺寸;和
确定所述I/O请求是与随机读/写操作相关联还是与顺序读/写操作相关联。
7.如权利要求6所述的方法,还包括:
响应于确定一个随机读或写操作,所述随机引擎以第一尺寸的粒度访问所述块设备的所述映射文件,其中所述随机引擎包括读缓存;和
响应于确定一个顺序读或写操作,所述顺序引擎以大于所述第一尺寸的第二尺寸的粒度访问所述块设备的所述映射文件,
其中,所述第二尺寸是基于预测要从所述块设备的所述映射文件中预取多少数据来确定的。
8.如权利要求1所述的方法,
其中,所述驱动程序与所述块设备和所述存储驱动器通信,
其中,应用程序基于以下一项或多项与所述驱动程序通信:
所述应用程序和所述驱动程序之间的通信;和
所述应用程序和所述驱动程序之间通过管理程序进行的通信,
其中,所述管理程序基于以下一项或多项与所述驱动程序通信:
所述管理程序和所述驱动程序之间的通信;和
所述管理程序和所述驱动程序之间通过分布式文件***的通信。
9.如权利要求1所述的方法,还包括:
响应于确定与所述块设备的所述驱动程序相关联的崩溃,重新启动所述驱动程序以恢复对所述第一映射表的访问,而无需重建所述第一映射表,该重建涉及从所述第一存储驱动器读取数据并提取逻辑地址和物理地址之间的映射关系;
其中,运行于所述驱动程序中的闪存转换层程序管理所述第一映射表,
其中,确定与所述驱动程序相关联的崩溃包括确定与所述闪存转换层程序相关联的崩溃,以及
其中,重新启动所述驱动程序包括重新启动所述闪存转换层程序以恢复对所述第一映射表的访问。
10.一种计算机***,包括:
处理器;和
耦合到所述处理器并存储指令的存储器,当由所述处理器执行时,使所述处理器执行一个方法,所述方法包括:
接收针对与逻辑块地址相关联的数据的输入/输出(I/O)请求;
从与第一存储驱动器相关联的第一映射表中检索与逻辑块地址相对应的物理位置,
其中,所述第一映射表存储在包括块设备的随机存取存储器(RAM)中,以及
其中,所述块设备的驱动程序与存储在所述块设备中的所述第一映射表分开存储在***内存中;和
访问所述物理位置以执行所述I/O请求。
11.如权利要求10所述的计算机***,其中该方法还包括:
为多个存储驱动器中的每一个确定与相应存储驱动器相关联的映射表的尺寸,其中,所述存储驱动器包括第一存储驱动器,并且所述映射表的尺寸是基于相关联的各存储驱动器的容量的;
根据所述存储驱动器的先后顺序添加与所述多个存储驱动器相关联的多个映射表,以获得映射文件,其中,所述映射文件包括第一映射表;和
将所述映射文件存储在所述块设备中。
12.如权利要求11所述的计算机***,其中,所述针对数据的I/O请求与包含所述逻辑块地址的一个或多个逻辑块地址相关联,并且所述方法还包括通过如下方式检索对应于所述一个或多个逻辑块地址的物理位置:
识别与所述第一存储驱动器相关联的第一映射表;
基于与多个存储驱动器相关联的多个映射表的尺寸的总和,来识别所述第一映射表的第一起始点,所述多个存储驱动器在所述第一存储驱动器之前并按顺序排列;
基于所述一个或多个逻辑块地址中的第一逻辑块地址的值确定第一偏移量;和
确定与所述一个或多个逻辑块地址相关联的第一长度,其中,相应映射表中的每个逻辑块地址对应相同大小的元数据,并且其中所述第一映射表包括逻辑块地址,所述逻辑块地址基于所包含的逻辑块地址的值进行有序排序,以及
其中,为执行所述I/O请求而访问所述物理位置,是在第一起始点访问所述第一存储驱动器、再加上所述第一偏移量,单元数量与所述第一长度相等。
13.如权利要求12所述的计算机***,
其中,所述第一长度等于一个或多个逻辑块地址的数量,所述逻辑块地址的数量按照存储在所述第一映射表中的元数据的预定尺寸进行增减。
14.如权利要求10所述的计算机***,
其中,内容管理模块与所述驱动程序和所述块设备通信,以管理映射文件的附加映射表,以及
其中,所述内容管理模块包括粒度调制器、访问模式分析器、随机引擎和顺序引擎。
15.如权利要求14所述的计算机***,其中所述方法还包括:
通过所述访问模式分析器确定所请求的I/O数据的访问模式;
通过所述粒度调制器调整要访问的单元的尺寸;和
确定所述I/O请求是与随机读/写操作相关联还是与顺序读/写操作相关联。
16.如权利要求15所述的计算机***,其中所述方法还包括:
响应于确定一个随机读或写操作,所述随机引擎以第一尺寸的粒度访问所述块设备的所述映射文件,其中所述随机引擎包括读缓存;和
响应于确定一个顺序读或写操作,所述顺序引擎以大于所述第一尺寸的第二尺寸的粒度访问所述块设备的所述映射文件,
其中,所述第二尺寸是基于预测要从所述块设备的所述映射文件中预取多少数据来确定的。
17.如权利要求10所述的计算机***,
其中,所述驱动程序与所述块设备和所述存储驱动器通信,
其中,应用程序基于以下一项或多项与所述驱动程序通信:
所述应用程序和所述驱动程序之间的通信;和
所述应用程序和所述驱动程序之间通过管理程序进行的通信,
其中,所述管理程序基于以下一项或多项与所述驱动程序通信:
所述管理程序和所述驱动程序之间的通信;和
所述管理程序和所述驱动程序之间通过分布式文件***的通信。
18.如权利要求10所述的计算机***,其中所述方法还包括:
响应于确定与所述块设备的所述驱动程序相关联的崩溃,重新启动所述驱动程序以恢复对所述第一映射表的访问,而无需重建所述第一映射表,该重建涉及从所述第一存储驱动器读取数据并提取逻辑地址和物理地址之间的映射关系;
其中,运行于所述驱动程序中的闪存转换层程序管理所述第一映射表,
其中,确定与所述驱动程序相关联的崩溃包括确定与所述闪存转换层程序相关联的崩溃,以及
其中,重新启动所述驱动程序包括重新启动所述闪存转换层程序以恢复对所述第一映射表的访问。
19.一种装置,包括:
通信单元,被配置为接收针对与逻辑块地址相关联的数据的输入/输出(I/O)请求;
映射文件管理单元,被配置为从与第一存储驱动器相关联的第一映射表中检索与逻辑块地址相对应的物理位置,
其中,所述第一映射表存储在包括块设备的随机存取存储器(RAM)中,以及
其中,所述块设备的驱动程序与存储在所述块设备中的所述第一映射表分开存储在***内存中;和
物理位置访问单元,被配置为访问所述物理位置以执行所述I/O请求。
20.如权利要求19所述的装置,还包括:
驱动程序崩溃确定单元,被配置为确定与块设备的驱动程序相关联的崩溃;
驱动程序重启单元,被配置为响应于确定与所述块设备的所述驱动程序相关联的崩溃,重新启动所述驱动程序以恢复对所述第一映射表的访问,而无需重建所述第一映射表,该重建涉及从所述第一存储驱动器读取数据并提取逻辑地址和物理地址之间的映射关系;
其中,运行于所述驱动程序中的闪存转换层程序管理所述第一映射表,
其中,确定与所述驱动程序相关联的崩溃包括确定与所述闪存转换层程序相关联的崩溃,以及
其中,重新启动所述驱动程序包括重新启动所述闪存转换层程序以恢复对所述第一映射表的访问。
21.一种计算机实现的方法,包括:
确定与第一存储驱动器相关联的第一映射表,
其中,所述第一映射表存储在包括块设备的随机存取存储器(RAM)中,以及
其中,所述块设备的驱动程序与存储在块设备中的第一映射表分开存储在***内存中;和
响应于确定与所述块设备的驱动程序相关联的崩溃,重新启动所述驱动程序以恢复对所述第一映射表的访问,而无需重建所述第一映射表,该重建涉及从所述第一存储驱动器读取数据并提取逻辑地址和物理地址之间的映射关系。
CN202110789570.3A 2020-07-27 2021-07-13 用于促进存储设备中的快速崩溃恢复的方法和*** Pending CN113722131A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/939,961 US11354233B2 (en) 2020-07-27 2020-07-27 Method and system for facilitating fast crash recovery in a storage device
US16/939,961 2020-07-27

Publications (1)

Publication Number Publication Date
CN113722131A true CN113722131A (zh) 2021-11-30

Family

ID=78673229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110789570.3A Pending CN113722131A (zh) 2020-07-27 2021-07-13 用于促进存储设备中的快速崩溃恢复的方法和***

Country Status (2)

Country Link
US (1) US11354233B2 (zh)
CN (1) CN113722131A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4180936B1 (en) * 2021-11-10 2024-07-31 Samsung Electronics Co., Ltd. Virtualized system and method of controlling access to nonvolatile memory device in virtualization environment

Family Cites Families (404)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3893071A (en) 1974-08-19 1975-07-01 Ibm Multi level error correction system for high density memory
US4562494A (en) 1983-04-07 1985-12-31 Verbatim Corporation Disk drive alignment analyzer
US4775932A (en) 1984-07-31 1988-10-04 Texas Instruments Incorporated Computer memory system with parallel garbage collection independent from an associated user processor
NL8402411A (nl) 1984-08-02 1986-03-03 Philips Nv Inrichting voor het korrigeren en maskeren van fouten in een informatiestroom, en weergeeftoestel voor het weergeven van beeld en/of geluid voorzien van zo een inrichting.
US4858040A (en) 1987-08-25 1989-08-15 Ampex Corporation Bimorph actuator for a disk drive
DE69434311D1 (de) 1993-02-01 2005-04-28 Sun Microsystems Inc Archivierungsdateiensystem für datenanbieter in einer verteilten netzwerkumgebung
US5394382A (en) 1993-02-11 1995-02-28 International Business Machines Corporation Method for the organization of data on a CD-ROM
JP3215237B2 (ja) 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
JP3290798B2 (ja) 1994-03-14 2002-06-10 富士通株式会社 並列コンピュータ
US5602693A (en) 1994-12-14 1997-02-11 Micropolis (S) Pte Ltd. Method and apparatus for sensing position in a disk drive
WO1997020310A1 (en) 1995-11-28 1997-06-05 Micropolis Corporation Twin coil positioning device for use in a family of hard disk drives having interchangeable magnet components
US5732093A (en) 1996-02-08 1998-03-24 United Microelectronics Corporation Error correction method and apparatus on optical disc system
US6148377A (en) 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US6098185A (en) 1997-10-31 2000-08-01 Stmicroelectronics, N.V. Header-formatted defective sector management system
US7200623B2 (en) 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6421787B1 (en) 1998-05-12 2002-07-16 Sun Microsystems, Inc. Highly available cluster message passing facility
US6243795B1 (en) 1998-08-04 2001-06-05 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Redundant, asymmetrically parallel disk cache for a data storage system
US6226650B1 (en) 1998-09-17 2001-05-01 Synchrologic, Inc. Database synchronization and organization system and method
US7966462B2 (en) 1999-08-04 2011-06-21 Super Talent Electronics, Inc. Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips
US20020010783A1 (en) 1999-12-06 2002-01-24 Leonard Primak System and method for enhancing operation of a web server cluster
US6457104B1 (en) 2000-03-20 2002-09-24 International Business Machines Corporation System and method for recycling stale memory content in compressed memory systems
US6658478B1 (en) 2000-08-04 2003-12-02 3Pardata, Inc. Data storage system
US6795894B1 (en) 2000-08-08 2004-09-21 Hewlett-Packard Development Company, L.P. Fast disk cache writing system
US6981005B1 (en) 2000-08-24 2005-12-27 Microsoft Corporation Partial migration of an object to another storage location in a computer system
US7228441B2 (en) 2000-09-27 2007-06-05 Huron Ip Llc Multi-server and multi-CPU power management system and method
US6694451B2 (en) 2000-12-07 2004-02-17 Hewlett-Packard Development Company, L.P. Method for redundant suspend to RAM
US7418522B2 (en) 2000-12-21 2008-08-26 Noatak Software Llc Method and system for communicating an information packet through multiple networks
WO2002052381A2 (en) 2000-12-22 2002-07-04 Warp Solutions, Inc. System and method for intelligently distributing content over a communications network
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
JP2003022209A (ja) 2001-07-05 2003-01-24 Nri & Ncc Co Ltd 分散サーバーシステム
US7865440B2 (en) 2001-10-11 2011-01-04 International Business Machines Corporation Method, system, and program for securely providing keys to encode and decode data in a storage cartridge
US7047428B2 (en) 2002-01-03 2006-05-16 Broadcom Corporation Method and apparatus for performing wake on LAN power management
KR100856399B1 (ko) 2002-01-23 2008-09-04 삼성전자주식회사 디코딩 방법 및 그 장치
AU2002367491A1 (en) 2002-01-24 2003-09-02 Koninklijke Philips Electronics N.V. Data storage apparatus and method for handling a data storage apparatus
US7533214B2 (en) 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US20030163633A1 (en) 2002-02-27 2003-08-28 Aasheim Jered Donald System and method for achieving uniform wear levels in a flash memory device
US6988165B2 (en) 2002-05-20 2006-01-17 Pervasive Software, Inc. System and method for intelligent write management of disk pages in cache checkpoint operations
US7487264B2 (en) 2002-06-11 2009-02-03 Pandya Ashish A High performance IP processor
US7953899B1 (en) 2002-08-21 2011-05-31 3Par Inc. Universal diagnostic hardware space access system for firmware
US7239605B2 (en) 2002-09-23 2007-07-03 Sun Microsystems, Inc. Item and method for performing a cluster topology self-healing process in a distributed data system cluster
US7003620B2 (en) 2002-11-26 2006-02-21 M-Systems Flash Disk Pioneers Ltd. Appliance, including a flash memory, that is robust under power failure
US7043623B2 (en) 2003-01-22 2006-05-09 Intelitrac, Inc. Distributed memory computing environment and implementation thereof
US7234099B2 (en) 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US7587422B2 (en) 2003-04-24 2009-09-08 Neopath Networks, Inc. Transparent file replication using namespace replication
US7051306B2 (en) 2003-05-07 2006-05-23 Mosaid Technologies Corporation Managing power on integrated circuits using power islands
US20050038954A1 (en) 2003-06-04 2005-02-17 Quantum Corporation Storage drive having universal format across media types
US7051215B2 (en) 2003-06-13 2006-05-23 Intel Corporation Power management for clustered computing platforms
US7565454B2 (en) 2003-07-18 2009-07-21 Microsoft Corporation State migration in multiple NIC RDMA enabled devices
JP4371739B2 (ja) 2003-09-02 2009-11-25 株式会社東芝 シリアルataインタフェースを持つ電子機器及びシリアルataバスのパワーセーブ方法
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US6927930B1 (en) 2004-02-10 2005-08-09 Hitachi Global Storage Technologies Netherlands B.V. Adaptive data format method integrating spare sectors
US7130957B2 (en) 2004-02-10 2006-10-31 Sun Microsystems, Inc. Storage system structure for storing relational cache metadata
US7676603B2 (en) 2004-04-20 2010-03-09 Intel Corporation Write combining protocol between processors and chipsets
JP4401895B2 (ja) 2004-08-09 2010-01-20 株式会社日立製作所 計算機システム、計算機及びそのプログラム。
US7246210B2 (en) 2004-11-08 2007-07-17 Prostor Systems, Inc. Archival cartridge management system with auto-refresh
US9495263B2 (en) 2004-12-21 2016-11-15 Infortrend Technology, Inc. Redundant SAS storage virtualization subsystem and system using the same, and method therefor
US7490239B2 (en) 2005-01-07 2009-02-10 First Data Corporation Facilitating digital signature based on ephemeral private key
US7496823B2 (en) 2005-03-16 2009-02-24 Hewlett-Packard Development Company, L.P. Hardware based memory scrubbing
DE102005032061B4 (de) 2005-07-08 2009-07-30 Qimonda Ag Speichermodul, und Speichermodul-System
US7480766B2 (en) 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7752382B2 (en) 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
CN101346703B (zh) 2005-12-21 2012-11-21 Nxp股份有限公司 具有可块擦除单元的非易失性存储器
US8260924B2 (en) 2006-05-03 2012-09-04 Bluetie, Inc. User load balancing systems and methods thereof
WO2007134164A2 (en) 2006-05-10 2007-11-22 Google Inc. Managing and accessing data in web notebooks
JP2007305210A (ja) 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
US8832043B2 (en) 2006-05-31 2014-09-09 International Business Machines Corporation Method and system for transformation of logical data objects for storage
US20070283104A1 (en) 2006-05-31 2007-12-06 International Business Machines Corporation Concurrent Hardware Selftest for Central Storage
US7711890B2 (en) 2006-06-06 2010-05-04 Sandisk Il Ltd Cache control in a non-volatile memory device
CN101479686A (zh) 2006-06-27 2009-07-08 皇家飞利浦电子股份有限公司 用于管理多个数据处理单元的功率消耗的设备和方法
US20080065805A1 (en) 2006-09-11 2008-03-13 Cameo Communications, Inc. PCI-Express multimode expansion card and communication device having the same
JP2008077810A (ja) 2006-09-25 2008-04-03 Toshiba Corp 不揮発性半導体記憶装置
US7761623B2 (en) 2006-09-28 2010-07-20 Virident Systems, Inc. Main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies
KR100858241B1 (ko) 2006-10-25 2008-09-12 삼성전자주식회사 하이브리드 플래시 메모리 장치 및 그것의 가용 블록 할당방법
US8344475B2 (en) 2006-11-29 2013-01-01 Rambus Inc. Integrated circuit heating to effect in-situ annealing
US7958433B1 (en) 2006-11-30 2011-06-07 Marvell International Ltd. Methods and systems for storing data in memory using zoning
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US7852654B2 (en) 2006-12-28 2010-12-14 Hynix Semiconductor Inc. Semiconductor memory device, and multi-chip package and method of operating the same
KR100856129B1 (ko) 2006-12-29 2008-09-03 삼성전자주식회사 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US7599139B1 (en) 2007-06-22 2009-10-06 Western Digital Technologies, Inc. Disk drive having a high performance access mode and a lower performance archive mode
US7861046B2 (en) 2007-06-29 2010-12-28 Sandisk Corporation Secure digital host sector application flag compression
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US7917574B2 (en) 2007-10-01 2011-03-29 Accenture Global Services Limited Infrastructure for parallel programming of clusters of machines
IL187041A0 (en) 2007-10-30 2008-02-09 Sandisk Il Ltd Optimized hierarchical integrity protection for stored data
US8281061B2 (en) 2008-03-31 2012-10-02 Micron Technology, Inc. Data conditioning to improve flash memory reliability
US20090254705A1 (en) 2008-04-07 2009-10-08 International Business Machines Corporation Bus attached compressed random access memory
US8195978B2 (en) 2008-05-16 2012-06-05 Fusion-IO. Inc. Apparatus, system, and method for detecting and replacing failed data storage
US8090909B2 (en) 2008-06-06 2012-01-03 Pivot3 Method and system for distributed raid implementation
KR101497074B1 (ko) 2008-06-17 2015-03-05 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
US9123422B2 (en) 2012-07-02 2015-09-01 Super Talent Technology, Corp. Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells
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
US8954654B2 (en) 2008-06-18 2015-02-10 Super Talent Technology, Corp. Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance
US9547589B2 (en) 2008-06-18 2017-01-17 Super Talent Technology, Corp. Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
CN102150147A (zh) 2008-07-03 2011-08-10 惠普开发有限公司 存储器服务器
JP2010152704A (ja) 2008-12-25 2010-07-08 Hitachi Ltd 計算機システムの運用管理システム及び管理方法
DE112008000968T5 (de) 2008-12-30 2012-01-12 Numonyx B.V. Nicht-flüchtiger Speicher mit erweitertem Betriebstemperaturbereich
US8838976B2 (en) 2009-02-10 2014-09-16 Uniloc Luxembourg S.A. Web content access using a client device identifier
US20100217952A1 (en) 2009-02-26 2010-08-26 Iyer Rahul N Remapping of Data Addresses for a Large Capacity Victim Cache
CA2752752C (en) 2009-02-27 2015-09-15 Certicom Corp. System and method for securely communicating with electronic meters
US8166233B2 (en) 2009-07-24 2012-04-24 Lsi Corporation Garbage collection for solid state disks
US8713251B2 (en) 2009-05-27 2014-04-29 Hitachi, Ltd. Storage system, control method therefor, and program
US8996812B2 (en) 2009-06-19 2015-03-31 International Business Machines Corporation Write-back coherency data cache for resolving read/write conflicts
US8918365B2 (en) 2009-06-19 2014-12-23 Blekko, Inc. Dedicating disks to reading or writing
KR101530997B1 (ko) 2009-06-23 2015-06-25 삼성전자주식회사 셀간 간섭을 집중시키는 불휘발성 메모리 장치의 프로그램 방법
US20100332922A1 (en) 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
JP5121792B2 (ja) 2009-08-06 2013-01-16 株式会社東芝 半導体装置の製造方法
US20110055471A1 (en) 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
US8688894B2 (en) 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
CN102012789B (zh) 2009-09-07 2014-03-12 云端容灾有限公司 集中管理式备份容灾***
EP2481001B1 (en) 2009-09-21 2014-11-05 XRing Technologies GmbH A method and system for error resilient compression and decompression of computed tomography data
US8214700B2 (en) 2009-10-28 2012-07-03 Sandisk Technologies Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US8873377B2 (en) 2009-11-18 2014-10-28 Juniper Networks, Inc. Method and apparatus for hitless failover in networking systems using single database
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US9390035B2 (en) 2009-12-21 2016-07-12 Sanmina-Sci Corporation Method and apparatus for supporting storage modules in standard memory and/or hybrid memory bus architectures
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
WO2011092532A1 (en) 2010-01-28 2011-08-04 Sandisk Il Ltd. Sliding-window error correction
TWI409633B (zh) 2010-02-04 2013-09-21 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與資料寫入方法
JP5598017B2 (ja) 2010-02-24 2014-10-01 富士通株式会社 判定プログラム、方法及び装置
US8370297B2 (en) 2010-03-08 2013-02-05 International Business Machines Corporation Approach for optimizing restores of deduplicated data
JP2011198133A (ja) 2010-03-19 2011-10-06 Toshiba Corp メモリシステムおよびコントローラ
JP5017407B2 (ja) 2010-03-24 2012-09-05 株式会社東芝 半導体記憶装置
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
CN102262557B (zh) 2010-05-25 2015-01-21 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架
US8688897B2 (en) 2010-05-28 2014-04-01 International Business Machines Corporation Cache memory management in a flash cache architecture
JP4886877B2 (ja) 2010-05-31 2012-02-29 株式会社東芝 記録媒体制御装置、及びその方法
US9401967B2 (en) 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US20120039117A1 (en) 2010-08-16 2012-02-16 Gary Edward Webb Destruction of data stored in phase change memory
US8938624B2 (en) 2010-09-15 2015-01-20 Lsi Corporation Encryption key destruction for secure data erasure
EP2619680A1 (en) 2010-09-23 2013-07-31 Hewlett-Packard Development Company, L.P. Methods, apparatus and systems for monitoring locations of data within a network service
US9244779B2 (en) 2010-09-30 2016-01-26 Commvault Systems, Inc. Data recovery operations, such as recovery from modified network data management protocol data
US20120089774A1 (en) 2010-10-12 2012-04-12 International Business Machines Corporation Method and system for mitigating adjacent track erasure in hard disk drives
US8429495B2 (en) 2010-10-19 2013-04-23 Mosaid Technologies Incorporated Error detection and correction codes for channels and memories with incomplete error characteristics
US8516284B2 (en) 2010-11-04 2013-08-20 International Business Machines Corporation Saving power by placing inactive computing devices in optimized configuration corresponding to a specific constraint
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9176794B2 (en) 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics compute process scheduling
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8793328B2 (en) 2010-12-17 2014-07-29 Facebook, Inc. Distributed storage system
US8826098B2 (en) 2010-12-20 2014-09-02 Lsi Corporation Data signatures to determine successful completion of memory backup
US8819328B2 (en) 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US9612978B2 (en) 2010-12-31 2017-04-04 International Business Machines Corporation Encrypted flash-based data storage system with confidentiality mode
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
WO2012109679A2 (en) 2011-02-11 2012-08-16 Fusion-Io, Inc. Apparatus, system, and method for application direct virtual memory management
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US8732538B2 (en) 2011-03-10 2014-05-20 Icform, Inc. Programmable data storage management
CN102693168B (zh) 2011-03-22 2014-12-31 中兴通讯股份有限公司 一种数据备份恢复的方法、***和服务节点
US8452819B1 (en) 2011-03-22 2013-05-28 Amazon Technologies, Inc. Methods and apparatus for optimizing resource utilization in distributed storage systems
KR101717081B1 (ko) 2011-03-23 2017-03-28 삼성전자주식회사 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치
US20180107591A1 (en) 2011-04-06 2018-04-19 P4tents1, LLC System, method and computer program product for fetching data between an execution of a plurality of threads
US8832402B2 (en) 2011-04-29 2014-09-09 Seagate Technology Llc Self-initiated secure erasure responsive to an unauthorized power down event
WO2012161659A1 (en) 2011-05-24 2012-11-29 Agency For Science, Technology And Research A memory storage device, and a related zone-based block management and mapping method
US8990657B2 (en) 2011-06-14 2015-03-24 Freescale Semiconductor, Inc. Selective masking for error correction
US8694719B2 (en) 2011-06-24 2014-04-08 Sandisk Technologies Inc. Controller, storage device, and method for power throttling memory operations
WO2013008264A1 (en) 2011-07-08 2013-01-17 Hitachi, Ltd. Storage system and its data processing method
US8565608B2 (en) 2011-07-11 2013-10-22 Oracle International Corporation Optical network with switchable drop filters
US8682867B2 (en) 2011-07-15 2014-03-25 International Business Machines Corporation Deleted data recovery in data storage systems
US9311969B2 (en) 2011-07-22 2016-04-12 Sandisk Technologies Inc. Systems and methods of storing data
US8527544B1 (en) 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
US9344494B2 (en) 2011-08-30 2016-05-17 Oracle International Corporation Failover data replication with colocation of session state data
US8904158B2 (en) 2011-09-02 2014-12-02 Lsi Corporation Storage system with boot appliance for improving reliability/availability/serviceability in high density server environments
KR20130031046A (ko) 2011-09-20 2013-03-28 삼성전자주식회사 플래시 메모리 장치 및 플래시 메모리 장치의 데이터 관리 방법
US8843451B2 (en) 2011-09-23 2014-09-23 International Business Machines Corporation Block level backup and restore
US8949208B1 (en) 2011-09-30 2015-02-03 Emc Corporation System and method for bulk data movement between storage tiers
KR20130064518A (ko) 2011-12-08 2013-06-18 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US9088300B1 (en) 2011-12-15 2015-07-21 Marvell International Ltd. Cyclic redundancy check for out-of-order codewords
US8819367B1 (en) 2011-12-19 2014-08-26 Western Digital Technologies, Inc. Accelerated translation power recovery
US9213645B2 (en) 2011-12-29 2015-12-15 Sandisk Technologies Inc. Command aware partial page programming
US8904061B1 (en) 2011-12-30 2014-12-02 Emc Corporation Managing storage operations in a server cache
US9043545B2 (en) 2012-01-06 2015-05-26 Netapp, Inc. Distributing capacity slices across storage system nodes
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US8880815B2 (en) 2012-02-20 2014-11-04 Avago Technologies General Ip (Singapore) Pte. Ltd. Low access time indirect memory accesses
KR101888009B1 (ko) 2012-02-28 2018-09-07 삼성전자주식회사 저장 장치
US9362003B2 (en) 2012-03-09 2016-06-07 Sandisk Technologies Inc. System and method to decode data subject to a disturb condition
DE112012006153B4 (de) 2012-03-28 2021-09-23 Intel Corp. Rekonstruktion von Codewörtern unter Verwendung eines Seitenkanals
US9336340B1 (en) 2012-03-30 2016-05-10 Emc Corporation Evaluating management operations
US9380032B2 (en) 2012-04-25 2016-06-28 International Business Machines Corporation Encrypting data for storage in a dispersed storage network
US10621044B2 (en) 2012-04-25 2020-04-14 Pure Storage, Inc. Mapping slice groupings in a dispersed storage network
US9645917B2 (en) 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
US9092223B1 (en) 2012-05-31 2015-07-28 Google Inc. Systems and methods to save power in data-center networks
US9417958B2 (en) 2012-06-06 2016-08-16 Silicon Motion Inc. Flash memory control method, controller and electronic apparatus
US9208820B2 (en) 2012-06-29 2015-12-08 International Business Machines Corporation Optimized data placement for individual file accesses on deduplication-enabled sequential storage systems
US20140019650A1 (en) 2012-07-10 2014-01-16 Zhi Bin Li Multi-Write Bit-Fill FIFO
JP6089527B2 (ja) 2012-09-18 2017-03-08 富士通株式会社 ストレージ制御システム、リカバリプログラム、及び該方法
US9009402B2 (en) 2012-09-20 2015-04-14 Emc Corporation Content addressable storage in legacy systems
US20140095769A1 (en) 2012-10-02 2014-04-03 International Business Machines Corporation Flash memory dual in-line memory module management
US8756237B2 (en) 2012-10-12 2014-06-17 Architecture Technology Corporation Scalable distributed processing of RDF data
US9449039B2 (en) 2012-11-26 2016-09-20 Amazon Technologies, Inc. Automatic repair of corrupted blocks in a database
US9104591B2 (en) 2012-12-11 2015-08-11 Sandisk Technologies Inc. Data recovery on cluster failures and ECC enhancements with code word interleaving
US20140164447A1 (en) 2012-12-12 2014-06-12 Akamai Technologies Inc. Cookie synchronization and acceleration of third-party content in a web page
US10514855B2 (en) 2012-12-19 2019-12-24 Hewlett Packard Enterprise Development Lp NVRAM path selection
US9405621B2 (en) 2012-12-28 2016-08-02 Super Talent Technology, Corp. Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance
US9141554B1 (en) 2013-01-18 2015-09-22 Cisco Technology, Inc. Methods and apparatus for data processing using data compression, linked lists and de-duplication techniques
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
TWI514140B (zh) 2013-02-05 2015-12-21 Via Tech Inc 非揮發性記憶裝置及其操作方法
US9432755B2 (en) 2013-02-15 2016-08-30 Futurewei Technologies, Inc. Downstream burst transmission in passive optical networks
US8984171B2 (en) 2013-03-01 2015-03-17 Silicon Motion, Inc. Data storage device and flash memory control method
US8751763B1 (en) 2013-03-13 2014-06-10 Nimbus Data Systems, Inc. Low-overhead deduplication within a block-based data storage
US9280472B1 (en) 2013-03-13 2016-03-08 Western Digital Technologies, Inc. Caching data in a high performance zone of a data storage system
US9747202B1 (en) 2013-03-14 2017-08-29 Sandisk Technologies Llc Storage module and method for identifying hot and cold data
US9436595B1 (en) 2013-03-15 2016-09-06 Google Inc. Use of application data and garbage-collected data to improve write efficiency of a data storage device
US10073626B2 (en) 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
KR102039537B1 (ko) 2013-03-15 2019-11-01 삼성전자주식회사 불휘발성 저장 장치 및 그것의 운영체제 이미지 프로그램 방법
US9195673B2 (en) 2013-03-15 2015-11-24 International Business Machines Corporation Scalable graph modeling of metadata for deduplicated storage systems
US20140304452A1 (en) 2013-04-03 2014-10-09 Violin Memory Inc. Method for increasing storage media performance
KR101478168B1 (ko) 2013-04-17 2014-12-31 주식회사 디에이아이오 스토리지 시스템 및 스토리지 시스템의 쓰기 데이터 처리 방법
US9575982B1 (en) 2013-04-29 2017-02-21 Amazon Technologies, Inc. Size targeted database I/O compression
US9183103B2 (en) 2013-05-31 2015-11-10 Vmware, Inc. Lightweight remote replication of a local write-back cache
US9785545B2 (en) 2013-07-15 2017-10-10 Cnex Labs, Inc. Method and apparatus for providing dual memory access to non-volatile memory
US9166704B1 (en) 2013-07-17 2015-10-20 Inphi Corporation Integrated control for silicon photonics
US9141176B1 (en) 2013-07-29 2015-09-22 Western Digital Technologies, Inc. Power management for data storage device
CN105453044B (zh) 2013-09-19 2020-06-12 英特尔公司 用于分布式处理任务部分指配的技术
US20160232103A1 (en) 2013-09-26 2016-08-11 Mark A. Schmisseur Block storage apertures to persistent memory
US9405467B2 (en) 2013-10-25 2016-08-02 Seagate Technology Llc Adaptive guard band for improved data storage capacity
US9251154B2 (en) 2013-11-15 2016-02-02 International Business Machines Corporation Priority based reliability mechanism for archived data
US9043537B1 (en) 2013-11-21 2015-05-26 Sandisk Technologies Inc. Update block programming order
KR20150084244A (ko) 2014-01-13 2015-07-22 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
CA2881206A1 (en) 2014-02-07 2015-08-07 Andrew WARFIELD Methods, systems and devices relating to data storage interfaces for managing address spaces in data storage devices
US9542404B2 (en) 2014-02-17 2017-01-10 Netapp, Inc. Subpartitioning of a namespace region
US20150301964A1 (en) 2014-02-18 2015-10-22 Alistair Mark Brinicombe Methods and systems of multi-memory, control and data plane architecture
US9263088B2 (en) 2014-03-21 2016-02-16 Western Digital Technologies, Inc. Data management for a data storage device using a last resort zone
US9880859B2 (en) 2014-03-26 2018-01-30 Intel Corporation Boot image discovery and delivery
EP2927826B1 (en) 2014-04-04 2022-06-29 Avid Technology, Inc. Method of consolidating, synchronizing, and streaming production content for distributed editing of media compositions
US9640201B2 (en) 2014-04-10 2017-05-02 Seagate Technology Llc Band rewrite optimization
KR102149768B1 (ko) 2014-04-29 2020-08-31 삼성전자주식회사 불휘발성 메모리 시스템
US9529670B2 (en) 2014-05-16 2016-12-27 International Business Machines Corporation Storage element polymorphism to reduce performance degradation during error recovery
US9383926B2 (en) 2014-05-27 2016-07-05 Kabushiki Kaisha Toshiba Host-controlled garbage collection
US9015561B1 (en) 2014-06-11 2015-04-21 Sandisk Technologies Inc. Adaptive redundancy in three dimensional memory
GB2527296A (en) 2014-06-16 2015-12-23 Ibm A method for restoring data in a HSM system
US9240722B2 (en) 2014-06-19 2016-01-19 Dell Products Lp Methods and systems for improving light load efficiency for power stages of multi-phase voltage regulator circuits
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US10044795B2 (en) 2014-07-11 2018-08-07 Vmware Inc. Methods and apparatus for rack deployments for virtual computing environments
US9542327B2 (en) 2014-07-22 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Selective mirroring in caches for logical volumes
US20160041760A1 (en) 2014-08-08 2016-02-11 International Business Machines Corporation Multi-Level Cell Flash Memory Control Mechanisms
US9875195B2 (en) 2014-08-14 2018-01-23 Advanced Micro Devices, Inc. Data distribution among multiple managed memories
US10282100B2 (en) 2014-08-19 2019-05-07 Samsung Electronics Co., Ltd. Data management scheme in virtualized hyperscale environments
KR20160027805A (ko) 2014-09-02 2016-03-10 삼성전자주식회사 비휘발성 메모리 장치를 위한 가비지 컬렉션 방법
US9274720B1 (en) 2014-09-15 2016-03-01 E8 Storage Systems Ltd. Distributed RAID over shared multi-queued storage devices
US10430328B2 (en) 2014-09-16 2019-10-01 Sandisk Technologies Llc Non-volatile cache and non-volatile storage medium using single bit and multi bit flash memory cells or different programming parameters
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9588977B1 (en) 2014-09-30 2017-03-07 EMC IP Holding Company LLC Data and metadata structures for use in tiering data to cloud storage
US9626286B2 (en) 2014-10-03 2017-04-18 Sandisk Technologies Llc Hardware and firmware paths for performing memory read processes
US10127157B2 (en) 2014-10-06 2018-11-13 SK Hynix Inc. Sizing a cache while taking into account a total bytes written requirement
TWI537816B (zh) 2014-10-13 2016-06-11 慧榮科技股份有限公司 非揮發性儲存裝置與控制器進行的控制方法
US9710330B2 (en) 2014-10-15 2017-07-18 Empire Technology Development Llc Partial cloud data storage
US9129628B1 (en) 2014-10-23 2015-09-08 Western Digital Technologies, Inc. Data management for data storage device with different track density regions
KR102238652B1 (ko) 2014-11-12 2021-04-09 삼성전자주식회사 데이터 저장 장치, 이의 작동 방법, 및 이를 포함하는 데이터 처리 시스템의 작동 방법
US9508362B2 (en) 2014-11-24 2016-11-29 Seagate Technology Llc Write management for interlaced magnetic recording devices
US20160155750A1 (en) 2014-11-28 2016-06-02 Kabushiki Kaisha Toshiba Semiconductor memory device and method for manufacturing the same
CN105701028B (zh) 2014-11-28 2018-10-09 国际商业机器公司 分布式存储***中的磁盘管理方法和设备
US9852076B1 (en) 2014-12-18 2017-12-26 Violin Systems Llc Caching of metadata for deduplicated LUNs
US10013169B2 (en) 2014-12-19 2018-07-03 International Business Machines Corporation Cooperative data deduplication in a solid state storage array
US9311939B1 (en) 2014-12-23 2016-04-12 Western Digital Technologies, Inc. Write-through media caching
US20160179399A1 (en) 2014-12-23 2016-06-23 Sandisk Technologies Inc. System and Method for Selecting Blocks for Garbage Collection Based on Block Health
US20160188890A1 (en) 2014-12-26 2016-06-30 Intel Corporation Security mode data protection
US9569118B2 (en) 2014-12-30 2017-02-14 International Business Machines Corporation Promoting consistent response times in a data storage system having multiple data retrieval mechanisms
US10282211B2 (en) 2015-01-09 2019-05-07 Avago Technologies International Sales Pte. Limited Operating system software install and boot up from a storage area network device
US9959067B2 (en) 2015-02-04 2018-05-01 Sandisk Technologies Llc Memory block allocation by block health
US9888064B2 (en) 2015-02-11 2018-02-06 International Business Machines Corporation Load-balancing input/output requests in clustered storage systems
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US9734051B2 (en) 2015-02-16 2017-08-15 Quantum Corporation Garbage collection and defragmentation for solid state drives (SSD) and shingled magnetic recording (SMR) drives
US9916275B2 (en) 2015-03-09 2018-03-13 International Business Machines Corporation Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
US9208817B1 (en) 2015-03-10 2015-12-08 Alibaba Group Holding Limited System and method for determination and reallocation of pending sectors caused by media fatigue
KR101927233B1 (ko) 2015-03-16 2018-12-12 한국전자통신연구원 이기종 멀티-코어 시스템의 gpu 전력 측정 방법
US9671971B2 (en) 2015-03-27 2017-06-06 Intel Corporation Managing prior versions of data for logical addresses in a storage device
KR102298661B1 (ko) 2015-04-30 2021-09-07 삼성전자주식회사 저장 장치 및 그것의 초기화 방법
GB2538494B (en) 2015-05-13 2018-03-21 Advanced Risc Mach Ltd Processing queue management
US9911487B2 (en) 2015-05-19 2018-03-06 EMC IP Holding Company LLC Method and system for storing and recovering data from flash memory
US9639282B2 (en) 2015-05-20 2017-05-02 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices
WO2016191620A1 (en) 2015-05-26 2016-12-01 Gluent Inc. System and method for transparent context aware filtering of data requests
US20160350002A1 (en) 2015-05-29 2016-12-01 Intel Corporation Memory device specific self refresh entry and exit
US9875053B2 (en) 2015-06-05 2018-01-23 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
US9696931B2 (en) 2015-06-12 2017-07-04 International Business Machines Corporation Region-based storage for volume data and metadata
US20160381442A1 (en) 2015-06-25 2016-12-29 Kaiam Corp. Optical interconnect for switch applications
KR20170004693A (ko) 2015-07-03 2017-01-11 에스케이하이닉스 주식회사 메모리 장치의 컨트롤러 및 그 동작 방법
US9588571B2 (en) 2015-07-08 2017-03-07 Quanta Computer Inc. Dynamic power supply management
US10656838B2 (en) 2015-07-13 2020-05-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US10324832B2 (en) 2016-05-25 2019-06-18 Samsung Electronics Co., Ltd. Address based multi-stream storage device access
US9529601B1 (en) 2015-07-15 2016-12-27 Dell Products L.P. Multi-processor startup system
SG10201505822UA (en) 2015-07-27 2017-02-27 Huawei Internat Pte Ltd A policy aware unified file system
JP6437656B2 (ja) 2015-07-31 2018-12-12 株式会社日立製作所 ストレージ装置、ストレージシステム、ストレージシステムの制御方法
US10127101B2 (en) 2015-08-28 2018-11-13 Intel Corporation Memory device error check and scrub mode and error transparency
WO2017039702A1 (en) 2015-09-04 2017-03-09 Hewlett Packard Enterprise Development Lp Secure login information
US10120573B2 (en) 2015-09-14 2018-11-06 Microsoft Technology Licensing, Llc. Modular sequential writing of data to data storage devices
CN105278876B (zh) 2015-09-23 2018-12-14 华为技术有限公司 一种固态硬盘的数据擦除方法及装置
US10120811B2 (en) 2015-09-29 2018-11-06 International Business Machines Corporation Considering a frequency of access to groups of tracks and density of the groups to select groups of tracks to destage
DE102015116688B4 (de) 2015-10-01 2022-11-24 Infineon Technologies Ag Speichereinheit und Verfahren zum Betrieb eines Speichereinheitssektors
US10031774B2 (en) 2015-10-15 2018-07-24 Red Hat, Inc. Scheduling multi-phase computing jobs
KR20170045806A (ko) 2015-10-20 2017-04-28 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US20170147499A1 (en) 2015-11-25 2017-05-25 Sandisk Technologies Llc Multi-Level Logical to Physical Address Mapping Using Distributed Processors in Non-Volatile Storage Device
US20170161202A1 (en) 2015-12-02 2017-06-08 Samsung Electronics Co., Ltd. Flash memory device including address mapping for deduplication, and related methods
US20170162235A1 (en) 2015-12-02 2017-06-08 Qualcomm Incorporated System and method for memory management using dynamic partial channel interleaving
US9965441B2 (en) 2015-12-10 2018-05-08 Cisco Technology, Inc. Adaptive coalescing of remote direct memory access acknowledgements based on I/O characteristics
US20170177259A1 (en) 2015-12-18 2017-06-22 Intel Corporation Techniques to Use Open Bit Line Information for a Memory System
JP6517684B2 (ja) 2015-12-22 2019-05-22 東芝メモリ株式会社 メモリシステムおよび制御方法
CN106933708B (zh) 2015-12-29 2020-03-20 伊姆西Ip控股有限责任公司 有助于进行存储***恢复的方法、装置以及一种存储***
US10146618B2 (en) 2016-01-04 2018-12-04 Western Digital Technologies, Inc. Distributed data storage with reduced storage overhead using reduced-dependency erasure codes
US10649681B2 (en) 2016-01-25 2020-05-12 Samsung Electronics Co., Ltd. Dynamic garbage collection P/E policies for redundant storage blocks and distributed software stacks
US9946596B2 (en) 2016-01-29 2018-04-17 Toshiba Memory Corporation Global error recovery system
CN107037976B (zh) 2016-02-03 2020-03-20 株式会社东芝 存储装置及其工作方法
US10235198B2 (en) 2016-02-24 2019-03-19 Samsung Electronics Co., Ltd. VM-aware FTL design for SR-IOV NVME SSD
US20170249162A1 (en) 2016-02-25 2017-08-31 Red Hat Israel, Ltd. Safe transmit packet processing for network function virtualization applications
JP6448570B2 (ja) 2016-03-08 2019-01-09 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
US10452490B2 (en) 2016-03-09 2019-10-22 Commvault Systems, Inc. Data management and backup of distributed storage environment
US10101939B2 (en) 2016-03-09 2018-10-16 Toshiba Memory Corporation Storage system having a host that manages physical data locations of a storage device
KR102511459B1 (ko) 2016-03-17 2023-03-17 삼성전자주식회사 비휘발성 메모리 장치 및 그 동작 방법
US10700702B2 (en) 2016-03-24 2020-06-30 International Business Machines Corporation Updating prefix codes for pseudo-dynamic data compression
US20170286311A1 (en) 2016-04-01 2017-10-05 Dale J. Juenemann Repetitive address indirection in a memory
US10585809B2 (en) 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
US9940261B2 (en) 2016-05-05 2018-04-10 Western Digital Technology, Inc. Zoning of logical to physical data address translation tables with parallelized log list replay
US10866905B2 (en) 2016-05-25 2020-12-15 Samsung Electronics Co., Ltd. Access parameter based multi-stream storage device access
US10389839B2 (en) 2016-06-01 2019-08-20 Intel Corporation Method and apparatus for generating data prefetches specifying various sizes to prefetch data from a remote computing node
US10514862B2 (en) 2016-07-21 2019-12-24 Micron Technology, Inc. Memory device including concurrent suspend states for different operations
US10684795B2 (en) 2016-07-25 2020-06-16 Toshiba Memory Corporation Storage device and storage control method
US10283215B2 (en) 2016-07-28 2019-05-07 Ip Gem Group, Llc Nonvolatile memory system with background reference positioning and local reference positioning
CN107799155B (zh) 2016-09-06 2022-11-01 三星电子株式会社 包括列冗余的存储装置
US10069597B2 (en) 2016-09-07 2018-09-04 Western Digital Technologies, Inc. Aggregated metadata transfer at a data storage device
JP6606039B2 (ja) 2016-09-09 2019-11-13 東芝メモリ株式会社 メモリシステムおよび制御方法
US10275165B2 (en) 2016-09-12 2019-04-30 Toshiba Memory Corporation Memory controller
JP6274589B1 (ja) 2016-09-28 2018-02-07 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および連続読出し方法
WO2018063292A1 (en) 2016-09-30 2018-04-05 Intel Corporation Data storage system using wafer-level packaging
US10678432B1 (en) 2016-10-04 2020-06-09 Pure Storage, Inc. User space and kernel space access to memory devices through private queues
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10620846B2 (en) 2016-10-26 2020-04-14 ScaleFlux, Inc. Enhancing flash translation layer to improve performance of databases and filesystems
KR102648774B1 (ko) 2016-11-10 2024-03-19 에스케이하이닉스 주식회사 랜더마이즈 동작을 수행하는 반도체 메모리 장치
US11644992B2 (en) 2016-11-23 2023-05-09 Samsung Electronics Co., Ltd. Storage system performing data deduplication, method of operating storage system, and method of operating data processing system
US10241877B2 (en) 2016-12-12 2019-03-26 International Business Machines Corporation Data storage system employing a hot spare to proactively store array data in absence of a failure or pre-failure event
US10445016B2 (en) 2016-12-13 2019-10-15 International Business Machines Corporation Techniques for storage command processing
US10374885B2 (en) 2016-12-13 2019-08-06 Amazon Technologies, Inc. Reconfigurable server including a reconfigurable adapter device
US10496544B2 (en) 2016-12-29 2019-12-03 Intel Corporation Aggregated write back in a direct mapped two level memory
US10255179B2 (en) 2016-12-30 2019-04-09 Western Digital Technologies, Inc. Garbage collection read throttling
US10740042B2 (en) 2016-12-30 2020-08-11 Western Digital Technologies, Inc. Scheduling access commands for data storage devices
US10459663B2 (en) 2017-01-23 2019-10-29 International Business Machines Corporation Thin provisioning of raid storage
US10547332B2 (en) 2017-02-01 2020-01-28 Tsofun Algorithm Ltd. Device, system and method of implementing product error correction codes for fast encoding and decoding
US10073640B1 (en) * 2017-03-10 2018-09-11 Toshiba Memory Corporation Large scale implementation of a plurality of open channel solid state drives
US10331514B2 (en) 2017-03-17 2019-06-25 Micron Technology, Inc. Tiered error correction code (ECC) operations in memory
US10516760B2 (en) 2017-03-17 2019-12-24 Verizon Patent And Licensing Inc. Automatic bootstrapping and dynamic configuration of data center nodes
US10275170B2 (en) 2017-04-10 2019-04-30 Sandisk Technologies Llc Folding operations in memory systems with single address updates
US10613944B2 (en) 2017-04-18 2020-04-07 Netapp, Inc. Systems and methods for backup and restore of distributed master-slave database clusters
US10296249B2 (en) 2017-05-03 2019-05-21 Western Digital Technologies, Inc. System and method for processing non-contiguous submission and completion queues
TWI625620B (zh) 2017-05-12 2018-06-01 威盛電子股份有限公司 非揮發性記憶體裝置及其讀取方法
US10319397B2 (en) 2017-05-19 2019-06-11 Seagate Technology Llc Narrow band dwell monitoring
US10540323B2 (en) 2017-05-30 2020-01-21 Western Digital Technologies, Inc. Managing I/O operations in a storage network
US10474397B2 (en) 2017-06-13 2019-11-12 Western Digital Technologies, Inc Unified indirection in a multi-device hybrid storage unit
US10521375B2 (en) 2017-06-22 2019-12-31 Macronix International Co., Ltd. Controller for a memory system
US10275162B2 (en) 2017-06-23 2019-04-30 Dell Products L.P. Methods and systems for managing data migration in solid state non-volatile memory
US10838902B2 (en) 2017-06-23 2020-11-17 Facebook, Inc. Apparatus, system, and method for performing hardware acceleration via expansion cards
US10564856B2 (en) 2017-07-06 2020-02-18 Alibaba Group Holding Limited Method and system for mitigating write amplification in a phase change memory-based storage device
US10303601B2 (en) 2017-08-11 2019-05-28 Alibaba Group Holding Limited Method and system for rearranging a write operation in a shingled magnetic recording device
KR102389431B1 (ko) 2017-08-22 2022-04-25 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10579288B2 (en) 2017-08-31 2020-03-03 Micron Technology, Inc. Prioritized security
TWI631570B (zh) 2017-09-04 2018-08-01 威盛電子股份有限公司 錯誤檢查糾正解碼方法與裝置
US10642522B2 (en) 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash
JP6785205B2 (ja) 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
JP2019057172A (ja) 2017-09-21 2019-04-11 東芝メモリ株式会社 メモリシステムおよび制御方法
US11005771B2 (en) 2017-10-16 2021-05-11 Mellanox Technologies, Ltd. Computational accelerator for packet payload operations
US10956279B2 (en) 2017-12-04 2021-03-23 International Business Machines Corporation Managing big data on document based NoSQL databases
US10423361B2 (en) * 2017-12-21 2019-09-24 Microsoft Technology Licensing, Llc Virtualized OCSSDs spanning physical OCSSD channels
US10229735B1 (en) 2017-12-22 2019-03-12 Intel Corporation Block management for dynamic single-level cell buffers in storage devices
US10606693B2 (en) 2017-12-28 2020-03-31 Micron Technology, Inc. Memory controller implemented error correction code memory
EP3726364B1 (en) 2017-12-28 2022-07-27 Huawei Technologies Co., Ltd. Data write-in method and solid-state drive array
US10592173B2 (en) 2018-01-10 2020-03-17 International Business Machines Corporation Increasing storage efficiency of a data protection technique
TWI643066B (zh) 2018-01-15 2018-12-01 慧榮科技股份有限公司 用來於一記憶裝置中重新使用關於垃圾收集的一目的地區塊之方法、記憶裝置及其控制器以及電子裝置
CN110058794B (zh) 2018-01-19 2022-11-01 上海宝存信息科技有限公司 用于动态执行垃圾回收数据储存装置与操作方法
US10199066B1 (en) 2018-03-01 2019-02-05 Seagate Technology Llc Write management of physically coupled storage areas
US10585819B2 (en) 2018-03-05 2020-03-10 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
US10649657B2 (en) 2018-03-22 2020-05-12 Western Digital Technologies, Inc. Log-based storage for different data types in non-volatile memory
US10963394B2 (en) 2018-04-16 2021-03-30 Samsung Electronics Co., Ltd. System and method for optimizing performance of a solid-state drive using a deep neural network
JP7023384B2 (ja) 2018-05-04 2022-02-21 シトリックス・システムズ・インコーポレイテッド ユーザおよびシステムヒントを用いて最適化される階層表示リモーティングを与えるコンピュータシステムおよび関連する方法
US10437670B1 (en) 2018-05-24 2019-10-08 International Business Machines Corporation Metadata hardening and parity accumulation for log-structured arrays
KR20190139082A (ko) 2018-06-07 2019-12-17 삼성전자주식회사 메모리 장치의 비트 에러율 균등화 방법
US11599557B2 (en) 2018-06-12 2023-03-07 Open Text Corporation System and method for persistence and replication of changes to a data store
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US10776263B2 (en) 2018-06-27 2020-09-15 Seagate Technology Llc Non-deterministic window scheduling for data storage systems
US11150836B2 (en) 2018-06-28 2021-10-19 Seagate Technology Llc Deterministic optimization via performance tracking in a data storage system
US10832768B2 (en) 2018-07-03 2020-11-10 Micron Technology, Inc. Data storage based on data polarity
US10901847B2 (en) 2018-07-31 2021-01-26 EMC IP Holding Company LLC Maintaining logical to physical address mapping during in place sector rebuild
US20200042223A1 (en) 2018-08-02 2020-02-06 Alibaba Group Holding Limited System and method for facilitating a high-density storage device with improved performance and endurance
JP7091203B2 (ja) 2018-09-19 2022-06-27 キオクシア株式会社 メモリシステムおよび制御方法
US11086529B2 (en) 2018-09-26 2021-08-10 Western Digital Technologies, Inc. Data storage systems and methods for improved data relocation based on read-level voltages associated with error recovery
US10928847B2 (en) 2018-09-29 2021-02-23 Intel Corporation Apparatuses and methods for frequency scaling a message scheduler data path of a hashing accelerator
US10990478B2 (en) 2019-02-01 2021-04-27 Fungible, Inc. Flexible reliability coding for storage on a network
KR20200053018A (ko) 2018-11-07 2020-05-18 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 장치를 액세스하는 방법
US20200167091A1 (en) 2018-11-27 2020-05-28 Commvault Systems, Inc. Using interoperability between components of a data storage management system and appliances for data storage and deduplication to generate secondary and tertiary copies
KR20200088635A (ko) * 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11301369B2 (en) * 2019-01-24 2022-04-12 Western Digital Technologies, Inc. Logical to physical mapping management using low-latency non-volatile memory
US10936455B2 (en) 2019-02-11 2021-03-02 Apple Inc. Recovery of data failing due to impairment whose severity depends on bit-significance value
US20190196907A1 (en) 2019-03-05 2019-06-27 Intel Corporation Compression techniques for distributed data
CN112052188B (zh) * 2019-06-05 2023-09-29 建兴储存科技(广州)有限公司 运用于固态存储装置的电脑***的数据处理方法
US10990311B2 (en) 2019-06-19 2021-04-27 Western Digital Technologies, Inc. Multi-stream non-volatile storage system
US11281531B2 (en) 2019-06-25 2022-03-22 Western Digital Technologies, Inc. Serial storage node processing of data functions
US11136841B2 (en) 2019-07-10 2021-10-05 Safekick Americas Llc Hierarchical pressure management for managed pressure drilling operations
JP2021047690A (ja) 2019-09-19 2021-03-25 キオクシア株式会社 メモリシステム
KR20210039871A (ko) * 2019-10-02 2021-04-12 삼성전자주식회사 메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법
US12046578B2 (en) 2020-06-26 2024-07-23 Intel Corporation Stacked die network interface controller circuitry

Also Published As

Publication number Publication date
US11354233B2 (en) 2022-06-07
US20220027265A1 (en) 2022-01-27

Similar Documents

Publication Publication Date Title
US11360679B2 (en) Paging of external memory
US9058123B2 (en) Systems, methods, and interfaces for adaptive persistence
US20200218648A1 (en) Memory system and method for controlling nonvolatile memory
US9824018B2 (en) Systems and methods for a de-duplication cache
US10073656B2 (en) Systems and methods for storage virtualization
US9378135B2 (en) Method and system for data storage
JP5636034B2 (ja) データ利用についてのマウント時間の調停
KR102443600B1 (ko) 하이브리드 메모리 시스템
KR20200121372A (ko) 하이브리드 메모리 시스템
US11409451B2 (en) Systems, methods, and storage media for using the otherwise-unutilized storage space on a storage device
US11288197B2 (en) Method and apparatus for performing pipeline-based accessing management in a storage server
KR20200117032A (ko) 하이브리드 메모리 시스템
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
CN113722131A (zh) 用于促进存储设备中的快速崩溃恢复的方法和***
US8935488B2 (en) Storage system and storage control method
US10853257B1 (en) Zero detection within sub-track compression domains
TWI564803B (zh) 用於儲存虛擬化的系統和方法
US11221985B2 (en) Metadata space efficient snapshot operation in page storage
CN115809018A (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