CN107066404B - 存储装置、存储系统和操作存储装置的方法 - Google Patents
存储装置、存储系统和操作存储装置的方法 Download PDFInfo
- Publication number
- CN107066404B CN107066404B CN201710045802.8A CN201710045802A CN107066404B CN 107066404 B CN107066404 B CN 107066404B CN 201710045802 A CN201710045802 A CN 201710045802A CN 107066404 B CN107066404 B CN 107066404B
- Authority
- CN
- China
- Prior art keywords
- storage device
- host
- interface
- memory device
- psd
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
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)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Advance Control (AREA)
- Stored Programmes (AREA)
Abstract
公开一种存储装置、存储系统和操作存储装置的方法。所述存储装置包括:应用容器,包含一个或多个应用;多态存储装置(PSD)内核,被配置为从主机接收包括数据、消息和命令的数据包,并基于包括在所述多个包中的命令将所述多个包路由到应用容器中的应用;PSD接口层,被配置为提供一个或多个应用与PSD内核之间的接口。存储装置可根据经由PSD控制接口接收的控制命令,从第一类型的存储装置转换为第二类型的存储装置。
Description
本申请要求于2016年2月2日提交的第62/290,295号美国专利申请和2016年4月19日提交的第15/133,085号美国专利申请的权益和优先权,所述美国专利申请的公开通过引用完整地包含于此。
技术领域
本公开总体涉及存储装置,更具体地说,涉及一种可经由装置控制接口转换为不同装置的多态存储装置。
背景技术
与传统的数据存储装置(诸如,硬盘驱动器)相比,固态硬盘(SSD)提供更多的复杂性和伪通用可编程性。例如,基于闪存的SSD越来越多地封装更强大的CPU和更高容量的内存和存储器,并使那些资源对用户应用可用。此外,对于数据密集型应用,普遍认为将代码移动到数据要远远有效于将数据移动到代码。因此,有效的数据处理系统通过使用诸如早期的选择下推和早期的聚合(或预聚合)的技术来试图将代码下推到尽可能远的查询-处理管道。相似地,并行的或分布式的数据处理系统可运行尽可能多的与保持数据的节点接近的查询。
传统上,代码卸载技术已经通过以专门的(ad-hoc)方式调整SSD的固件和主机的操作系统(OS)而被实现。尽管永久存储、易失性存储和处理之间的边界正日益变得模糊,但是主机OS、库、固定协议和存储装置抽象层之间的现有功能的分离通常引入冗余的实现并可能成为瓶颈或浪费的资源消耗者。
非SQL(NoSQL)数据库(DB)(例如,键值存储、文档存储、图形数据库、对象数据库等)在现代计算机系统中被广泛使用。与关系DB相比,NoSQL DB简单、灵活和轻量,并可提供优秀的可扩展性和具有一定工作负荷的大的性能增益。快速移动到云计算和具有大数据的大系统有助于NoSQL DB的日益流行。
发明内容
根据一个实施例,一种存储装置包括:应用容器,包含一个或多个应用;多态存储装置(PSD)内核,被配置为从主机接收包括数据、消息和命令的多个包,并基于包括在所述多个包中的命令将所述多个包路由到应用容器中的应用;PSD接口层,被配置为提供一个或多个应用与PSD内核之间的接口。
根据另一实施例,一种存储系统包括:主机;多态存储装置(PSD);PSD接口,用于提供主机与PSD之间的接口。PSD包括:应用容器,包含一个或多个应用;PSD内核,被配置为从主机接收包括数据、消息和命令的多个包,并基于包括在所述多个包中的命令将所述多个包路由到应用容器中的应用;PSD接口层,被配置为提供一个或多个应用与PSD内核之间的接口。
根据另一实施例,一种操作存储装置的方法包括:将一个或多个应用存储在存储装置的应用容器中;从主机接收包括数据、消息和命令的多个包;基于包括在所述多个包中的命令将所述多个包路由到应用容器中的应用;运行存储装置上的PSD内核以根据经由PSD接口从主机接收的控制命令来配置存储装置的一个或多个硬件;操作由PSD内核配置的存储装置。
附图说明
作为本说明书的一部分而被包括的附图示出目前优选的实施例,并与上面给出的一般描述和下面给出的优选的实施例的详细描述一起用于解释和教导在此描述的原理。
图1示出传统的NoSQL数据库(DB)系统;
图2示出针对另一传统的NoSQL DB系统的系统架构的示例;
图3示出示例存储装置的存储器控制器的层;
图4示出根据一个实施例的包括多态存储装置的示例存储系统的框图;
图5示出根据一个实施例的示例多态存储装置的固件堆栈;
图6A示出根据一个实施例的以集中方式迁移和复制应用的示例;
图6B示出根据一个实施例以分散方式迁移和复制应用的另一示例。
附图不必按比例绘制,并且贯穿附图,相似的结构或功能的元件出于说明的目的通常由相同的参考标号表示。附图仅意在使在此描述的各种实施例的描述容易。附图不描述在此公开的教导的每一方面,也不限制权利要求的范围。
具体实施方式
在此公开的特征和教导中的每个可单独使用,或连同其他特征和教导来使用,以提供可经由装置控制接口转换为不同装置的多态存储装置。利用多个这些额外的特征和教导的典型的示例参照附图被更详细地单独或一起描述。本具体实施方式仅意在教导本领域技术人员用于实现本教导的多个方面的进一步细节,并不意在限制权利要求的范围。因此,上面公开的特征的组合在具体实施方式中可不必在最广泛的意义上实现教导,而只是被教导以描述本教导的特定典型的示例。
在下面的描述中,仅出于解释的目的,阐明具体的术语以提供本公开的彻底的理解。然而,本领域技术人员将清楚的是,不需要这些具体的细节来实现本公开的教导。
在此详细描述的一些部分按照以计算机存储器中的数据比特的操作的算法和符号表示被呈现。这些算法的描述和表示由数据处理领域的技术人员使用以有效地将他们的工作的内容传达给本领域其他技术人员。算法在这里通常被构思为导致期望的结果的步骤的自相一致的序列。步骤是需要物理量的物理操纵的步骤。通常(虽然不是必要地),这些量采取能够被存储、转移、组合、比较和另外操纵的电的或磁的信号的形式。已经证明,有时方便(主要出于共同使用的原因)将这些信号称作比特、值、元素、符号、字符、项、数字等。
然而,应该被牢记的是,所有的这些和相似的术语将与适当的物理量相关,并仅仅是应用于这些量的方便的标签。除非另外具体地阐明,否则从下面的讨论将清楚的理解,贯穿描述,利用术语(诸如,“处理”、“运算”、“计算”、“确定”、“显示”等)的讨论表示计算机系统或类似的电子计算装置的动作和处理,计算机系统或类似的电子计算装置操纵在计算机系统的寄存器和存储器中表示为物理(电子)量的数据并将所述数据变换为在计算机系统的存储器或寄存器或其他这样的信息存储器、传输或显示装置中类似地表示为物理量的其他数据。
在此提出的算法不是固有地与任何特定的计算机或其他设备相关。各种通用的系统、计算机服务器或个人计算机可根据在此的教导与程序一起使用,或者可证明便于构建更为专用的用于执行要求的方法步骤的设备。针对各种这些系统的要求的结构将从下面的描述而清楚。将理解,各种编程语言可用于实现在此描述的公开的教导。
此外,为了提供本教导的额外有用的实施例,典型的示例和从属权利要求的各种特征可以以没有具体和明确列举的方式被组合。还应清楚说明的是,所有的数值范围或实体的组的指示出于原始的公开的目的以及出于限制要求保护的主题的目的公开每一可能的中间值或中间实体。还应清楚说明的是,在附图中示出的组件的尺寸和形状被设计为帮助理解本教导如何被实现,但不意在限制在示例中示出的尺寸和形状。
图1示出传统的NoSQL数据库(DB)系统。NoSQL DB系统100包括重叠的组件和冗余的映射。NoSQL DB系统100包括:通过主机至SSD接口190进行通信的主机110和存储装置150。主机110包括:具有用于键-LBA(逻辑块地址)转换(key to LBA translation)的映射表121的NoSQL DB 120、操作系统130和SSD接口140。主机至SSD接口190的示例包括(但不限于):快速外围组件互联(PCIe)、串行SCSI(SAS)、以太网和串行AT附件(SATA)。存储装置150包括:存储器控制器160和非易失性存储器170。存储器控制器160包括:主机接口161、LBA-PBA映射表162、纠错码(ECC)存储器163和用于与非易失性存储器170接口连接的闪存接口164。主机110和存储装置150通过主机至SSD接口190进行命令、LBA和数据通信。
存在包括针对键-LBA映射的第一映射层和针对LBA-PBA映射的第二映射层的两个冗余的映射层。传统上,主机110和存储装置150基于用于指定存储装置150中的存储位置的地址的LBA来互相通信。为了兼容性,存储装置150使用LBA工作,存储器控制器160的闪存转换层(FTL)维持LBA-PBA转换。FTL使用映射表162将逻辑块地址(LBA)转换为物理块地址(PBA),并访问由映射表162指示的非易失性存储器170的物理块,以对非易失性存储器170的物理块执行请求的操作(例如,读、写、读/修改/写(RMW)和删除)。
如果在主机与存储装置之间做出适当的安排,则可消除主机110中的键-LBA映射。图2示出针对另一传统的NoSQL DB系统的系统架构的示例。NoSQL DB系统200可包括:通过主机至SSD接口290进行通信的主机210和存储装置250。主机210可包括:NoSQL用户应用程序接口(API)220、操作系统230和SSD接口240。与图1的主机至SSD接口190相似,主机至SSD接口290可为PCIe、SAS、以太网、SATA等中的任何一个。存储装置250可包括:用于与与非易失性存储器270接口连接的存储器控制器260。存储器控制器260可包括:主机接口261、集成NoSQL DB的FTL 262、纠错码(ECC)存储器263和闪存接口264。集成NoSQL DB的FTL 262可消除在主机210中的键-LBA映射,因此NoSQL DB系统200与图1的需要两个冗余的映射层的NoSQL DB系统100相比可具有更好的聚合性能。
主机210和存储装置250可通过主机至SSD接口290进行查询命令、键和数据通信。非易失性存储器270可为包括(但不限于)闪存存储器、相变RAM(PRAM)、自旋-转移矩磁性随机存取存储器(STT-MRAM)和电阻式RAM(ReRAM)的各种类型的非易失性存储器。
定义存储装置的行为的现有的多态存储装置的固件可经由固件更新被重新配置。现有的多态存储装置可通过固件更新被转换为与原始的配置不同类型的装置。例如,现有的多态存储器最初被配置为通用存储装置。它可通过固件更新被转换为专用存储装置(诸如,存储内计算装置、键值存储装置、Hadoop分布式文件系统(HDFS)装置、对象存储装置等)。
图3示出示例存储装置的存储器控制器的层。存储器控制器360具有四层,即:主机接口层(HIL)310、闪存转换层(FTL)320、虚拟闪存层(VFL)330和闪存接口层(FIL)340。这四层可在可于存储装置的一个或多个嵌入式处理器上运行的存储装置的固件中被实现。主机接口层310可实现总线接口协议(诸如,SATA、SAS或快速PCI(PCIe))。闪存转换层320负责将主机OS中的逻辑块地址(LBA)映射到存储装置的非易失性存储器中的物理块地址(PBA)。虚拟闪存层330和闪存接口层340负责存储装置的非易失性存储器与DRAM存储器之间的数据转移。存储装置的固件可提供包括ECC逻辑和直接存储器存取(DMA)的其他功能。为了提高非易失性存储器的I/O性能,存储器控制器360可使用芯片级和/或通道级的交织技术。
本公开提供可经由装置控制接口从一个装置类型变换为另一装置类型的多态存储装置。图4示出根据一个实施例的包括多态存储装置的示例存储系统的框图。存储系统400包括可经由多态存储装置(PSD)接口490通信的主机410和PSD 450。主机410可包括:用于存储可用于重新配置PSD 450的多个装置驱动程序411a至411c的装置驱动程序池413。PSD 450可包括:PSD内核455、用于与应用451接口连接的PSD接口层(PIL)452、包括多个CPU461a至461d的可重新配置和可扩展的硬件、非易失性存储器470和DRAM 480。PSD 450还可包括用于提供允许应用451与可重新配置和可扩展的硬件通信的装置驱动程序接口的硬件抽象层456。尽管本示例示出PSD 450包括可重新配置和可扩展的硬件,但是应当理解,在不脱离本公开的范围的情况下,PSD 450可包括非可重新配置和非可扩展的硬件。可重新配置和可扩展的硬件可提供PSD 450的灵活性和可编程性。
根据一个实施例,主机侧接口415可包括:第一用户接口420、第二用户接口421和用于PSD 450的PSD控制接口422。例如,第一用户接口420可提供到文件系统(FS)和/或数据库(DB)等的接口。文件系统和数据库所需要的输入/输出(I/O)控制命令(例如,装置控制命令和元数据)可经由第一用户接口420被发送到主机410并且经由第一用户接口420从主机410被发送。例如,第二用户接口421可提供到键值和/或对象存储的接口,并提供针对键值和/或对象存储的查询431(例如,放置、获取)。PSD控制接口422可经由PSD接口490将命令和消息432提供给主机410和PSD 450。通过使用主机410的装置驱动程序池413中的多个装置驱动程序411a至411c之一,PSD 450可根据从PSD控制接口422接收的命令被配置(或重新配置)。那些经由PSD控制接口422的命令可控制在PSD上运行的应用451a至451d。在此,在PSD上运行的应用451a至451d还被称为PSD感知应用,这是因为它们可使用经由PSD控制接口422接收的命令来配置PSD 450,并将PSD 450从第一类型的存储装置变换为第二类型的存储装置。PSD控制接口422还可提供对存储在主机侧装置驱动程序池413中的装置驱动程序和它们的装置驱动程序管理器的控制。
根据一个实施例,PSD接口490可仿真用于向后兼容性的主机侧用户接口420和421或者用于管理和控制在PSD 450上运行的PSD感知应用451a至451d的PSD控制接口422。供应商特定的命令可经由PSD接口490被提供给PSD感知应用451a至451d。这样的供应商特定的命令的示例包括(但不限于):“创建”、“开始/停止”、“暂停/继续”等。PSD 450可与主机410通信,并可在没有固件更新的情况下添加、移除和改变功能或应用。
根据一个实施例,在主机410和PSD 450之间的PSD接口490可在PSD 450内提供卸载或集成的功能。例如,PSD感知应用451a至451d或主机侧应用可与PSD 450的用户接口而不是与存储系统接口交互,其中,存储系统接口为通常由主机410的主机OS和装置驱动程序411a至411c提供的接口。传统上,在主机410上运行的主机侧应用在主机410上使用应用逻辑来实现它的功能。根据一个实施例,在主机410上运行的主机侧应用的应用逻辑可被分发到PSD 450。例如,PSD 450的集成的键值FTL可在主机侧应用虚拟地移除所有逻辑,并仅有针对键值NoSQL操作的用户API被提供给PSD 450的PSD内核455。其余的操作可在PSD 450内被处理,并且PSD感知应用451a至451d可使用经由PSD接口490接收的命令和消息来运行键值NoSQL操作。
因为PSD 450可同时处理多于一个应用(例如,451a至451d),所以对应的主机侧装置驱动程序411可存在于装置驱动程序池413中。如果PSD 450仅具有一个装置驱动程序的活动实例,则装置驱动程序池413以与传统存储系统相似的方式仅使用一个装置驱动程序411来工作。如在图4中所示,PSD 450可使用控制PSD 450内的应用451的实例的PSD控制接口422。从这个意义上说,因为PSD控制接口422提供应用451的控制机制而不是直接与应用451进行交互,所以PSD控制接口422的提供类似于虚拟机(VM)管理器或管理程序。
多个应用451可在PSD 450上同时运行。然而,主机410与PSD 450之间的物理通信通道的数量被限制为物理装置的数量。为此,每一应用451与PSD 450内的应用容器之间的通信可在PSD 450内被复用和解复用。PSD接口490可为包括(但不限于)SATA、SAS、NVMe、以太网、光纤通道(FC)、无限带宽(IB)、远程直接存储器访问(RDMA)等的任何物理接口。主机侧装置驱动程序池413还可满足复用的需要以将所有消息/命令/数据嵌入/封装入提供物理接口的现有的通信协议。在一些实施例中,PSD的自己的协议可用于减少将数据过载到现有协议上的开销。
图5示出根据一个实施例的示例多态存储装置的固件堆栈。PSD固件堆栈500包括:闪存控制器层535、PSD内核555、PSD接口层552和应用容器510。应用容器510可包括一个或多个应用511a、511b和511c。在本示例中,应用511c表示在PSD上运行的当前租户,以将其自身与其他应用511a和511b相区别。在下文中,应用511a、511b和511c可共同被称为应用511。应用511可包括:主机协议和消息处理器513、应用特定的地址转换逻辑(ATL)514、应用特定的损耗均衡逻辑(wear leveling logic,WL)515和应用特定的垃圾回收逻辑(GC)516。
例如,应用511可为键值缓存应用、HDFS应用和MongoDB应用之一。针对键值缓存应用,ATL 514可为集成索引的FTL,并且GC 516可通过利用最近最少使用(LRU)列表而更有效。针对HDFS应用,ATL 514可从它的存储器占用的角度(例如,它的间隔尺寸为64MB)被配置为更小。因此,它的应用特定的ATL 514是必须的。另外,针对一些HDFS应用,如果GC 516和WL 515包含很多(即便不是全部)冷数据(即,一旦创建就从未更新的数据),则GC 516和WL 515可被最小化(或优化)。针对MongoDB应用,一些主机操作可被卸载到ATL 514和GC516。每一应用511可具有不同的ATL 514、GC 516和WL 515,以适合于应用511的特性和需求。
闪存控制器层535包括:虚拟闪存层(VFL)530和闪存接口层(FIL)540。闪存控制器层535可提供硬件支持,以便为PSD提供增加的效率。根据在PSD上运行的应用511,闪存控制器层535可优化可重新配置和可扩展的硬件的使用,以将有效的接口提供给闪存存储器。闪存控制器层535可通过固件更新而被更新,以支持应用511的功能。
从主机接收的包(例如,数据、消息和命令)被首先发送到PSD内核555。PSD内核555的上下文(CTX)管理器556和消息路由器557负责路由从主机接收的包。CTX管理器556知道PSD上的当前租户应用及其特性。CTX管理器556可包括用于跟踪当前运行的应用和其他现有的应用二者的应用ID的表以及相关的ATL 514、WL 515和GC 516的配置。CTX管理器556还负责控制当前租户应用(诸如,开始/停止、继续和暂停等)的执行和活跃度(例如,上下文控制)。PSD内核555可解封装路由的包并据此处理路由的包。例如,如果用于“创建”应用511的命令被接收,则CTX管理器556可使用主机提供的数据创建应用511的应用上下文。主机提供的数据可包括:ATL 514、WL 515、GC 516的配置概要文件或逻辑,以及在PSD上可执行的应用511的二进制代码和包括PSD库的元数据,从而允许应用511与PSD内核555通信。
如果从主机接收的消息与在PSD上注册的应用511有关并且注册的应用511的上下文是活跃的,则PSD内核555可将消息以及对应的数据和/或命令路由到注册的应用511。如果注册应用511的上下文不是活跃的,则PSD内核555将错误消息返回到主机。如果未注册的或未识别的消息从主机被接收,则PSD内核555可将其他错误消息发送到主机。
CTX管理器556负责控制应用容器510。CTX管理器556可创建应用511的应用上下文,并将PSD的硬件资源分发到ATL 514、WL 515和GC 516并管理PSD的硬件资源。CTX管理器556可以以完全虚拟化的方式(类似于虚拟机(VM))或者以半虚拟化的方式被实现。在一个实施例中,应用511可在通用存储装置上作为一般的固件运行而无需实现PSD内核555。在另一实施例中,应用511可作为了解由PSD提供的功能而专门为PSD设计的新应用来运行。
一些应用511可需要应用特定的损耗均衡(WL)和/或垃圾回收(GC)逻辑。这些逻辑可能对PSD的性能是关键的。PSD内核555提供包括应用特定的WL/GC接口的PSD库和通用API以与PSD内核555接口连接。在后一种情况下,应用511可注册那些提供的库而不是实现它们自己的WL/GC逻辑515和516。在前一种情况下,PSD内核555通过将所有的权限提供给PSD固件堆栈500的层中的应用511,而不做与WL/GC有关的任何事。
应用511可经由PSD接口层552与下层的PSD内核555通信。PSD接口层552可提供通信API和通过PSD接口层552传送到PSD的包(例如,消息、命令和数据)。
应用511可在单个PSD上以应用上下文的形式共存。应用容器510可保持可为激活或空闲的应用511的应用上下文。应用511可包括:应用逻辑、主机协议和消息处理器层513、应用特定的地址转换逻辑(ATL)514、损耗平衡(WL)逻辑515、垃圾回收(GC)逻辑516等。在一些实施例中,WL逻辑515和GC逻辑516是可选的。例如,键值存储应用可具有针对核心逻辑的它们的键值结构和算法。主机协议和消息处理器层513可与核心逻辑的功能的包装器一样简单。在键值存储应用的情况下,应用特定的ATL 514可被合并为集成的FTL(例如,图2的集成NoSQL DB的FTL 262)。
尽管在现代SSD上没有额外的逻辑从硬件的角度被必须需要,但是下面的因素可加速PSD的执行。可加速PSD的执行的因素的示例包括(但不限于):多个转换后备缓冲器(TLB)或更大的TLB、具有应用容器ID的缓存、具有多个体以减少冲突的存储器和/或多个按照双列直插存储器模块(DIMM)的寄存器、针对直接存储器存取(DMA)的多个灵活的支持、更多数量的尚未解决的DMA、针对从嵌入的处理器虚拟化的支持、应用上下文感知的闪存控制器、了解多态的细粒度功率控制、硬件辅助消息路由等。在另一示例中,PSD可包括现场可编程门阵列(FPGA)以提供加速的应用特定的功能。应用(诸如,机器学习内核)、在大数据处理中的科学计算(诸如,神经网络、矩阵运算、快速傅里叶变换(FFT)、模式匹配等)可使用FPGA而不是在通用装置的CPU上运行代码来加速。
根据一个实施例,存储系统400可针对单个PSD 450或多个PSD提供多个实例(应用)。此外,存储系统400可支持在多个多态存储装置450之间的迁移和复制。
图6A和图6B示出在多个PSD之间迁移和复制应用的示例。多个多态存储装置650a至650c可支持以集中方式或分散方式中的任一方式的应用迁移和复制。
图6A示出根据一个实施例的以集中方式迁移和复制应用的示例。PSD控制接口622可提供命令和消息432以在多个PSD 650a至650c之间执行迁移和复制。在集中的实现中,迁移和复制操作可通过PSD 650a至650c的CTX管理器(例如,图5的CTX管理器556)和PSD控制接口622被实现。PSD控制接口653可派生用于执行集中的迁移和复制操作的接口653。
图6B示出根据一个实施例的以分散方式迁移和复制应用的另一示例。在分散的实现中,每一多态存储装置能够基于相邻装置之间的点对点通信操作应用迁移/复制。
根据一个实施例,一种存储装置包括:应用容器,包含一个或多个应用;多态存储装置(PSD)内核,被配置为从主机接收包括数据、消息和命令的多个包,并基于包括在所述多个包中的命令将所述多个包路由到应用容器中的应用;PSD接口层,被配置为提供一个或多个应用与PSD内核之间的接口。
存储装置还可包括:根据从主机接收的控制命令可重新配置的一个或多个硬件。可重新配置的硬件可包括:一个或多个处理器、非易失性存储器和DRAM。
包括PSD控制接口和应用接口的主机侧接口可被提供给主机。
存储装置可根据经由PSD控制接口接收的控制命令,从第一类型的存储装置转换为第二类型的存储装置。
第一类型的存储装置可为存储内计算装置、键值存储装置、HDFS装置和对象存储装置中的一个装置。第二类型的存储装置可为存储内计算装置、键值存储装置、HDFS装置和对象存储装置中的另一装置。
PSD控制接口可被配置为将控制命令和消息提供给存储装置。
应用接口可包括:仿真的主机侧接口和PSD感知应用接口,仿真的主机侧接口被配置为提供用于向后兼容性的仿真的主机侧接口。
一个或多个供应商命令可经由PSD控制接口被提供。
一个或多个供应商命令可包括:创建命令、开始命令、停止命令、暂停命令和继续命令。
一个或多个供应商命令可包括:用于经由PSD控制接口将在存储装置上运行的应用迁移或复制到另一存储装置的迁移命令或复制命令。
应用可以以集中方式或分散方式被迁移或复制。
根据另一实施例,一种存储系统包括:主机;多态存储装置(PSD);PSD接口,用于提供主机与PSD之间的接口。PSD包括:应用容器,包含一个或多个应用;PSD内核,被配置为从主机接收包括数据、消息和命令的多个包,并基于包括在所述多个包中的命令将所述多个包路由到应用容器中的应用;PSD接口层,被配置为提供一个或多个应用与PSD内核之间的接口。
存储系统还可包括:根据从主机接收的控制命令可重新配置的一个或多个硬件。PSD的可重新配置的硬件可包括:一个或多个处理器、非易失性存储器和DRAM。
包括PSD控制接口和应用接口的主机侧接口可被提供给主机。
存储装置可根据经由PSD控制接口接收的控制命令,从第一类型的存储装置转换为第二类型的存储装置。
PSD控制接口可被配置为将控制命令和消息提供给PSD。
根据另一实施例,一种方法包括:将一个或多个应用存储在存储装置的应用容器中;从主机接收包括数据、消息和命令的多个包;基于包括在所述多个包中的命令将所述多个包路由到应用容器中的应用;在存储装置上运行PSD内核以根据经由PSD接口从主机接收的控制命令来配置存储装置的一个或多个硬件;操作由PSD内核配置的存储装置。
该方法还可包括:根据经由PSD接口从主机接收的另一命令来重新配置一个或多个硬件。所述一个或多个硬件可包括:一个或多个处理器、非易失性存储器和DRAM。
该方法还可包括:将主机侧接口提供给主机。主机侧接口可包括PSD控制接口和应用接口。
该方法还可包括:根据经由PSD控制接口接收的控制命令,将PSD从第一类型的存储装置转换为第二类型的存储装置。
上面的示例实施例在上文中已被描述,以示出实现可经由装置控制接口转换为不同装置的多态存储装置的各种实施例。从公开的示例实施例的各种修改和变更将被本领域普通技术人员想到。意图落入本发明的范围内的主题在权利要求中被阐明。
Claims (20)
1.一种存储装置,包括:
应用容器,包含一个或多个应用;
多态存储装置内核,被配置为从主机接收包括数据、消息和命令的多个包,并基于包括在所述多个包中的命令将所述多个包路由到应用容器中的应用;
多态存储装置接口层,被配置为提供一个或多个应用与多态存储装置内核之间的接口,
其中,所述存储装置根据通过主机的装置驱动程序池中的多个装置驱动程序而从主机接收的控制命令能够在块数据存储装置与键值存储装置之间转换,其中,块数据存储装置存储能够通过块地址标识的多条块数据,键值存储装置存储多条键值数据,
其中,当所述存储装置被配置为块数据存储装置时,所述存储装置被配置为从主机接收包括块地址的第一命令,块地址与存储在所述存储装置中的所述多条块数据中的块数据对应,
其中,当所述存储装置被配置为键值存储装置时,所述存储装置还被配置为从主机接收包括键的第二命令,所述键与存储在所述存储装置中的所述多条键值数据中的键值数据对应。
2.如权利要求1所述的存储装置,还包括:根据从主机接收的控制命令可重新配置的一个或多个硬件,其中,可重新配置的硬件包括:一个或多个处理器、非易失性存储器和动态随机存取存储器。
3.如权利要求1所述的存储装置,其中,包括多态存储装置控制接口和应用接口的主机侧接口被提供给主机。
4.如权利要求3所述的存储装置,其中,控制命令经由多态存储装置控制接口从主机被接收。
5.如权利要求1所述的存储装置,其中,块数据存储装置为存储内计算装置和Hadoop分布式文件系统装置中的一个装置。
6.如权利要求3所述的存储装置,其中,多态存储装置控制接口被配置为将控制命令和消息提供给所述存储装置。
7.如权利要求3所述的存储装置,其中,应用接口包括:仿真的主机侧接口和多态存储装置感知应用接口,仿真的主机侧接口被配置为提供向后兼容性。
8.如权利要求3所述的存储装置,其中,一个或多个供应商命令经由多态存储装置控制接口被提供。
9.如权利要求8所述的存储装置,其中,所述一个或多个供应商命令包括:创建命令、开始命令、停止命令、暂停命令和继续命令。
10.如权利要求8所述的存储装置,其中,所述一个或多个供应商命令包括用于经由多态存储装置控制接口将在所述存储装置上运行的应用迁移或复制到另一存储装置的迁移命令或复制命令。
11.如权利要求10所述的存储装置,其中,应用以集中方式或分散方式被迁移或复制。
12.一种存储系统,包括:
主机;
多态存储装置;
多态存储装置接口,用于提供主机与多态存储装置之间的接口,
其中,多态存储装置包括:
应用容器,包含一个或多个应用;
多态存储装置内核,被配置为从主机接收包括数据、消息和命令的多个包,并基于包括在所述多个包中的命令将所述多个包路由到应用容器中的应用;
多态存储装置接口层,被配置为提供所述一个或多个应用与多态存储装置内核之间的接口,
其中,多态存储装置根据通过主机的装置驱动程序池中的多个装置驱动程序而从主机接收的控制命令能够在块数据存储装置与键值存储装置之间转换,其中,块数据存储装置存储能够通过块地址标识的多条块数据,键值存储装置存储多条键值数据,
其中,当多态存储装置被配置为块数据存储装置时,多态存储装置被配置为从主机接收包括块地址的第一命令,块地址与存储在多态存储装置中的所述多条块数据中的块数据对应,
其中,当多态存储装置被配置为键值存储装置时,多态存储装置还被配置为从主机接收包括键的第二命令,所述键与存储在多态存储装置中的所述多条键值数据中的键值数据对应。
13.如权利要求12所述的存储系统,还包括:根据从主机接收的控制命令可重新配置的一个或多个硬件,其中,多态存储装置的可重新配置的硬件包括:一个或多个处理器、非易失性存储器和动态随机存取存储器。
14.如权利要求12所述的存储系统,其中,包括多态存储装置控制接口和应用接口的主机侧接口被提供给主机。
15.如权利要求14所述的存储系统,其中,控制命令经由多态存储装置控制接口被接收。
16.如权利要求14所述的存储系统,其中,多态存储装置控制接口被配置为将控制命令和消息提供给多态存储装置。
17.一种操作存储装置的方法,包括:
将一个或多个应用存储在存储装置的应用容器中;
从主机接收包括数据、消息和命令的多个包;
基于包括在所述多个包中的命令将所述多个包路由到应用容器中的应用;
在存储装置上运行多态存储装置内核以根据经由多态存储装置接口从主机接收的控制命令来配置存储装置的一个或多个硬件;
操作由多态存储装置内核配置的存储装置,
其中,存储装置根据通过主机的装置驱动程序池中的多个装置驱动程序而从主机接收的控制命令能够在块数据存储装置与键值存储装置之间转换,其中,块数据存储装置存储能够通过块地址标识的多条块数据,键值存储装置存储多条键值数据,
其中,当存储装置被配置为块数据存储装置时,存储装置被配置为从主机接收包括块地址的第一命令,块地址与存储在存储装置中的所述多条块数据中的块数据对应,
其中,当存储装置被配置为键值存储装置时,存储装置还被配置为从主机接收包括键的第二命令,所述键与存储在存储装置中的所述多条键值数据中的键值数据对应。
18.如权利要求17所述的方法,还包括:根据经由多态存储装置接口从主机接收的另一命令来重新配置所述一个或多个硬件,其中,所述一个或多个硬件包括:一个或多个处理器、非易失性存储器和动态随机存取存储器。
19.如权利要求17所述的方法,还包括:将主机侧接口提供给主机,其中,主机侧接口包括多态存储装置控制接口和应用接口。
20.如权利要求19所述的方法,其中,控制命令经由多态存储装置控制接口被接收。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662290295P | 2016-02-02 | 2016-02-02 | |
US62/290,295 | 2016-02-02 | ||
US15/133,085 US10423331B2 (en) | 2016-02-02 | 2016-04-19 | Polymorphic storage devices |
US15/133,085 | 2016-04-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107066404A CN107066404A (zh) | 2017-08-18 |
CN107066404B true CN107066404B (zh) | 2021-12-14 |
Family
ID=59387543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710045802.8A Active CN107066404B (zh) | 2016-02-02 | 2017-01-20 | 存储装置、存储系统和操作存储装置的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10423331B2 (zh) |
JP (1) | JP6734792B2 (zh) |
KR (1) | KR102419149B1 (zh) |
CN (1) | CN107066404B (zh) |
TW (1) | TWI699697B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113407743A (zh) * | 2016-04-08 | 2021-09-17 | 北京三星通信技术研究有限公司 | 物体信息翻译、以及衍生信息获取方法和装置 |
US10204075B2 (en) * | 2016-10-25 | 2019-02-12 | Zentific LLC | Systems and methods for facilitating interactions with remote memory spaces |
US10437800B2 (en) * | 2016-12-02 | 2019-10-08 | International Business Machines Corporation | Data migration using a migration data placement tool between storage systems based on data access |
US10437799B2 (en) * | 2016-12-02 | 2019-10-08 | International Business Machines Corporation | Data migration using a migration data placement tool between storage systems based on data access |
US10496335B2 (en) | 2017-06-30 | 2019-12-03 | Intel Corporation | Method and apparatus for performing multi-object transformations on a storage device |
KR102523327B1 (ko) * | 2018-03-19 | 2023-04-20 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN110311948B (zh) * | 2019-05-17 | 2022-07-15 | 深圳致星科技有限公司 | 容器/容器组间的通信方法及基于此的容器云网络系统 |
US11797217B2 (en) * | 2020-01-06 | 2023-10-24 | Kioxia Corporation | Systems and methods for collecting storage device statistics |
CN113114482B (zh) * | 2021-03-08 | 2022-06-14 | 中国—东盟信息港股份有限公司 | 一种基于容器的混合云管理系统及方法 |
US12019548B2 (en) | 2022-04-18 | 2024-06-25 | Samsung Electronics Co., Ltd. | Systems and methods for a cross-layer key-value store architecture with a computational storage device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102725733A (zh) * | 2009-12-31 | 2012-10-10 | 国际商业机器公司 | 在平台之间移植虚拟机映像 |
CN103744614A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 固态硬盘访问的方法及其固态硬盘 |
CN103927127A (zh) * | 2013-01-03 | 2014-07-16 | 三星电子株式会社 | 可重新配置存储装置 |
CN104735123A (zh) * | 2013-12-19 | 2015-06-24 | 索尼电脑娱乐美国公司 | 用于云计算的大容量存储虚拟化 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007159B2 (en) | 2002-05-10 | 2006-02-28 | Intel Corporation | System and method for loading and integrating a firmware extension onto executable base system firmware during initialization |
US8176186B2 (en) * | 2002-10-30 | 2012-05-08 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
US7747837B2 (en) | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
CN101981580B (zh) | 2006-09-20 | 2014-07-09 | 陈锦夫 | 从多形态可执行程序到多形态操作系统 |
WO2009043164A1 (en) | 2007-10-04 | 2009-04-09 | Memory Experts International Inc. | A method of providing firmware to a processor-based electronic device |
JP5600342B2 (ja) | 2009-03-16 | 2014-10-01 | アール・エイチ・ケイ・テクノロジー・インコーポレイテッド | プログラマブル機器構成方法および装置 |
WO2012024800A1 (en) * | 2010-08-25 | 2012-03-01 | Rayan Zachariassen | Method and system for extending data storage system functions |
WO2013080243A2 (en) * | 2011-11-28 | 2013-06-06 | Hitachi, Ltd. | Storage system controller, storage system, and access control method |
KR20130073669A (ko) * | 2011-12-23 | 2013-07-03 | 삼성전기주식회사 | 전원 스위칭 구동 장치, 이를 갖는 역률 보정 장치 및 전원 공급 장치 |
US9720668B2 (en) | 2012-02-29 | 2017-08-01 | Red Hat, Inc. | Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system |
US9075710B2 (en) * | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
US8741040B2 (en) * | 2012-04-26 | 2014-06-03 | Xerox Corporation | Phase change ink compositions comprising aromatic ethers |
US20140047342A1 (en) | 2012-08-07 | 2014-02-13 | Advanced Micro Devices, Inc. | System and method for allocating a cluster of nodes for a cloud computing system based on hardware characteristics |
US9276829B2 (en) * | 2013-02-07 | 2016-03-01 | International Business Machines Corporation | Transparently tracking provenance information in distributed data systems |
US9678678B2 (en) * | 2013-12-20 | 2017-06-13 | Lyve Minds, Inc. | Storage network data retrieval |
US9569141B2 (en) * | 2014-03-28 | 2017-02-14 | Intel Corporation | Hash map support in a storage device |
US9781206B2 (en) * | 2014-05-09 | 2017-10-03 | Lyve Minds, Inc. | Blended storage allocation on a storage agent |
US20170053190A1 (en) * | 2015-08-20 | 2017-02-23 | Elwha Llc | Detecting and classifying people observing a person |
US9927984B2 (en) * | 2015-10-14 | 2018-03-27 | Samsung Electronics Co., Ltd. | Electronic system with interface control mechanism and method of operation thereof |
-
2016
- 2016-04-19 US US15/133,085 patent/US10423331B2/en active Active
- 2016-09-21 KR KR1020160120899A patent/KR102419149B1/ko active IP Right Grant
- 2016-11-10 TW TW105136530A patent/TWI699697B/zh active
-
2017
- 2017-01-20 CN CN201710045802.8A patent/CN107066404B/zh active Active
- 2017-01-31 JP JP2017015503A patent/JP6734792B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102725733A (zh) * | 2009-12-31 | 2012-10-10 | 国际商业机器公司 | 在平台之间移植虚拟机映像 |
CN103927127A (zh) * | 2013-01-03 | 2014-07-16 | 三星电子株式会社 | 可重新配置存储装置 |
CN103744614A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 固态硬盘访问的方法及其固态硬盘 |
CN104735123A (zh) * | 2013-12-19 | 2015-06-24 | 索尼电脑娱乐美国公司 | 用于云计算的大容量存储虚拟化 |
Also Published As
Publication number | Publication date |
---|---|
JP6734792B2 (ja) | 2020-08-05 |
JP2017138982A (ja) | 2017-08-10 |
TW201732534A (zh) | 2017-09-16 |
CN107066404A (zh) | 2017-08-18 |
US20170220259A1 (en) | 2017-08-03 |
TWI699697B (zh) | 2020-07-21 |
US10423331B2 (en) | 2019-09-24 |
KR102419149B1 (ko) | 2022-07-08 |
KR20170092091A (ko) | 2017-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107066404B (zh) | 存储装置、存储系统和操作存储装置的方法 | |
US11163699B2 (en) | Managing least recently used cache using reduced memory footprint sequence container | |
US11003576B2 (en) | Namespace change propagation in non-volatile memory devices | |
US11562091B2 (en) | Low latency access to physical storage locations by implementing multiple levels of metadata | |
US9811276B1 (en) | Archiving memory in memory centric architecture | |
US11144399B1 (en) | Managing storage device errors during processing of inflight input/output requests | |
US9648081B2 (en) | Network-attached memory | |
US11656775B2 (en) | Virtualizing isolation areas of solid-state storage media | |
US11016817B2 (en) | Multi root I/O virtualization system | |
US20210248713A1 (en) | Resiliency Schemes for Distributed Storage Systems | |
US11086785B2 (en) | Host device with storage cache aware processing of input-output operations in multi-path layer | |
US11567680B2 (en) | Method and system for dynamic storage scaling | |
US11386023B1 (en) | Retrieval of portions of storage device access data indicating access state changes | |
US12001338B2 (en) | Method and system for implementing metadata compression in a virtualization environment | |
US11287973B2 (en) | Polymorphic storage devices | |
KR20210025505A (ko) | 다형성 스토리지 장치 | |
US20230333766A1 (en) | Modified copy-on-write snapshotting | |
US11366756B2 (en) | Local cached data coherency in host devices using remote direct memory access | |
US11500815B2 (en) | Dual relationship-based hash structure for non-volatile memory technology | |
US20230342212A1 (en) | Load distribution in a data storage system |
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 |