CN110795279B - 用于促进dram数据缓存转储和机架级电池备份的系统和方法 - Google Patents

用于促进dram数据缓存转储和机架级电池备份的系统和方法 Download PDF

Info

Publication number
CN110795279B
CN110795279B CN201910712159.9A CN201910712159A CN110795279B CN 110795279 B CN110795279 B CN 110795279B CN 201910712159 A CN201910712159 A CN 201910712159A CN 110795279 B CN110795279 B CN 110795279B
Authority
CN
China
Prior art keywords
data
storage device
cache
host
writing
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
CN201910712159.9A
Other languages
English (en)
Other versions
CN110795279A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN110795279A publication Critical patent/CN110795279A/zh
Application granted granted Critical
Publication of CN110795279B publication Critical patent/CN110795279B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/263Arrangements for using multiple switchable power supplies, e.g. battery and AC
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/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/2015Redundant power supplies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/0656Data buffering 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/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]

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)
  • Quality & Reliability (AREA)
  • Power Engineering (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一个实施例促进数据存储。在操作期间,系统接收要存储在与主机相关联的存储设备的非易失性存储器中的数据,其中主机的易失性存储器的区域被配置为可由存储设备的控制器访问的缓存。系统将数据写入缓存区域以获得缓存数据。响应于检测到主机的故障:系统通过控制器从缓存区域检索缓存数据;并且系统通过控制器将缓存数据写入存储设备的非易失性存储器。

Description

用于促进DRAM数据缓存转储和机架级电池备份的系统和方法
相关申请
本申请要求于2018年8月2日提交的发明人为李舒的律所档案号为ALI-Al5932USP的名称为“DRAM数据缓存转储和带有机架级电池备份系统的简化SSD的方法和系统(Systemand Method of DRAM Data Cache Dumping and Simplified SSD With Rack-ScaleBattery-Backed System)”的第62/713,908号美国临时申请的优先权,其全部公开内容通过引用的方式结合在本文中。
技术领域
本公开一般涉及数据存储领域。更具体地,本公开涉及一种用于促进动态随机取存存储器(DRAM)数据缓存转储和机架级电池备份系统的系统和方法。
背景技术
互联网和电子商务的激增继续创造大量的数字内容。已经创建了各种存储系统和服务器来访问和存储此类数字内容。在云或集群存储系统中,多个应用程序可以共享(例如,存储设备的)底层系统资源。管理存储设备的资源对于系统的性能是至关重要的。此外,执行事务(例如输入/输出(I/O)请求)所涉及的延迟会影响性能,包括每秒查询(QPS)和每秒事务数(TPS)速率。在许多应用程序中,需要降低与处理或者访问数据有关的延迟,例如,满足各种服务质量(QoS)需求(例如,在服务级别协议中)或者在线事务处理(OLTP)系统中。此外,许多应用程序要求持久存储数据,以确保一致性和顺序性。写入数据的单个事务无法被成功执行或者完成,直到以同步方式已经将数据写入存储设备的非易失性存储器(例如固态驱动器(SSD)或硬盘驱动器(HDD))。因此,写入延迟会是应用程序性能中的主要和限制因素。
作为存储模块,SSD通过外围高速互联(PCIe)总线连接到主机(及其中央处理单元(CPU))。该物理上的安排导致I/O路径加长和延迟增加。相反,系统存储器(例如动态随机存取存储器双列直插式存储模块(DRAM DIAM))在物理位置上接近主机CPU,其访问延迟通常比SSD的访问延迟低一到两个数量级。然而,DRAM DIMM是一种易失性存储器,它会出现故障,例如掉电和操作系统崩溃。
一种当前的解决方案包括NVDIMM-N,其是非易失性DIMM和与非(NAND),其将DRAM和NAND组合在一起。在故障期间,DRAM中的数据被冲到NAND中,并且当系统从故障中恢复,数据然后从NAND被冲回至DRAM中。然而,该当前的解决方案存在许多缺陷。首先,财务成本可能很高,因为NVDIMM-N配备了额外的部件,包括电池、特定的NVDIMM-N控制器、NAND和NAND闪存。第二,NVDIMM-N消耗的电量通常超过了分配给每个DIMM插槽的电量。第三,NVDIMM-N电池是一种必须定期充电和放电的共用电池,这会导致维护的复杂性增加。第四,NVDIMM-N电池可能会经历衰减并导致高的年故障率。因此,NVDIMM-N的缺陷导致增加财务成本(NVDIMM-N的总成本和模块更换和维护人员的成本),增加电源和散热的负担,以及增加了维护的复杂性。
因此,尽管当前的解决方案提供了使用DIMM和NAND的结合系统的持久存储,但是当前的解决方案存在许多缺陷,并且不能够提供低延迟的持久存储,这是寻求提供显著性能改进的应用程序所非常期望的。此外,低延迟持续存储对云或集群存储系统的整体效率是益的,并且还可能对分布式存储系统的可扩展性具有积极的影响。
发明内容
一个实施例促进数据存储。在操作期间,系统接收要存储在与主机相关联的存储设备的非易失性存储器中的数据,其中主机的易失性存储器的区域被配置为可由存储设备的控制器访问的缓存。系统将数据写入缓存区域以获得缓存数据。响应于检测到主机的故障:系统通过控制器从缓存区域检索缓存数据;以及系统通过控制器将缓存数据写入存储设备的非易失性存储器。
在一些实施例中,其中在将数据写入缓存区域以获得缓存数据之后,系统向主机发送数据被成功提交的确认,并且将缓存数据异步写入存储设备的易失性存储器。
在一些实施例中,将数据写入缓存区域以获得缓存数据还包括将数据写入缓存区域中的一个或多个物理页。此外,在将缓存数据异步写入存储设备的非易失性存储器之后,系统将缓存区域中的一个或多个物理页标记为可用。
在一些实施例中,在正常模式下执行将数据写入缓存区域、发送确认以及将缓存数据异步写入非易失性存储器。
在一些实施例中,响应于检测到掉电:系统从与检测到的掉电相关联的电源切换到向机架提供电力的电池单元,该机架与主机和存储设备相关联;系统向系统操作员发送指示检测到掉电的通知;以及系统以正常模式继续主机的任何正在进行的操作。
在一些实施例中,机架还与多个其他主机和多个其他存储设备相关联,并且主机、其他主机、存储设备和其他存储设备共享电池单元。
在一些实施例中,存储设备包括固态驱动器(SSD),存储设备的非易失性存储器包括与非(NAND)物理介质,以及存储设备和与机架相关联的其他存储设备各自都不包含自己的掉电保护模块或其自身的易失性存储器。
在一些实施例中,响应于检测到主机的故障:系统从正常模式切换到复制模式;以及系统授予控制器访问缓存区域中的缓存数据的权限,其中授予控制器权限、控制器检索缓存数据、以及控制器将缓存数据写入存储设备的非易失性存储器在复制模式下执行。
在一些实施例中,响应于检测到故障被修复,系统从复制模式切换到正常模式。
附图简要说明
图1示出了根据本申请实施例的用于促进数据存储的示例性环境。
图2示出了根据现有技术的用于促进数据存储的示例性环境,包括NVDIMM-N的结构。
图3示出了根据本申请实施例的用于促进数据存储的示例性环境,包括其中SSD控制器访问主机DIMM的配置保留区域中的数据的方案。
图4A提供了根据本申请的实施例的用于促进数据存储的示例性环境,包括在主机的正常模式中发生的通信。
图4B提供了根据本申请的实施例的用于促进数据存储的示例性环境,包括在主机的复制模式中响应于检测到主机中的故障而发生的通信。
图5A提供了示出根据本申请的实施例的用于促进数据存储的方法的流程图。
图5B提供了示出根据本申请的实施例的用于促进数据存储的方法的流程图。
图6示出了根据本申请的实施例的促进测量存储驱动器的性能的示例性计算机系统。
图7示出了根据本申请的实施例的促进测量存储驱动器的性能的示例性装置。
在附图中,相同的附图标记表示相同的附图元件。
具体实施方式
呈现以下描述以使得本领域技术人员能够制造和使用实施例,并且在特定应用及其要求的背景下提供以下描述。对于本领域技术人员来说,对所公开的实施例的各种修改是显而易见的,并且在不脱离本公开的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用。因此,这里描述的实施例不限于所示的实施例,而是与符合本文公开的原理和特征的最宽范围相一致。
概述
这里描述的实施例提供了一种系统,该系统通过将主机DIMM的区域配置为可由SSD控制器直接访问的数据缓存并通过提供机架级共享电池单元来简化SSD来促进低延迟持久存储。
许多应用程序需要低延迟持久存储,例如,在OLTP中或满足任何QoS要求。在传统系统中,SSD通过PCIe总线连接到主机,这导致长的I/O路径和增加的写操作延迟时间。相反,系统存储器(例如,主机DRAM DIMM)物理上靠近主机CPU,与SSD相比具有较低的访问。然而,DRAM DIMM是易失性存储器,其可能遭受故障,例如掉电和操作系统的崩溃。
一种当前解决方案包括NVDIMM-N,其是非易失性DIMM和NAND。在故障期间,DRAM中的数据被冲到NAND,并且当系统从故障中恢复时,该数据然后从NAND冲回DRAM。然而,这种当前的解决方案具有许多缺点。首先,财务成本可能很高,因为NVDIMM-N配备了额外的组件,包括电池、特定的NVDIMM-N控制器和NAND闪存。此成本可能是标准DRAM DIMM的数倍。其次,NVDIMM-N消耗的电量通常超过分配给每个DIMM插槽的电量,这可能导致电源和散热的负担增加。第三,NVDIMM-N电池是必须定期充电和放电的共享电池(即由NVDIMM-N中所有的组件共享)。这会导致维护的复杂性增加,因为系统必须在不同时间识别和配置多个组以进行周期性充电/放电,从而确保高可用性。第四,NVDIMM-N电池可能经历衰减并导致高的年故障率,这会导致模块更换和维护人员的成本增加。以下结合图2描述示例性NVDIMM-N。
因此,虽然当前的解决方案使用DIMM和NAND的组合系统提供持久存储,但是当前的解决方案具有许多缺点并且不能提供低延迟的持久存储,这是寻求提供显著性能改进的应用程序非常期望的。此外,低延迟持久存储可以有益于云或集群存储系统的整体效率,并且还可以积极地影响分布式存储系统的可扩展性。
这里描述的实施例提供了一种系统,其通过将主机DIMM的区域配置为可由SSD控制器直接访问的数据缓存(“缓存区域”)来解决这些挑战,同时通过提供机架级共享电池单元来简化SSD。响应于检测到故障,系统允许SSD控制器从主机DIMM的缓存区域检索先前缓存的数据,并将该数据写入NAND。因此,主机DIMM和SSD一起工作以提供低延迟持久存储,并且也由机架级电池支持。通过将缓存区域配置为用作数据缓存,并且通过提供机架级电池,这里描述的实施例可以包括简化的SSD,其不需要包括内部DRAM或掉电模块。结合图1和3在下面描述示例性架构。分别在下面结合图4A和4B描述在正常操作期间并且响应于检测到故障的示例性通信。
因此,本文所述的实施例提供了一种提高和增加存储系统的效率和性能的系统。通过将主机DIMM的区域配置为可由SSD控制器直接访问数据缓存并通过提供机架级共享电池单元,系统可以使用简化的SSD提供低延迟持久存储。本文所述的实施例还提供技术问题(提供低延迟持久存储)的技术解决方案(如上所述)。
术语“数据缓存”、“数据缓存区域”、“缓存区域”、“保留区域”、“保留部位”、“配置区域”和“配置部位”在本公开中可互换使用并且指代系统存储器的区域或部位,例如主机DRAM DIMM。可以将该区域或部位配置或保留为写入缓存。例如,输入的写入数据可以临时存储在该写入缓存中,并且SSD控制器可以被授予在发生故障时从该写入缓存检索先前缓存的数据的权限,如本文所述。
术语“正常模式”指的是系统在没有故障的情况下操作,或者响应于未检测到任何故障,并且不受掉电的影响。术语“复制模式”是指系统响应于检测到故障而操作,例如系统崩溃,防止系统在正常程序/环境下运行的错误,或者阻止CPU通信或与CPU通信的情况或完成特定事务或请求所需的任何其他组件。在复制模式下,SSD控制器可以从数据缓存访问数据并将该数据写入NAND,如本文所述。
示例性环境和网络
图1示出了根据本申请实施例的用于促进数据存储的示例性环境100。环境100。环境100可以包括:机架级共享电池单元102;电池控制单元104;风扇106;电源模块108;服务器110;以及存储设备140。服务器110可以包括:CPU 112、DIMM 114和116、以及网络接口卡(NIC)111;以及CPU 122、DIMM 124和126以及NIC 120。服务器110还可以包括故障检测和处置模块132,其可以管理存储设备的层之间的数据移动。服务器110可以经由网络与客户端计算设备(未示出)通信。服务器110也可以是分布式存储系统的一部分,其可以包括与多个客户端服务器(未示出)通信的多个存储服务器。服务器110还可以与单个机架相关联,并且可以共享组件102-108的资源。
存储设备140可以包括多个存储驱动器或设备。每个存储驱动器例如固态驱动器(SSD)或硬盘驱动器(HDD)可以包括控制器和用于数据存储的多个物理介质。例如,SSD可以包括用于存储的NAND物理介质,HDD可以包括具有多个用于存储的轨道的物理介质。存储设备140可以包括:硬盘驱动器(HDD)141、144、和148(分别具有控制器142、146和150);以及SSD 152、156、和160(分别具有控制器154、158和162)。
系统可以配置或保留DIMM的区域或部位以用作数据缓存,并且还可以授予SSD控制器响应于检测到故障而直接访问缓存的数据的权限。例如,DIMM 126可以包括主机DRAMDIMM存储空间128。系统可以配置主机DRAM DIMM存储空间128的保留区域/写入缓存(“缓存区域”)130。当发生故障时,例如操作系统如果崩溃,系统可以允许SSD控制器162检索缓存区域130中的任何先前缓存的数据(经由提取/读取通信170),并将检索到的数据写入NAND,如下面关于图4B所述。随后,当系统从故障中恢复时,SSD控制器可以根据需要将任何检索到的数据移回缓存区域。
此外,机架级共享电池单元102是机架级资源,其向与机架相关联的组件(包括服务器110和存储设备140)提供冗余电源。机架级共享电池单元102可提供足够的电量以支持相关组件所需的功耗,例如数十分钟。当检测到掉电时(例如,通过主电源(未示出)的电源模块108),系统可以将电源路径从主电源切换到机架级共享电池单元102。这允许系统继续在正常模式下执行任何正在进行的操作,而不需要触发或激活任何先前的掉电处理方法,例如将数据从DRAM冲到NAND。当检测到掉电时,系统还可以向系统操作员发送指示掉电的通知,这允许系统操作员花费大约几十分钟的时间来识别并实施检测到的功率问题的解决方案。在下面结合图5B描述检测和处理掉电。
现有技术(NVDIMM-N)的示例性环境和挑战
图2示出了根据现有技术的用于促进数据存储的示例性环境200,包括NVDIMM-N的结构。环境200可以表现为电路板,其包括易失性存储器(例如,DRAM)以及非易失性持久存储器(例如,NAND)。例如,环境200可以包括:电池202;NAND闪存204;NVDIMM-N控制器;分别可以通过多路复用器211-229(例如,“mux”211)访问的多个DRAM模块210-228以及电路板的金手指140。
如上所述,NVDIMM-N可以通过在故障期间将DRAM中的数据冲到NAND并且在从故障恢复时将该数据冲回NAND来为低延迟非易失性存储提供解决方案。然而,NVDIMM-N解决方案存在若干缺点,其包括:1)由于NVDIMM-N上的附加部件(例如,电池202、NAND闪存204和特定NVDIMM-N控制器206)而导致的显著财务成本;2)环境200的NVDIMM-N消耗的电量通常超过分配给每个DIMM插槽的电量,这可能导致电源和散热的负担增加;3)电池202是必须定期充电和放电的共用电池(即,由NVDIMM-N中的所有组件共享),并且会导致维护的复杂性增加;4)电池202会经历衰减并导致高的年度故障率,这会导致模块更换和维护人员的成本增加。
SSD控制器访问主机DIMM的保留区域中的数据;机架级共享电池单元
图3示出了根据本申请实施例的用于促进数据存储的示例性环境300,包括其中SSD控制器访问主机DIMM的配置保留区域中的数据的方案。环境300可以包括:CPU核302;具有配置保留区域/写入缓存(“缓存区域”)306的DRAM DIMM(即主机DRAM DIMM存储空间304);南桥308;PCIe SSD 310;NIC 312;和另一PCIe设备314。PCIe SSD 310可以包括:PCIe接口312;SSD控制器314;以及NAND 316和318。PCIe SSD 310是本文描述的实施例的简化SSD,并且不再需要其自身的掉电保护模块320或内部DRAM 322(如虚线框所示)。
在操作期间,系统可以使用(主机DRAM DIMM的)缓存区域306作为临时数据缓冲器,并且响应于故障,PCIe SSD 310(经由SSD控制器314)可以检索先前缓存在缓存区域306中的数据(经由通信330)并将数据存储在其NAND(例如,NAND 316和318)中。下面结合图4B描述响应于处理故障的示例性通信。通过使用缓存区域306作为其临时数据缓冲器,PCIeSSD 310不需要其自己的内部DRAM 322。此外,因为PCIe SSD 310可以是使用机架级共享电池的机架的一部分(如上所述图1),PCIe SSD 310不需要其自身的掉电保护模块320。
因此,环境300描绘了如何将缓存区域306与PCIe SSD 310结合使用,以及该组合如何用作使用机架级电池的非易失性块设备。
图4A呈现了根据本申请的实施例的用于促进数据存储的示例性环境400,包括在主机的正常模式中发生的通信。环境400可以包括CPU 402、具有写入缓存(保留的“缓存区域”)406的主机DRAM DIMM存储空间404、以及SSD 410,其包括PCIe接口412、SSD控制器414以及NAND 416和418。在正常操作模式期间(即,没有发生或检测到故障),应用程序可以将数据写入到写入缓存406(通过写入422通信)并立即发送数据成功提交的确认(通过提交424通信)。在随后或不同的时间,即,异步地,系统可以将缓存数据写入SSD 410的NAND416-418(经由异步写入426通信)。
图4B呈现了根据本申请的实施例的用于促进数据存储的示例性环境440,包括响应于在主机的复制模式中检测到主机中的故障而发生的通信。环境440可以包括与环境400中类似的组件。在操作期间,当发生故障或检测到故障时(例如,系统崩溃442,其停止与CPU/通过CPU的通信,系统可以从正常模式切换到复制模式。系统可以授予SSD控制器访问写入缓存406的权限。也就是说,SSD控制器414可以启动从保留缓存区域到其NAND的数据复制。SSD控制器414可以从缓存区域406中的预设地址获得或检索数据,例如,通过安装的固件(通过检索446通信),并将“检索的数据”写入SSD NAND闪存、NAND 416-418(通过写入448通信)。通信446和448在单个虚线循环通信444中一起示出。随后,当系统从故障中恢复时,系统可以根据需要将先前检索的数据从SSD NAND 416-418移回到缓存区域406。在一些实施例中,SSD控制器可以确定将先前检索的数据中的没有一个、一些或全部移回缓存区域406。该确定可以基于数据的访问频率或数据的任何其他指示。
用于数据存储的示例性方法
图5A提供了根据本申请的实施例的示出用于促进数据存储的方法的流程图500。在操作期间,系统将主机的易失性存储器的区域配置为可由与主机相关联的存储设备的控制器访问的缓存(操作502)。在一些实施例中,操作502可以由除系统之外的实体执行,在这种情况下,主机的易失性存储器的区域被配置为可由存储设备的控制器访问的缓存。系统从主机接收要存储在存储设备的非易失性存储器中的数据(操作504)。系统将数据写入缓存区域以获得缓存数据,其中将数据写入缓存区域中的一个或多个物理页(操作506)。系统向主机发送数据被成功提交的确认(操作508)。系统将缓存数据异步地写入存储设备的非易失性存储器(操作510)。系统将缓存区域中的一个或多个物理页标记为可用(操作512)。系统可以释放一个或多个物理页,使得随后可以将其他数据写入那些物理页。操作如图5B的标签A所述继续。
图5B提供了示出根据本申请的实施例的用于促进数据存储的方法的流程图520。在操作期间,如果系统未检测到掉电(判定522),则操作在操作528继续。
如果系统检测到掉电(判定522),则系统从与检测到的掉电相关联的电源切换到向机架提供电力的电池单元,该机架与主机和存储设备相关联(操作524)。机架可以进一步与多个其他主机和存储设备相关联,这些主机和存储设备都共享电池单元(例如,如图1中的机架级共享电池单元102)。系统可以向系统操作员发送指示掉电的通知(操作526),其允许系统操作员在系统消耗和耗尽由机架级共享电池单元所提供的全部电力之前调查检测到的掉电并解决问题。因此,系统可以在正常模式下继续服务器的任何正在进行的操作(操作528)。
如果系统未检测到主机的故障(判定530),则操作在判定540继续。如果系统确实检测到主机的故障(判定530),则系统从正常模式切换到复制模式(操作532),并授予控制器访问缓存区域中的缓存数据的权限(操作534)。系统通过控制器从缓存区域检索缓存数据(操作536)。系统通过控制器将缓存数据写入存储设备的非易失性存储器(操作538)。
如果写操作完成(判定540),则操作返回。如果写操作未完成(判定540),则操作在图5A的操作506继续。
示例性计算机系统和装置
图6示出了根据本申请的实施例的促进测量存储驱动器的性能的示例性计算机系统。计算机系统600包括处理器602、易失性存储器604、非易失性存储器606和存储设备608。计算机系统600可以是计算设备或存储设备。易失性存储器604可以包括用作管理存储器的存储器(例如,RAM),并且可以用于存储一个或多个存储器池。易失性存储器604可以包括配置的或预留的缓存区域,如本文所述。非易失性存储器可以是与计算机系统600相关联的存储设备(例如,SSD)的一部分,并且可以包括NAND闪存物理介质。计算机系统600可以耦合到显示设备610、键盘612和定点设备614。存储设备608可以存储操作系统616、内容处理系统618和数据634。
内容处理系统618可以包括指令,当由计算机系统600执行时,该指令可以使计算机系统600执行本公开中描述的方法和/或过程。例如,内容处理系统618可以包括用于接收和发送数据包的指令,包括写或读数据的请求、I/O请求、要编码和存储的数据、数据块或页、或者缓存数据。
内容处理系统618还可以包括用于将主机的易失性存储器的区域配置为可由与主机(区域保留模块622)相关联的存储设备的控制器访问的缓存的指令。例如,内容处理系统618可以包括用于接收要存储在存储设备的非易失性存储器中的数据的指令(通信模块620)。内容处理系统618可以包括用于将数据写入到缓存区域以获得缓存数据的指令(第一数据写入模块624)。内容处理系统618可以包括用于响应于检测到主机的故障的指令(故障管理模块626):通过控制器从缓存区域检索缓存数据(缓存数据检索模块628);以及通过控制器将缓存数据写入存储设备的非易失性存储器(第二数据写入模块632)。
内容处理系统618可以包括用于向主机发送数据被成功提交的确认的指令(通信模块620)。内容处理系统618可以包括用于将缓存数据异步地写入存储设备的非易失性存储器的指令(第二数据写入模块632)。
内容处理系统618可以包括用于响应于检测到掉电的指令(故障管理模块626):从与检测到的掉电相关联的电源切换到向机架提供电力的电池单元,该机架与主机和存储设备相关联(电池管理模块630);向系统操作员发送指示检测到的掉电的通知(通信模块620);以及在正常模式下继续主机的任何正在进行的操作(故障管理模块626)。
数据634可以包括作为输入所需的任何数据,或者由本公开中描述的方法和/或过程生成作为输出的任何数据。具体地,数据634可以至少存储:要存储、写入、加载、移动、检索、访问、删除或复制的数据;数据缓存;临时数据缓冲器;保留或预先配置的区域;写入数据的请求;完成I/O操作的延迟;存储设备的控制器的指示器;数据的物理页;数据已成功提交的确认;检测到的掉电的指示器;正常模式;复制模式;机架、主机或存储设备的指示器;机架级共用电池单元的指示器;指示检测到的掉电的通知;授予控制器访问主机DIMM保留区域的权限的指示器;故障或故障已修复的指示器。
图7示出了根据本申请的实施例的促进测量存储驱动器的性能的实施例的装置700。装置700包括可经由有线、无线、量子光或电通信信道彼此通信的多个单元或装置。装置700可以使用一个或多个集成电路来实现,并且可以包括比图7中所示的更少或更多的单元或装置。此外,装置700可以集成在计算机系统中,或者实现为能够与其他计算机系统和/或设备通信的单独设备。具体地,装置700可以包括执行与图6的计算机系统600的模块620-632类似的功能或操作的单元702-714,包括:通信单元702;区域保留单元704;第一数据写入单元706;故障管理单元708;缓存数据检索单元710;电池管理单元712;以及第二数据写入单元714。
本详细描述中描述的数据结构和代码通常存储在计算机可读存储介质上,该计算机可读存储介质可以是可以存储供计算机系统使用的代码和/或数据的任何设备或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁盘和光存储设备,例如磁盘驱动器、磁带、CD(光盘)、DVD(数字通用盘或数字视频盘)、或能够存储计算机可读介质的现在已知或以后开发的其他介质。
在详细描述部分中描述的方法和过程可以体现为代码和/或数据,其可以存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行体现为数据结构和代码并存储在计算机可读存储介质中的方法和过程。
此外,上述方法和过程可以包括在硬件模块中。例如,硬件模块可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)以及现在已知或以后开发的其他可编程逻辑器件。激活硬件模块后,硬件模块将执行硬件模块中包含的方法和过程。
已经出于说明和描述的目的呈现了本文描述的前述实施例。它们并非旨在穷举或将本文所述的实施例限制于所公开的形式。因此,许多修改和变化对于本领域技术人员来说是显而易见的。另外,以上公开内容并非旨在限制本文描述的实施例。这里描述的实施例的范围由所附权利要求限定。

Claims (18)

1.一种用于促进数据存储的计算机实施方法,所述方法包括:
接收要存储在与主机相关联的存储设备的非易失性存储器中的数据,
其中所述主机的易失性存储器的区域被配置为可由所述存储设备的控制器访问的缓存;
将所述数据写入缓存区域以获得缓存数据;
向所述主机发送所述数据被成功提交的确认;
将所述缓存数据异步写入所述存储设备的非易失性存储器中;以及
响应于检测到所述主机的故障:
通过所述控制器从所述缓存区域检索所述缓存数据;以及
通过所述控制器将所述缓存数据写入所述存储设备的非易失性存储器。
2.根据权利要求1所述的方法,其中将所述数据写入所述缓存区域以获得所述缓存数据还包括将所述数据写入所述缓存区域中的一个或多个物理页,并且其中所述方法还包括:
在将所述缓存数据异步写入所述存储设备的非易失性存储器中之后,将所述缓存区域中的一个或多个物理页标记为可用。
3.根据权利要求1所述的方法,其中将所述数据写入所述缓存区域、发送所述确认、并且将所述缓存数据异步写入所述非易失性存储器中是在正常模式下被执行的。
4.根据权利要求1所述的方法,还包括:
响应于检测到掉电:
将与检测到的掉电相关联的电源切换到向机架提供电力的电池单元,所述机架与所述主机和所述存储设备相关联;
向系统操作员发送指示检测到的掉电的通知;以及
在正常模式下继续所述主机的任何正在进行的操作。
5.根据权利要求4所述的方法,
其中所述机架还与多个其他主机和多个其他存储设备相关联,并且
其中所述主机、所述其他主机、所述存储设备、和所述其他存储设备共享所述电池单元。
6.根据权利要求5所述的方法,
其中所述存储设备包括固态驱动器SSD,
其中所述存储设备的非易失性存储器包括与非NAND物理介质,并且
其中所述存储设备和与所述机架相关联的所述其他存储设备各自都不包括自身掉电保护模块或者自身易失性存储器。
7.根据权利要求1所述的方法,其中响应于检测所述主机的故障,所述方法还包括:
从正常模式切换到复制模式;以及
对所述控制器授予访问所述缓存区域中的缓存数据的权限,
其中授予所述控制器权限、所述控制器检索所述缓存数据、并且所述控制器将所述缓存数据写入所述存储设备的非易失性存储器是在所述复制模式下被执行的。
8.根据权利要求7所述的方法,还包括:
响应于检测到所述故障被修复,从所述复制模式切换到所述正常模式。
9.一种用于促进数据存储的计算机系统,所述系统包括:
处理器;以及
与所述处理器连接并存储指令的存储器,当所述指令由所述处理器执行时,使得所述处理器执行方法,所述方法包括:
接收要存储在与主机相关联的存储设备的非易失性存储器中的数据,
其中所述主机的易失性存储器的区域被配置为由所述存储设备的控制器可访问的缓存;
将所述数据写入缓存区域以获得缓存数据;
向所述主机发送所述数据被成功提交的确认;
将所述缓存数据异步写入所述存储设备的非易失性存储器中;以及
响应于检测到所述主机的故障:
通过所述控制器从所述缓存区域检索所述缓存数据;以及
通过所述控制器将所述缓存数据写入所述存储设备的非易失性存储器中。
10.根据权利要求9所述的计算机系统,其中将所述数据写入所述缓存区域以获得所述缓存数据还包括将所述数据写入所述缓存区域中的一个或多个物理页,并且其中所述方法还包括:
在将所述缓存数据异步写入所述存储设备的非易失性存储器中之后,将所述缓存区域中的一个或多个物理页标记为可用。
11.根据权利要求9所述的计算机系统,其中将所述数据写入所述缓存区域、发送所述确认、并且将所述缓存数据异步写入所述非易失性存储器中是在正常模式下被执行的。
12.根据权利要求9所述的计算机系统,其中所述方法还包括:
响应于到检测掉电:
将与检测到的掉电相关联的电源切换到向机架提供电力的电池单元,所述机架与所述主机和所述存储设备相关联;
向系统操作员发送指示检测到的掉电的通知;以及
在正常模式下继续所述主机的任何正在进行的操作。
13.根据权利要求12所述的计算机系统,
其中所述机架还与多个其他主机和多个其他存储设备相关联,并且
其中所述主机、所述其他主机、所述存储设备、和所述其他存储设备共享所述电池单元。
14.根据权利要求13所述的计算机系统,
其中所述存储设备包括固态驱动器SSD,
其中所述存储设备的非易失性存储器包括与非NAND物理介质,并且
其中所述存储设备和与所述机架相关联的所述其他存储设备各自都不包括自身掉电保护模块或者自身易失性存储器。
15.根据权利要求9所述的计算机系统,其中响应于检测到所述主机的故障,所述方法还包括:
从正常模式切换到复制模式;以及
对所述控制器授予访问所述缓存区域中的所述缓存数据的权限,
其中对所述控制器授予权限、所述控制器检索所述缓存数据、并且所述控制器将所述缓存数据写入所述存储设备的非易失性存储器是在所述复制模式下被执行的。
16.根据权利要求15所述的计算机系统,其中所述方法还包括:
响应于检测到所述故障被修复,从所述复制模式切换到所述正常模式。
17.一种用于促进数据存储的装置,所述装置包括:
通信模块,所述通信模块被配置为接收要存储在与主机相关联的存储设备的非易失性存储器中的数据,
其中所述主机的易失性存储器的区域被配置为由所述存储设备的控制器可访问的缓存;
第一数据写入模块,所述第一数据写入模块被配置为将所述数据写入缓存区域以获得缓存数据;
在所述第一数据写入模块将所述数据写入所述缓存区域以获得所述缓存数据之后,所述通信模块还被配置为向所述主机发送所述数据被成功提交的确认;以及,
第二数据写入模块,所述第二数据写入模块被配置为将所述缓存数据异步写入所述存储设备的非易失性存储器中;
故障检测模块,所述故障检测模块被配置为检测所述主机的故障;以及
响应于所述故障检测模块检测到所述主机的故障:
缓存数据检索模块,所述缓存数据检索模块被配置为从所述缓存区域检索所述缓存数据;以及
所述第二数据写入模块被配置为将所述缓存数据写入所述存储设备的非易失性存储器中。
18.根据权利要求17所述的装置,
其中所述故障检测模块还被配置为检测掉电,并且其中:
响应于所述故障检测模块检测到掉电:
其中所述故障检测模块还被配置为将与检测到的掉电相关联的电源切换为向机架提供电力的电池单元,所述机架与所述主机和所述存储设备相关联;
其中所述通信模块还被配置为向系统操作员发送指示检测到掉电的通知;以及
其中所述装置被配置为在正常模式下继续所述主机的任何正在进行的操作;以及
其中所述存储设备是固态驱动器SSD,
其中所述存储设备的非易失性存储器包括与非NAND物理介质,并且
其中所述存储设备不包括自身掉电保护模块或者自身易失性存储器。
CN201910712159.9A 2018-08-02 2019-08-02 用于促进dram数据缓存转储和机架级电池备份的系统和方法 Active CN110795279B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862713908P 2018-08-02 2018-08-02
US62/713,908 2018-08-02

Publications (2)

Publication Number Publication Date
CN110795279A CN110795279A (zh) 2020-02-14
CN110795279B true CN110795279B (zh) 2024-03-22

Family

ID=69227445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910712159.9A Active CN110795279B (zh) 2018-08-02 2019-08-02 用于促进dram数据缓存转储和机架级电池备份的系统和方法

Country Status (2)

Country Link
US (1) US20200042066A1 (zh)
CN (1) CN110795279B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725912B2 (en) * 2018-12-19 2020-07-28 Micron Technology, Inc. Power loss protection in memory sub-systems
CN111625389B (zh) * 2020-05-28 2024-01-19 山东海量信息技术研究院 一种vr的故障数据获取方法、装置及相关组件
US11663130B1 (en) * 2020-12-11 2023-05-30 Marvell Asia Pte, Ltd. Cache replacement mechanisms for speculative execution

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101213533A (zh) * 2005-05-04 2008-07-02 Nxp股份有限公司 存储器控制器、控制存储器存取的方法以及包括存储器控制器的系统
CN106775472A (zh) * 2016-12-09 2017-05-31 郑州云海信息技术有限公司 一种控制器缓存方法、存储控制器及多控制器存储系统
CN106997324A (zh) * 2015-12-14 2017-08-01 三星电子株式会社 非易失性存储器模块、具有其的计算系统及其操作方法
CN107480074A (zh) * 2017-08-31 2017-12-15 郑州云海信息技术有限公司 一种缓存方法、装置及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478248B2 (en) * 2002-11-27 2009-01-13 M-Systems Flash Disk Pioneers, Ltd. Apparatus and method for securing data on a portable storage device
US10817421B2 (en) * 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9542327B2 (en) * 2014-07-22 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Selective mirroring in caches for logical volumes
US9588571B2 (en) * 2015-07-08 2017-03-07 Quanta Computer Inc. Dynamic power supply management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101213533A (zh) * 2005-05-04 2008-07-02 Nxp股份有限公司 存储器控制器、控制存储器存取的方法以及包括存储器控制器的系统
CN106997324A (zh) * 2015-12-14 2017-08-01 三星电子株式会社 非易失性存储器模块、具有其的计算系统及其操作方法
CN106775472A (zh) * 2016-12-09 2017-05-31 郑州云海信息技术有限公司 一种控制器缓存方法、存储控制器及多控制器存储系统
CN107480074A (zh) * 2017-08-31 2017-12-15 郑州云海信息技术有限公司 一种缓存方法、装置及电子设备

Also Published As

Publication number Publication date
US20200042066A1 (en) 2020-02-06
CN110795279A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
US9304901B2 (en) System and method for handling I/O write requests
US9767017B2 (en) Memory device with volatile and non-volatile media
US8296534B1 (en) Techniques for using flash-based memory in recovery processing
US7793061B1 (en) Techniques for using flash-based memory as a write cache and a vault
US9672131B2 (en) False power failure alert impact mitigation
US7930588B2 (en) Deferred volume metadata invalidation
CN110795279B (zh) 用于促进dram数据缓存转储和机架级电池备份的系统和方法
US10735500B2 (en) Application server to NVRAM path
US10235069B2 (en) Load balancing by dynamically transferring memory range assignments
US10565108B2 (en) Write-back cache for storage controller using persistent system memory
US10234929B2 (en) Storage system and control apparatus
US20230251931A1 (en) System and device for data recovery for ephemeral storage
CN113641303A (zh) 用于故障弹性存储的系统、方法和设备
US11416403B2 (en) Method and apparatus for performing pipeline-based accessing management in storage server with aid of caching metadata with hardware pipeline module during processing object write command
US10437471B2 (en) Method and system for allocating and managing storage in a raid storage system
US11586360B2 (en) Hybrid memory mirroring using storage class memory
US20220011939A1 (en) Technologies for memory mirroring across an interconnect
CN117149062A (zh) 一种磁带损坏数据的处理方法以及计算装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant