CN113391760A - 分区存储中的快照管理 - Google Patents

分区存储中的快照管理 Download PDF

Info

Publication number
CN113391760A
CN113391760A CN202010494253.4A CN202010494253A CN113391760A CN 113391760 A CN113391760 A CN 113391760A CN 202010494253 A CN202010494253 A CN 202010494253A CN 113391760 A CN113391760 A CN 113391760A
Authority
CN
China
Prior art keywords
data
namespace
controller
storage device
data storage
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.)
Granted
Application number
CN202010494253.4A
Other languages
English (en)
Other versions
CN113391760B (zh
Inventor
S·贝尼斯特
J·G·哈恩
A·纳沃
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN113391760A publication Critical patent/CN113391760A/zh
Application granted granted Critical
Publication of CN113391760B publication Critical patent/CN113391760B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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/0608Saving storage space on 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/0629Configuration or reconfiguration 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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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/065Replication mechanisms
    • 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/0658Controller construction arrangements
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明题为“分区存储中的快照管理”。本公开整体涉及一种存储快照管理系统。将更新的数据写入存储器设备而不是重写所有数据时,仅更新的数据被写入新命名空间。新命名空间的快照指示新命名空间中的哪些LBA包含数据。每次更新数据时,添加新命名空间。要读取更新的数据时,数据存储设备从新命名空间读取更新的LBA,并且还从先前的命名空间收集未更新的数据。最终,数据的命名空间数量达到阈值,因此需要逐出一些命名空间。为了逐出命名空间,将命名空间中的更新的数据移动到不同命名空间,或者将未更新的数据移动到包含更新的数据的命名空间。在任一种情况下,现在未使用的命名空间都会被逐出。

Description

分区存储中的快照管理
背景技术
技术领域
本公开的实施方案整体涉及管理数据存储设备中的快照表。
相关领域的描述
存储快照是需要任何存储系统支持的核心特征。术语“快照”是指暂时存储数据存储设备中所存储的内容的先前版本的副本。存储快照广泛用于多种使用案例和数据中心,主要用于分析、备份和恢复以及测试。当为所有闪存存储器阵列构建快照时,应牢记四个要素:成本、性能、易用性和闪存耐久性。
就成本而言,应优化快照以仅提供发生改变的块,而不执行整个数据集的低效克隆。写入存储设备的数据的粒度应类似于写入的实际数据,并且不使用需要更多空间来保留快照数据的大块尺寸进行管理。用于跟踪变化的元数据也应为较小,并且在大小上应为针对快照进行的变化量的线性大小。在测试和开发或分析环境中运行时,通常同时使用来自不同时间点的相同数据集的多个副本。
就性能而言,具有高性能要求的生产环境不应仅因为使用快照而容许劣化。除生产环境的性能要求之外,其它业务流程基于生产环境的快照。典型的使用案例包括实时分析、关键报告和其它数据挖掘过程。
NVMe命名空间是可格式化为逻辑块的一定量的非易失性存储器(NVM)。当存储虚拟机采用NVMe标准进行配置时,使用命名空间。命名空间ID(NSID)是控制器用来提供对命名空间的访问的标识符。为主机或主机组设置NSID时,主机也将命名空间的可访问性配置成卷。逻辑块一次只能映射到单个主机组,并且给定主机组不具有任何重复的NSID。
由于上述严格要求,管理存储快照是存储管理系统的主要挑战。快照解决方案中的一些基于设备内联重复数据删除能力。在此类解决方案中,当创建快照时,元数据被复制,但数据不被复制。虽然此类解决方案对于快速快照开发周期是良好的捷径,但该解决方案引入了不满足现代数据中心需求的有限快照解决方案并且还导致两个快照特征。
其它解决方案创建了具有数据和元数据的本机快照解决方案,这些数据和元数据有效地间隔开,分布在所有系统资源中,并且仅分配给改变的块。然而,此类解决方案不使用存储分区特征来充分利用快照管理。
因此,本领域需要充分利用存储分区特征的存储快照管理系统。
发明内容
本公开整体涉及一种存储快照管理系统。将更新的数据写入存储器设备而不是重写所有数据时,仅更新的数据被写入新命名空间。新命名空间的快照指示新命名空间中的哪些LBA包含数据。每次更新数据时,添加新命名空间。要读取更新的数据时,数据存储设备从新命名空间读取更新的LBA,并且还从先前的命名空间收集未更新的数据。最终,数据的命名空间数量达到阈值,因此需要逐出一些命名空间。为了逐出命名空间,将命名空间中的更新的数据移动到不同命名空间,或者将未更新的数据移动到包含更新的数据的命名空间。在任一种情况下,现在未使用的命名空间都会被逐出。
在一个实施方案中,数据存储设备包括:存储器设备;以及耦接到存储器设备的控制器,其中控制器被配置成:接收针对特定命名空间的写入命令;确定特定命名空间是基本版本的更新;分配存储器设备的存储块;更新快照管理表;以及将数据写入分配的块。
在另一个实施方案中,数据存储设备包括:存储器设备;以及耦接到存储器设备的控制器,其中控制器被配置成:接收针对特定命名空间ID(NSID)的读取命令;确定特定NSID不是基本版本;读取特定NSID的快照管理表;以及以下任一操作:从存储器设备读取数据;或者将特定NSID减小1。
在另一个实施方案中,数据存储设备包括:存储器设备;以及耦接到存储器设备的控制器,其中控制器被配置成:接收所需快照数量(RSN)的设置;接收快照更新增量(SUD);将计数器设置为等于0;接收数据的版本更新;将计数器增加1;以及确定计数器是否超过RSN+SUD。
附图说明
因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1是示出根据本公开的一种或多种技术的存储系统的示意性框图,其中存储设备可以用作主机设备的存储设备。
图2是根据一个实施方案的快照管理的示意图。
图3是示出根据一个实施方案的将数据写入数据存储设备的方法的流程图。
图4是示出根据一个实施方案的从数据存储设备读取数据的方法的流程图。
图5是示出根据一个实施方案的逐出命名空间的方法的流程图。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解的是,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
本公开整体涉及一种存储快照管理系统。将更新的数据写入存储器设备而不是重写所有数据时,仅更新的数据被写入新命名空间。新命名空间的快照指示新命名空间中的哪些LBA包含数据。每次更新数据时,添加新命名空间。要读取更新的数据时,数据存储设备从新命名空间读取更新的LBA,并且还从先前的命名空间收集未更新的数据。最终,数据的命名空间数量达到阈值,因此需要逐出一些命名空间。为了逐出命名空间,将命名空间中的更新的数据移动到不同命名空间,或者将未更新的数据移动到包含更新的数据的命名空间。在任一种情况下,现在未使用的命名空间都会被逐出。
图1是示出根据本公开的一种或多种技术的存储系统100的示意性框图,其中数据存储设备106可以用作主机设备104的存储设备。例如,主机设备104可以利用包括在数据存储设备106中的非易失性存储器110来存储和检索数据。主机设备104包括主机DRAM 138。在一些示例中,存储系统100可以包括可作为存储阵列工作的多个存储设备,诸如数据存储设备106。例如,存储系统100可以包括多个数据存储设备106,其被配置成共同用作主机设备104的大容量存储设备的廉价/独立磁盘(RAID)冗余阵列。
存储系统100包括主机设备104,该主机设备可以向一个或多个存储设备诸如数据存储设备106存储数据和/或从其检索数据。如图1所示,主机设备104可以经由接口114与数据存储设备106通信。主机设备104可以包括多种设备中的任何一种,包括计算机服务器、网络附接存储(NAS)单元、台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、电话手机诸如所谓的“智能”电话、所谓的“智能”平板电脑、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。
数据存储设备106包括控制器108、非易失性存储器110(NVM 110)、电源111、易失性存储器112和接口114。控制器108包括内部存储器或缓存区(未示出)。在一些示例中,为了清楚起见,数据存储设备106可以包括图1中未示出的附加部件。例如,数据存储设备106可以包括印刷板(PB),数据存储设备106的部件机械地附接到该印刷板,并且该印刷板包括电互连数据存储设备106的部件等的导电迹线。在一些示例中,数据存储设备106的物理尺寸和连接器配置可以符合一个或多个标准形状因数。一些示例性标准形状因子包括但不限于3.5”数据存储设备(例如,HDD或SSD)、2.5”数据存储设备、1.8”数据存储设备、外围部件互连(PCI)、PCI扩展(PCI-X)、PCI Express(PCIe)(例如,PCIe x1、x4、x8、x16、PCIeMini卡、MiniPCI等)。在一些示例中,数据存储设备106可以直接耦接(例如,直接焊接)到主机设备104的母板。
数据存储设备106的接口114可以包括用于与主机设备104交换数据的数据总线和用于与主机设备104交换命令的控制总线中的一者或两者。接口114可以根据任何合适的协议操作。例如,接口114可以根据以下协议中的一个或多个协议来操作:高级技术附件(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纤信道协议(FCP)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、PCI和PCIe、非易失性存储器express(NVMe)、OpenCAPI、GenZ、高速缓存相干接口加速器(CCIX)、开放信道SSD(OCSSD)等。接口114的电连接(例如,数据总线、控制总线或两者)电连接到控制器108,从而提供主机设备104与控制器108之间的电连接,允许在主机设备104与控制器108之间交换数据。在一些示例中,接口114的电连接还可以允许数据存储设备106从主机设备104接收电力。例如,如图1所示,电源111可以经由接口114从主机设备104接收电力。
数据存储设备106包括NVM 110,其可以包括多个存储器设备或存储单元。NVM 110可以被配置成存储和/或检索数据。例如,NVM 110的存储单元可以接收数据并且从控制器108接收指示存储单元存储数据的消息。类似地,NVM 110的存储单元可以从控制器108接收指示存储单元检索数据的消息。在一些示例中,存储单元中的每个存储单元可以被称为管芯。在一些示例中,单个物理芯片可以包括多个管芯(即,多个存储单元)。在一些示例中,每个存储单元可以被配置成存储相对大量的数据(例如,128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TB等)。
在一些示例中,NVM 110的每个存储单元可以包括任何类型的非易失性存储器设备,诸如闪存存储器设备、相变存储器(PCM)设备、电阻随机存取存储器(ReRAM)设备、磁阻随机存取存储器(MRAM)设备、铁电随机存取存储器(F-RAM)、全息存储器设备、以及任何其它类型的非易失性存储器设备。
NVM 110可以包括多个闪存存储器设备或存储单元。闪存存储器设备可以包括基于NAND或NOR的闪存存储器设备,并且可以基于包含在用于每个闪存存储器单元的晶体管的浮栅中的电荷来存储数据。在NAND闪存存储器设备中,闪存存储器设备可以被分成多个块,这些块可以被分成多个页面。特定存储器设备内的多个块中的每个块可以包括多个NAND单元。NAND单元的行可以使用字线来电连接以限定多个页面中的页面。多个页面中的每个页面中的相应单元可以电连接到相应位线。此外,NAND闪存存储器设备可以是2D或3D设备,并且可以是单级单元(SLC)、多级单元(MLC)、三级单元(TLC)或四级单元(QLC)。控制器108可能以页面等级向NAND闪存存储器设备写入数据以及从NAND闪存存储器设备读取数据,并且以块等级从NAND闪存存储器设备擦除数据。
同样,NVMe命名空间是可以格式化为逻辑块的一定量的NVM 110。当存储虚拟机采用NVMe协议进行配置时,使用命名空间。命名空间ID(NSID)是控制器108用来提供对NVMe命名空间的访问的标识符。NVMe命名空间逻辑块一次只能映射到单个NVM位置。此外,每个NVM位置不具有相同或重复的NSID。
数据存储设备106包括电源111,其可以向数据存储设备106的一个或多个部件提供电力。当以标准模式操作时,电源111可以使用由外部设备诸如主机设备104提供的电力向一个或多个部件供电。例如,电源111可以使用经由接口114从主机设备104接收的电力向一个或多个部件供电。在一些示例中,电源111可以包括一个或多个电力存储部件,其被配置成当以关闭模式操作时向一个或多个部件供电,诸如在停止从外部设备接收电力的情况下。以这种方式,电源111可以用作机载备用电源。一个或多个电力存储部件的一些示例包括但不限于电容器、超级电容器、电池等。在一些示例中,可由一个或多个电力存储部件存储的电量可以是一个或多个电力存储部件的成本和/或尺寸(例如,面积/体积)的函数。换句话说,随着由一个或多个电力存储部件存储的电量增加,一个或多个电力存储部件的成本和/或尺寸也增加。
数据存储设备106还包括易失性存储器112,其可以由控制器108用来存储信息。易失性存储器112可以包括一个或多个易失性存储器设备。在一些示例中,控制器108可以使用易失性存储器112作为高速缓存。例如,控制器108可以将高速缓存的信息存储在易失性存储器112中,直到高速缓存的信息被写入非易失性存储器110。如图1所示,易失性存储器112可以消耗从电源111接收的电力。易失性存储器112的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)和同步动态RAM(SDRAM(例如,DDR1、DDR2、DDR3、DDR3L、LPDDR3、DDR4、LPDDR4等))。
数据存储设备106包括控制器108,其可以管理数据存储设备106的一个或多个操作。例如,控制器108可以管理从NVM 110读取数据和/或将数据写入该NVM 110。在一些实施方案中,当数据存储设备106从主机设备104接收写入命令时,控制器108可以发起数据存储命令以将数据存储到该NVM 110并且监测数据存储命令的进度。控制器108可以确定存储系统100的至少一个操作特性,并且将至少一个操作特性存储到该NVM 110。在一些实施方案中,当数据存储设备106从主机设备104接收到写入命令时,控制器108在将数据发送至NVM110之前将与写入命令相关联的数据暂时存储在内部存储器中。
控制器108与快照管理设备120耦接,该快照管理设备是被设计成用于处理存储快照的硬件和/或固件。存储快照是需要任何存储系统支持的核心特征。存储快照是指暂时存储存储设备中所存储的内容的先前版本的副本。存储快照是存储数据物理位置地址的逻辑表。存储快照表可以是逻辑块地址(LBA)表。
图2是根据一个实施方案的快照管理的示意图。命名空间ID(NSID)是由控制器(诸如与图1的快照管理设备120耦接的控制器108)用来提供对NVMe命名空间的访问的标识符。当数据被写入NVM(诸如图1的NVM110)中的物理位置时,数据的位置存储在快照管理设备120中的表中的逻辑位置。快照管理设备120中的表可以是LBA表或快照管理表。快照管理表可以包括“n”个LBA,使得LBAn对应于表中的最后一个LBA。变量“n”表示未指定数量的LBA可能存在于单个NSID位置或单个快照管理表中。快照管理表中的每个条目具有与匹配分区ID的数据的物理位置相关联的ID,诸如快照ID。虽然更新被写入NVM 110,但分区ID和快照ID使用相关信息进行更新。快照管理表中的未更新部分存储在NVM中的单个物理位置处。此外,可通过任何命名空间来访问未更新部分。
NSx是命名空间ID“x”,其中“NSx”表示文件的基本版本。NSx中的每个LBA由数据存储设备诸如图1的数据存储设备106初始化,并且由“基本”版本构成。“基本”版本是位于初始快照0管理表中的数据。快照管理表被配置用于快照的每个版本,其中对新的快照管理表进行更新。例如,初始快照管理表为NSx,而对NSx的第一次更新发生在NSx+1位置。NSx+1位置是对文件的第一次更新或“快照”的NSID。“+1”指示第一次更新,“+2”指示第二次更新,以此类推。快照#管理表对应于更新的表,使得快照1管理表对应于NSx+1位置。
当更新的数据被写入NSx+1位置时,物理位置或物理块地址(PBA)存储在NVM 110的快照1管理表中。然而,仅修改过的LBA存储在与更新位置相关的快照管理表中。例如,LBA4和LBA8在NSx+1位置更新。快照1管理表记录更新的LBA(LBA4和LBA8)的物理地址。同样,当LBA1和LBA8在NSx+2位置更新时,快照2管理表记录更新的LBA(LBA1和LBA8)的物理地址。
此外,当访问NSx+2位置的LBA数据时,可以访问先前的NSID位置。将利用与先前的NSID位置相关联的快照#管理表。例如,为了读取NSx+2位置的LBA1至LBA4,访问先前的NSID位置,因为NSx+2不包含LBA2、LBA3或LBA4的LBA数据。先前的快照管理表将用于定位LBA数据的物理地址。快照管理设备诸如图1的快照管理设备120利用逻辑控件来访问当前LBA数据。NAND中的NSx+1、NSx+2等位置仅包含修改过的LBA,而NSx位置包含“基本”数据。如果参考特定LBA的NSID位置并且数据不位于该位置,则针对LBA搜索先前的NSID位置,直到参考的LBA位于先前的NSID位置或“基本”NSID位置NSx中的一者。
此外,由于NSx+2包含LBA1的数据,但不包含LBA2、LBA3或LBA4的数据,因此顺序地向后访问先前的NSID位置。例如,NSx+1是数据的先前位置。LBA4位于NSx+1,并且从该位置读取LBA数据。待读取的剩余LBA是LBA2和LBA3。下一个先前的NSID位置是NSx,其为NSID位置的“基本”版本。“基本”位置包括NSID阵列的第一数据。术语“第一数据”是指NSx或“基本”位置中的数据,并且不一定是指初始数据。由于先前的NSID位置为NSx,因此读取LBA2和LBA3的基本数据。当快照管理设备120检测到当前快照中相关LBA未被修改(即,LBA不存在于当前NSID位置)时,检查先前的快照。
图3是示出根据一个实施方案的将数据写入数据存储设备的方法300的流程图。在框302处,控制器诸如图1的控制器108从主机诸如图1的主机设备104接收针对特定NSID的写入命令。在框304处,控制器108利用快照管理设备诸如图1的快照管理设备120来确定与写入命令相关联的NSID是否是基本NSID。如果与写入命令相关联的NSID是基本NSID,则在框306处,使用来自命令的写入数据来初始化NSID的基本版本,诸如图2的NSx。
然而,如果在框306处与写入命令相关联的NSID不等于基本NSID版本,则在框308处,快照管理设备120为写入命令分配可用的NAND块。当与写入命令相关联的NSID不匹配基本NSID版本时,控制器108注册数据为更新并且基本NSID版本NSx不应被初始化。在框310处,利用覆盖的LBA的位置更新相关快照管理表,诸如图2的快照1管理表,并且在框312处,将修改过的LBA写入占用的NAND块。
例如,在框302处,控制器108接收一个或多个写入命令。该一个或多个写入命令与第三NSID位置NSx+2相关联。在框304处,控制器确定与NSx+2位置相关联的一个或多个写入命令与NSx“基本”位置不同。因为NSID位置不相同,所以在框308处,控制器为NSx+2位置分配存储器设备块。在框310处,快照管理设备120用与一个或多个写入命令相关联的NSx+2LBA的当前位置来更新快照管理表。在框312处,将与第三NSID位置NSx+2相关联的一个或多个写入命令写入分配的存储器设备块。
在另一个示例中,在框302处,由控制器108接收一个或多个写入命令。该一个或多个写入命令与第一NSID位置NSx相关联。在框304处,控制器确定与NSx位置相关联的一个或多个写入命令与基本NSID位置相同。因为NSID位置相同,所以在框306处初始化基本版本命名空间。
图4是示出根据一个实施方案的从数据存储设备读取数据的方法400的流程图。在框402处,控制器诸如图1的控制器108接收针对特定NSID位置中的一个或多个LBA的一个或多个读取命令。在框404处,控制器108逻辑将特定NSID位置设置为变量“I”。控制器108可利用快照管理设备诸如图1的快照管理设备120来确定LBA在每个NSID位置内的位置。如果在框406处“I”等于“X”,其中“X”等于基本NSID位置NSx,则在框408处读取基本版本NSx。
如果在框406处“I”不等于“x”,则在框410处,读取针对相关LBA的与NSID位置“I”相关联的快照管理设备120的快照管理表。如果LBA存在于当前NSID位置“I”中,则在框414处,从当前NSID位置“I”读取来自存储器设备的数据。然而,如果LBA不存在于当前NSID位置“I”中,则控制器108逻辑将“I”(新)设置为等于“I”(先前)-1,使得在框416处读取NSID的先前快照管理表。
在框406处,在将“I”(新)设置成等于“I”(先前)-1之后,控制器108确定“I”(新)是否等于“X”,其中“X”是基本NSID位置NSx。包括在框408处读取基本版本、在框414处从存储器设备读取数据或设置“I”(新)=“I”(先前)-1的过程发生,直到基本版本被读取或者LBA存在于当前“I”位置中并且从存储器设备中的当前“I”位置读取。
例如,在框402处,控制器108接收针对与第一NSID位置NSx相关联的一个或多个LBA的一个或多个读取命令。在框406处,控制器108逻辑将相关NSID位置设置为“I”。因为在框406处“I”等于“X”,其中“X”等于基本NSID版本NSx,所以在框408处读取基本版本NSx。
例如,在框402处,控制器108接收针对与第三NSID位置NSx+2相关联的一个或多个LBA的一个或多个读取命令。在框406处,控制器108逻辑将相关NSID位置设置为“I”。控制器108逻辑还将基本NSID版本NSx设置为“X”。因为在框406处“I”不等于“X”,所以在框410处读取与NSID位置“I”相关联的快照管理设备120的快照管理表。NSx+2位置中存在的LBA是LBA3和LBA6。一个或多个读取命令针对第三NSID位置NSx+2的LBA1、LBA4和LBA6。因为在框412处LBA6存在于当前NSID位置,所以在414处从存储器设备读取数据。
然而,因为在框412处LBA4不存在于当前NSID位置,所以在框416处控制器108设置“I”(新)=“I”(先前)-1。新的“I”是第二NSID位置NSx+1。因为在框406处“I”不等于“X”,所以在框410处读取与NSID位置“I”相关联的快照管理设备120的快照管理表。NSx+1位置中存在的LBA是LBA2、LBA4和LBA6。剩余的一个或多个读取命令针对第三NSID位置NSx+2的LBA1和LBA4。因为在框412处LBA4存在于当前NSID位置NSx+1,所以在框414处从存储器设备读取数据。虽然LBA6存在于当前NSID位置,但当前更新的LBA6已从NSx+2位置读取。
然而,因为在框412处LBA1不存在于当前NSID位置,所以在框416处控制器108设置“I”(新)=“I”(先前)-1。新的“I”是第一NSID位置NSx。因为在框406处“I”等于“X”,所以在框408处读取快照管理设备120的快照管理表的基本版本NSx。基本NSID版本包含快照管理表的所有基本LBA(即,包含LBA0-LBAn)。剩余的一个或多个读取命令针对第三NSID位置NSx+2的LBA1。从第三NSID位置NSx+2读取LBA6,从第二NSID位置NSx+1读取LBA4,并且从第一NSID位置NSx读取LBA1。
图5是示出根据一个实施方案的逐出命名空间的方法500的流程图。控制器(诸如图1的控制器108)可利用固件和/或硬件(诸如快照管理设备,其可为图1的快照管理设备120)来管理不同的快照管理表。快照管理设备120中支持的先前快照或命名空间版本的最大数量可为约15。列出的支持的先前快照或命名空间版本的最大数量并非旨在进行限制,而是提供可能实施方案的示例。在另一个实施方案中,支持的先前快照管理表版本的最大数量可以是灵活的,并且基于各种应用程序和各种用户的先前版本的使用历史统计数据自适应地进行设置。
例如,在快照管理设备中,快照或命名空间NSx至NSx+14的总和为15。当接收到与第十六NSID位置NSx+15相关联的新写入命令时,快照管理设备从快照管理设备逐出一个快照或命名空间。被逐出的快照可以是阵列中的第一快照或第一命名空间或阵列中的最后一个快照。如果与阵列中的NSx基本版本相关联的第一快照或第一命名空间被逐出,则相关数据被写入阵列中的第二快照。然而,如果第二快照或第二命名空间中存在修改过的LBA,则来自第一快照或第一命名空间的LBA不写入第二快照或第二命名空间。例如,每个快照或命名空间表包括可能的八个LBA位置LBA0至LBA7,并且第二快照或第二命名空间包括修改过的LBA(LBA0和LBA7)。当第一快照或第一快照被逐出时,仅将LBA1至LBA6写入第二快照或第二命名空间。第二快照或第二命名空间被重命名为第一快照或第一命名空间,并且与NSx基本版本相关联。将与第十六NSID位置NSx+15相关联的新写入命令写入对应于NSx+14位置的分配的块。在另一个实施方案中,相关数据未写入第二快照;而是管理表中的指针被更新以指向初始数据(即,如果指针被更新,则不需要复制相关数据)。
如果与阵列中NSx+14位置相关联的最后一个快照或最后一个命名空间被逐出,则相关数据被写入阵列中的前一个快照或前一个命名空间NSx+13。NSx+14位置中的修改过的LBA被写入NSx+13位置中的对应位置。例如,每个快照表包括可能的八个LBA位置(LBA0至LBA7),并且最后一个快照或最后一个命名空间NSx+14包括修改过的LBA(LBA0和LBA7),并且前一个快照或前一个命名空间NSx+13包括修改过的LBA(LBA0)。当最后一个快照或最后一个命名空间被逐出时,与最后一个快照或最后一个命名空间NSx+14相关联的修改过的LBA(LBA0和LBA7)被写入前一个快照或前一个命名空间NSx+13。先前在NSx+13中存在的修改过的LBA(LBA0)被最后一个快照或最后一个命名空间NSx+14的更当前的修改过的LBA(LBA0)覆盖。将与第十六NSID位置NSx+15相关联的新写入命令写入对应于NSx+14位置的分配的块。
快照管理设备120可包括逻辑,以设置与逐出过程相关联的支持的先前版本快照或命名空间的最小数量和最大数量。此外,可同时逐出一个或多个快照或一个或多个命名空间。同时逐出的预定数量可以是五个快照或五个命名空间。同时列出的被逐出的快照或命名空间的数量并非旨在进行限制,而是提供可能实施方案的示例。支持的先前版本快照或命名空间的最小数量表示为“RSN”。快照或命名空间更新增量表示为“SUD”,并且是要同时逐出的快照或命名空间的预定数量。通过将“RSN”和“SUD”相加,可以计算支持的先前版本快照或命名空间的最大数量。例如,如果“RSN”等于10并且“SUD”等于5,则支持的先前版本快照或命名空间的最大数量为15。
方法500描述了前述快照或命名空间逐出过程。在框502处,控制器108将快照管理设备120配置成具有所需快照数量(RSN)和快照更新增量(SUD)。快照管理设备120在框504处接收初始快照或初始命名空间,并且被写入相关的存储器设备块。初始快照或初始命名空间是基本NSID版本或NSx。快照管理设备120可包括计数器,以确定与快照管理设备120相关联的快照或命名空间的总数。在框506处,快照管理设备120将计数器设置为等于0。
在框508处,快照管理设备120接收与一个或多个LBA相关联的版本更新并且占用相关存储器设备块。每当在框508处接收到版本更新时,在框510处将计数器增加1。在框512处,快照管理设备120确定计数器是否大于“RSN”与“SUD”的总和。如果在框512处计数器小于“RSN”与“SUD”的总和,则快照管理设备等待,直到在框508处接收到版本更新。如果计数器在框512处大于“RSN”与“SUD”的总和,则先前描述的逐出过程将在框514处继续。逐出可影响快照或命名空间的预定数量。在框516处从计数器中减去逐出的快照或命名空间数量,并且快照管理设备120等待,直到在框508处接收到版本更新。
在一个示例中,“RSN”等于10并且“SUD”等于5,使得“RSN”与“SUD”的总和为15。在框502处,快照管理设备120配置有与“RSN”和“SUD”相关联的所需数量。在框504处,快照管理设备120接收与基本NSID版本NSx相关联的初始版本。在框506处,快照管理设备120计数器被设置为0。在框508处,快照管理设备120接收与修改过的LBA相关联的更新版本。将与当前更新版本相关联的修改过的LBA写入占用的NSID位置NSx+1。在框510处,与快照管理设备120相关联的计数器增加1。在框512处,由于计数器为1并且小于“RSN”与“SUD”的总和(其为15),因此快照管理设备120等待,直到在框508处接收到另一个版本更新。
在框512处,当计数器等于16并且大于“RSN”与“SUD”的总和(其为15)时,逐出过程在框514处继续。由于“SUD”为5,从快照管理表中逐出五个命名空间或五个快照。五个命名空间或五个快照可来自快照阵列的始端或快照阵列的末端。相关的快照或命名空间位置利用来自逐出的命名空间或快照位置的相关LBA位置进行更新。在框516处,从计数器中减去“SUD”。计数器现在为11。在框508处,快照管理设备120等待接收版本更新。当快照或命名空间位置被逐出时,通过逐出的快照或命名空间位置的数量来调整阵列,使得NSx+1可先前为NSx+6,NSx可先前为NSx+5,以此类推。
通过实施如本文所述的快照管理系统,与复制型写入快照相比,由于对写入快照具体实施进行重定向,数据存储设备的性能和耐久性显著增加。此外,快照产生得非常快,这改善了性能。另外,由于横向扩展在所有节点和存储器设备上展开并平衡数据和快照元数据两者,因此有效的横向扩展具体实施是可行的。最后,该解决方案基于NVMe标准中明确定义的命名空间特征,从而得到稳健且可靠的解决方案。
在一个实施方案中,数据存储设备包括:存储器设备;以及耦接到存储器设备的控制器,其中控制器被配置成:接收针对特定命名空间的写入命令;确定特定命名空间是基本版本的更新;分配存储器设备的存储块;更新快照管理表;以及将数据写入分配的块。控制器包括快照管理设备。快照管理设备分配存储块,更新快照管理表,并且将数据写入分配的块。写入分配的块的数据是修改过的LBA。未改变的基本数据保留在不同命名空间中。控制器被进一步配置成在确定特定命名空间是基本版本的更新时,不初始化基本版本。控制器被进一步配置成在命名空间逐出过程期间将未更新的数据写入不同命名空间。控制器被进一步配置成更新快照管理表中的指针以指向基本版本。
在另一个实施方案中,数据存储设备包括:存储器设备;以及耦接到存储器设备的控制器,其中控制器被配置成:接收针对特定命名空间ID(NSID)的读取命令;确定特定NSID不是基本版本;读取特定NSID的快照管理表;以及以下任一操作:从存储器设备读取数据;或者将特定NSID减小1。控制器被进一步配置成:将特定NSID减小1;确定特定NSID不是基本版本;读取特定NSID的快照管理表;以及以下任一操作:从存储器设备读取数据;或者将特定NSID减小1。控制器被进一步配置成从存储器设备读取数据,其中读取包括从第一命名空间和第二命名空间读取更新的数据。控制器被进一步配置成:确定特定命名空间是基本版本的更新;分配存储器设备的存储块;更新快照管理表;以及将数据写入分配的块。控制器被进一步配置成在多个命名空间超过阈值时逐出一个或多个命名空间。逐出包括将数据移动到不同命名空间并且释放逐出的命名空间。快照管理表包含关于特定命名空间的特定更新的LBA的信息。
在另一个实施方案中,数据存储设备包括:存储器设备;以及耦接到存储器设备的控制器,其中控制器被配置成:接收所需快照数量(RSN)的设置;接收快照更新增量(SUD);将计数器设置为等于0;接收数据的版本更新;将计数器增加1;以及确定计数器是否超过RSN+SUD。控制器被进一步配置成在计数器超过RSN+SUD时逐出一个或多个快照。控制器被进一步配置成在逐出一个或多个快照之后,重复接收数据的版本更新,将计数器增加1,并且确定计数器是否超过RSN+SUD。控制器被进一步配置成在逐出快照之后将计数器减小1。控制器被进一步配置成在确定计数器超过RSN+SUD之后,重复接收数据的版本更新,将计数器增加1,并且确定计数器是否超过RSN+SUD。控制器被配置成设置SUD的新基本版本。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。

Claims (20)

1.一种数据存储设备,所述数据存储设备包括:
存储器设备;和
耦接到所述存储器设备的控制器,其中所述控制器被配置成:
接收针对特定命名空间的写入命令;
确定所述特定命名空间是基本版本的更新;
分配所述存储器设备的存储块;
更新快照管理表;以及
将数据写入分配的块。
2.根据权利要求1所述的数据存储设备,其中所述控制器包括快照管理设备。
3.根据权利要求2所述的数据存储设备,其中所述快照管理设备分配所述存储块,更新所述快照管理表,并且将所述数据写入所述分配的块。
4.根据权利要求1所述的数据存储设备,其中写入所述分配的块的所述数据是修改过的LBA。
5.根据权利要求4所述的数据存储设备,其中未改变的基本数据保留在不同命名空间中。
6.根据权利要求1所述的数据存储设备,其中所述控制器被进一步配置成在确定所述特定命名空间是所述基本版本的更新时,不初始化所述基本版本。
7.根据权利要求1所述的数据存储设备,其中所述控制器被进一步配置成在命名空间逐出过程期间将未更新的数据写入不同命名空间。
8.根据权利要求1所述的数据存储设备,其中所述控制器被进一步配置成更新所述快照管理表中的指针以指向所述基本版本。
9.一种数据存储设备,所述数据存储设备包括:
存储器设备;和
耦接到所述存储器设备的控制器,其中所述控制器被配置成:
接收针对特定命名空间ID(NSID)的读取命令;
确定所述特定NSID不是基本版本;
读取所述特定NSID的快照管理表;以及
以下任一操作:
从所述存储器设备读取数据;或者
将所述特定NSID减小1。
10.根据权利要求9所述的数据存储设备,其中所述控制器被进一步配置成:
将所述特定NSID减小1;
确定所述特定NSID不是基本版本;
读取所述特定NSID的快照管理表;以及
以下任一操作:
从所述存储器设备读取数据;或者
将所述特定NSID减小1。
11.根据权利要求9所述的数据存储设备,其中所述控制器被进一步配置成从所述存储器设备读取数据,其中所述读取包括从第一命名空间和第二命名空间读取更新的数据。
12.根据权利要求9所述的数据存储设备,其中所述控制器被进一步配置成:
确定所述特定命名空间是基本版本的更新;
分配所述存储器设备的存储块;
更新快照管理表;以及
将数据写入所述分配的块。
13.根据权利要求9所述的数据存储设备,其中所述控制器被进一步配置成在多个命名空间超过阈值时逐出一个或多个命名空间。
14.根据权利要求13所述的数据存储设备,其中所述逐出包括将数据移动到不同命名空间并且释放逐出的命名空间。
15.根据权利要求9所述的数据存储设备,其中所述快照管理表包含关于特定命名空间的特定更新的LBA的信息。
16.一种数据存储设备,所述数据存储设备包括:
存储器设备;和
耦接到所述存储器设备的控制器,其中所述控制器被配置成:
接收所需快照数量(RSN)的设置;
接收快照更新增量(SUD);
将计数器设置为等于0;
接收数据的版本更新;
将所述计数器增加1;以及
确定所述计数器是否超过RSN+SUD。
17.根据权利要求16所述的数据存储设备,其中所述控制器被进一步配置成在所述计数器超过RSN+SUD时逐出一个或多个快照。
18.根据权利要求17所述的数据存储设备,其中所述控制器被进一步配置成在逐出一个或多个快照之后,重复所述接收数据的版本更新,将所述计数器增加1,并且确定所述计数器是否超过RSN+SUD。
19.根据权利要求16所述的数据存储设备,其中所述控制器被进一步配置成在确定所述计数器超过RSN+SUD之后,重复所述接收数据的版本更新,将所述计数器增加1,并且确定所述计数器是否超过RSN+SUD。
20.根据权利要求16所述的数据存储设备,其中所述控制器被配置成设置SUD的新基本版本。
CN202010494253.4A 2020-03-12 2020-06-03 分区存储中的快照管理 Active CN113391760B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/817,264 US11640371B2 (en) 2020-03-12 2020-03-12 Snapshot management in partitioned storage
US16/817,264 2020-03-12

Publications (2)

Publication Number Publication Date
CN113391760A true CN113391760A (zh) 2021-09-14
CN113391760B CN113391760B (zh) 2024-06-04

Family

ID=77457315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010494253.4A Active CN113391760B (zh) 2020-03-12 2020-06-03 分区存储中的快照管理

Country Status (4)

Country Link
US (1) US11640371B2 (zh)
KR (2) KR20210116158A (zh)
CN (1) CN113391760B (zh)
DE (1) DE102020115946B4 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230418741A1 (en) * 2022-06-27 2023-12-28 Western Digital Technologies, Inc. Data storage device management system

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005122458A (ja) * 2003-10-16 2005-05-12 Tsubasa System Co Ltd 更新データ配信サーバ、更新データ配信システム、更新データ配信方法、更新データ配信プログラム、配信データ
US20060271725A1 (en) * 2005-05-24 2006-11-30 Micron Technology, Inc. Version based non-volatile memory translation layer
US20090222636A1 (en) * 2008-02-29 2009-09-03 Kabushiki Kaisha Toshiba Memory system and memory initializing method
US20160246521A1 (en) * 2015-02-25 2016-08-25 HGST Netherlands B.V. System and method for copy on write on an ssd
JP2017004212A (ja) * 2015-06-09 2017-01-05 日立オートモティブシステムズ株式会社 リプログラミングシステム
US20170024137A1 (en) * 2015-07-23 2017-01-26 Kabushiki Kaisha Toshiba Memory system for controlling nonvolatile memory
US20170123931A1 (en) * 2011-08-12 2017-05-04 Nexenta Systems, Inc. Object Storage System with a Distributed Namespace and Snapshot and Cloning Features
CN107145302A (zh) * 2016-03-01 2017-09-08 阿里巴巴集团控股有限公司 一种用于在分布式存储系统中执行文件写入的方法与设备
US20170344430A1 (en) * 2016-05-24 2017-11-30 Intel Corporation Method and apparatus for data checkpointing and restoration in a storage device
US20190311047A1 (en) * 2018-04-06 2019-10-10 Vmware, Inc. Optimal snapshot deletion

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4456909B2 (ja) * 2004-03-29 2010-04-28 株式会社日立製作所 バックアップ方法、ストレージシステム及びそのプログラム
JP4662548B2 (ja) 2005-09-27 2011-03-30 株式会社日立製作所 スナップショット管理装置及び方法並びにストレージシステム
JP4795787B2 (ja) 2005-12-09 2011-10-19 株式会社日立製作所 ストレージシステム、nasサーバ、及びスナップショット方法
TWI316188B (en) * 2006-05-17 2009-10-21 Ind Tech Res Inst Mechanism and method to snapshot data
US8046547B1 (en) * 2007-01-30 2011-10-25 American Megatrends, Inc. Storage system snapshots for continuous file protection
US8204858B2 (en) 2007-06-25 2012-06-19 Dot Hill Systems Corporation Snapshot reset method and apparatus
US9824095B1 (en) 2010-05-03 2017-11-21 Panzura, Inc. Using overlay metadata in a cloud controller to generate incremental snapshots for a distributed filesystem
US9563555B2 (en) * 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US8538924B2 (en) * 2011-08-31 2013-09-17 Hitachi, Ltd. Computer system and data access control method for recalling the stubbed file on snapshot
US9043567B1 (en) 2012-03-28 2015-05-26 Netapp, Inc. Methods and systems for replicating an expandable storage volume
WO2013158633A1 (en) 2012-04-20 2013-10-24 Violin Memory, Inc. Snapshots in a flash memory storage system
US9678863B2 (en) 2012-06-12 2017-06-13 Sandisk Technologies, Llc Hybrid checkpointed memory
US9311014B2 (en) * 2012-11-29 2016-04-12 Infinidat Ltd. Storage system and methods of mapping addresses of snapshot families
JP2016526717A (ja) * 2013-06-12 2016-09-05 エグザブロックス・コーポレーション ハイブリッドガベージコレクション
US9842128B2 (en) * 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10248682B2 (en) * 2015-02-20 2019-04-02 Scality, S.A. Object storage system capable of performing snapshots, branches and locking
KR102378367B1 (ko) 2015-03-20 2022-03-24 한국전자통신연구원 분산 파일 시스템
US10326836B2 (en) 2015-12-08 2019-06-18 Pure Storage, Inc. Partially replicating a snapshot between storage systems
US10255177B2 (en) * 2016-10-10 2019-04-09 Dell Products, Lp System and method for adaptive optimization for performance in solid state drives based on read/write intensity
US10860427B1 (en) * 2016-12-23 2020-12-08 EMC IP Holding Company LLC Data protection in a large-scale cluster environment
WO2018130294A1 (en) 2017-01-13 2018-07-19 Huawei Technologies Co., Ltd. Method and system for global snapshots of distributed storage
US10503404B2 (en) * 2017-10-23 2019-12-10 Micron Technology, Inc. Namespace management in non-volatile memory devices
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
CN110399333B (zh) * 2018-04-20 2023-07-18 伊姆西Ip控股有限责任公司 删除快照的方法、设备和计算机程序产品
US10949341B2 (en) * 2018-08-27 2021-03-16 Samsung Electronics Co., Ltd. Implementing snapshot and other functionality in KVSSD through garbage collection and FTL
US11055179B2 (en) * 2019-08-07 2021-07-06 Rubrik, Inc. Tree-based snapshots
US11645241B2 (en) * 2019-09-13 2023-05-09 Oracle International Corporation Persistent memory file store for directly mapped persistent memory database
US11269737B2 (en) * 2019-09-16 2022-03-08 Microsoft Technology Licensing, Llc Incrementally updating recovery map data for a memory system

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005122458A (ja) * 2003-10-16 2005-05-12 Tsubasa System Co Ltd 更新データ配信サーバ、更新データ配信システム、更新データ配信方法、更新データ配信プログラム、配信データ
US20060271725A1 (en) * 2005-05-24 2006-11-30 Micron Technology, Inc. Version based non-volatile memory translation layer
US20090222636A1 (en) * 2008-02-29 2009-09-03 Kabushiki Kaisha Toshiba Memory system and memory initializing method
US20170123931A1 (en) * 2011-08-12 2017-05-04 Nexenta Systems, Inc. Object Storage System with a Distributed Namespace and Snapshot and Cloning Features
US20160246521A1 (en) * 2015-02-25 2016-08-25 HGST Netherlands B.V. System and method for copy on write on an ssd
JP2017004212A (ja) * 2015-06-09 2017-01-05 日立オートモティブシステムズ株式会社 リプログラミングシステム
US20170024137A1 (en) * 2015-07-23 2017-01-26 Kabushiki Kaisha Toshiba Memory system for controlling nonvolatile memory
CN107145302A (zh) * 2016-03-01 2017-09-08 阿里巴巴集团控股有限公司 一种用于在分布式存储系统中执行文件写入的方法与设备
US20170344430A1 (en) * 2016-05-24 2017-11-30 Intel Corporation Method and apparatus for data checkpointing and restoration in a storage device
US20190311047A1 (en) * 2018-04-06 2019-10-10 Vmware, Inc. Optimal snapshot deletion

Also Published As

Publication number Publication date
DE102020115946A1 (de) 2021-09-16
KR102589609B1 (ko) 2023-10-13
DE102020115946B4 (de) 2024-07-04
US20210286762A1 (en) 2021-09-16
KR20220119348A (ko) 2022-08-29
KR20210116158A (ko) 2021-09-27
CN113391760B (zh) 2024-06-04
US11640371B2 (en) 2023-05-02

Similar Documents

Publication Publication Date Title
CN113196226B (zh) 固态驱动器中的分区命名空间
CN107301134B (zh) 存储装置中的磨损均衡
CN106445724B (zh) 与受保护数据分开存储奇偶校验数据
KR102569783B1 (ko) 비순차적 구역 네임스페이스들
CN108228473B (zh) 通过动态地传送存储器范围分配的负载平衡的方法及系统
US20170206170A1 (en) Reducing a size of a logical to physical data address translation table
CN109144899B (zh) 用于管理表恢复的方法
CN114730282A (zh) Zns奇偶校验交换到dram
CN114730290A (zh) 将变化日志表移动至与分区对准
CN114730289A (zh) Zns需求的数据完整性保护
US11061598B2 (en) Optimized handling of multiple copies in storage management
KR102589609B1 (ko) 분할된 저장장치에서의 스냅샷 관리
US20180024751A1 (en) Metadata management on a storage device
US11847337B2 (en) Data parking for ZNS devices
US20210333996A1 (en) Data Parking for SSDs with Streams
CN116897341A (zh) 隐含流
CN114746835A (zh) 用中间填充保持分区开放
US20240111443A1 (en) Finding and releasing trapped memory in ulayer
US11960397B2 (en) Data mapping comparison for improved synchronization in data storage devices
US20210373769A1 (en) Data Integrity Protection Of SSDs Utilizing Streams
US20220147249A1 (en) Data storage device database management architecture
US20230280919A1 (en) Write Updates Sorting During BKOPS Idle
WO2024097493A1 (en) Write buffer linking for easy cache reads
WO2023196176A1 (en) Storage optimization of cat table during background operations
WO2024054273A1 (en) Metadata management in key value data storage device

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