CN106708425B - 分布式多模存储管理 - Google Patents

分布式多模存储管理 Download PDF

Info

Publication number
CN106708425B
CN106708425B CN201610921162.8A CN201610921162A CN106708425B CN 106708425 B CN106708425 B CN 106708425B CN 201610921162 A CN201610921162 A CN 201610921162A CN 106708425 B CN106708425 B CN 106708425B
Authority
CN
China
Prior art keywords
storage
sue
distributed
devices
block
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.)
Active
Application number
CN201610921162.8A
Other languages
English (en)
Other versions
CN106708425A (zh
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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
Priority claimed from US14/941,525 external-priority patent/US9940028B2/en
Priority claimed from US14/941,512 external-priority patent/US9990304B2/en
Priority claimed from US14/941,517 external-priority patent/US9996473B2/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN106708425A publication Critical patent/CN106708425A/zh
Application granted granted Critical
Publication of CN106708425B publication Critical patent/CN106708425B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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/061Improving I/O performance
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0626Reducing size or complexity of storage systems
    • 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/0643Management of files
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • 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/7202Allocation control and policies

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)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

公开了分布式多模存储管理。在一个实施例中,一种分布式存储系统包括:多个设备、分布式多模存储管理协调器和用于传达分布式多模存储管理消息的通信机构。所述多个设备中的第一个可包括:多个存储器件,具有包括第一类型接口和第一信息存储区的第一存储分区和包括选择性底层暴露(SUE)接口和存储第二类型信息的第二信息存储区的第二存储分区,其中,SUE接口暴露第二信息存储区的方面。分布式多模存储管理协调器可包括对信息到所述多个存储器件的传送进行引导的多个多模存储管理系统,其中,协调器包括经由SUE接口引导第二分区的文件活动的多模SUE管理系统。

Description

分布式多模存储管理
相关申请
本申请是于2015年11月13日提交的名称为“Multimode Storage ManagementSystem”(多模存储管理系统)的申请号14/941,512、2015年11 月13日提交的名称为“AMultimode Storage Device”(多模存储器件)的申请号14/941,525、2015年11月13日提交的名称为“Selective Underlying Exposure Storage Mapping”(选择性底层暴露存储映射)的申请号14/941,517 和于2015年11月20日提交的名称为“分布式多模存储管理”的申请号 14/947,931的部分连续案并且要求其优先权权益,这些申请通过引用全部包含于此。
技术领域
本发明涉及信息存储。
背景技术
众多电子技术(例如,数字计算机、计算器、音频装置、视频设备、电话系统等)在商业、科学、教育和娱乐的大部分领域中具有提高的生产率并且具有降低的成本。这些电子系统执行涉及信息存储系统的操作。信息存储操作进行的速度和容易度可对信息存储系统的整体性能有显著影响。然而,信息存储的传统尝试通常涉及速度和可管理的复杂度之间的反比关系。
信息存储系统涉及可归为两种类别中的一种的操作。一种类别涉及与用户发起的活动关联的存储操作。另一种类别涉及通过系统发起的管理和维护活动。这些操作进行的速度和容易度与存储信息所利用的地址空间的类型关联。
利用物理寻址空间的传统尝试理论上被认为是以非常快的速度操作的,但传统物理寻址空间中的实际管理和维护操作的尝试非常复杂并且未被切实实现。传统逻辑地址空间的管理和维护被认为涉及比物理地址空间低的复杂度。然而,传统逻辑地址空间无法像物理地址空间一样快地操作。
虽然传统存储系统可以以之前已被认为可接受的级别进行操作,但这些存储系统日益不足以满足改进应用和平台的要求和长远需要。实现提高的速度和可管理的复杂度二者以能够改进系统开发的传统尝试还未成功。
发明内容
描述了可包括能够进行不同存储空间活动的多种不同类型的地址空间的高效和有效的多模存储器件。多模选择性底层暴露存储器件可使得能够选择性暴露存储器件的底层方面。在一个实施例中,一种分布式存储系统包括:多个设备;分布式多模存储管理协调器;以及用于在包括在分布式多模存储管理协调器中的多个多模存储管理系统之间传达消息的通信机构,所述消息包括分布式多模存储管理消息。所述多个设备中的第一个可包括:多个存储器件(SSD),其具有包括第一类型接口和被构造成存储第一类型信息的第一信息存储区的第一存储分区以及包括选择性底层暴露(SUE)接口和存储第二类型信息的第二信息存储区的第二存储分区,其中,SUE接口暴露第二信息存储区的方面。分布式多模存储管理协调器可包括对信息到所述多个存储器件的传送进行引导的多个多模存储管理系统,其中,所述多个多模存储管理系统包括经由SUE接口和所选择的第二分区的底层方面来引导第二分区的文件活动的多模选择性底层暴露(SUE)管理系统。
消息可保持所选择的底层方面暴露于所述多个设备。元数据存储空间和用户数据存储空间可均匀地遍布于所述多个设备。在多个系统之间保持SUE 映射,其中,SUE地址空间映射的代表性几何构造匹配底层物理地址空间的代表性几何构造。可在多模存储管理系统的级别控制冗余。所述多个设备被布置成这样的架构:该架构的元件可在多个系统上线性扩展。分布式多模存储管理协调器基于所述多个存储器件间的选择性底层暴露级别进行操作。单个单元的失效不使分布式存储系统瘫痪,即便一个节点包括多于一个的存储器件。空闲空间核算(accounting)可在所选择的底层方面块级别出现。
在一个实施例中,一种分布式存储方法包括:将多个设备建立为独立盘冗余阵列(RAID)构造,其中,所述多个设备中的至少一个包括多个存储器件;以及管理所述多个存储器件中的信息存储,包括将第一类型的地址空间映射到与底层存储器件中的一个的方面对应的SUE地址空间。管理可包括协调管理RAID构造上的所述多个存储器件中的信息存储。映射数据可逻辑上冗余地分布于多个存储器件。协调包括在所述多个设备之中的第一个和所述多个设备中的第二个之间传达消息。空闲空间核算可在多模存储管理系统级别发生。通过触发分布式块拾取的主块拥有者来管理回收并且拾取的块被分布到另一个块。非主块拥有者执行物理扫描和有效确定查找。
在一个示例性实现方式中,一种分布式设施包括:按条带存储信息的多个设备;分布式多模存储管理协调器;以及通信机构,用于在分布式多模存储管理协调器系统和所述多个设备中的第二个之间传达消息。所述多个设备中的第一个包括:多个存储器件,所述多个存储器件具有包括第一类型接口和被构造成存储第一类型信息的第一信息存储区的第一存储分区以及包括 SUE接口和存储第二类型信息的第二信息存储区的第二存储分区,其中,SUE 接口暴露第二信息存储区的方面。分布式多模存储管理协调器可包括对信息到所述多个存储器件的传送进行引导的多个多模存储管理系统,其中,分布式多模存储管理协调器包括经由SUE接口和第二分区的所选择的底层方面来引导第二分区的文件活动的多模底层暴露管理系统。分布式设施还可包括将多个系统上的元数据和用户数据物理条带化。可在作为比存储器件高的分层级别(hierarchical level)的分布式多模存储管理协调器的级别控制冗余。失效单元是存储节点并且单个节点的失效不使分布式设施瘫痪,其中,存储节点包括所述多个设备中的一个。
附图说明
包括被并入本说明书并形成本说明书的部分的附图,用于本发明的原理的示例性说明,而不旨在将本发明限于这里示出的特定实现方式。除非另外具体指明,否则附图不成比例。
图1是示出根据一个实施例的具有SUE存储分区的示例性存储器件的框图。
图2是示出根据一个实施例的示例性多模存储器件的框图。
图3是示出根据一个实施例的另一个示例性多模存储器件的框图。
图4是示出根据一个实施例的示例性多模固态驱动(MM-SSD)的框图。
图5是示出根据一个实施例的将地址空间信息转换成逻辑地址空间信息的示例性过程的框图。
图6是示出根据一个实施例的示例性系统的框图。
图7是示出根据一个实施例的系统的框图。
图8是描述根据一个实施例的驱动多模底层暴露的方法的流程图。
图9是示出示例性多模SSD器件的框图。
图10是描绘根据本发明的实施例的用于在多模存储器件的用户区中存储的示例性SUE块和对应SUE页的框图。
图11是描绘根据本发明的实施例的用于在多模存储器件的用户区中存储的用户存储空间的示例性SUE块和对应USE页的框图。
图12是描绘根据本发明的实施例的用于在多模存储器件的用户区中存储的示例性SUE元页和对应SUE页的框图。
图13是描绘根据本发明的实施例的用于在多模存储器件的用户区中存储的示例性SUE元块和对应SUE元页的框图。
图14是描绘根据本发明的实施例的用于在多模存储器件的用户区中存储的另一个示例性SUE元块和对应SUE块的框图。
图15是描绘根据本发明的实施例的可通过多模存储系统实现以提供从逻辑地址到SUE地址的地址映射的示例性SUE映射方案的框图。
图16是描绘可实现图15的SUE映射方案的示例性存储系统的示意图。
图17是表示根据本发明的实施例的将逻辑地址空间映射到SUE地址空间的示例性方法的流程图。
图18是示出根据本发明的实施例的采用SUE寻址方案以允许存储系统对存储器件中的逻辑和SUE存储空间进行寻址的示例性多模存储管理系统的示意图。
图19是示出根据本发明的实施例的采用SUE寻址方案以允许存储系统对存储器件中的逻辑和SUE存储空间进行寻址的另一个示例性多模存储管理系统的示意图。
图20是示出根据本发明的实施例的采用SUE寻址方案以允许存储系统对存储器件中的逻辑和SUE存储空间进行寻址的又一个示例性多模存储管理系统的示意图。
图21是示出根据本发明的实施例的可通过多模存储管理系统实现的用户区访问管理器(UAAM)的示意图。
图22是示出根据本发明的实施例的可通过多模存储管理系统实现的用户区映射引擎(UAME)的示意图。
图23是示出根据本发明的实施例的可通过多模存储管理系统实现的元块管理器(MBM)的示意图。
图24是示出根据本发明的实施例的可通过多模存储管理系统实现的存储器件控制管理器(SCM)的示意图。
图25是示出根据本发明的实施例的可通过多模存储管理系统实现的存储器件访问管理器(SAM)的示意图。
图26是示出根据本发明的实施例的可通过多模存储管理系统实现的全局状态管理器(GSM)的示意图。
图27是根据一个实施例的结合到网络的示例性设备的框图。
图28是根据一个实施例的分布式系统的框图。
图29是根据一个实施例的分布式系统的框图。
图30是根据一个实施例的块生命周期的流程图。
图31是根据一个实施例的分布式系统元块的框图。
图32是根据一个实施例的在添加和去除节点时利用的一致性哈希算法的框图。
图33是根据一个实施例的示例性写处理的流程图。
图34是根据一个实施例的示例性写分配处理的流程图。
图35是根据一个实施例的实现写分配处理操作的系统的一个示例性实现方式的框图。
图36是根据一个实施例的示例性写分配处理的流程图。
图37是根据一个实施例的实现写分配处理操作的系统的一个示例性实现方式的框图。
图38是根据一个实施例的示例性写映射更新处理的流程图。
图39是根据一个实施例的实现写映射更新处理操作的系统的一个示例性实现方式的框图。
图40是根据一个实施例的示例性写空闲空间核算处理的流程图。
图41是根据一个实施例的实现写空闲空间核算处理操作的系统的一个示例性实现方式的框图。
图42是根据一个实施例的示例性写完成处理的流程图。
图43是根据一个实施例的实现写完成处理操作的系统的一个示例性实现方式的框图。
图44是根据一个实施例的示例性回收初始化处理的框图。
图45是根据一个实施例的示例性回收处理的流程图。
图46是示出块已经变成冷块并且请求必须进行块拾取的来自设备的广播的框图。
图47是示出其他设备执行块拾取并且将结果发送回设备的框图。
图48是示出拾取的块的示例性广播的框图。
图49是示出设备基于用于确定数据是否有效的头向另一设备发出映射查找的框图。
图50是示出处理来自另一个设备的映射响应的设备的框图。
图51是示出根据一个实施例的回收写处理的框图。
具体实施方式
提供所有以上提到的特征和以下的描述以帮助理解本公开。也就是说,本公开不应该被解释为限于本文中阐述的“示例”实施例,并且可按不同形式来实施。以下实施例仅仅是用于充分公开本发明的示例,并被描述以向本领域的技术人员提供本发明构思。因此,如果存在用于实现本公开的组件的许多方式,则将理解,本公开可用这些方式中的任一种或者其类似物中的任一个来实现。
如果在本公开中提到任何构造包括/包含特定组件或者任何处理包括/包含特定操作,则这意味着,还可包括其他组件或其他操作。也就是说,本文中使用的术语仅仅是旨在描述特定示例实施例,并不旨在限制本公开的范围。另外,所描述的被提供用于辅助理解本公开的示例包括其补充实施例。
本文中使用的术语具有本领域的技术人员通常理解的含义。常用的术语将被解释为在本公开的上下文中的一致含义。另外,本文中使用的术语不应该以过于理想或正式的意义来解释,除非本文中明确这样定义。
描述了可采用多个不同类型的地址空间和地址空间活动的高效且有效的多模存储方法。在一些实施例中,多模选择性底层暴露(selective underlying exposure,SUE)存储器件使得能够选择性暴露存储器件的一些底层方面,而不暴露其他底层方面。多模存储和SUE方法可在将复杂度限于可管理范围的同时,提高性能。
在一些示例性实现方式中,可选择性暴露物理地址空间的底层方面。可实现整体存储分层方法,并且可将一个分层级别(hierarchical level)的底层方面选择性地暴露于另一个分层级别。可通过地址空间构造和地址空间之间的映射,发生选择性暴露。选择性暴露的底层方面可更高效且有效地实现在与具有被暴露的底层方面的分层级别不同的分层级别执行的各种活动。各种活动可包括存储管理操作。要理解,多模存储和SUE方法可包括各种构造和实现方式。
下文中,将在以下参照附图描述本公开的示例实施例。
I.多模存储器件
图1是示出根据一个实施例的包括选择性底层暴露(SUE)存储分区101 的示例性存储器件100的框图。SUE存储分区101可包括选择性底层暴露 (SUE)接口102和底层存储区103。
底层存储区103可存储信息并且SUE接口102可将底层存储区103本身 (例如,与维度、代表性几何形状、管理功能、写操作、擦除操作等相关的物理方面)的方面(例如,特性、特征、功能等)选择性暴露于外部组件或存储系统分层级别(未示出)。该暴露可与存储在底层存储区103中的信息(用户数据和元数据)的方面关联。SUE存储分区101可暴露底层方面(例如,特性、特征、功能等)的一部分。
在暴露底层方面的一部分的一个示例性实现方式中,相比于没有选择性暴露底层方面的一部分的系统,可更有效地(例如,更快、更小的带宽以及更小的功耗)执行与所暴露方面关联的活动(例如,空闲空间管理、用于空闲空间使用的回收和调节、超量配置(over-provisioning)、修剪(trim)操作、功率循环等)。相比于暴露底层方面中的更多或全部的方法,以更低的复杂度执行活动。
在一些实施例中,可基于速度与复杂度的比较或平衡来确定选择暴露底层方面的哪个部分。要理解,SUE存储分区101可被包括在具有单个分区的单模存储器件中或者SUE存储分区101可被包括在具有多个分区的多模存储器件中。
图2是示出根据一个实施例的示例性多模存储器件220的框图。存储器件220可包括第一分区230和第二分区240。
要理解,多种模式和对应的分区可与各种事物关联或者可基于各种事物。各种事物可包括底层存储区的不同暴露、不同的地址空间(例如,逻辑、虚拟或物理)、不同的存储管理模式(例如,内部管理和外部管理)、不同的底层存储信息(例如,元数据和用户数据)等。内部管理和外部管理可包括存储器件管理系统组件和操作(例如,闪存管理系统(FMS)、固态器件管理系统等)。分区和对应的组件也可以是不同的类型。
多模存储器件220中的分区和对应的接口可与不同类型的地址空间(例如,逻辑地址空间和选择性底层暴露(SUE)地址空间)关联。多模存储器件220中的多于一个的分区和对应的接口也可与同一类型的地址空间关联 (例如,多模存储器件220中的多于一个的分区和对应的接口可与SUE地址空间关联)。
第一分区230可包括第一类型的接口231和底层存储区233。第二分区 240可包括第二类型的接口241和底层存储区243。在一些实施例中,第一分区230可以是第一类型的地址空间分区(例如,逻辑地址空间分区)并且第二分区240可以是第二类型的地址空间分区(例如,SUE地址空间和虚拟地址空间分区)。要理解,分区可以是SUE存储分区。
图3是示出根据一个实施例的另一个示例性多模存储器件350的框图。存储器件350可包括第一分区370和第二分区380。
在一些实施例中,第一分区370可以是第一类型的地址空间分区并且第二分区380可以是SUE地址空间分区。第一分区370可包括第一类型的接口 371和底层存储区373。第二分区380可包括SUE接口381和底层存储区383。要理解,诸如第一分区相关活动372(例如,FMS)的一些活动可针对一个分区在(例如,存储器件350的)内部执行并且可针对另一个分区在外部(未示出)执行。
不同类型的信息可被存储在不同分区中。在一些实施例中,可存在两种类型的信息(例如,元数据和用户数据)。用户数据可主要通过用户应用生成并且元数据可以是与用户数据关联的主要辅助信息(例如,存储系统分层中的文件位置、文件的内容大小、访问时间、修改时间、用户ID等)。第一闪存管理系统的重点可放在管理元数据。元数据进而可用于管理用户数据的存储。
要理解,存储系统可引导或实现不同于与管理或维护活动关联的系统操作的与用户发起的活动关联的操作。例如,从用户的角度来说,用户发起的读或写可指向特定地址或位置,而从系统的角度来说,系统操作可指向物理块和页。
还要理解,存储器件350可包括各种构造和实现方式。在一些实施例中,存储器件350可以是固态器件。存储器件350可包括闪存组件(例如,NAND 型闪存组件、NOR型闪存组件等)。
图4是示出根据一个实施例的示例性多模固态驱动(MM-SSD)的框图。多模固态驱动(SSD)400可以是多模存储器件的一个示例性实现方式。多模固态驱动400可包括逻辑地址空间分区410、可包括闪存转换逻辑FTL 413 的逻辑接口411、底层物理地址空间412、SUE地址空间分区420、SUE接口 421和底层物理地址空间423。
逻辑地址空间分区410可接收并且存储被逻辑寻址的系统数据(例如,元数据)并且SUE地址空间分区420可接收根据底层暴露地址空间寻址的用户数据(例如,应用数据)。用户数据可被存储在可包括闪存存储组件(例如,不同类型的浮栅晶体管)的底层物理地址空间423中。闪存存储组件可被布置成各种构造和粒度。例如,闪存存储组件可被布置成多个芯片(die)并且这多个芯片之中的芯片470可包括块473和479以及块内的页。
在一些实施例中,SUE接口421可暴露底层物理地址空间423的方面。可通过将用户数据寻址与MM-SSD 400的底层操作协调,来暴露底层物理地址空间423的选择性方面。所述协调可与底层物理地址空间423的管理操作的暴露关联。底层物理存储管理方面可包括多个底层物理地址块(例如,471、 472、473和474)的分组,所述多个底层物理地址块被一起管理(例如,在单个操作中、作为单个管理单元、在块集中、在库(bank)中、响应于单个管理命令)。
图5是示出根据一个实施例的将地址空间信息转换成逻辑地址空间信息的示例性过程的框图。SUE地址块503可包括与各种管理和维护操作(例如, 505、507和508)关联的信息。物理地址空间502可包括多个芯片(511、512、 513、514、521、522、523、524、531、532、533、534、541、542、543和 544)。各芯片可包括多个物理寻址块(例如,515和519)并且各物理寻址块可包括多个物理地址页。
物理地址空间502可基于物理块和物理页访问地址存储位置。SUE接口501可接收SUE地址块503信息,并且可将接收的信息转换或重构成与物理地址空间502兼容的构造。SUE地址块503信息可对应于物理管理操作中涉及的信息。
在一些实施例中,管理和维护操作可指向物理地址空间502中的物理块 (例如,物理块515、519和539)。管理操作可指向物理地址空间或物理级别管理单元。物理级别管理单元可包括(例如,响应于管理操作或命令)管理基本上同时被管理的多个地址、页、块等。例如,擦除操作可指向来自各芯片的物理块(类似于块515的用黑色示出的物理块)。
由于SUE地址块503被构造成匹配物理块,因此各对应物理块的各条信息(例如,505、507和508)可被包括在SUE地址块503中。在一些示例性实现方式中,SUE接口501可接收SUE地址块503信息,可将信息505、507 和508识别为分别对应于物理块515、517和528,并且可因此可执行对应的管理和维护操作。在一些实施例中,可对多个物理块中的信息执行擦除管理操作,可对页中的信息执行写操作。
两个地址空间的几何形状也可不同。在一些实施例中,逻辑地址空间可以是单个维度(例如,逻辑块地址(LBA)偏移如何被对齐),物理地址空间可以是多维度的,包括诸如纠错码(ECC)、物理页、物理块、物理芯片等(包括它们中的一些或子集)的各种方面。SUE地址空间可以是一维的或数量有限或减少的维度。在SUE地址空间的一些示例性实现方式中,底层物理地址空间的维度可被抽象成单个或数量减少的维度。与底层物理地址空间的管理活动(例如,回收/垃圾收集、功率循环等)关联的所选择的维度(例如,块和页)可被抽象成SUE地址空间,而底层物理地址空间的其他方面或活动(例如,ECC)可不被抽象成SUE地址空间。
要理解,底层方面的选择性暴露可包括在由整体系统中的除了MM-SSD 400外的其他组件(未示出)执行的将用户数据传递到MM-SSD 400之前进行的协调。在一些实施例中,MM-SSD 400可结合到在整体系统分层的不同级别操作的管理组件。
图6是示出根据一个实施例的系统600的框图。系统600可包括与多模存储管理系统610通信地结合的多个MM-SSD(例如,620、630、640和650)。
要理解,可通过多模存储管理系统610控制一些活动(例如,一些存储管理操作和闪存管理系统操作)并且可通过MM-SSD 620、630、640和650 控制其他活动(例如,其他存储管理操作和闪存管理系统操作)。在一些实施例中,MM-SSD 620、630、640和650可分别包括可控制或引导针对MM-SSD 620、630、640和650的一些活动的控制器621、631、641和651,而多模存储管理系统610可包括可控制或引导针对MM-SSD 620、630、640和650的一些活动的控制器611。
在一些示例性实现方式中,控制器621、631、641和651可分别控制或引导MM-SSD620、630、640和650中的第一分区的活动,并且控制器611 可控制或引导MM-SSD 620、630、640和650中的第二分区的活动。控制器 611可经由选择性底层暴露接口控制MM-SSD 620、630、640和650中的活动。
在一些实施例中,系统600可包括多个卷(例如,671、672和673)。在一些示例性实现方式中,系统600可包括用户空间并且用户空间可被映射到多个卷,可将存储空间作为多个卷呈现给用户。要理解,卷可具有不同大小。还要理解,不同大小的SUE可寻址单元可与多个卷关联。
图7是示出根据一个实施例的系统700的框图。系统700可包括多模SSD (MMD-SSD)750,MMD-SSD 750与设备710中所包括的多模存储管理系统720通信地结合。设备710可以是各种计算机/电子设备(装置)中的任一种。要理解,其他多模SSD可结合到多模存储管理系统720。系统700可管理元数据730和用户数据740的存储。
多模存储管理系统720可包括控制器745。控制器745可包括(用于用户数据的)闪存管理系统741和SUE映射器742。
多模SSD 750可包括逻辑地址空间分区770和SUE地址空间分区780。逻辑地址空间分区770可包括物理地址空间777和可包括(用于元数据的) 闪存管理系统771的控制器775。闪存管理系统771可包括逻辑接口772,逻辑接口772可包括FTL 773。物理地址空间777可包括NAND闪存。SUE地址空间分区780可包括SUE接口782和可包括NAND闪存的物理地址空间 787。
元数据730信息可被接收到逻辑地址块791中,被转发到逻辑地址块792 中,从多模存储管理系统720被传递到逻辑地址空间分区770。要理解,逻辑地址块791和逻辑地址块792可以是相同的(例如,逻辑地址块791可不改变,而仅仅是被转发到逻辑地址空间分区770)。
逻辑接口772可将与元数据关联的逻辑块地址(LBA)转换成与物理地址空间777关联的物理地址块793。FMS 771可引导与物理地址空间777关联的存储管理和维护操作。元数据可被存储在物理地址空间777的NAND闪存中。
逻辑地址块797中的用户数据可被转发到FMS 741。由于经由SUE接口782暴露物理地址空间787的底层特征和特性,因此FMS 741可引导与物理地址空间787的底层特征和特性关联的闪存管理和维护操作。SUE映射器742 可将逻辑地址块797映射到SUE地址块798。
SUE地址块798可进而被选择性底层暴露(SUE)接口782转换成与物理地址空间787中所包括的NAND闪存组件关联的物理地址块799(例如,类似于图5中的517和519)。要理解,逻辑地址块可具有不同于SUE地址块的大小,进而可具有不同于物理地址块的大小。
相比于传统方法,在上述分层级别中执行各种活动有助于更有效且方便地管理。传统方法应对影响多个层的活动的灵活性有限。一些传统方法必须对多个级别执行活动,导致对整体性能(例如,log-on-log、驱动级的FMS 和系统级的FMS)产生指数级不利影响。
例如,在RAID(独立盘冗余阵列)存储系统中,存在需要被一起管理的多个条目(例如,数据存储和对应的奇偶校验存储),这些条目对上存储分层级别(例如,RAID系统管理级别)和下存储分层级别(例如,存储驱动级别)都有影响。对于各级别,信息的生命周期可以不同(例如,用户会想要覆写信息,但RAID系统仍然会需要用它重新计算奇偶校验),导致驱动级为用户写入“新”数据,而系统级仍然为RAID系统保持“旧”信息。这导致写入放大因数,而没有能力进行修剪。
图8是描述根据一个实施例的驱动多模选择性底层暴露(MM-SUE)的方法的流程图。
具有7%的超量配置的驱动(例如,SSD)的工作效率是没有驱动超量配置的直接覆写系统(例如,HDD)的15倍,还是没有系统超量配置的系统的 15倍,总计225(15×15)倍。允许FMS移到直至上存储分层级别的多模存储器件有助于减小回落(例如,7%的超量配置在没有超量配置的系统的刚好 15倍的工作效率范围内工作,而28%的超量配置在没有超量配置的系统的仅 3倍的工作效率范围内工作),导致写放大因数减小。在一些示例性实现方式中,可将用于引导来自上存储分层级别的管理操作的所选择的底层地址块和页与底层物理级别协调或匹配。这样允许用户级的信息的生命周期变得不同于系统级的信息的生命周期,但是从管理的观点来看,可将两个生命周期对齐成相同的(例如,用户级的生命周期的持续时间和系统级的生命周期的持续时间可对应于用户空间的使用和擦除)。
在操作810中,器件的第一部分可被构造或指定为用于存储第一类型信息的第一区域。在一些实施例中,第一区域可以是元数据区域并且第一类型信息可以是元数据。纠错码(ECC)大小可有所不同。
在操作820中,可基于第一地址空间信息来执行第一类型接口操作。在一些示例性实现方式中,第一区域可以是元数据区域并且第一类型的信息可以是元数据。在一些实施例中,第一类型接口可以是逻辑地址空间接口并且可基于逻辑寻址信息来执行操作。逻辑接口操作可包括闪存转换逻辑(FTL), FTL包括:接收元数据和逻辑地址;以及将系统级构造可见的地址块转换成物理级构造的地址块。
在操作830中,器件的第二部分可被构造或指定为用于存储第二类型信息的第二区域。在一些实施例中,第二区域可以是用户数据区域并且第二类型信息可以是用户数据。SUE地址空间可提取或去除与物理地址空间关联的复杂度,同时仍然暴露与底层物理地址空间构造的关系或对应性。在一些示例性实现方式中,物理空间维度可被抽象成SUE地址页维度和SUE地址块维度。可按SUE地址来提取物理地址空间。
在操作840中,可基于第二地址空间信息来执行第二类型接口操作,其中,第二类型接口可选择性暴露底层方面。第二地址空间信息可以是选择性底层暴露(SUE)地址空间信息,其中,SUE地址空间信息可对应于底层方面。底层方面可包括物理地址空间几何形状的代表性几何形状或维度。SUE 接口可暴露与底层系统管理操作(例如,空闲空间管理、针对空闲空间使用的回收和调节)关联的维度。元数据区域中的超量配置的百分比可不同于用户数据区域中的超量配置的百分比。
图9是示出根据一个实施例的示例性多模SSD 920的框图。在图9中,将多模SSD920与针对逻辑寻址SSD 910和物理寻址SSD 930的传统尝试进行比较。
逻辑寻址SSD 910可包括逻辑接口911、FTL 912和逻辑地址空间913。物理寻址SSD930可包括物理接口931和物理地址空间932。多模SSD 920 可包括逻辑接口921、FTL 922、逻辑地址空间923、SUE接口924和物理地址空间925。
多模SSD 920有助于对驱动的底层方面的方便的和选择性的暴露。不同于暴露不足或具有过大复杂度的传统方法,多模SSD 920允许不过度复杂地暴露适宜量。
然而,传统SSD通常在现实中不是良好的线性地址空间,相反地,它们常常具有带有一群闪存芯片的控制器,这些芯片具有被构造成在由页组成的块中操作的芯片,这些页具有将被存储在晶体管的组或串中的数据。物理寻址SSD 930设法暴露存储介质的所有底层物理地址方面,从而允许被认为是非常快的操作(例如,相比于逻辑寻址SSD 910)但造成非常复杂的方法。逻辑寻址SSD 910具有被认为是具有隐藏存储介质的方面的所有或几乎所有底层细节的方案的单个线性平坦映射空间,然而,设法在具有隐藏了许多底层细节的物理区域中最终存储数据使系统减慢(例如,相比于物理寻址SSD 930)。
多模SSD 920有助于FMS操作的方便且灵活地构造和实现。多模SSD 920可主要针对逻辑地址空间923在多模SSD 920的内部控制器(例如,图7 的控制器775)中执行FMS操作,而可主要针对SUE地址空间925在多模 SSD 920外部的控制器(例如,图7中的控制器745)中在系统级执行FMS 操作。
分割或划分多模SSD 920的FMS操作的这种能力不同于不允许分割或划分FMS操作的SSD 910和SSD 930所使用的FMS操作方法。针对逻辑寻址SSD 910的FMS操作主要在逻辑寻址SSD 910的内部控制器中执行,而针对物理寻址SSD 930的FMS操作主要在物理寻址SSD930外部的控制器中在系统级执行。
在一些实施例中,多模SSD 920可选择性暴露一些底层地址空间特征,逻辑寻址SSD 910和物理寻址SSD 930并不有助于选择性暴露一些底层地址空间特征而非其他底层地址空间特征。在一些实施例中,将底层方面暴露于外部FMS(例如,多模存储管理系统720)可涉及底层方面的所选择的暴露的映射。
II.选择性底层暴露(SUE)映射
本发明的另一个实施例实现了用于针对存储系统中的用户数据来创建从逻辑地址空间到SUE地址空间的映射的选择性底层暴露(SUE)映射方案。 SUE映射方案可选择性暴露底层物理存储介质的显著特征,以允许在多个存储器件的系统级(而非在个体存储器件级)执行特定存储介质管理功能。
例如,一些实施例可使得能够选择性暴露存储设备中的多个NAND闪存非易失性存储器器件的用户地址空间的方面。SUE映射方案的SUE页和块可与在物理NAND闪存非易失性存储器器件中的每个中作为单元被联合管理的对应的物理页和块对齐。物理NAND闪存非易失性存储器器件中的个体芯片在SUE映射方案中不作区分,但是仍然被间接反映到SUE块大小中。
存储器件的物理页和块与SUE映射方案的SUE页和块之间的相关性允许特定NAND闪存管理功能(诸如,擦除、编程、回收(垃圾收集)、空闲空间管理等)在存储系统中的所有NAND闪存非易失性存储器器件的系统级被协调和实现。特定存储介质管理功能的系统级实现可提供关于存储资源配置的有利效果。
再参照图3,诸如NAND闪存非易失性存储器器件的多模存储器件(例如,350、400、620)可结合本公开中描述的SUE映射方案来实现。例如,在一些实施例中,多模存储器件可以是基于NAND闪存的固态驱动(SSD)。在一些实施例中,多模存储器件可符合标准化物理形式因子(诸如,标准盘驱动形式因子或标准存储卡形式因子)。
再参照图5,如上所述,多模存储器件可包括具有多个NAND闪存存储器单元的多个芯片511、512、513、514、521、522、523、524、531、532、 533、534、541、542、543和544、或存储器芯片。各芯片上的NAND闪存存储器单元可被细分为存储器单元的多个离散的物理块(诸如,物理块515、 517、519、528和539)。
可相对于多模存储器件上的一个或多个离散分组的芯片上的存储器单元的块,执行空闲空间的擦除和管理。例如,多模存储器件可包括128个芯片,并且可相对于作为组或单元的128个芯片中的每个中的一个块,擦除和管理空闲空间。可选择地,多模存储器件可包括128个芯片,并且可相对于作为组的芯片子集(例如,32个芯片的分组)中的一个块,擦除和管理空闲空间。
图10是描绘根据本发明的实施例的用于在多模存储器件的用户区中存储的示例性SUE块和对应SUE页的框图。
现在,参照图10,示出形成SUE块1010的一系列物理块1012、1014、 1016和1018。存储器单元的各物理块1012、1014、1016和1018被进一步细分为存储器单元的多个离散的物理页(例如,1021、1022、1023和1024)。 SUE页1030包括对应SUE块1010中的各物理块1012、1014、1016和1018 的对应的物理页1032、1034、1036和1038。
在本发明的一些实施例中,可创建多模存储器件(例如,350、400或620) 中的存储器单元的SUE构造。可相对于存储器件上的相对于编程和擦除而作为单元被联合管理的各芯片分组来组织SUE页和SUE块,晶粒分组被。SUE 块可被定义为包括物理块的存储器单元,每个物理块分别是选自多模存储器件的芯片子集中所包括的各芯片,并且这些物理块可被作为单元进行联合擦除和管理。SUE页可被定义为包括SUE块的离散的部分或片段,并且这些离散的部分或片段可被联合编程。
例如,在一些实施例中,多模存储器件可包括128个芯片,并且可联合地擦除和管理各芯片中包括的各个物理块上的空闲空间。对应的SUE块1010 可被定义为包括128个物理块的存储器单元,每个物理块分别是选自多模存储器件的128个芯片。对应的SUE页1030可被定义为包括分别与128个物理块对应的128个部分或片段。
在另一个实施例中,多模存储器件可包括128个芯片,并且例如可一次性联合地擦除和管理32个芯片的各自物理块上的空闲空间。对应的SUE块 1010可被定义为包括32个物理块的存储器单元,每个物理块分别是选自多模存储器件的32个芯片。在这种情况下,对应的SUE页1030可被定义为包括分别与32个物理块对应的32个部分或片段。
在又一个实施例中,多模存储器件可包括被划分成4个平面的128个芯片,并且可管理各个芯片中所包括的各个平面的块上的空闲空间。对应的SUE 块1010可被定义为包括存储器器件中所包括的各个平面的128个块的存储器单元。在这种情况下,对应的SUE页1030可被定义为包括与各个平面的块对应的128个部分或片段。
图11是描绘根据本发明的实施例的用于在多模存储器件的用户区中存储的用户存储空间的示例性SUE块和对应USE页的框图。
现在,参照图11,用户存储空间的示例性SUE块(S块)1110被表达为框图。在一些实施例中,SUE块1110可被视为近似于虚拟块(V块)。SUE 块1110可以是各个存储器件级别的存储器介质管理的操作的基本单元。SUE 块可由多个SUE页(S页)构成。在一些示例性实现方式中,SUE页可被视为近似于虚拟页(V页)。例如,图11中描绘的SUE块1110包括4个SUE 页(S页)1121、1122、1123和1124。
如图5中描绘的,分配到SUE块(S块)中的SUE页(S页)的物理存储器单元可位于单个多模存储器件(例如,350、400或620)中所包括的多个芯片的对应的物理页和物理块中。替代的实施例可包括基于多模存储器件的物理擦除块大小和可编程物理页大小之间的关系被划分成任何数量的页的块。
图12是描绘根据本发明的实施例的用于在多模存储器件的用户区中存储的示例性SUE元页和对应SUE页的框图。
现在,参照图12,示例性元页(M页)1210被表达为框图。元页1210 可由在存储系统中的多个存储器件的多个SUE页(S页)构成。例如,图12 中描绘的元页1210包括5个SUE页(S页)1211、1212、1213、1214和1215。可选择的实施例可包括基于存储系统中的个体多模存储器件的数量和多模存储器件中的每个中被作为单元进行联合管理的芯片的数量被划分成任何数量的SUE页的元页。
分配到各SUE页的物理存储器单元可位于个体多模存储器件(例如,350、 400或620)中。分配到形成元页1210的各个SUE页1211、1212、1213、1214 和1215的存储器单元可位于与存储系统(例如,存储设备)关联的多个存储器件(例如,620、630、640和650)中。
因此,虽然SUE页1211、1212、1213和1214的大小或宽度可对应于各多模存储器件中被作为单元进行联合管理的芯片的数量,但是元页1210的大小或宽度可对应于存储系统中所包括的多模存储器件的数量。
图13是描绘根据本发明的实施例的用于在多模存储器件的用户区中存储的示例性SUE元块和对应SUE元页的框图。
参照图13,示例性元块(M块)1310被表达为框图。元块(M块)1310 可由多个元页1311、1312、1313和1314构成。如同元页(M页)1210,分配到元块(M块)1310的物理存储器单元可位于与存储系统关联的多个存储器件中。也就是说,元块(M块)1310可包括从存储系统中所包括的多模存储器件(例如,620、630、640和650)中的每个中的被作为单元进行联合管理的芯片的对应子集中的各芯片选择的各个块。因此,元块1310的大小可对应于在各多模存储器件(例如,350、400或620)中被联合管理的芯片的数量和存储系统中所包括的多模存储器件(例如,620、630、640和650)的数量。
图14是描绘根据本发明的实施例的用于在多模存储器件的用户区中存储的另一个示例性SUE元块和对应SUE块的框图。
参照图14,示例性元块(M块)1410可被表达为由多个SUE块(S块) 1110构成的框图。元块1410可以是从存储系统中所包括的多模存储器件(例如,620、630、640和650)中的每个中的被联合管理的芯片的各子集中选择的各个SUE块1411、1412、1413、1414和1415的集合。类似地,元页1210 可以是选自元块1410中的对应SUE块1411、1412、1413、1414和1415中的每个的对应SUE页(例如,1211、1212、1213、1214和1215)的集合。
在本发明的一些实施例中,可在元块级执行特定存储器介质管理功能(例如,擦除、编程、回收(垃圾收集)、空闲空间管理等)。也就是说,这些存储器介质管理功能可在存储系统级而非个体存储器件级进行协调。
为了能够进行所期望的系统级存储器管理,例如通过应用和虚拟机(VM) 操作系统寻址的用户数据所专用的逻辑地址空间可被映射到SUE地址空间。因此,可通过底层暴露接口对存储系统中所包括的多模存储器件的用户区进行寻址。系统级存储器映射和管理导致更低的写放大因数,这允许存储区配置减小,从而导致成本节省。
图15是描绘根据本发明的实施例的可通过多模存储系统实现以提供从逻辑地址到SUE地址的地址映射的示例性SUE映射方案的框图。
参照图15,示出本发明的实施例的SUE映射方案1500,SUE映射方案 1500可由存储系统(诸如,图6的多模存储管理系统610)实现,以提供从逻辑地址到SUE地址的地址映射。SUE映射方案1500可将逻辑地址空间与 SUE地址空间关联。SUE地址空间可揭露底层物理存储介质的显著特征。可使用SUE地址空间对存储系统中所包括的多个存储器件的集合物理存储空间进行寻址。
用户数据1502可作为输入例如从主应用和虚拟机操作系统被接收。主机用户数据可被组织成对应于与本地主机文件系统、接口标准等关联的逻辑块大小(例如,512K字节的信息)的存储单元(例如,逻辑寻址块或逻辑块)。可通过逻辑块地址(LBA)对接收的用户数据的各逻辑块进行寻址。例如,在一些实施例中,输入逻辑块寻址可与通过美国国家标准协会(ANSI)公布的小型计算机系统接口(SCSI)标准关联。
用户数据1502的逻辑寻址块可被组合成SUE可寻址单元或混合映射系统(HMS)映射块(HMB)。在一些实施例中,整数数量的逻辑块可被分组以形成SUE可寻址单元。例如,在图15中,8个逻辑块被组合以形成各SUE 可寻址单元。在可供选择的实施例中,任何整体或部分数量的逻辑块可被组合以形成SUE可寻址单元。
在一些实施例中,SUE可寻址单元可具有用于存储系统的映射的最小粒度。在各种实施例中,SUE可寻址单元大小可包括4K字节、8K字节或任何其他合适的大小或大块(chunk)的信息。
在一些实施例中,存储系统可包括一组卷,各卷可包括一组SUE可寻址单元并且各可寻址单元可包括一组逻辑单元。不同的卷可分别利用不同的 SUE可寻址单元大小。要理解,卷可具有多种特性。卷可对应于:应用、单个用户级文件系统、逻辑驱动、命名空间(例如,与给定命名空间关联的连续逻辑地址的集合)、LUN(逻辑单元号)等。
在所描绘的示例实现方式中:通过逻辑块地址1521、1522、1523、1524、 1525、1526、1527和1528寻址的逻辑寻址块1531、1532、1533、1534、1535、 1536、1537和1538被组合成SUE可寻址单元1503;通过逻辑块地址1541、 1542、1543、1544、1545、1546、1547和1548寻址的逻辑寻址块1551、1552、 1553、1554、1555、1556、1557和1558被组合成SUE可寻址单元1504;通过逻辑块地址1571、1572、1573、1574、1575、1576、1577和1578寻址的逻辑寻址块1581、1582、1583、1584、1585、1586、1587和1588被组合成 SUE可寻址单元1505。逻辑块可跨可寻址单元。各可寻址单元可存在多个块。
可对SUE可寻址单元(例如,1503、1504和1505)中的用户数据1502 可选地执行数据压缩算法,以生成压缩SUE可寻址单元(例如,1507、1508 和1509)。可对应于各压缩SUE可寻址单元(例如,1507、1508和1509)产生头部(header section)(例如,1511、1512和1513)。头部可包含例如用于回收和数据恢复活动的信息。
压缩SUE可寻址单元和头部可位于存储器件传递块或SSD传递块(STB) 1515和1517中。在所描绘的示例中,头部1511、1512和1513和对应的压缩SUE可寻址单元1507、1508和1509被包括在STB 1515和1517中。在一些实施例中,可允许压缩SUE可寻址单元以及用户数据1502的封闭逻辑块跨两个或更多个存储器件传递块。
整数数量的存储器件传递块可与SUE页1591、1592、1593和1594对齐,以便传递到多模存储器件。在一些实施例中,可允许压缩SUE可寻址单元以及用户数据1502的封闭逻辑块跨两个或更多个SUE页1591、1592、1593和 1594。
在一些实施例中,可不在系统级相对于用户数据1502实现误差校验(诸如,纠错码(ECC)),而是必须通过个体多模存储器件实现误差校验。
与用户数据关联的元数据可被存储在多模存储器件(例如,350、400或 620)的逻辑寻址系统区中。例如,在一些实施例中,使用逻辑块寻址进行寻址的多模存储器件中的存储器单元的分区可存储可将SUE可寻址单元映射到 SUE地址空间映射表。例如,映射表可存储指针,指针中的每个可指向个体 SUE可寻址单元。因此,可使用SUE可寻址单元的映射以及逻辑块和SUE 可寻址单元的对应偏移来确定SUE地址空间中的用户数据的逻辑块的对应存储位置。
在一些实施例中,信息可被存储在卷(例如,671、672和673)中。可存在多个卷或命名空间并且不同的卷或命名空间可与不同大小的SUE可寻址单元关联。还要理解,不同大小的卷或命名空间可与相同大小的SUE可寻址单元关联。
图16是描绘可实现图15的SUE映射方案的示例性存储系统的示意图。如图16中所示,示例性的存储系统1602可包括处理器1604、存储器1606、网络接口1608、输入/输出(I/O)器件1610、显示装置1612、总线1614和多个非易失性存储器器件1616。存储系统1602的各种组件可通过本地数据链路1618结合,在各种实施例中,本地数据链路1618包含例如地址总线、数据总线、串行总线、平行总线、或这些的任何组合。
处理器1604可包括适于控制存储系统1602的任何通用或专用数字处理器。存储器1606可包括适于存储供处理器1604访问的数据和指令的任何数字存储器器件。
网络接口1608可包括适于将存储系统1602通信地连接到通信网络(例如,局域网(LAN)或互联网协议(IP)网络)的任何联网接口。网络接口 1608可实现存储联网标准,例如,互联网小型计算机系统接口(iSCSI)协议。
输入/输出器件1610可包括用于将数字信息发送到存储系统1602或者从存储系统1602接收数字信息的任何合适器件。显示装置1612可包括用于显示文本或图形用户界面(GUI)的任何合适装置。
总线1614可包括例如外围组件互连快速(PCIe)总线或用于存储系统中的通信的任何其他合适的高速串行扩展总线。总线1614可利用标准NVM快速(NVMe)、或非易失性存储器主机控制器接口规范(NVMHCI)来访问存储系统1602中的存储器件(诸如,非易失性存储器器件1616)。非易失性存储器器件1616可包括例如基于NAND闪存的固态驱动(SSD)或任何其他合适的非易失性存储器器件。
在可选择的实施例中,通用计算装置可实现图15的SUE映射方案1500 的功能。例如,通用计算装置可包括服务器、工作站、个人计算机等。
存储在计算机可读介质(诸如,非易失性存储器器件1616)上的编程代码(诸如,源代码、目标代码或可执行代码)可被加载到工作存储器或操作存储器(例如,存储器1606)中,由处理器1604来执行,以执行图15的SUE 映射方案1500的功能。在可选择的实施例中,可执行指令可存储在固件中,或者功能可由专用硬件来执行。
图17是代表根据本发明的实施例的将逻辑地址空间映射到SUE地址空间的示例性方法的流程图。现在,参照图17,可例如由图16的存储系统1602 执行示例性处理流程来实现本公开中描述的SUE映射方案的实施例,所述 SUE映射方案用于将逻辑地址空间映射到SUE地址空间,以对存储系统中包括的多个存储器件的集合的物理存储空间进行寻址。
处理开始于操作1702,在操作1702中,例如,从主机应用或虚拟机操作系统接收用户数据。接收的用户数据可被组织成逻辑块并且通过逻辑块地址来寻址。逻辑块可对应于与本地主机文件系统、数据库等关联的最小可寻址存储器单元大小。
在操作1704中,如上所述,逻辑块可被组合成SUE可寻址单元。例如,整数数量的逻辑块可被分组,以形成各SUE可寻址单元。可选地,在操作1706 中,如以上解释的,可对SUE可寻址单元中的用户数据可选地执行数据压缩算法。(图17中用虚线示出的组件是可选项)。
在操作1708中,可生成头部并且将其添加到各SUE可寻址单元。如上所述的,可生成头部,以包括例如用于回收和数据恢复活动的信息。在操作 1710中,如以上解释的,压缩SUE可寻址单元和头部可位于存储器件传递块中。
如以上进一步说明的,在操作1712中,整数数量的存储器件传递块可被联合并且对齐到SUE页,并且在操作1714中,对应于SUE页的存储器件传递块可被传递到多模存储器件,以被存储在用户区中。在操作1716中,如上所述,关于SUE页中的用户数据的元数据可被发送到多模存储器件中,以被存储在系统区中。
III.多模存储管理系统
在图18中示出本发明的另一个实施例,图18示出采用SUE寻址方案以允许存储系统(诸如,图16的存储系统1602)对存储系统中的逻辑和SUE 存储空间进行寻址的示例性多模存储管理系统1802。多模存储管理系统1802 可包括SUE存储管理器1804、逻辑存储管理器1806、回收管理器1808和存储阵列管理器1810。
SUE存储管理器1804可提供用户数据存储映射、读和写功能。SUE存储管理器1804可使用SUE地址映射方案将用户数据映射到存储系统的用户区。SUE存储管理器1804可通过与存储系统的存储器件的SUE接口来访问存储在用户区中的用户数据。
SUE映射方案可在存储系统与存储器件之间分配逻辑块地址到物理地址映射功能。也就是说,SUE映射方案可将从逻辑块地址到SUE地址的系统级映射或虚拟化与从SUE地址到物理地址的存储器件级映射或转换相结合。
SUE映射方案可将存储器件的特定物理特征或代表性几何形状暴露于存储系统,以使针对用户数据的特定非易失性存储器管理功能能够跨多个存储器件在存储系统级执行,而非在个体存储器件级执行。这种从个体存储器件级到存储系统级的用户数据管理任务的重新分配可导致系统效率,包括减小的写放大因数,允许减小的资源配置并且降低成本。
逻辑存储管理器1806可提供系统数据存储映射、读和写功能。逻辑存储管理器1806可使用逻辑地址映射方案(诸如,逻辑块寻址(LBA))将系统数据映射到存储器件的系统区。逻辑存储管理器1806可通过与存储器件的逻辑接口访问存储在系统区中的系统数据。
因此,在一些实施例中,关联存储器件或多个关联存储器件中的每个的存储器空间可被细分或分割成包括逻辑寻址系统区和SUE寻址用户区的分开的存储区或地址空间。存储器件可包括两个主机接口,可提供对逻辑寻址系统区的逻辑主机接口和可提供对SUE寻址用户区的SUE主机接口。可由个体存储器件控制器来执行关于系统数据的非易失性存储器管理功能。
回收管理器1808可提供非易失性存储器管理,包括空闲空间管理和回收或垃圾收集、关于用户数据的存储系统级的功能。因此,存储系统中包括的个体存储器件可不执行用户数据的本地回收(垃圾收集)。回收管理器1808 可实现各种空闲空间管理和回收方法。在一些实施例中,回收管理器1808还可执行在本公开中描述的新型空闲空间管理和回收方法。
存储阵列管理器1810或独立盘冗余阵列(RAID)管理器可向存储系统中包括的多个存储器件的阵列提供关于用户数据的存储管理,包括数据恢复功能。因此,存储系统中包括的个体存储器件可不对用户数据执行芯片级 RAID功能。存储阵列管理器1810可实现各种存储管理和数据恢复方法。在一些实施例中,存储阵列管理器1810还可执行本公开中描述的新型存储管理和数据恢复方法。
现在,参照图19,示出另一个示例性的多模存储管理系统1902,多模存储管理系统1902采用SUE寻址方案,以允许存储系统在诸如图16的存储系统1602的存储系统中对逻辑和SUE存储空间进行寻址。多模存储管理系统 1902可包括数据对齐单元(DAU)1904、SUE存储访问管理器1906、数据压缩管理器1908、卷映射引擎1910、缓冲器管理器1912、元块管理器1914、回收管理器1916、存储阵列管理器1918和逻辑存储访问管理器1920。
数据对齐单元(DAU)1904可从小型计算机系统接口(SCSI)目标接收逻辑寻址介质访问命令(例如,读、写和去映射命令)。这些命令基于用整数索引来指示存储器块的线性寻址方案来利用逻辑块寻址(LBA)、SCSI存储器位置提取标准。在逻辑块寻址中,使用单整数基地址来识别数据的各逻辑块的开始,各线性基地址与单个逻辑块唯一地关联。因此,逻辑块寻址隐藏或掩蔽存储器件的具体细节或特征,不让操作系统、文件系统、器件驱动器和主机应用发现。
在写操作期间,数据对齐单元1904可将从SCSI目标接收的数据的逻辑块组合成SUE映射块。例如,在一些实施例中,整数数量的逻辑块可被分组,以形成SUE映射块。数据压缩管理器1908可以可选地对SUE映射块中的用户数据执行数据压缩算法。
在读操作期间,数据对齐单元1904可从SCSI目标接收读命令并且将读请求传递至SUE存储访问管理器1906。数据对齐单元1904可从SUE存储访问管理器1906接收被请求的用户数据并且将被请求的用户数据传递到SCSI 目标。
SUE存储访问管理器1906可提供用户数据读和写功能。在写操作期间, SUE存储访问管理器1906可生成各SUE映射块的头部。头部可包含例如用于回收和数据恢复活动的信息。SUE存储访问管理器1906可将压缩的SUE 映射块连同对应的头部一起置于存储器件传递块中。在一些实施例中,允许压缩的SUE映射块以及用户数据的封闭逻辑块跨两个或更多个存储器件传递块。
SUE存储访问管理器1906还可将整数数量的存储器件传递块与SUE页对齐,以传递到存储器件。SUE存储访问管理器1906可将对应于SUE页的存储器件传递块传递到写缓冲器。
在一些实施例中,允许压缩的SUE映射块以及用户数据的封闭逻辑块跨两个或更多个SUE页。各SUE页可对应于存储系统的个体存储器件。SUE 页可以是SUE映射方案中的编程或写操作的基本单元。
在读操作期间,SUE存储访问管理器1906可确定被请求的用户数据的位置并且请求将被请求的用户数据从关联的存储器件读取到读缓冲器。SUE 存储访问管理器1906可将用户数据从读缓冲器传递到数据对齐单元1904。
作为SUE寻址方案的子功能或作为其补充功能,数据压缩管理器1908 可对用户数据执行压缩算法。由数据压缩管理器1908执行的数据压缩功能可有助于抵消导致写放大的固有系统因子。
卷映射引擎1910可协调SUE地址映射功能。卷映射引擎1910可保持记录用户数据的当前位置的用户区映射表。用户区映射表可包括将逻辑块地址与所存储的用户数据的SUE地址相关的映射信息。用户区映射表可被存储在关联存储器件的逻辑寻址系统区中。
在写操作期间,卷映射引擎1910可针对写入的用户数据基于从SUE存储访问管理器1906接收的新的或修改的SUE地址位置来更新用户区映射表。
在读操作期间,卷映射引擎1910可基于被请求的逻辑块地址在用户区映射表中查找被请求用户数据的SUE地址位置并且将SUE地址位置提供到 SUE存储访问管理器1906。
卷映射引擎1910可将用户数据组织成SUE页、SUE块、元页和元块。 SUE块可映射个体存储器件上的多个物理块。在一些实施例中,映射到同一 SUE块的物理块可分别位于存储器件的分开的芯片上。映射到同一SUE块的所有物理块可在存储器件级作为一个单元被管理和擦除。因此,SUE块可对应于相对于回收和空闲空间管理在各个芯片上进行联合管理的物理块的组。同样地,对应于SUE块的芯片上的各个物理块的组可作为存储介质的单元被管理。
各SUE块可包括多个SUE页,这些SUE页中的每个可与被映射到SUE 块的各个物理块的物理页对齐。跨越存储系统中所包括的所有存储器件的各个SUE块的对应SUE页可被映射到元页。类似地,跨越存储系统中所包括的所有存储器件的对应SUE块可被映射到元块。
可相对于用户数据的元块,执行多模存储管理系统1902级的存储介质管理功能(例如,回收和空闲空间管理)。因此,可相对于在存储系统中所包括的各存储器件中进行联合管理的对应物理块的组,执行多模存储管理系统 1902级的存储介质管理功能。
可相对于用户数据的元页,执行编程操作和读操作。因此,可相对于在存储系统中所包括的各非易失性存储器器件中进行联合管理的对应物理页的组,执行编程操作和读操作。
因此,可以按照将物理存储区的显要组织或代表性几何形状暴露于多模存储管理系统1902的方式,将存储系统中的存储器件虚拟化。单个存储器件中包括的各个芯片上进行联合管理的物理块的组可作为SUE块被提供给多模存储管理系统1902,并且在跨越存储系统中所包括的所有存储器件的各个芯片上进行联合管理的物理块的对应组可作为元块被提供给多模存储管理系统 1902。
类似地,单个存储器件中所包括的各个芯片上进行联合编程的物理页的组可作为SUE页被提供给多模存储管理系统1902,并且在跨越存储系统中所包括的所有存储器件的各个芯片上进行联合编程的物理页的组可作为元页被提供给多模存储管理系统1902。
缓冲器管理器1912可管理读和写缓冲器的池。在写操作期间,缓冲器管理器1912可将从SUE存储访问管理器1906接收的存储器件传递块累积在写缓冲器中,直到在用户数据作为SUE页通过存储阵列管理器1918被分别发送到个体存储器件之前已经累积用户数据的近乎完整的元页。
在读操作期间,缓冲器管理器1912可提供读缓冲器,以支持读高速缓存功能。从存储阵列管理器1918接收的作为存储器件传递块的用户数据的SUE 页可被保存在读缓冲器中,直至被转发到SUE存储访问管理器1906。
元块管理器1914可跟踪在存储器件的用户区中定义的个体元块的当前状态,例如,被擦除、有效、关闭、回收或擦除。当前状态可被存储在可存储在存储器中并且在存储器件的系统区中备份的元块信息表。元块管理器 1914还可保持当前处于特定状态的元块的对应列表(诸如,被擦除列表、回收列表和擦除列表)。为了进行回收活动,元块管理器1914可选择用于提交到SUE存储访问管理器1906的特定元块。
回收管理器1916可服务来自于元块管理器1914的回收请求,以恢复来自指定元块的有效用户数据并且将有效用户数据重新定位于其他元块。回收管理器1916可请求擦除并且回收对应于指定元块的物理存储器单元,以在存储器件的用户区中提供空闲空间。
存储阵列管理器1918可提供与存储器件的用户区的SUE接口以及与存储器件的系统区的逻辑接口。存储阵列管理器1918可提供诸如RAID条带化 (striping)和奇偶校验的数据保护功能。例如,在一些实施例中,存储器件传递块可被用作RAID元件,RAID条带可包括跨越元页中的所有SUE页的存储器件传递块。因此,若存储系统中的单个存储器件失效,存储阵列管理器1918能够使用反奇偶校验计算来从失效的存储器件恢复数据。
逻辑存储访问管理器1920可使用逻辑寻址方法提供系统数据读和写功能。逻辑存储访问管理器1920可存储并且检索关于用户数据的元数据,包括用户区映射表、元块信息表、卷表以及存储系统文件、日志文件等。
关于存储在用户区中的用户数据,个体非易失性存储器器件可负责特定存储器介质管理功能(例如,读重试、失效物理块映射、纠错码(ECC)、高级增量阶跃脉冲编程(ISPP)等)。关于存储在系统区中的系统数据,个体非易失性存储器器件可负责所有存储器介质管理功能(例如,回收、耗损均衡、读和写高速缓存、读重试、失效物理块映射、纠错码(ECC)、高级增量阶跃脉冲编程(ISPP)等)。
现在,参照图20,示出另一个示例性多模存储管理系统2002或混合映射系统(HMS),多模存储管理系统2002或混合映射系统(HMS)采用SUE 寻址方案以允许存储系统对存储器件中的地址逻辑和SUE存储空间进行寻址。
多模存储管理系统2002可充当负责关于分布于存储系统中所包括的多个存储器件的用户区的非易失性存储器介质管理的全局闪存转换层(GFTL)。多模存储管理系统2002可执行非易失性存储器介质访问功能、用于将主机应用逻辑地址空间元素映射为与物理非易失性存储器位置对齐的SUE地址空间数据结构的地址映射功能、回收和耗损均衡功能。
多模存储管理系统2002可包括数据对齐单元(DAU)2004、用户区访问管理器(UAAM)2006、用户区映射引擎(UAME)2008、缓冲器管理器 (BM)2010、系统区访问管理器(SAAM)2012、元块管理器(MBM)2014、元块信息管理器(MBI)2016、存储器件控制管理器(SCM)2018、存储器件访问管理器(SAM)2020、全局状态管理器(GSM)2022和全局错误管理器(GEM)2024。多模存储管理系统2002可通信地连接到系统状态管理器 2026、系统日志和统计管理器2028、目标装置2030和多个非易失性存储器 (NVM)器件2032。
全局错误管理器2024可管理包括多模存储管理系统2002的存储系统中出现的全局错误。系统状态管理器2026可管理多模存储管理系统2002的状态(例如,操作状况)。系统日志和统计管理器2028可基于包括多模存储管理系统2002的存储系统的操作来提供系统日志/统计。非易失性存储器器件 2032可包括广泛使用的任何种类的非易失性存储器。目标装置2030可以是目标是读/写操作的另一个存储器器件。
数据对齐单元(DAU)2004可从目标装置2030接收逻辑寻址的介质访问命令(例如,读、写和去映射命令)。数据对齐单元2004可接收逻辑块寻址(LBA)缓冲器列表作为输入。在写操作期间,数据对齐单元2004可将从目标装置2030接收的数据的逻辑块组合成SUE映射块或混合映射块(HMB)。例如,在一些实施例中,整数数量的逻辑块可被分组,形成SUE映射块。
数据对齐单元2004可合并来自目标装置2030的对齐和未对齐的用户数据通信量,对未对齐的写通信量执行读/修改/写操作,以将数据与用于将逻辑地址映射到物理地址的单元(SUE映射块)对齐。数据对齐单元2004可将用户数据置于SUE映射块对齐缓冲器列表中。在各种实施例中,SUE映射块可包含固定数量的数据(诸如,4KB、8KB、16KB等)。
在读操作期间,数据对齐单元2004可从目标装置2030接收读命令并且将读请求传递到用户区访问管理器2006。数据对齐单元2004可从用户区访问管理器2006接收被请求的用户数据并且将被请求的用户数据传递到目标装置2030。
图21是示出按照本发明的实施例的可通过多模存储管理系统实现的用户区访问管理器(UAAM)的示意图。参照图21,用户区访问管理器(UAAM) 2006可包括读管理器(RM)2102、写管理器(WM)2014、数据压缩管理器 (DC)2106、数据解压缩管理器(DD)2108、回收管理器(RC)2110、空闲空间帐户管理器(FSA)2112、流控制管理器(FC)2114和服务质量管理器(QoS)2116。
读管理器(RM)2102可从数据对齐单元2004接收读请求并且服务所读取的请求。读管理器2102可从用户区映射引擎(UAME)2008请求相关映射信息。读管理器2102可将所读取的请求发布到存储器件访问管理器2020。在读操作期间,读管理器2102可请求从缓冲器管理器2010释放读缓冲器中的用户数据。读管理器2102可将关于请求被读的用户数据的解压缩请求发布到数据解压缩管理器2108。
写管理器(WM)2104可从数据对齐单元2004接收写请求。在写操作期间,写管理器2104可在SUE映射块流上生成元数据头,并且生成关于用户数据的SUE寻址的用户区映射引擎2008的映射信息。写管理器2104可将压缩请求发布到数据压缩管理器2106以调度用户数据压缩命令,并且将写请求发布到存储器件访问管理器2020。写管理器2104可请求从缓冲器管理器 2010释放写缓冲器中的用户数据。当写数据的当前元块已经变满时,写管理器2104可请求元块管理器(MBM)2014开放新的有效元块。
数据压缩管理器(DC)2106可从写管理器2104接受压缩请求并且服务压缩请求。在一些实施例中,数据压缩管理器2106可实现对SUE映射块中的用户数据的数据压缩算法。在一些其他实施例中,数据压缩管理器2106可将数据压缩任务调度至外部压缩单元(未示出)。
数据解压缩管理器(DD)2108可从读管理器2102接收解压缩请求并且服务解压缩请求。在一些实施例中,数据解压缩管理器2108可实现对SUE 映射块中的用户数据的数据解压缩算法。在一些其他实施例中,数据解压缩管理器2108可将数据解压缩任务调度至外部解压缩单元(未示出)。
回收管理器(RC)2110可从元块管理器2014接收回收请求并且服务回收请求以恢复来自指定元块的有效数据,从而回收空闲空间。回收管理器2110 可从用户区映射引擎2008请求相关映射信息并且将关于指定元块的所读取的请求发布到读管理器2102。回收管理器2110可对存储器件读数据流中的附随SUE映射块的元数据头进行解析并且将关于指定元块中保留的所有有效数据的写请求发布到写管理器2104。回收管理器2110还可服务来自存储器件控制管理器(SCM)2018的请求,以回收部分元块数据。
空闲空间帐户管理器(FSA)2112可在写操作期间从写管理器2104接受映射信息并且生成关于存储在元块中的过期用户数据的空闲空间信息。空闲空间帐户管理器2112可将空闲空间信息发布至元块信息管理器2016,以更新对应的元块信息表条目。
流控制管理器(FC)2114可监测系统资源(诸如,读/写缓冲器、压缩缓冲器、存储总线和其他队列深度等)。如果系统级资源配置降至低于预设极限,则流控制管理器2114可重置服务质量管理器2116中的限流级 (throttling-down level)。在一些实施例中,可使用系统管理员命令来建立资源配置的所需级别。流控制管理器2114可为系统管理员提供可用于接口级限流的统计。
服务质量管理器(QoS)2116可基于系统资源配置级别和延迟测量来定义服务质量策略。服务质量管理器2116可实现服务不同质量的服务策略池的多个队列。关于基于延迟的策略,服务质量管理器2116可实现队列条目上的时间戳。服务质量管理器2116可监测各种队列参数并且选择确保不违反策略的请求。在流控制管理器2114请求下,服务质量管理器2116可对基于配置的策略队列上的通信量进行限流。
图22是示出根据本发明的实施例的可通过多模存储管理系统实现的用户区映射引擎(UAME)的示意图。参照图22,用户区映射引擎(UAME) 2008可包括卷管理器(VM)2202、映射页读管理器(MPRM)2204、映射页写管理器(MPWM)2206和映射页高速缓存管理器(MPCM)2208。
卷管理器(VM)2202可提供服务,以创建、损坏和管理卷并且处理多个配置策略。卷管理器2202可在可存储在存储器中并且在系统区中备份的卷表中保持相关信息,并且可向卷表中的条目提供访问服务。卷管理器2202可使用系统区访问管理器2012来备份和恢复卷表。
当映射页高速缓存管理器2208检测到映射页丢失时,映射表读管理器 (MPRM)2204可针对缺少的映射页,接收并且服务从映射页高速缓存管理器2208提供的请求。映射页写管理器(MPWM)2206可从映射页高速缓存管理器2208接收和服务针对映射页收回的请求。
映射页高速缓存管理器(MPCM)2208可服务从读管理器2102和回收管理器2110提供的映射条目信息请求以及通过写管理器2104提供的映射条目更新。当检测到映射页丢失时,映射页高速缓存管理器2208可从映射页读管理器2204请求缺少的映射页。映射页高速缓存管理器2208可从映射页写管理器2206请求映射页收回。
缓冲器管理器(BM)2010可管理读缓冲器和写缓冲器的池。在写操作期间,缓冲器管理器2010可分配并且释放存储器件传递块,以将从写管理器 2104接收的用户数据累积在写缓冲器中。缓冲器管理器2010可在已经积累了用户数据的近乎完整的元页时,从写管理器2104接收释放写缓冲器中的用户数据的请求,并且将用户数据转发到存储器件访问管理器2020。
在读操作期间,缓冲器管理器2010可分配并且释放读缓冲器中的存储器件传递块,以支持读高速缓存功能。作为存储器件传递块从存储器件访问管理器2020接收的用户数据的SUE页可被初始保存在读缓冲器中。缓冲器管理器2010可从读管理器2102接收释放读缓冲器中的用户数据的请求,并且缓冲器管理器2010可将存储器件传递块转发到读管理器2102。
系统区访问管理器(SAAM)2012可服务关于访问存储系统中所包括的存储器件的系统区中存储的系统数据的请求。系统区访问管理器2012可接收并且服务来自卷管理器2202和元块信息管理器2016的分别备份并且恢复卷表和元块信息表的请求。系统区访问管理器2012可接收并且服务来自映射页写管理器2206、映射页读管理器2204和映射页高速缓存管理器2208的访问用户区映射表的请求。
图23是示出根据本发明的实施例的可通过多模存储管理系统实现的元块管理器(MBM)的示意图。参照图23,元块管理器2014可包括回收元块拾取器(RCMBP)2302和元块状态管理器(MBSM)2304。
回收元块拾取器(RCMBP)2302可监测关于用户区元块的参数(诸如,擦除计数、过期数据级、停留时间等)。基于监测的参数,回收元块拾取器 2302可选择用于回收或垃圾收集的元块。回收元块拾取器2302可实现各种耗损均衡策略。例如,回收元块拾取器2302可尝试将元块擦除计数保持在优选值范围内,并且尝试将相对动态(热)和相对静态(冷)的数据分离到分开的元块中。
元块状态管理器(MBSM)2304可跟踪用户区元块的当前状态(例如,有效、关闭、擦除、被擦除、回收或垃圾收集)。元块状态管理器2304可通过更新元块信息表将元块在各种状态间转换。元块状态管理器2304还可保持特定状态的元块的各种列表,例如,被擦除元块列表、回收元块列表和擦除元块列表。元块状态管理器2304可监测被擦除元块列表,以确定准备回收(垃圾收集)的个体元块。
元块信息管理器(MBI)2016可保持元块信息表。元块信息管理器2016 可针对其他模块向元块信息表中的条目提供访问服务。元块信息管理器2016 可向系统区访问管理器2012发送请求,以备份并且恢复元块信息表。
图24是示出根据本发明的实施例的可通过多模存储管理系统实现的存储器件控制管理器(SCM)的示意图。参照图24,存储器件控制管理器(SCM) 2018或固态器件(SSD)控制管理器(SCM)可包括存储器件日志和统计管理器(SLS)2402、S块擦除引擎(SBEE)2404和存储器件错误管理器(SEM) 2406。
存储器件日志和统计管理器(SLS)2402可保持存储器件访问历史的日志。
S块擦除引擎(SBEE)2404可通过元块管理器2014从回收管理器2110 接收擦除请求并且管理擦除处理。S块擦除引擎2404可将S块擦除请求发送到存储器件访问管理器2020。
存储器件错误管理器(SEM)2406可向回收管理器2110发送请求,以回收部分元块数据。
图25是示出根据本发明的实施例的可通过多模存储管理系统实现的存储器件访问管理器(SAM)的示意图。参照图25,存储器件访问管理器(SAM) 2020可包括逻辑访问管理器(SLA)2502、RAID管理器(RAID)2504、读查找引擎(RLE)2506和存储初始化管理器(SI)2508。
读查找引擎2506可提供/管理读操作查找。存储初始化管理器2508可管理存储系统的初始化操作。
逻辑访问管理器(SLA)2502或SSD逻辑访问管理器可相对于存储器件的系统区中的系统数据来提供访问服务。逻辑访问管理器2502可使用各种逻辑块寻址对存储器件的系统区中的系统数据进行寻址。逻辑访问管理器2502 可利用标准NVM快速(NVMe)或非易失性存储器主机控制器接口规范 (NVMHCI),并且可命令访问存储系统中包括的存储器件或固态驱动(SSD)。
RAID管理器(RAID)2504可对存储系统中所包括的多个存储器件的阵列提供关于用户数据的存储管理(包括数据恢复功能)。因此,存储系统中包括的个体存储器件可不对用户数据执行芯片级RAID功能。RAID管理器2504 可实现各种存储管理和数据恢复方法。在一些实施例中,RAID管理器2504 还可执行本公开中描述的新型存储管理和数据恢复方法。
RAID管理器2504可提供与存储器件的用户区的SUE接口以及与存储器件的系统区的逻辑接口。RAID管理器2504可提供诸如RAID条带化和奇偶校验的数据保护功能。例如,在一些实施例中,存储器件传递块可被用作 RAID元件,RAID条带可包括跨越元页中的所有SUE页的存储器件传递块。因此,若存储系统中的单个存储器件失效,RAID管理器2504能够使用反奇偶校验计算从失效存储器件恢复数据。
图26是示出根据本发明的实施例的可通过多模存储管理系统实现的全局状态管理器(GSM)的示意图。参照图26,全局状态管理器(GSM)2022 可包括电源失效管理器(PFM)2602以及错误和崩溃管理器(PFCM)2604。
电源失效管理器2602可管理与多模存储管理系统2002的电源失效关联的问题。错误和崩溃管理器2604可管理多模存储管理系统2002中出现的错误/奔溃问题。
可通过图16的存储系统1602来实现图18、图19和图20的多模存储管理系统1802、1902和2002的功能。在可选择的实施例中,可通过一般的计算装置或通过专业硬件来实现多模存储管理系统1802、1902和2002的功能。
所提出的多模方法包括有助于高效且有效存储信息的各种特征和特性。这些特征和特性可改进与性能关联的许多不同方面。在一些实施例中,所描述的分区方法的灵活性允许实现相对快的速度和可管理的复杂度。相对大量的用户数据可被存储在能够对用户数据进行非常快速的存储和管理操作的 SUE地址空间中。然而相对少量的元数据可被存储在允许存储系统平衡为降低复杂度而利用的元数据的抽象性质的逻辑寻址区中。
另外,增加相对较小的元数据区域的超量配置的灵活性给予了百分比大得多的超量配置影响,这有助于加快元数据存储操作并且补偿原本会由于复杂度增加而出现的速度降低。相比于其他存储系统,这允许更好的整体分配和超量配置资源的更好的影响。所述灵活性还可通过允许块的不同存储区在两个分区之间被重新指定或重新分配而有助于改进生命周期保持。存储在区域中的数据的性质(例如,类型)可指示一种类型的数据比该区域中的另一种类型的数据写入/擦除地更少(例如,相比于用户数据,元数据中的大部分并没有改变太多)并且一个分区中的物理块可被重新指定到另一个分区,以均衡特定区域上的磨损。所述灵活性还允许通过将功率循环责任上移至系统级来改进功率循环。
具体实施方式的一些部分是依据计算机存储器内对数据位的运算的程序、逻辑块、处理、其他符号表示来呈现的。这些描述和表示是数据处理领域的技术人员将其工作的内容有效传达给本领域的其他技术人员通常所用的手段。程序、逻辑块、或处理在这里通常被构思为造成所期望结果的步骤或指令的前后照应的序列。这些步骤包括对物理量进行物理操纵。通常(但不必须),这些物理量采取能够在计算机系统中被存储、传递、组合、比较和以其他方式操纵的电、磁、光、或量子信号的形式。主要出于普遍使用的原因,已证明有时为方便起见将这些信号表示为位、值、元件、符号、字符、术语、数字等。
然而,应该记住,所有这些和类似的术语是与适宜的物理量关联并且仅仅是应用于这些物理量的方便标记。除了另外具体声明是从以下讨论显而易见的,否则要理解,贯穿本申请,利用诸如“处理”、“计算(computing)”、“运算(calculating)”、“确定”或“显示”等术语的讨论是指计算机系统或操纵和转换被表示为物理(例如,电)量的数据的类似的处理装置(例如,电、光、或量子、计算装置)的动作和处理。这些术语是指处理装置将计算机系统的组件(例如,寄存器、存储器、其他这类信息存储、传输或显示装置)内的物理量操纵或转换成类似被表示为其他组件内的物理量的其他数据的动作和处理。
IV.分布式
要理解,所提出的多模方法可用分布式架构来实现。分布式架构可包括各种属性。分布式架构可以线性扩展至设备或系统的数量,而不限于单个执行线程或者具有单个瓶颈。因为多模存储管理系统可跨多个存储节点在SUE 地址块级持续操作,因此相比于非分布式架构可在极小劣化或无劣化的情况下实现分布式架构。
图27是示出根据一个实施例的结合到网络2705的示例性设备2701的框图。要理解,网络2705可结合到其他装置或设备(未示出)。
在一个示例性实现方式中,设备2701可类似于系统600。设备或系统2701 可包括多模存储管理系统2710和存储器件2720、2730、2740和2750。
多模存储管理系统2710可包括处理器2713、存储器2714、2715、2717 和2718、总线2719、以及端口2711和2712。总线2719可以是PCI总线并且端口2711和2712可以是双25G以太网端口。处理器2713可以是4核或6 核Intel Xeon并且存储器2714、2715、2717和2718可以是64GB的RAM。在一个实施例中,可不需要PCIe桥芯片(相比于使用PCIe桥芯片的方法,这可导致成本和功耗降低)。
存储器件2720、2730、2740和2750可以是多模SSD。要理解,可存在分布系统的各种特性(例如,这4个器件或多模SSD可在200W功率包络中操作,可存在超量配置与成本的均衡,并且在单个PCIe适配器上可存在特有硬件(HW))。在一个示例性实现方式中,可去除PCIe桥芯片来节省成本和功耗。
图28是示出根据一个实施例的分布式系统2800的框图。分布式系统 2800可包括网络2890和设备2810、2820、2830、2840、2850、2860、2870 和2880。设备2810、2820、2830、2840、2850、2860、2870和2880中的每个可包括多模存储管理系统和多个存储器件(例如,2891、2892、2893和2894)。在一个示例性实现方式中,设备2810、2820、2830、2840、2850、2860、2870 和2880中的每个可类似于设备2701。
图29是示出根据一个实施例的分布式系统2900的框图。分布式系统 2900可包括包含全局命名空间2920的多个存储节点2911、2912、2913和2914。多个存储节点2911、2912、2913和2914可结合到外部连接机构2930,外部连接机构2930可进而结合到包括FTP客户端2941、ISCI组件2942、NFS组件2943、CIFS组件2944和网络组件2945的多个外部组件。多个存储节点2911、2912、2913和2914还可经由节点至节点连接机构2950进行结合。多个存储节点2911、2912、2913和2914可存储与包括FTP客户端2941、ISCI 组件2942、NFS组件2943、CIFS组件2944和网络组件2945的多个外部组件相关的信息。
要理解,以上相对于单个设备或系统描述的选择性底层暴露方法可被扩展,以供多个分布式设备或系统利用。逻辑寻址块可与选择性底层暴露(SUE) 可寻址块或单元关联。SUE可寻址单元可被压缩并且与头关联,然后可被布置在存储器件传递块(STB)中。这些关联可类似于图15中描绘的那些关联。
然而,在分布式方法中,分布式SUE元块(DSUE元块)可包括与多个物理块关联的信息,其中,多个物理块中的不超过一个可位于单个存储器件中,在位于与第一设备或节点关联的存储器件中可存在多个物理块中的第一个并且在位于与第二设备或节点关联的存储器件中可存在多个物理块中的第二个。在一个示例性实现方式中,DSUE元块可包括存储在各SSD的一个物理闪存块中的信息并且信息存储可遍布所有驱动和所有节点。
在正常操作期间,存在主块拥有者和如所需要一样多的冗余块拥有者。主块拥有者和冗余块拥有者的构思可用于多个设计元件。主块拥有者可以是负责给定的SUE元块生命周期和空闲空间核算的节点。冗余块拥有者可以是负责给定SUE元块的空闲空间核算信息的冗余副本的节点。在之前的主块拥有者节点失效时,冗余块拥有者可被升级或改变成新的主块拥有者。主映射拥有者可以是给定逻辑地址的映射信息的拥有者。辅映射拥有者可以是冗余映射信息的拥有者。
图30是根据一个实施例的块生命周期的流程图。
块3010是作为被写入输入的主机数据的多个块中的一个的热块。块3020 是主机数据所驻留的在系统中无效的多个正常块中的一个。在一个示例性实现方式中,主机数据中的大部分驻留在正常块中并且正常块构成系统中的块的大部分。
块3030是由块拾取机构选择的将要回收(例如,作为垃圾回收的部分) 的有序列表的多个块中的一个。可基于具有最大量的空闲空间来选择这些块。块3040是在将有效数据从拾取的块移动到冷块的处理中所涉及的回收块。冷块3080是来自回收块的有效数据被写入的多个块中的一个。被擦除块3050 是在有效数据被传递到冷块3080之后将被擦除的多个块的有序列表中的块。
在一个实施例中,可通过单个设备或系统上的单个线程来分配给定开放块的空间分配。在一个示例性实现方式中,对于单个块,各节点可存在被指定为热块的一个块和被指定为冷块的一个块。主块拥有者可将分配委托给块用户并且给定块的分配者可以是块用户。分配本身可以是单个线程并且消息的处理可以是并行的。如果主块拥有者失效,则块被视为关闭,对块不再发生写入,直到执行回收(例如,垃圾回收)为止。
在一个实施例中,主块拥有者(管理块生命周期和空闲空间核算的块) 的构思可与空间分配者分开。因此,可使得元块更小并且数量更大。元块可仍然跨越多个驱动和设备或节点,它们只是被分成更小的大块。在一个示例性实现方式中,存在2K*N'个块(其中,N'=N向上舍入到最近的2或 1<<log2(N-1)+1次幂)而不是2K个块。节点可从其“自身”的热和冷块执行分配。数据本身可仍然遍布多个节点。奇偶校验数据被写入节点本身。如果冗余级大于1,则可执行关于分开的节点的额外冗余计算。
图31是示出根据一个实施例的分布式系统元块的框图。分布式选择性底层暴露(DSUE)元块可在4节点系统中实现并且原始SUE元块定义可被细分成形成DSUE元块的4个新块。
例如,可存在4个节点3110、3120、3130和3140。节点3110可包括SSD 3111、3112、3113和3114。节点3120可包括SSD 3121、3122、3123和3124。节点3130可包括SSD 3131、3132、3133和3134。节点3140可包括SSD 3141、 3142、3143和3144。原始SUE元块3151可被细分成形成DSUE元块的4个新块(3152、3153、3154和3155)。当添加或删除节点使得2的幂被十字相乘时,创建的新块将采用新的大小。块拾取将是基于满百分比。
映射数据可逻辑上冗余地分布于多个设备或系统。各设备或系统可冗余管理映射数据的某个部分。设备或系统可计算映射数据的主拥有者和冗余拥有者。可使用哈希来计算映射数据的主拥有者和冗余拥有者。对于读,可询问这些设备或系统的映射信息。对于写,这些设备或系统可记录映射更新并且最终写入映射数据。
可用各种RAID形式来实现多模方法。RAID计算可使用Reed Solomon (RS)擦除编码来保护数据。可由块拥有者来执行RS编码计算。在一个示例性实现方式中,可利用故障回退(因为主设备或系统的损失不导致数据损失)。如果将要校正多于一个的符号(例如,RAID6),则可使用冗余计算。
在一个实施例中,故障单元可被视为单个存储节点并且单个存储节点的故障不会使设备或系统瘫痪。分布式架构还可应对爆炸半径问题。爆炸半径涉及多少设备或系统会受(例如,数据中心、设施、网络中的)单个元件故障的影响的问题。数据中心的爆炸半径可被视为类似于企业高可用性(HA) 问题。即便可以通过复制和其他技术来处理故障,但是元件之间的影响的构思相对于可用性问题也仍然是重要的。在分布式设备或系统方法中,可在N 个设备或系统间分担工作负荷,以允许M个故障,从而提供N-M能力。通常对于较少定制的硬件,冗余被视为在较高分层或架构级别而非较低级别。
在分布式设备或系统方法中,空闲空间管理可比非分布式方法更复杂。在一个实施例中,空闲空间报告可出现在SUE地址块级。物理块可在设备或系统之间分配。各设备或系统可跟踪“F”个块的空闲空间。在一个实施例中,可通过以下关系来表达空闲空间跟踪或核算:每个设备或系统的F个空闲空间块等于N个物理块乘以M个冗余块再除以P个设备或系统。对于特定构造,可通过存储阵列中的任何设备或系统来计算跟踪给定块的空闲空间的设备或系统的更精确数量。
分布式设备或系统方法还可支持各种回收活动(例如,垃圾回收)。回收可由主块拥有者启动,但由块用户进行管理。可在块被分配到针对给定块用户的冷带之后,开始回收。
块用户可触发分布式块拾取。可基于各种标准(例如,有效空间、无效空间)对块分配块拾取分数。各设备或系统可计算其范围内的块(即,它们正跟踪其空闲空间的块)的块拾取分数。块可以是基于块拾取分数来选择的并且所选择块的指示可返回到主块拥有者,主块拥有者随后进行用于回收的另一个整体块选择。在一个示例中,具有最佳块拾取分数的块可被返回主块拥有者并且整体最佳块可被选择用于进行回收或垃圾回收。所选择块的指示可被传达到设备或系统,然后,这些设备或系统开始它们的针对其超级块的物理片段的回收(可类似于非分布式多模存储管理系统)。各设备或系统可执行物理扫描,查找,以确定它是否有效,将分配请求发送到主块拥有者,将数据发送到适宜节点,并且将映射更新发送到适宜节点。各设备或系统能够在主机和回收数据之间对自身限流。
在一个实施例中,可存在两个拾取块。一个块可以是在回收处理中,一个块可准备用于回收处理。各节点将把拾取的块顺序化以供回收,但将在它们自身的冷块中分配空间。可存在可用于按请求和响应二者顺序地保持数据的优化方案。可存在可能的其他过滤方案(诸如,数据老化、卷/逻辑分组、快照分组等)。
在写处理中,写命令可到达任何设备或系统。该设备或系统可通过写处理的整个流程而变成命令的协调器。可使用一致性哈希算法来识别针对给定数据的正确节点。在一个示例性实现方式中,哈希的解具有改进的性质:针对对象的添加或删除仅移动1/n个键值(其中,n是哈希表的位置(slot)的数量)。
图32是根据一个实施例的在添加和去除节点时利用的一致性哈希算法的示图。经由一致性哈希算法在随机不同系统上进行冗余复制,可将物理空闲空间核算均匀地分布于多个设备或系统。经由一致性哈希算法在随机不同系统上进行冗余复制,可将逻辑地址空间的映射均匀地分布于多个设备或系统,
图33是根据一个实施例的示例性写处理3300的流程图。在框3310中,可接收写指示。写指示可来自主机并且设备可压缩数据。在框3320中,可执行写分配处理。在框3330中,可执行写数据传递处理。在框3340中,可执行写映射更新处理。在框3350中,可执行写空闲空间核算处理。在框3370 中,可执行写完成处理。
图34是根据一个实施例的示例性写分配处理3400的流程图。在框3410 中,第一设备可请求开放热块中的分配。在框3420中,第二设备可执行分配处理。在框3430中,第一设备可从第二设备接收分配信息。
图35是示出根据一个实施例的实现写分配处理操作的分布式系统的一个示例性实现方式的框图。
分布式系统可包括网络3590和分布式阵列3599。分布式阵列3599可包括设备3510、3520、3530、3540、3550、3560、3570和3580。设备3510、 3520、3530、3540、3550、3560、3570和3580中的每个可包括多模存储管理系统和多个存储器件(例如,3591、3592、3593和3594)。在一个示例性实现方式中,设备3510、3520、3530、3540、3550、3560、3570和3580中对每个可类似于设备2701。
在步骤1中,主机可将100KB的数据写入设备3510。在步骤2中,设备3510可压缩数据。在步骤3中,设备3510可请求热块中的分配。在步骤4中,设备3530可执行分配,并且在步骤5中可将分配响应发送回设备3510。在步骤6中,设备3510可接收分配响应。
图36是根据一个实施例的示例性写数据传递处理3600的流程图。在框 3610中,数据可被发送到被分配的设备。在框3620中,被分配的设备可写入数据。在框3630中,可发送数据用于奇偶校验计算。
图37是根据一个实施例的实现写数据传递处理操作的分布式系统的一个示例性实现方式的框图。在步骤7中,设备3510可将数据发送到被分配的设备。在步骤8中,设备3520、3530和3540可写入数据。在步骤9中,设备3510可将数据发送到设备3570用于奇偶校验计算并且在步骤10中设备 3570可写入奇偶校验信息。
图38是根据一个实施例的示例性写映射更新处理3800的流程图。在框 3810中,映射更新可被发送到主拥有者和冗余拥有者。在框3820中,主拥有者和冗余拥有者可记录映射更新并且可在以后的时间写入映射。在框3830 中,主拥有者和冗余拥有者可发送响应。在框3840中,可累积响应。
图39是根据一个实施例的实现写映射更新处理操作的系统的一个示例性实现方式的框图。在图39中的步骤11中,设备3510可将映射更新发送到主拥有者和冗余拥有者。在步骤12中,设备3540、3560和3570可写入映射更新并且在步骤13中,它们发送响应。在步骤14中,设备3510可累积响应。
图40是根据一个实施例的示例性写空闲空间核算处理4000的流程图。在框4010中,可发送空闲空间更新。在框4020中,设备可更新空闲空间。在框4030中,设备可发送响应。在框4040中,可累积响应。
图41是根据一个实施例的实现写空闲空间核算处理操作的示例性系统的框图。在步骤15中,设备3510可发送空闲空间更新。在步骤16中,设备 3520、3560和3570可更新空闲空间,在步骤17中,它们可发送响应。在步骤18中,设备3510可累积响应。
图42是根据一个实施例的示例性写完成处理4200的流程图。在框4210 中,写入数据的设备可发送指示数据被安全写入的指示。在框4220中,可累积响应。在框4230中,设备可发送指示奇偶校验被安全写入的指示。在框 4240中,可转发命令完成指示。
图43是根据一个实施例的实现写完成处理操作的示例性系统的框图。在步骤19中,写入数据的设备3520、3530和3540可转发写数据被安全存储的指示。在步骤20中,设备3510可累积响应并且在步骤21中可从存储奇偶校验的设备3570接收奇偶校验安全指示。在步骤22中,命令完成指示可通过网络3590被转发到其他存储节点、其他设备、或任何外部系统。
图44是根据一个实施例的示例性回收初始化处理4400的框图。因为块针对回收准备就绪,所以它们可指向空闲块列表。根据多少热块和冷块当前有效和空闲块列表中的块的数量,擦除队列的头的主块拥有者可将其本身升级为热块或冷块。如果块变成冷块,则它可激发回收处理。
图45是根据一个实施例的示例性回收处理4500的流程图。在步骤4510 中,块可升级为冷块并且如有必要则可请求进行块拾取。在步骤4520中,可执行对供回收的可能块的块拾取并且可转发这些结果。在步骤4530中,可执行块拾取的选择。在步骤4540中,可广播所选择的块。在步骤4550中,可开始回收并且可发出映射查找。在步骤4560中,可处理映射响应。在步骤 4570中,可执行回收写处理。
图46至图51是示出根据一个实施例的示例性回收实现方式的框图。经由哈希算法在随机不同系统上进行冗余复制,物理空闲空间核算可均匀分布于系统。关于映射,可经由哈希算法在随机不同系统上进行冗余复制将逻辑地址空间均匀分布于系统。在一个示例中,块3520BB可以是在空闲块列表中的下一个并且可决定变成冷块。
图46是示出在步骤51中从设备3520广播块已经变成冷块并且如有必要则请求块拾取的框图。当可能已经在进行回收时,由于在队列中将已经存在拾取的块,因此因升级成冷块而导致的分配请求可非常快地开始。
图47是示出在步骤52中其他设备执行块拾取并且将结果发送回设备 3520的框图。当没有在进行回收并且必须进行块拾取时,系统或设备(包括请求的系统或设备)可执行块拾取。在步骤53中,设备3520可选择块。
图48是示出步骤54中的拾取块的示例性广播的框图。
图49是示出在步骤55中设备3540基于用于确定数据是否有效的头向设备3510发出映射查找的框图。要理解,多个设备可执行回收并且为了简便起见示出设备3540。设备3540可开始在拾取的块的开始部分发出映射查找(使用隐藏头(例如,图15的头1511)以确定第一头)。
图50是示出设备3540正在处理来自设备3510的映射响应的步骤57的框图。如果数据是无效的,则处理可移动到假设其有效的下一个头。数据有可能会溢出到设备3550。如果数据是有效的,则可从设备3550获取数据的第二部分(未示出顺序)。
图51是示出回收写处理的框图。回收写处理的步骤可类似于主机写操作,不同的是,原始位置信息被发送作为映射更新的部分,以允许过期更新被丢弃。在步骤71中,设备3520可执行分配并且在步骤72中,设备3540可请求冷块中的分配。在步骤73中,设备3520可发送分配响应并且在步骤74中,设备3540可接收分配信息。
所提出的多模方法包括有助于信息的高效且有效存储的各种特征和特性。这些特征和特性可改进与性能关联的许多不同方面。在一个实施例中,所描述的分区方法的灵活性允许实现相对快的速度和可管理的复杂度。相对大量的用户数据可被存储在针对用户数据能够非常快速地进行存储和管理操作的 SUE地址空间中。另一方面,相对少量的元数据可被存储在允许系统均衡针对减小复杂度而利用的元数据的抽象性质的逻辑寻址区中。
另外,增加相对较小的元数据区的超量配置的灵活性给予了更大百分比的超量配置影响,帮助加快元数据存储操作并且补偿原本会由于复杂度增加而出现的速度减小。相比于其他存储系统,这允许更好的整体分配和更好的超量配置资源的影响。所述灵活性还可通过允许块的不同存储区在两个分区之间被重新指定或重新分配,有助于改进生命周期保持。存储在区域中的数据的性质可指示一种类型的数据比该区域中的另一种类型的数据写入/擦除地更少(例如,相比于用户数据,元数据中的大部分并没有改变太多等)并且一个分区中的物理块可被重新指定到另一个分区,以均衡特定区域上的磨损。所述灵活性还允许通过将功率循环责任上移至系统级来改进功率循环。
在一个实施例中,多模选择性底层暴露存储器件或方法可被包括在包括多个NAS器件(例如,存储100、220、350、400、600、700)的分布式或共享的存储系统(例如,网络附加存储(NAS)系统或集群)中。多模选择性底层暴露NAS器件可向网络中的其他器件(例如,客户端、服务器等)提供数据存储服务。存储服务可包括针对通常被称为“大数据”的非常大的数据集进行存储、管理和维护。在一个示例性实现方式中,多模选择性底层暴露NAS器件可被包括在通常存储并且保持事务数据的数据库的在线事务处理(OLTP)系统中或者可以是其一部分。数据库管理系统(DBMS)或分布式DBMS可在OLTP中的计算机系统或存储器件的集群上划分数据库。
能够灵活将不同类型的数据和/或存储管理操作重新布置或移动到系统 (例如,互联网、联网的“云”、数据中心、网络等)的不同部分,使各种更大的能力成为可能。多模选择性底层暴露存储方法使得能够利用涉及分割不同类型的数据和地址访问的应用。在一个实施例中,被认为大的那些类型的信息(诸如,“用户数据”)可被存储在系统(例如,云、数据中心或网络) 的一部分中,而被认为小的其他类型的数据(诸如,“元数据”)可在系统(例如,云、数据中心或网络)的另一个部分中被处理。例如,用户数据和元数据在过去通常不被不同地分割或访问。
用多模选择性底层暴露系统,可通过更好地适于存储这种类型信息(例如,被物理寻址的)或更接近能更好地处理信息(由此减小对网络通信的延迟和影响)的处理能力的存储区来处理经常被访问的“大数据”。“小数据”或元数据可被存储在以减小的复杂度进行逻辑访问的较小存储区中
具体实施方式的一些部分是依据计算机存储器内对数据位的运算的程序、逻辑块、处理、其他符号表示来呈现的。这些描述和表示是数据处理领域的技术人员将其工作的内容有效传达给本领域的其他技术人员通常所用的手段。程序、逻辑块、或处理在这里通常被构思为造成所期望结果的步骤或指令的前后照应的序列。这些步骤包括对物理量进行物理操纵。通常(但不必须),这些物理量采取能够在计算机系统中被存储、传递、组合、比较和以其他方式操纵的电、磁、光、或量子信号的形式。主要出于普遍使用的原因,已证明有时为方便起见将这些信号表示为位、值、元件、符号、字符、术语、数字等。
然而,应该记住,所有这些和类似的术语是与适宜的物理量关联并且仅仅是应用于这些物理量的方便标记。除了另外具体声明是从以下讨论显而易见的,否则要理解,利用诸如“处理”、“计算(computing)”、“运算(calculating)”、“确定”或“显示”等术语的讨论是指计算机系统或操纵和转换被表示为物理(例如,电)量的数据的类似的处理装置(例如,电、光或量子、计算装置)的动作和处理。这些术语是指处理装置将计算机系统的组件(例如,寄存器、存储器、其他这类信息存储、传输或显示装置)内的物理量操纵或转换成类似被表示为其他组件内的物理量的其他数据的动作和处理。
概念图中的每个中示出的构造将被理解为仅仅是从概念的观点来看。为了辅助理解本公开,各概念图中示出的各组件的形式、结构和大小已经被夸大或缩小。实际上实现的构造可具有与各概念图中示出的物理形状不同的物理形状。各概念图不旨在限制组件的物理形状。
提供各框图中示出的器件构造以帮助理解本公开。根据功能,各块可由较小的块形成。可选择地,根据功能,多个块可形成较大的块。也就是说,本公开的精神或范围不限于框图中示出的构造。
以上,已经基于一些示例实施例描述了本公开。然而,本公开的目的可根据本领域的性质利用与包括本公开的主题的以上示例实施例不同的方式来实现。因此,应该理解,以上示例实施例是以描述性和说明性的观点,而非限制性的观点。也就是说,包括本公开的主题并且可实现本公开的目标的精神或范围应该被包括在本公开的发明构思的精神或范围内。
因此,不脱离本公开的范围或精神的经修改或更改的技术构思被包括在权利要求的范围内。本公开的范围不限于以上的示例实施例。

Claims (20)

1.一种分布式存储系统,包括:
多个设备,其中,所述多个设备中的至少一个设备包括多个存储器件;
分布式多模存储管理协调器,包括多个多模存储管理系统,所述多个多模存储管理系统被构造成对信息到所述多个存储器件的传送进行引导;以及
通信机构,用于在所述多个多模存储管理系统之间传达包括分布式多模存储管理消息的消息,
其中,所述多个存储器件中的每个存储器件包括:
第一存储分区,包括基本类型的接口和被构造成存储第一类型信息的第一信息存储区;以及
第二存储分区,包括选择性底层暴露SUE接口和存储第二类型信息的第二信息存储区,
其中,SUE接口通过将与用户数据关联的逻辑地址空间映射到SUE地址空间来选择性地暴露第二信息存储区的物理地址空间的底层方面;以及
其中,所述多个多模存储管理系统包括被构造成经由SUE接口引导第二存储分区的文件活动的多模选择性底层暴露SUE管理系统。
2.根据权利要求1所述的分布式存储系统,其中,分布式多模存储管理消息保持被暴露的第二信息存储区的方面暴露于所述多个设备。
3.根据权利要求1所述的分布式存储系统,其中,在所述多个设备上均匀地分布元数据存储空间和用户数据存储空间。
4.根据权利要求1所述的分布式存储系统,其中,在所述多个设备上保持选择性底层暴露地址空间映射,以及
其中,SUE地址空间映射的代表性几何构造与底层物理地址空间的代表性几何构造匹配。
5.根据权利要求1所述的分布式存储系统,其中,在所述多个多模存储管理系统的级别,控制冗余。
6.根据权利要求1所述的分布式存储系统,其中,所述多个设备被布置成一种架构,所述架构的元素能够在多个系统上线性扩展。
7.根据权利要求1所述的分布式存储系统,其中,分布式多模存储管理协调器基于所述多个存储器件的选择性底层暴露级别进行操作。
8.根据权利要求1所述的分布式存储系统,其中,节点包括多于一个的存储器件,其中,单个单元的失效不会使分布式存储系统瘫痪。
9.根据权利要求1所述的分布式存储系统,其中,在所选择的底层方面块级别发生空闲空间核算。
10.一种分布式存储方法,包括:
将多个设备建立为独立盘冗余阵列(RAID)构造,其中,所述多个设备中的至少一个设备包括多个存储器件;以及
管理所述多个存储器件中的信息存储,
其中,管理信息存储的步骤包括将基本类型的地址空间映射到选择性底层暴露SUE地址空间,以及
其中,选择性底层暴露地址空间对应于所述多个存储器件中的至少一个存储器件的底层方面,
其中,所述多个存储器件中的每个存储器件包括:
第一存储分区,包括基本类型的接口和被构造成存储第一类型信息的第一信息存储区;以及
第二存储分区,包括选择性底层暴露SUE接口和存储第二类型信息的第二信息存储区,
其中,SUE接口通过将与用户数据关联的逻辑地址空间映射到SUE地址空间来选择性地暴露第二信息存储区的物理地址空间的底层方面。
11.根据权利要求10所述的分布式存储方法,其中,映射数据逻辑上冗余地分布于所述多个存储器件。
12.根据权利要求10所述的分布式存储方法,其中,所述管理信息存储的步骤包括协调独立盘冗余阵列构造上的所述多个存储器件中的信息存储的管理。
13.根据权利要求12所述的分布式存储方法,其中,所述协调的步骤包括在所述多个设备之中的第一设备和所述多个设备中的第二设备之间传达消息。
14.根据权利要求12所述的分布式存储方法,其中,空闲空间核算在多模存储管理系统级别发生。
15.根据权利要求12所述的分布式存储方法,其中,通过触发分布式块拾取的主块拥有者来管理回收并且拾取的块被分布到另一个块。
16.根据权利要求12所述的分布式存储方法,其中,非主块拥有者执行物理扫描和有效确定查找。
17.一种分布式设施,包括:
多个设备,被构造成以条带为单元存储信息,其中,所述多个设备中的至少一个设备包括多个固态存储器件;
分布式多模存储管理协调器,包括被构造成对信息到所述多个固态存储器件的传送进行引导的多个多模存储管理系统;以及
通信机构,用于在所述多个多模存储管理系统和所述多个设备之间传达消息,
其中,所述多个固态存储器件中的每个固态存储器件包括:
第一存储分区,包括基本类型的接口和被构造成存储第一类型信息的第一信息存储区;以及
第二存储分区,包括选择性底层暴露SUE接口和存储第二类型信息的第二信息存储区,
其中,SUE接口通过将与用户数据关联的逻辑地址空间映射到SUE地址空间来选择性地暴露第二信息存储区的物理地址空间的底层方面;以及
其中,分布式多模存储管理协调器包括被构造成经由第二存储分区的SUE接口和被暴露的第二信息存储区的方面引导第二存储分区的文件活动的多模选择性底层暴露管理系统。
18.根据权利要求17所述的分布式设施,还包括多个系统上的物理条带化的元数据和用户数据。
19.根据权利要求17所述的分布式设施,其中,在作为比存储器件高的分层级别的分布式多模存储管理协调器的级别,控制冗余。
20.根据权利要求17所述的分布式设施,其中,失效单元是存储节点并且单个节点的失效不使分布式设施瘫痪,其中,存储节点包括所述多个设备中的一个设备。
CN201610921162.8A 2015-11-13 2016-10-21 分布式多模存储管理 Active CN106708425B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US14/941,525 US9940028B2 (en) 2015-11-13 2015-11-13 Multimode storage device
US14/941,525 2015-11-13
US14/941,512 US9990304B2 (en) 2015-11-13 2015-11-13 Multimode storage management system
US14/941,517 US9996473B2 (en) 2015-11-13 2015-11-13 Selective underlying exposure storage mapping
US14/941,517 2015-11-13
US14/941,512 2015-11-13
US14/947,931 US9946642B2 (en) 2015-11-13 2015-11-20 Distributed multimode storage management
US14/947,931 2015-11-20

Publications (2)

Publication Number Publication Date
CN106708425A CN106708425A (zh) 2017-05-24
CN106708425B true CN106708425B (zh) 2021-10-22

Family

ID=56990228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610921162.8A Active CN106708425B (zh) 2015-11-13 2016-10-21 分布式多模存储管理

Country Status (6)

Country Link
US (1) US9946642B2 (zh)
EP (1) EP3168737A3 (zh)
JP (1) JP2017091548A (zh)
KR (1) KR20170056418A (zh)
CN (1) CN106708425B (zh)
TW (1) TWI709073B (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180150256A1 (en) * 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
WO2019000386A1 (en) * 2017-06-30 2019-01-03 Microsoft Technology Licensing, Llc CHANGING THE ONLINE DIAGRAM OF AN INDEX PARTITIONED BY INTERVALS IN A DISTRIBUTED STORAGE SYSTEM
EP3646206A4 (en) 2017-06-30 2021-01-20 Microsoft Technology Licensing, LLC STAGGING OF ANCHOR TREES FOR IMPROVED SIMULTANEITY AND PERFORMANCE IN A PAGE RANGE INDEX MANAGEMENT
US11042512B1 (en) * 2017-08-02 2021-06-22 EMC IP Holding Company LLC Enabling granular snapshots and provisioning in NAS (network attached storage) clusters
US10067719B1 (en) * 2017-08-30 2018-09-04 Xanadu Big Data, Llc Methods and systems for storing and accessing data in a distributed data storage system
KR102457564B1 (ko) * 2017-09-20 2022-10-21 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
JP6785205B2 (ja) 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
US10970226B2 (en) * 2017-10-06 2021-04-06 Silicon Motion, Inc. Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device
JP7032908B2 (ja) * 2017-10-24 2022-03-09 株式会社Nobori 医療情報転送システム及び医療情報転送方法
JP6982468B2 (ja) 2017-10-27 2021-12-17 キオクシア株式会社 メモリシステムおよび制御方法
JP2019079464A (ja) 2017-10-27 2019-05-23 東芝メモリ株式会社 メモリシステムおよび制御方法
CN107967124B (zh) * 2017-12-14 2021-02-05 南京云创大数据科技股份有限公司 一种分布式持久性内存存储系统及方法
US11210166B1 (en) * 2017-12-22 2021-12-28 Pliops Ltd. Efficient redundancy management in key-value NAND flash storage
KR102603245B1 (ko) * 2018-01-11 2023-11-16 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN108595731B (zh) * 2018-01-23 2022-02-08 苏州盛科通信股份有限公司 一种以太网芯片中动态表项的设计方法及装置
TW201937393A (zh) 2018-02-02 2019-09-16 美商多佛微系統公司 用於安全初始化的策略編輯之系統和方法
CN110275757A (zh) * 2018-03-16 2019-09-24 北京忆恒创源科技有限公司 利用系统抽象层提供多协议存储设备
US11151037B2 (en) 2018-04-12 2021-10-19 International Business Machines Corporation Using track locks and stride group locks to manage cache operations
US10884849B2 (en) 2018-04-27 2021-01-05 International Business Machines Corporation Mirroring information on modified data from a primary storage controller to a secondary storage controller for the secondary storage controller to use to calculate parity data
US10831597B2 (en) 2018-04-27 2020-11-10 International Business Machines Corporation Receiving, at a secondary storage controller, information on modified data from a primary storage controller to use to calculate parity data
US11797398B2 (en) 2018-04-30 2023-10-24 Dover Microsystems, Inc. Systems and methods for checking safety properties
CN109144413A (zh) * 2018-07-27 2019-01-04 郑州云海信息技术有限公司 一种元数据管理方法及装置
US10884662B2 (en) * 2018-08-06 2021-01-05 Silicon Motion, Inc. Method for performing storage control in a storage server, associated memory device and memory controller thereof, and associated storage server
CN112639715A (zh) * 2018-10-03 2021-04-09 谷歌有限责任公司 使用自由存储空间维护块级快照
KR20200044460A (ko) * 2018-10-19 2020-04-29 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
TW202022679A (zh) 2018-11-06 2020-06-16 美商多佛微系統公司 用於停滯主處理器的系統和方法
US11841956B2 (en) 2018-12-18 2023-12-12 Dover Microsystems, Inc. Systems and methods for data lifecycle protection
US10884642B2 (en) * 2019-03-27 2021-01-05 Silicon Motion, Inc. Method and apparatus for performing data-accessing management in a storage server
US20210042255A1 (en) * 2019-08-09 2021-02-11 Sony Interactive Entertainment LLC Methods for Using High-Speed Data Communication Fabric to Enable Cross-System Command Buffer Writing for Data Retrieval in Cloud Gaming
US11005936B1 (en) * 2020-03-10 2021-05-11 Mediatek Inc. Security mechanism for multi-client access to a single storage device through a single controller
US11481273B2 (en) * 2020-08-17 2022-10-25 Micron Technology, Inc. Partitioned memory having error detection capability
CN112817730B (zh) * 2021-02-24 2022-08-16 上海交通大学 深度神经网络服务批处理调度方法、系统及gpu
JP2022147909A (ja) * 2021-03-24 2022-10-06 キオクシア株式会社 メモリシステム
US11662922B2 (en) 2021-10-18 2023-05-30 Hewlett Packard Enterprise Development Lp Shared storage allocation among data services
US20230280926A1 (en) * 2022-03-03 2023-09-07 Western Digital Technologies, Inc. Data Relocation With Protection For Open Relocation Destination Blocks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8639669B1 (en) * 2011-12-22 2014-01-28 Emc Corporation Method and apparatus for determining optimal chunk sizes of a deduplicated storage system

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658528B2 (en) 2001-07-30 2003-12-02 International Business Machines Corporation System and method for improving file system transfer through the use of an intelligent geometry engine
US6775751B2 (en) 2002-08-06 2004-08-10 International Business Machines Corporation System and method for using a compressed main memory based on degree of compressibility
WO2005124530A2 (en) 2004-06-21 2005-12-29 Kabushiki Kaisha Toshiba Method for controlling memory card and method for controlling nonvolatile semiconductor memory
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
KR100809320B1 (ko) 2006-09-27 2008-03-05 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법
WO2009153982A1 (ja) 2008-06-20 2009-12-23 パナソニック株式会社 複数区分型不揮発性記憶装置およびシステム
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US9134918B2 (en) 2009-12-31 2015-09-15 Sandisk Technologies Inc. Physical compression of data with flat or systematic pattern
WO2012051600A2 (en) 2010-10-15 2012-04-19 Kyquang Son File system-aware solid-state storage management system
US8849825B1 (en) * 2010-12-23 2014-09-30 Amazon Technologies, Inc. System and method for clustering distributed hash table entries
US9176864B2 (en) 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US8886910B2 (en) * 2011-09-12 2014-11-11 Microsoft Corporation Storage device drivers and cluster participation
KR20130096881A (ko) 2012-02-23 2013-09-02 삼성전자주식회사 플래시 메모리 장치
US8903959B2 (en) * 2013-01-08 2014-12-02 Lyve Minds, Inc. Storage network data distribution
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9804960B2 (en) 2013-03-14 2017-10-31 Western Digital Technologies, Inc. Overprovision capacity in a data storage device
US9141626B2 (en) * 2013-03-14 2015-09-22 Microsoft Technology Licensing, Llc Volume having tiers of different storage traits
US9727456B2 (en) 2014-11-03 2017-08-08 Pavilion Data Systems, Inc. Scheduled garbage collection for solid state storage devices
US9626312B2 (en) 2015-07-17 2017-04-18 Sandisk Technologies Llc Storage region mapping for a data storage device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8639669B1 (en) * 2011-12-22 2014-01-28 Emc Corporation Method and apparatus for determining optimal chunk sizes of a deduplicated storage system

Also Published As

Publication number Publication date
CN106708425A (zh) 2017-05-24
US9946642B2 (en) 2018-04-17
KR20170056418A (ko) 2017-05-23
EP3168737A2 (en) 2017-05-17
EP3168737A3 (en) 2017-08-02
JP2017091548A (ja) 2017-05-25
TWI709073B (zh) 2020-11-01
TW201729068A (zh) 2017-08-16
US20170139823A1 (en) 2017-05-18

Similar Documents

Publication Publication Date Title
CN106708425B (zh) 分布式多模存储管理
US11907569B1 (en) Storage deveice that garbage collects specific areas based on a host specified context
CN106708424B (zh) 对用户数据执行选择性底层暴露映射的设备和方法
TWI710900B (zh) 儲存裝置及方法
CN106708423B (zh) 多模存储管理系统
US11461015B2 (en) Available storage space in a system with varying data redundancy schemes
KR101769883B1 (ko) 저장부 할당 장치, 시스템, 및 방법
CN112889034A (zh) 对数据块的内容驱动的分布进行擦除编码
US10621057B2 (en) Intelligent redundant array of independent disks with resilvering beyond bandwidth of a single drive
WO2017068904A1 (ja) ストレージシステム
CN111949210A (zh) 分布式存储系统中元数据存储方法、系统及存储介质
US10613973B1 (en) Garbage collection in solid state drives

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
GR01 Patent grant
GR01 Patent grant