CN110825320A - 虚拟化固态存储介质的隔离区域 - Google Patents

虚拟化固态存储介质的隔离区域 Download PDF

Info

Publication number
CN110825320A
CN110825320A CN201910727143.5A CN201910727143A CN110825320A CN 110825320 A CN110825320 A CN 110825320A CN 201910727143 A CN201910727143 A CN 201910727143A CN 110825320 A CN110825320 A CN 110825320A
Authority
CN
China
Prior art keywords
solid
isolated
storage medium
state storage
ssd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910727143.5A
Other languages
English (en)
Inventor
S·富里
郭丽萍
S·苏里
李英东
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.)
Marvell Asia Pte Ltd
Original Assignee
Marvell World Trade 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 Marvell World Trade Ltd filed Critical Marvell World Trade Ltd
Publication of CN110825320A publication Critical patent/CN110825320A/zh
Pending legal-status Critical Current

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • G06F3/0607Improving 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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/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
    • 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/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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Abstract

本公开描述了用于虚拟化固态存储介质的隔离区域的装置和方法。在一些方面,存储介质加速器经由存储介质接口确定固态存储介质的几何形状。加速器基于几何形状选择固态存储介质的区域作为隔离的存储单元。然后将隔离的存储单元的物理地址映射到虚拟地址。加速器通过虚拟地址通过主机接口公开隔离的存储单元,以使主机能够访问隔离的存储单元。加速器还可以在没有主机交互的情况下,将隔离的存储单元重新映射到固态存储介质的其他区域。通过这样做,加速器可以向主机提供虚拟化隔离和分区功能,同时在没有主机参与的情况下,高效地处理较低级别的存储介质功能,诸如磨损均衡和负载平衡。

Description

虚拟化固态存储介质的隔离区域
相关申请的交叉引用
本公开要求2018年8月7日提交的美国临时专利申请序列号62/715,718的优先权,其公开内容通过引用整体并入本文。
背景技术
许多计算和电子设备包括用于存储设备的软件、应用或数据的非易失性存储器。另外,大多数用户通过来自各种位置或移动的数据网络利用诸如多媒体内容或社交媒体应用的其设备来流式传输数据或访问服务。随着用户对数据和服务的不断增长的需求,存储和服务提供商已经扩展了设备和联网存储装置的相应容量,以支持对用户生成的所有数据的访问。通常,这种大规模数据存储装置是利用阵列硬盘驱动器实现的,其可扩展以相对低的成本提供大量数据存储装置。随着固态存储器变得越来越便宜,一些存储供应商也试图以更大规模使用固态存储器设备来进行批量数据存储。
然而,固态存储器设备的结构和物理特性与硬盘驱动器的结构和物理特性非常不同。例如固态存储器设备不是基于围绕硬盘驱动器的磁介质盘布置的物理轨道或扇区的布局来组织的。因此,被设计用于从硬盘驱动器的轨道和扇区格式访问数据的大多数设备的传统存储接口在访问在其他类型的存储器中存储的数据时可能具有性能问题。在固态存储器的情况下,当与固态存储器操作的固有写入/擦除周期组合时,尝试通过传统存储接口访问数据通常导致高读取延迟或破坏性磨损模式。
发明内容
提供本发明内容是为了介绍在具体实施方式和附图中进一步描述的主题。因此,不应认为本发明内容描述了基本特征,也未用于限制所要求保护的主题的范围。
在一些方面,存储介质加速器实现一种方法,该方法经由存储介质接口确定被耦合到存储介质接口的固态存储介质的几何形状。基于固态存储介质的几何形状,选择固态存储介质的区域作为隔离的存储单元。加速器将隔离的存储单元的物理地址映射到虚拟地址,隔离的存储单元可以通过该虚拟地址可访问。该方法经由虚拟地址通过主机接口公开隔离的存储单元,以使得主机能够访问固态存储介质中的隔离的存储单元。该方法还可以在没有主机交互(例如通知、中断或使用主机计算资源)的情况下,将隔离的存储单元重新映射到固态存储介质的其他区域。通过这样做,由加速器实现的方法可以向主机的租户(例如工作负载或启动器)提供隔离和分区功能,同时在没有主机参与或主机计算资源的使用的情况下,高效地处理较低级别的存储介质功能,诸如磨损均衡和负载平衡。
在其他方面,一种装置包括基于硬件的处理器、被配置为维持处理器可执行指令以在所述装置上实现应用的存储器、以及被配置为使应用能够访问与装置相关联的存储介质中的数据的主机接口。该装置还包括存储介质加速器,其被耦合到主机接口并提供存储介质接口。存储介质加速器被配置为通过存储介质接口确定可操作地与装置耦合的固态存储介质的几何形状。存储介质加速器基于固态存储介质的几何形状来选择固态存储介质的区域作为隔离的存储单元。隔离的存储单元的物理地址被映射到虚拟地址,通过该虚拟地址,隔离的存储单元可以由主机访问。然后,存储介质加速器经由虚拟地址通过主机接口公开隔离的存储单元,以使应用能够访问隔离的存储单元。
在其他方面,描述了片上系统(SoC),其包括存储介质接口、通过其向主机提供对存储介质的访问的主机接口、基于硬件的处理器和存储器,存储器被配置为存储用于存储介质加速器的处理器可执行指令和存储介质加速器的地址映射。可以实现存储介质加速器以确定可操作地与存储介质接口耦合的固态存储介质的几何形状。几何形状由固态存储介质或控制器(例如开放式通道存储控制器)通过存储介质接口公开给存储介质加速器。基于固态存储介质的几何形状,加速器选择固态存储介质的区域(例如NAND通道或NAND设备)作为隔离的存储单元。在地址映射中,隔离的存储单元的物理地址与虚拟地址相关联,隔离的存储单元通过该虚拟地址是可访问的。然后,存储介质加速器经由虚拟地址通过主机接口公开隔离的存储单元,以使得主机能够访问隔离的存储单元。
在附图和以下描述中阐述了一个或多个实现的细节。根据说明书和附图以及权利要求,其他特征和优点将显而易见。
附图说明
在附图和以下具体实施方式中阐述了虚拟化固态存储介质的隔离区域的一个或多个实现的细节。在附图中,附图标记的最左边的数字标识首次出现附图标记的图。在说明书和附图中的不同实例中对相同的附图标记的使用表示类似的元件:
图1示出了具有设备的示例操作环境,其中根据一个或多个方面实现了固态存储介质的虚拟化区域。
图2示出了图1中所示的存储介质加速器和固态存储介质的示例配置。
图3示出了根据一个或多个方面的与多个固态驱动器相关联的存储介质加速器的示例配置。
图4示出了根据一个或多个方面实现的支持Fabric(网络)(Fabric-enabled)的存储介质加速器的示例配置。
图5描绘了根据一个或多个方面的用于虚拟化固态存储介质的隔离区域的示例方法。
图6描绘了用于将隔离的存储单元重新映射到固态驱动器(SSD)中的另一存储介质区域的示例方法。
图7示出了在没有主机交互的情况下将隔离的存储通道映射到SSD的另一通道的示例。
图8描绘了根据一个或多个方面的用于将隔离的存储单元重新映射到另一SSD的示例方法。
图9示出了在没有主机交互的情况下将固态存储介质的隔离驱动器映射到固态存储介质的另一驱动器的示例。
图10描绘了用于将虚拟化隔离区域的数据从存储介质的源区域迁移到存储介质的目的地区域的示例方法。
图11示出了用于实现固态存储介质的虚拟化区域的方面的示例性系统级芯片(SoC)环境。
图12示出了示例存储介质加速器,其被配置为实现固态存储介质的虚拟化隔离区域的各方面。
具体实施方式
设备用于访问存储装置存储器的常规技术通常依赖于被设计为基于磁或光技术来访问传统类型的存储装置的接口标准。然而,固态存储器的结构和物理特性与硬盘驱动器、磁带驱动器或光学介质(例如机电存储介质)的结构和物理特性非常不同。例如固态存储器不是基于硬盘驱动器或光盘驱动器的介质盘上的物理轨道或扇区的布局来组织的。这样,大多数计算设备使用的传统存储接口,其被设计为顺序地访问轨道或扇区中的数据,在访问在不同类型的存储介质中存储的数据时经常具有性能问题。
在固态存储器(例如NAND闪存)的情况下,由固态存储器中的写入/擦除循环引起的固有副作用可能在从固态存储器读取数据时显着影响读取延迟。通常,固态存储器驱动器不提供对相对于读取操作发生的写入/擦除周期的何时或何处的调度的可见性或控制。因此,固态存储器的写入/擦除周期可能引入由冲突的写入/擦除周期延迟或中断的读操作的延迟问题。这种情况在多租户系统中尤为明显,其中一个启动器的固态存储器访问活动会影响尝试访问相同固态存储器的其他启动器的性能。
为了解决这些缺点中的一些,正在定义接口标准,接口标准公开关于固态存储器连接性和结构的低级信息,其允许启动器操纵对固态存储器的访问以改进访问性能的。具体地,通过了解固态存储器的拓扑结构,系统或启动器可以直接控制对固态存储器的访问,以确保不同工作负载或不同租户的业务与其他工作负载或不同租户的的业务隔离。然而,直接控制每个启动器对固态存储器的访问以提供隔离,将大的计算负担放回到启动器本身和支持主机系统上。特别地,启动器执行或管理通常由内部固态驱动器控制器处理的所有活动,诸如数据路由、通道访问和维持大量物理存储器区域。当由启动器或主机系统执行时,这些低级活动会增加存储器互连、主机处理资源、系统内存等的负载和开销。因此,让启动器或主机直接控制固态存储器以便于实现存储隔离不是成本或资源有效的解决方案。
本公开描述了用于虚拟化固态存储介质的隔离区域的装置和技术。与其中主机或启动器直接控制所有存储介质活动的传统访问技术相反,所描述的装置和技术可以将隔离的存储单元公开给主机或租户,同时从主机卸载其他低级存储介质功能。例如耦合在主机和固态驱动器(SSD)之间的存储介质加速器可以将虚拟化的存储隔离区域公开给主机以用于业务隔离并卸载其他低级SSD功能,诸如磨损均衡(wear leveling)、地址映射和负载平衡,以处理加速器的存储器资源(例如与主机计算资源分开)。存储介质加速器也是可扩展的,使得存储介质加速器可以管理一个SSD或多个SSD,其中每个SSD具有可以公开给主机或相应租户的隔离存储装置(或存储单元)的一个或多个虚拟化区域。
基于SSD的NAND的公开几何形状或配置,存储介质加速器可以以任意合适的粒度创建隔离的存储“单元”,诸如整个SSD、SSD中的NAND通道、或NAND通道上的NAND器件或NAND管芯(die)。由存储介质加速器创建的任意物理隔离单元可以作为虚拟隔离单元或隔离存储的虚拟单元公开给主机或租户。在一些情况下,存储介质加速器维持虚拟存储单元到存储介质的物理区域的地址映射,并且还可以在没有主机参与的情况下,透明地将物理隔离单元重新映射到存储介质的另一区域。
例如存储介质加速器可以将SSD的NAND通道A作为隔离NAND的虚拟块公开给主机。作为磨损均衡或负载平衡功能的一部分,存储介质加速器可以将隔离的NAND的虚拟块迁移到相同或另一SSD上的通道E,而主机(例如启动器或租户)不知道虚拟化NAND隔离块后面的物理存储介质已经被物理重新定位。因此,通过该虚拟化的使用,存储介质加速器可以动态地重新映射隔离存储装置的虚拟单元,以在驱动器的固态存储器设备上实现粗略的磨损均衡,或者将高度访问的隔离存储装置的虚拟单元重新分配到完全不同的SSD以用于实现基于性能的负载平衡,而不涉及主机系统。
在固态存储介质的虚拟化隔离区域的各个方面中,存储介质加速器经由存储介质接口确定耦合到存储介质接口的固态存储介质的几何形状。基于固态存储介质的几何形状,存储介质加速器选择固态存储介质的区域作为隔离的存储单元。存储介质加速器将隔离的存储单元的物理地址映射到虚拟地址,隔离的存储单元可以通过该虚拟地址被访问。
然后,存储介质加速器经由虚拟地址通过主机接口公开隔离的存储单元,以能够实现固态存储介质中的隔离的存储单元的主机访问。存储介质加速器还可以在没有主机交互(例如通知、中断或主机计算资源的使用)的情况下,将隔离的存储单元重新映射到固态存储介质的其他区域。通过这样做,存储介质加速器可以向主机的租户(例如工作负载或启动器)提供隔离和分区功能,同时在没有主机计算资源的主机参与或消耗的情况下,高效地处理较低级别的存储介质功能,诸如磨损均衡和负载平衡。
以下讨论描述了操作环境、可以在操作环境中采用的技术、以及可以体现操作环境的组件的片上系统(SoC)。在本公开的上下文中,仅通过示例的方式参考操作环境。
操作环境
图1示出了具有主机设备102的示例操作环境100,主机设备102能够存储或访问各种形式的数据、文件、对象或信息。主机设备102的示例可以包括计算集群104(例如云106的计算集群)、服务器108或数据中心110的服务器硬件、或服务器112(例如独立的),其中任意一个可以被配置为存储网络、存储服务或云系统的一部分。主机设备102的其他示例(未示出)可以包括平板计算机、机顶盒、数据存储设备、可穿戴智能设备、电视、内容流设备、高清多媒体接口(HDMI)媒体棒、智能家电、家庭自动化控制器、智能恒温器、物联网(IoT)设备、移动互联网设备(MID)、网络附加存储(NAS)驱动器、聚合存储系统、服务器刀片、游戏机、汽车娱乐设备、汽车计算系统、汽车控制模块(例如发动机或动力传动控制模块)等。通常,主机设备102可以出于任意合适的目的通信或存储数据,诸如以能够实现特定类型的设备的功能、提供用户界面、启用网络访问、实现游戏应用、回放媒体、提供导航、编辑内容、提供数据存储等。
主机设备102包括处理器114和计算机可读存储介质116。处理器114可以实现为任意合适类型或数量的单核或多核的处理器(例如x86或ARM),用于执行操作系统的指令或命令或主机设备102的其他程序。计算机可读介质116(CRM 116)包括系统存储器118和存储介质120。主机设备102的系统存储器118可包括易失性存储器或非易失性存储器的任意合适的类型或组合。例如主机设备102的易失性存储器可以包括各种类型的随机存取存储器(RAM)、动态RAM(DRAM)、静态RAM(SRAM)等。非易失性存储器可以包括只读存储器(ROM)、电可擦除可编程ROM(EEPROM)或闪存(例如NOR闪存或NAND闪存)。这些存储器单独地或组合地可以存储与应用、租户、工作负载、启动器、虚拟机和/或主机设备102的操作系统相关联的数据。
主机设备102的存储介质120可以被配置为任意合适类型的数据存储介质,诸如存储设备、存储驱动器、存储阵列、存储卷等。尽管参考主机设备102进行了描述,但是存储介质120也可以作为独立设备单独实现,或者作为更大的存储集合的一部分实现,诸如数据中心、服务器群或虚拟化存储系统(例如用于基于云的存储或服务)。存储介质120的示例包括硬盘驱动器(HDD,未示出)、光盘驱动器(未示出)、固态驱动器122(SSD 122)和/或SSD 122-1到122-n的SSD阵列,如图1中所示的,其中n是SSD的任意合适的整数或数量。
SSD122中的每一个包括非易失性存储器设备124(NVM设备124)或由非易失性存储器设备124(NVM设备124)形成,在其上存储主机设备102或其他源的数据或信息。NVM设备124可以用固态存储介质的任意类型或组合来实现,诸如闪存、NAND闪存、NAND存储器、RAM、DRAM(例如用于高速缓存)、SRAM等。在一些情况下,存储到NVM设备124的数据可以被组织成数据(例如内容)或数据对象的文件,其被存储到SSD 122并且由主机设备102或者租户、工作负载或主机设备的启动器访问。文件的类型、大小或格式可能根据与文件关联的相应来源、用途或应用而有所不同。例如存储到SSD 122的文件可以包括音频文件、视频文件、文本文件、图像文件、多媒体文件、电子表格等。
在该示例中,主机设备102包括能够实现固态存储介质的虚拟化隔离区域的方面的存储介质加速器126(加速器126)。加速器126包括虚拟器128、地址映射130、磨损均衡器132和负载平衡器134,其中每个可以被实现为执行与固态存储介质的虚拟化隔离区域相关联的相应操作或功能。例如虚拟器128可以确定固态存储介质的几何形状,并基于几何形状来选择固态存储介质的区域或隔离的存储单元。然后,虚拟器128可以在地址映射130中将为隔离的存储单元选择的区域的物理地址与虚拟地址相关联,隔离的存储单元通过该虚拟地址可以被访问。然后,虚拟器128经由虚拟地址通过主机接口公开隔离的存储单元,以使主机能够访问固态存储介质中的隔离的存储单元。
在各个方面,磨损均衡器132或负载平衡器134在没有主机交互(例如通知、中断或使用主机处理/存储器资源)的情况下,将隔离的存储单元重新映射到固态存储介质的其他区域。通过这样做,磨损均衡器132可以动态地实现跨驱动器的固态存储器设备的粗磨损均衡,或者负载平衡器134可以将高度访问的隔离存储装置的虚拟单元重新分配到完全不同的SSD以实现基于性能的负载平衡而不涉及主机系统。如何实现和使用这些实体的方式各不相同,并且贯穿本公开进行描述。
主机设备102还可以包括I/O端口136、图形处理单元138(GPU 138)和数据接口140。通常,I/O端口136允许主机设备102与其他设备、外围设备或用户交互。例如I/O端口136可以包括通用串行总线、人机接口设备、音频输入、音频输出等或者与通用串行总线、人机接口设备、音频输入、音频输出等耦合。GPU 138处理并绘制主机设备102的图形相关数据,诸如操作系统的用户界面元素、应用等。在一些情况下,GPU 138访问本地存储器的一部分以绘制图形或包括用于绘制主机设备102的图形的专用存储器(例如视频RAM)。
主机设备102的数据接口140提供到一个或多个网络以及连接到那些网络的其他设备的连接。数据接口140可以包括有线接口,诸如以太网或光纤接口,用于通过本地网络、内联网或因特网进行通信。替代地或另外地,数据接口140可以包括促进通过无线网络进行通信的无线接口,例如无线LAN、广域无线网络(例如蜂窝网络)和/或无线个人区域网络(WPAN)。根据固态存储介质的虚拟化隔离区域的一个或多个方面,可以将通过I/O端口136或数据接口140传送的任意数据写入主机设备102的存储介质120或从主机设备102的存储介质120读取通过I/O端口136或数据接口140传送的任意数据。
图2示出了通常在200处的存储介质加速器126和SSD 122的示例配置,其根据固态存储介质的虚拟化隔离区域的一个或多个方面来实现。在该示例中,加速器126可操作地耦合在主机202和SSD 122之间,从中提供隔离存储装置的虚拟化区域。主机202包括在主机的计算资源206上执行的软件204,诸如应用、虚拟机或租户(未示出)。在一些情况下,计算资源206包括主机202的处理资源和系统存储器的组合,其用于实现应用、虚拟机、租户或启动器。加速器126可以向每个虚拟机、租户或启动器提供对虚拟化存储单元的隔离访问,同时从计算资源206卸载较低级别的存储介质功能。
通常,主机202的租户或启动器访问存储在耦合到加速器126的SSD 122中的数据。在该示例中,SSD 122用SSD控制器208实现,NAND的通道210-1到120-m通过SSD控制器208是可访问的。NAND的每个通道210(例如通道A或NAND通道210)包括多个NAND设备212-1到212-n,其可以实现为SSD 122的单独的NAND设备或NAND管芯,其可通过相应的NAND通道210可访问或可寻址。在虚拟化隔离区域的方面,加速器126可以选择任意NAND设备212或NAND通道210用于虚拟化。例如加速器126可以将物理NAND设备212映射到地址映射130中的虚拟存储单元地址。然后,虚拟存储单元或存储装置的虚拟单元由加速器126公开给主机202,诸如公开给主机202的启动器或租户应用。通过将NAND存储器的整个物理通道、设备或管芯映射到虚拟地址,加速器126可以向虚拟机或租户提供隔离的存储装置,虚拟机或租户与主机202的其他应用、虚拟机、启动器或租户隔离。
图3示出了通常在300处的存储介质加速器126和n个SSD 122的阵列的示例配置,其根据固态存储介质的虚拟化隔离区域的一个或多个方面来实现。在该示例中,加速器126可操作地耦合在主机302和SSD 112-1到122-n的阵列之间,从中提供隔离存储装置的虚拟化区域。主机302可以实现为具有虚拟机304的多租户主机,虚拟机304可以用任意合适数量的虚拟机304-1到304-m来实现。虚拟机304从在主机302的计算资源308上执行的管理程序306执行。替代地或另外地,计算资源308可以包括用于实现虚拟机304的主机302的处理资源和系统存储器的组合,租户或启动器通过其运行。加速器126可以向每个虚拟机304-1到304-m、租户或启动器提供对虚拟化存储单元的隔离访问,同时从主机302的计算资源308卸载低级存储介质功能。
通常,主机302的虚拟机304访问存储在耦合到加速器126的SSD122的阵列中的数据。在该示例中,SSD阵列的每个SSD 122用SSD控制器208实现,通过该SSD控制器208,NAND的四个通道210(例如AD或EH)是可访问的。NAND的每个通道210(例如通道E或NAND通道210-5)包括多个NAND器件或NAND管芯。在虚拟化隔离区域的方面,加速器126可以选择任意SSD122、NAND通道210或NAND设备作为用于虚拟化的存储区域。例如加速器126可以将SSD 122-1映射到地址映射130中的虚拟存储单元地址。然后,虚拟存储单元或存储装置的虚拟单元由加速器126公开给主机302,诸如公开给主机302的虚拟机304或租户应用。通过将NAND存储器的整个SSD、物理通道、设备或管芯映射到虚拟地址,加速器126可以将隔离存储装置提供给虚拟机304或与主机302的其他应用、虚拟机304、启动器或租户隔离的租户。
图4示出了通常在400处的支持Fabric的存储介质加速器的示例配置,其根据固态存储介质的虚拟化隔离区域的一个或多个方面来实现。在该示例中,加速器126包括Fabric接口(402)并且可操作地耦合在Fabric404的实例和SSD 122-1到122-n的阵列之间。Fabric接口402可以包括Fabric接口上的NVM(NVM-OF),诸如以太网上的非易失性存储器快速(NVMe)、InfiniBand或光纤通道(FC)接口。这样,加速器126可以实现为分解存储系统中的支持Fabric的存储目标。
通过Fabric404,多个主机设备102-1至102-m中的任意一个可以通过加速器126访问SSD 122阵列。这里,SSD阵列的每个SSD 122用SSD控制器208实现,通过SSD控制器208NAND的四个通道210(例如A-D或E-H)是可访问的。NAND的每个通道210(例如通道E或NAND通道210-5)包括多个NAND器件或NAND管芯。在虚拟化隔离区域的方面,加速器126可以选择任意SSD 122、NAND通道210或NAND设备作为用于虚拟化的存储区域。例如加速器126可以将SSD 122-1映射到地址映射130中的虚拟存储单元地址。然后,虚拟存储单元或存储装置的虚拟单元由加速器126公开给主机设备102,诸如公开给主机设备102之一的虚拟机或租户应用。通过将NAND存储器的整个SSD、物理通道、设备或管芯映射到虚拟地址,加速器126可以将隔离存储装置提供给与其他主机设备、应用、虚拟机、启动器或租户隔离的虚拟机或租户。
用于虚拟化存储介质的隔离区域的技术
以下讨论描述了固态存储介质的虚拟化隔离区域的技术,其可以向主机提供存储隔离和分区功能,同时将诸如磨损均衡、负载平衡等的较低级别的存储介质功能卸载到存储介质加速器。这些技术可以使用本文描述的任意环境和实体来实现,诸如加速器126、虚拟器128、地址映射130、磨损均衡器132或负载平衡器134。这些技术包括图5、图6、图8和图10中所示的方法,其中的每一个被示为由一个或多个实体执行的操作集合。
这些方法不必限于相关附图中所示的操作顺序。相反,可以重复、跳过、替换或重新排序任意操作以实现本文描述的各个方面。此外,这些方法可以全部或部分地彼此结合使用,无论是由相同实体、单独实体还是其任意组合执行。例如可以组合这些方法以公开存储介质的虚拟化隔离区域,同时在没有主机交互或参与的情况下,透明地提供磨损均衡、负载平衡或数据迁移。在以下讨论的部分中,将通过示例的方式参考图1的操作环境100和图2、图3和/或图4的实体。这样的参考不应被视为对操作环境100、实体或配置的所描述的方面的限制,而是作为各种示例之一的说明。替代地或另外地,这些方法的操作也可以由参考图10的片上系统和/或图11的存储介质加速器描述的实体实现或与参考图10的片上系统和/或图11的存储介质加速器描述的实体一起实现。
图5描绘了用于虚拟化固态存储介质的隔离区域的示例方法500,包括由加速器126、虚拟器128、地址映射130、磨损均衡器132或负载平衡器134执行或与加速器126、虚拟器128、地址映射130、磨损均衡器132或负载平衡器134一起执行的操作。
在502处,加速器经由存储接口确定固态存储介质的几何形状。固态存储介质可以将几何形状公开给加速器,诸如通过开放式通道SSD或项目Denali兼容接口。在一些情况下,几何形状包括架构、拓扑、配置、可用控制特征或其中实现固态存储介质的驱动器的其他参数。替代地或附加地,固态存储介质的几何形状可包括逻辑几何形状、物理几何形状、通道的数目、逻辑单元的数目、并行单元的数目、块数目、块大小或固态存储介质的最小写入大小。
在504处,加速器基于固态介质的几何形状选择固态存储介质的区域作为隔离的存储单元。选择作为隔离的存储单元的区域可以包括固态存储装置的任意粒度或细分,诸如整个SSD、SSD的存储器通道、SSD的存储器设备或SSD的存储器管芯。
在506处,加速器将为隔离的存储单元选择的区域的物理地址映射到虚拟地址,隔离的存储单元通过该虚拟地址是可访问的。加速器可以维持该映射,以及隔离的存储单元的物理到虚拟地址的其他映射。通过这样做,地址映射功能可以从主机卸载或由SSD或SSD控制器外部的加速器处理。
在508处,加速器经由虚拟地址通过主机接口公开隔离的存储单元,以使主机能够访问固态存储介质中的隔离的存储单元。在某些情况下,隔离的存储单元与主机的启动器、工作负载、虚拟机或租户相关联。在这种情况下,隔离的存储单元与主机的另一启动器、另一工作负载、另一虚拟机或另一租户隔离。替代地或另外地,固态存储介质可以被配置为主机设备的非直接或直接附接存储装置。
可选地,在510处,加速器改变隔离的存储单元的虚拟地址被映射到的物理地址。这可以有效地将隔离的存储单元重新映射到固态存储介质的不同区域。在某些情况下,物理地址会重新映射到SSD的另一区域,作为磨损均衡功能或算法的一部分。在其他情况下,物理地址被重新映射到另一SSD,作为由加速器实现的负载平衡功能或算法的一部分。
图6描绘了用于将隔离的存储单元重新映射到SSD中的另一存储介质区域的示例方法600。方法600的操作可以由加速器126、虚拟器128、地址映射130、磨损均衡器132或负载平衡器134执行或与加速器126、虚拟器128、地址映射130、磨损均衡器132或负载平衡器134一起执行。
在602处,加速器经由相应的虚拟地址,通过主机接口将SSD的一个或多个隔离的存储单元公开给主机。虚拟化隔离的存储单元可以对应于SSD的NAND通道、SSD的NAND设备或SSD的NAND管芯。举例来说,考虑图7,其中NAND通道A被作为隔离的存储单元公开给主机设备。主机设备的租户或工作负载可以访问作为隔离存储装置的NAND通道A,而不会与来自其他租户或启动器的业务冲突。
在604处,加速器监视SSD中对应于SSD的一个或多个隔离的存储单元的存储介质的区域的使用。在一些情况下,加速器的磨损均衡器监视使用或访问隔离的存储单元所对应的SSD的NAND通道、NAND设备或NAND管芯。在本示例的上下文中,假设主机设备的租户访问NAND通道A比访问SSD的其他区域更多。
在606处,加速器基于所监视的使用来选择隔离的存储单元之一,以重新映射到SSD中的存储介质的另一区域。例如加速器可以选择与SSD的大量使用的NAND通道、NAND设备、NAND管芯相对应的隔离的存储单元,用于重新映射。如本文所述,加速器可以在没有主机交互或主机资源的使用的情况下,重新映射虚拟化隔离区域。继续进行中的示例,加速器选择NAND通道A以重新映射到SSD的另一区域。
在608处,加速器将存储介质的另一区域的物理地址重新映射到隔离的存储单元的相应虚拟地址。通过重新映射隔离的存储单元的虚拟地址,加速器可以通过重定向对存储介质的另一区域的访问来动态地实现磨损均衡。在图7中的本示例的上下文中,加速器将租户的隔离的存储单元的物理地址从NAND通道A重新映射到SSD的NAND通道D。
在610处,加速器经由相应的虚拟地址通过主机接口向主机公开重新映射的隔离的存储单元。这可以有效地使主机能够通过隔离的存储单元的虚拟地址来访问SSD中的存储介质的另一区域。由于隔离的存储单元的虚拟寻址,重新映射对于主机或租户是透明的,并且由于加速器提供的卸载而不需要主机交互或资源。结束本示例,加速器将数据从SSD中的NAND通道A迁移到NAND通道D,并且经由虚拟地址来重定向主机设备的租户对NAND通道D的访问以用于后续数据访问。
替代地,在612处,加速器擦除SSD中的存储介质的区域,其中重新映射的隔离的存储单元的虚拟地址先前被映射到该区域。这可以有效地释放存储介质区域以便与SSD中的另一隔离的存储单元重新分配或重用。
图8描绘了用于将隔离的存储单元重新映射到另一SSD的示例方法800,包括由加速器126、虚拟器128、地址映射130、磨损均衡器132或负载平衡器134执行或与加速器126、虚拟器128、地址映射130、磨损均衡器132或负载平衡器134一起执行的操作。
在802处,加速器经由相应的虚拟地址,通过主机接口将固态存储介质中的一个或多个隔离的存储单元公开给主机。虚拟化隔离的存储单元可以对应于SSD、SSD的NAND通道、SSD的NAND设备或SSD的NAND管芯。作为示例,考虑图9,其中SSD阵列的第一SSD的NAND通道A作为隔离存储的单元被公开给主机设备。主机设备的租户或工作负载可以访问作为隔离的存储装置的NAND通道A,而不会与来自其他租户或启动器的业务冲突。
在804处,加速器监视固态存储介质中对应于一个或多个隔离的存储单元的存储介质的区域的使用。在某些情况下,加速器的负载平衡器监视SSD或SSD的相应区域之间的使用或访问,隔离的存储单元对应于这些SSD或SSD的相应区域。在本示例的上下文中,假设主机设备的租户访问SSD 122-1的NAND通道A比访问阵列中的其他SSD更多。
在806处,加速器基于所监视的使用来选择隔离的存储单元之一,用于重新映射到固态存储介质中的存储介质的另一区域。例如加速器可以选择与重度使用或访问的SSD相对应的隔离的存储单元以进行重新映射。如本文所述,加速器可以在没有主机交互或对主机资源的使用的情况下,将虚拟化隔离区域重新映射到不同的SSD。继续进行中的示例,加速器选择SSD 122-1以重新映射到阵列的另一SSD。
在808处,加速器将存储介质的另一区域的物理地址重新映射到隔离的存储单元的相应虚拟地址。通过重新映射隔离的存储单元的虚拟地址,加速器可以通过将访问重定向到另一存储介质区域来动态地实现负载平衡。在图9中的本示例的上下文中,加速器将租户的隔离的存储单元的物理地址从SSD 122-1的NAND通道A重新映射到阵列中的SSD 122-n的NAND通道E。
在810处,加速器经由相应的虚拟地址通过主机接口向主机公开重新映射的隔离的存储单元。这可以有效地使主机能够通过隔离的存储单元的虚拟地址访问固态存储介质中的存储介质的另一区域。结束本示例,加速器将数据从SSD 122 1的NAND通道A迁移到SSD122-n的NAND通道E,并且经由虚拟地址将由主机设备的租户的访问从SSD 122-1重定向到SSD 122-n以用于后续数据访问。
可选地,在812处,加速器擦除固态存储介质中的存储介质的区域,重新映射的隔离的存储单元的虚拟地址先前被映射到该区域。这可以有效地释放存储介质区域以便于固态存储介质中的另一隔离的存储单元重新分配或重用。例如加速器可以擦除数据的SSD、NAND通道、NAND设备或NAND管芯以清除存储区域。
图10描绘了用于将虚拟化隔离区域的数据从存储介质的源区域迁移到存储介质的目的地区域的示例方法1000。方法1000的操作可以由加速器126、虚拟器128、地址映射130、磨损均衡器132或负载平衡器134执行或与加速器126、虚拟器128、地址映射130、磨损均衡器132或负载平衡器134一起执行。
在1002处,加速器选择固态存储介质的目的地区域以用于重新映射隔离的存储单元。目的地区域可以包括整个SSD、SSD的NAND通道或SSD的NAND设备。
在1004处,加速器将来自固态存储介质的源区域的数据复制到目的地区域,隔离的存储单元的虚拟地址被映射到该固态存储介质的源区域。在1006处,加速器经由隔离的存储单元的虚拟地址指示主机访问固态存储介质的源区域,同时复制数据中的至少一些。例如加速器可以将数据从主动隔离的存储单元复制到备用单元,同时至少一些读/写访问继续被引导到主动隔离的存储单元。
在1008处,加速器将对源区域的主机访问镜像到目的地区域以访问低于同步数据的水印的数据。换句话说,针对被指示已经复制到备用隔离单元的数据的水印之下的对主动隔离单元的新写入可以被镜像到两个单元以用于迁移期间的数据一致性。
在1010处,加速器经由隔离的存储单元的虚拟地址指示主机访问固态存储介质的目的地区域。响应于主动隔离的存储单元和目的地区域之间的同步,加速器可以将通过虚拟地址进行的访问重定向到复制数据所在的新存储单元。可选地,在1012处,加速器擦除来自固态介质的源区域的数据以释放源区域。
片上系统
图11示出了示例性片上系统(SoC)1100,其可以实现固态存储介质的虚拟化隔离区域的各个方面。SoC 1100可以在任意合适的设备中实现,诸如计算设备、主机设备、网络附连存储装置、智能设备、打印机、机顶盒、服务器、数据中心、固态驱动器(SSD)、存储驱动器阵列、内存模块、汽车计算系统、服务器、服务器刀片、存储刀片、存储底板、存储介质扩展设备、存储介质卡、存储介质适配器、网络附加存储、支持Fabric的存储目标、基于NVMe的存储控制器或任意其他合适类型的装置(例如本文所述的其他装置)。尽管参考SoC进行了描述,但是图11的实体也可以实现为其他类型的集成电路或嵌入式系统,例如专用集成电路(ASIC)、存储控制器卡、存储底板、存储控制器、通信控制器、专用标准产品(ASSP)、数字信号处理器(DSP)、可编程SoC(PSoC)、系统级封装(SiP)或现场可编程门阵列(FPGA)。
SoC 1100可以与电子电路、微处理器、存储器、输入-输出(I/O)控制逻辑、通信接口、固件和/或用于提供主机设备或存储系统的功能的软件(诸如本文描述的设备或组件(例如存储驱动器或存储阵列)中的任意一个)集成在一起。SoC 1100还可以包括集成数据总线或互连结构(未示出),其耦合SoC的各种组件以用于组件之间的数据通信或路由。可以通过外部端口、并行数据接口、串行数据接口、外围组件接口或任意其他合适的数据接口来公开或访问SoC 1100的集成数据总线、互连结构或其他组件。例如SoC 1100的组件可以通过外部接口或片外数据接口来访问或控制外部存储介质。
在该示例中,SoC 1100包括各种组件,诸如输入-输出(I/O)控制逻辑1102和基于硬件的处理器1104(处理器1104),诸如微处理器、处理器核、应用处理器、DSP等等(例如与主机x86处理器分开的处理资源)。SoC 1100还包括存储器1106,其可包括RAM、SRAM、DRAM、非易失性存储器、ROM、一次性可编程(OTP)存储器、多次可编程(MTP)存储器、闪存和/或其他合适的电子数据存储装置的任意类型和/或组合。在一些方面,处理器1104和存储在存储器1106上的代码被实现为存储介质加速器或支持加速器的存储聚合器,以提供与固态存储介质的虚拟化隔离区域相关联的各种功能。在本公开的上下文中,存储器1106经由非暂态信号存储数据、代码、指令或其他信息,并且不包括载波或暂态信号。替代地或另外地,SoC1100可以包括用于访问附加的或可扩展的片外存储介质的数据接口(未示出),诸如磁存储器或固态存储器(例如闪存或NAND存储器)。
SoC 1100还可以包括固件1108、应用、程序、软件和/或操作系统,其可以体现为在存储器1106上维持的处理器可执行指令,用于由处理器1104执行以实现SoC1100的功能。SoC 1100还可以包括其他通信接口,诸如用于控制本地片上(未示出)或片外通信收发机的组件或与本地片上(未示出)或片外通信收发机的组件通信的收发机接口。替代地或另外地,收发机接口还可包括或实现信号接口以片外传送射频(RF)、中频(IF)或基带频率信号,以促进通过收发机、物理层收发机(PHY)或者耦合到SoC 1100的介质访问控制器(MAC)的有线或无线通信。例如SoC 1100可以包括收发机接口,其被配置为允许通过有线或无线网络进行存储,诸如以提供具有虚拟化存储隔离功能的网络附连存储(NAS)卷。
SoC 1100还包括具有虚拟器128、地址映射130、磨损均衡器132和负载平衡器134的加速器126,其可以如图所示单独实现或与存储组件或数据接口组合。根据固态存储介质的虚拟化隔离区域的各个方面,加速器126可以将虚拟化的存储单元公开给主机或租户,并将其他存储介质管理功能卸载到加速器的处理器1104,诸如磨损均衡、负载平衡等。替代地或另外地,地址映射130可以被存储在SoC 1100的存储器1106上或存储在可操作地与SoC1100耦合并且可由加速器126访问的存储器上。
如参考本文呈现的各个方面所描述的,这些实体中的任意实体可以体现为不同的或组合的组件。参考图1的环境100的相应组件或实体或图2、图3和/或图4中所示的相应配置来描述这些组件和/或实体或对应的功能的示例。加速器126无论是全部还是部分,可以实现为由存储器1106维持并由处理器1104执行的处理器可执行指令,以实现固态存储介质的虚拟化隔离区域的各个方面和/或特征。
加速器126可以独立地实现或者与任意合适的组件或电路组合实现,以实现本文描述的方面。例如加速器126可以实现为DSP、处理器/存储桥、I/O桥、图形处理单元、存储器控制器、存储控制器、算术逻辑单元(ALU)等的一部分。加速器126还可以与SoC 1100的其他实体一体地提供,例如与SoC 1100的处理器1104、存储器1106、主机接口、存储介质接口或固件1108集成。替代地或另外地,加速器126、虚拟器128、磨损均衡器132、负载平衡器134和/或SoC 1100的其他组件可以实现为硬件、固件、固定逻辑电路或其任意组合。
作为另一示例,考虑图12,其示出了根据固态存储介质的虚拟化隔离区域的一个或多个方面的示例存储介质加速器1200。在各个方面,存储介质加速器1200或其组件的任意组合可以实现为存储驱动器控制器、存储介质控制器、NAS控制器、Fabric接口、NVMe启动器、NVMe目标或用于固态存储介质的存储聚合控制器。在一些情况下,存储介质加速器1200与SoC 1100的组件类似或者与SoC 1100的组件一起实现,如参考图11所描述的。换句话说,SoC 1100的实例可以被配置为存储介质加速器,诸如存储介质加速器1200用于提供和管理固态介质的虚拟化隔离区域。
在该示例中,存储介质加速器1200包括输入-输出(I/O)控制逻辑1202和处理器1204,诸如微处理器、处理器核、应用处理器、DSP等。在一些方面,可以实现处理器1204和存储介质加速器1200的固件以提供与固态存储介质的虚拟化隔离区域相关联的各种功能,诸如参考方法500、600、800和/或1000所描述的那些功能。存储介质加速器还包括存储介质接口1206和主机接口1208,它们分别能够实现对存储介质和主机系统的访问。存储介质接口1206可以包括物理页面寻址(PPA)接口、外围组件互连快速(PCIe)接口、非易失性存储器快速(NVMe)接口、Fabric上NVM(NVM-OF)接口、NVM主机控制器接口规范(NVMHCIS)兼容接口等。替代地或另外地,主机接口可以包括PCIe接口、基于SATA的接口、NVMe接口、NVM-OF接口、NVMHCIS兼容接口、支持Fabric的存储接口等。
在该示例中,存储介质加速器1200包括闪存转换层1210(FTL 1210)和垃圾收集器1212。在固态存储介质的虚拟化隔离区域一些方面中,存储介质加速器1200包括主机-侧或非驱动侧FTL 1210(例如用于开放式通道SSD的pBLK层)和/或垃圾收集器1212,用于管理可操作地与加速器耦合的SSD的存储介质的访问。例如FTL 1210可以包括用于管理顺序写入流(例如写入缓冲)、维持存储介质的地址映射、以及利用垃圾收集器1212实现或协调垃圾收集或介质重用的日志管理器。替代地或另外地,FTL 1210可以包括用于磨损均衡、纠错编码、读取重试、坏块管理、元数据恢复等的介质管理模块。这样,这些SSD功能也可以通过存储介质加速器1200实现或卸载到存储介质加速器1200。
存储介质加速器1200还包括虚拟器128、地址映射130、磨损均衡器132和负载平衡器134的实例。这些组件中的任意一个或全部可以如图所示单独实现或与处理器1204、存储介质组合。接口1206、主机接口1208或闪存转换层1210组合地实现。参考图1的环境100的相应组件或实体或图2、图3和/或图4中所示的相应配置来描述这些组件和/或实体、或对应功能的示例。存储介质加速器1200的整体或部分可以实现为处理器可执行指令,处理器可执行指令由加速器的存储器(未示出)维持,并且由处理器1204执行以实现固态存储介质的虚拟化隔离区域的各个方面和/或特征。
尽管用结构特征和/或方法操作专用的语言描述了本主题,但应理解,所附权利要求书中定义的主题不必限于本文所描述的具体示例、特征或操作,包括它们被执行的顺序。

Claims (20)

1.一种用于虚拟化固态存储介质的隔离区域的方法,包括:
经由存储介质接口来确定被耦合到所述存储介质接口的固态存储介质的几何形状;
基于所述固态存储介质的所述几何形状,选择所述固态存储介质的区域作为隔离的存储单元;
将所述隔离的存储单元的物理地址映射到虚拟地址,所述隔离的存储单元是通过所述虚拟地址可访问的;以及
经由所述虚拟地址,通过主机接口公开所述隔离的存储单元,以使主机能够访问所述固态存储介质中的所述隔离的存储单元。
2.根据权利要求1所述的方法,其中还包括基于所述固态存储介质的所述几何形状来改变所述隔离的存储单元的所述虚拟地址被有效地映射到的所述物理地址,以将所述隔离的存储单元重新映射到所述固态存储介质的另一区域。
3.根据权利要求2所述的方法,其中被选为所述隔离的存储单元的固态存储介质的所述区域是第一固态驱动器(SSD)的第一区域,所述物理地址是第一物理地址,所述另一区域是第二区域,并且改变所述第一物理地址包括以下中的一项:
将在所述第一SSD的所述固态存储介质中的所述第二区域的第二物理地址映射到所述隔离的存储单元的所述虚拟地址;或者
将在第二SSD的所述固态存储介质中的所述第二区域的第二物理地址映射到所述隔离的存储单元的所述虚拟地址。
4.根据权利要求3所述的方法,其中:
将所述第一SSD的所述第二区域的所述第二物理地址映射到所述虚拟地址被实现为磨损均衡功能的一部分;或者
将所述第二SSD的所述第二区域的所述第二物理地址映射到所述虚拟地址被实现为负载平衡功能的一部分。
5.根据权利要求1所述的方法,其中所述固态存储介质的所述几何形状包括以下中的至少一项:所述固态存储介质的逻辑几何形状、物理几何形状、通道的数目、逻辑单元的数目、并行单元的数目、块的数目、块大小或最小写入大小。
6.根据权利要求1所述的方法,其中被选择作为隔离的存储单元的所述区域包括以下中的一项:SSD、SSD的存储器通道、SSD的存储器设备或SSD的存储器芯。
7.根据权利要求1所述的方法,其中所述隔离的存储单元与所述主机的启动器、工作负载、虚拟机或租户相关联,并且所述隔离的存储单元与所述主机的另一启动器隔离、另一工作负载、另一虚拟机、或另一租户隔离。
8.根据权利要求1所述的方法,其中:
所述存储介质接口包括以下中的一项:物理页面寻址(PPA)接口、外围组件互连快速(PCIe)接口、非易失性存储器快速(NVMe)接口、Fabric上NVM(NVM-OF)接口或NVM主机控制器接口规范(NVMHCIS)兼容接口;以及
所述主机接口包括以下中的一项:PCIe接口、NVMe接口、NVM-OF接口或NVMHCIS兼容接口。
9.一种装置,包括:
基于硬件的处理器;
存储器,被耦合到所述处理器并且被配置为维持处理器可执行指令,所述处理器可执行指令响应于执行在所述装置上实现应用;
主机接口,被配置为使得应用能够访问与所述装置相关联的存储介质中的数据;
存储介质加速器,被耦合到所述主机接口并提供存储介质接口,所述存储介质加速器配置为:
通过所述存储介质接口确定可操作地与所述装置耦合的固态存储介质的几何形状;
基于所述固态存储介质的所述几何形状,选择所述固态存储介质的区域作为隔离的存储单元;
将所述隔离的存储单元的物理地址映射到虚拟地址,所述隔离的存储单元是通过所述虚拟地址可访问的;以及
经由所述虚拟地址,通过所述主机接口公开所述隔离的存储单元,以使得所述应用能够访问所述隔离的存储单元。
10.根据权利要求9所述的装置,其中所述存储介质加速器还被实现为基于所述固态存储介质的所述几何形状来改变所述隔离的存储单元的所述虚拟地址被有效地映射到的所述物理地址,以将所述隔离的存储单元重新映射到所述固态存储介质的另一区域。
11.根据权利要求10所述的装置,其中被选为所述隔离的存储单元的固态存储介质的所述区域是第一固态驱动器(SSD)的第一区域,所述物理地址是第一物理地址,所述另一区域是第二区域,并且所述存储介质加速器还被实现为:
将在所述第一SSD的所述固态存储介质中的所述第二区域的第二物理地址映射到所述隔离的存储单元的所述虚拟地址;或者
将在第二SSD的固态存储介质中的所述第二区域的第二物理地址映射到所述隔离的存储单元的所述虚拟地址。
12.根据权利要求9所述的装置,其中:
所述固态存储介质的所述几何形状包括以下中的至少一项:所述固态存储介质的逻辑几何形状、物理几何形状、通道的数目、逻辑单元的数目、并行单元的数目、块的数目、块大小或最小写入大小;或者
被选择作为所述隔离的存储单元的所述区域包括以下中的一项:SSD、SSD的存储器通道、SSD的存储器设备或SSD的存储器芯。
13.根据权利要求9所述的装置,其中:
所述装置还包括所述固态存储介质,所述固态存储介质可操作地耦合到所述存储介质加速器的所述存储介质接口;或者
所述固态存储介质被配置为非直接地或直接地附加所述装置的存储装置。
14.根据权利要求9所述的装置,其中:
所述应用是与所述隔离的存储单元相关联的第一应用;
响应于执行,所述处理器可执行指令进一步在所述装置上实现第二应用;以及
所述隔离的存储单元与所述装置上的所述第二应用的访问隔离。
15.一种片上系统(SoC),包括:
存储介质接口;
主机接口,通过所述接口向主机提供对存储介质的访问;
基于硬件的处理器;
存储器,被配置为存储地址映射和处理器可执行指令,所述处理器可执行指令响应于由所述基于硬件的处理器的执行,实现存储介质加速器以:
确定可操作地与所述存储介质接口耦合的固态存储介质的几何形状,所述几何形状由所述固态存储介质通过所述存储介质接口公开;
基于所述固态存储介质的所述几何形状,选择所述固态存储介质的区域作为隔离的存储单元;
在所述地址映射中,将所述隔离的存储单元的物理地址与虚拟地址相关联,所述隔离的存储单元是通过所述虚拟地址可访问的;以及
经由所述虚拟地址,通过所述主机接口公开所述隔离的存储单元,以使得所述主机能够访问所述隔离的存储单元。
16.根据权利要求15所述的SoC,其中所述存储介质加速器还被实现为在所述地址映射中并且基于所述固态存储介质的所述几何形状来将所述固态存储介质的另一区域的另一物理地址与所述隔离的存储单元的所述虚拟地址有效地相关联,以将所述隔离的存储单元重新映射到所述固态存储介质的所述另一区域。
17.根据权利要求15所述的SoC,其中所述固态存储介质的所述区域或所述固态存储介质的所述另一区域包括以下中的一项:固态驱动器(SSD)、SSD的存储器通道、SSD的存储器设备或SSD的存储器芯。
18.根据权利要求15所述的SoC,其中所述存储介质加速器还被实现为将所述隔离的存储单元重新映射到所述固态存储介质的所述另一区域,作为针对所述固态存储介质的磨损均衡操作或负载平衡操作的一部分。
19.根据权利要求15所述的SoC,其中所述固态存储介质被实现为一个或多个开放式通道SSD,所述开放式通道SSD将所述几何形状公开为以下中的一项:所述SSD的逻辑几何形状、物理几何形状、通道的数目、逻辑单元的数目、并行单元的数目、块的数目、块大小或最小写入大小。
20.根据权利要求15所述的SoC,其中所述SoC体现在以下各项的一部分上或实现为以下各项的一部分:主机设备、服务器、服务器刀片、存储刀片、存储底板、存储介质扩展设备、存储介质卡、存储介质适配器、网络连接存储装置、支持Fabric的存储目标、或基于NVMe的存储控制器。
CN201910727143.5A 2018-08-07 2019-08-07 虚拟化固态存储介质的隔离区域 Pending CN110825320A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862715718P 2018-08-07 2018-08-07
US62/715,718 2018-08-07

Publications (1)

Publication Number Publication Date
CN110825320A true CN110825320A (zh) 2020-02-21

Family

ID=67658534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910727143.5A Pending CN110825320A (zh) 2018-08-07 2019-08-07 虚拟化固态存储介质的隔离区域

Country Status (4)

Country Link
US (1) US11656775B2 (zh)
EP (1) EP3608787A1 (zh)
KR (1) KR20200016809A (zh)
CN (1) CN110825320A (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11074013B2 (en) 2018-08-07 2021-07-27 Marvell Asia Pte, Ltd. Apparatus and methods for providing quality of service over a virtual interface for solid-state storage
US11010314B2 (en) 2018-10-30 2021-05-18 Marvell Asia Pte. Ltd. Artificial intelligence-enabled management of storage media access
US11132291B2 (en) * 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US11481118B2 (en) 2019-01-11 2022-10-25 Marvell Asia Pte, Ltd. Storage media programming with adaptive write buffer release
US10922003B1 (en) * 2019-09-16 2021-02-16 ScaleFlux, Inc. Realizing host-assisted device-level data deduplication on solid-state data storage devices with embedded non-volatile memory
US11397694B2 (en) 2019-09-17 2022-07-26 Micron Technology, Inc. Memory chip connecting a system on a chip and an accelerator chip
US11416422B2 (en) 2019-09-17 2022-08-16 Micron Technology, Inc. Memory chip having an integrated data mover
US11100033B1 (en) * 2020-04-30 2021-08-24 Dell Products L.P. Single-root input/output virtualization-based storage solution for software defined storage
US11175828B1 (en) * 2020-05-14 2021-11-16 EMC IP Holding Company LLC Mitigating IO processing performance impacts in automated seamless migration
US11720413B2 (en) * 2020-06-08 2023-08-08 Samsung Electronics Co., Ltd. Systems and methods for virtualizing fabric-attached storage devices
CN113342697B (zh) * 2021-07-19 2022-08-26 英韧科技(上海)有限公司 闪存转换层仿真测试系统及方法
KR20230039127A (ko) 2021-09-13 2023-03-21 에스케이하이닉스 주식회사 Ssd에 포함된 존의 병렬성을 탐지하는 장치 및 그 동작 방법

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011128787A (ja) * 2009-12-16 2011-06-30 Internatl Business Mach Corp <Ibm> アドレス変換を高速化する方法及びシステム
CN102708316A (zh) * 2012-04-19 2012-10-03 北京华胜天成科技股份有限公司 一种用于多租户架构中数据隔离的方法
US20140019602A1 (en) * 2012-07-12 2014-01-16 Microsoft Corporation Load balancing for single-address tenants
US20140281142A1 (en) * 2011-09-23 2014-09-18 Avalanche Technology, Inc. Storage System Employing MRAM and Redundant Array of Solid State Disk
US20140304299A1 (en) * 2013-03-15 2014-10-09 Emc Corporation Data management in a multi-tenant distributive environment
CN104202359A (zh) * 2014-08-12 2014-12-10 浪潮电子信息产业股份有限公司 一种基于刀片服务器的NVMe SSD虚拟化设计方法
KR101579941B1 (ko) * 2014-09-03 2015-12-23 서울대학교 산학협력단 가상머신 i/o 관리 방법 및 장치
US20160218991A1 (en) * 2015-01-23 2016-07-28 Netapp, Inc. Provisioning of isolated path from computer to co-located storage
US20170302501A1 (en) * 2014-12-31 2017-10-19 Huawei Technologies Co., Ltd. Method, Apparatus, and System for Controlling Sending of MAC Address Forwarding Table
US20180088804A1 (en) * 2016-09-28 2018-03-29 Amazon Technologies, Inc. Virtualizing non-volatile storage at a peripheral device
CN108038390A (zh) * 2017-12-09 2018-05-15 珠海横琴小可乐信息技术有限公司 一种软件即服务平台租户数据隔离与共享的方法及系统

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671791B1 (en) 2001-06-15 2003-12-30 Advanced Micro Devices, Inc. Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms
US7433948B2 (en) 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US7406598B2 (en) 2004-02-17 2008-07-29 Vixs Systems Inc. Method and system for secure content distribution
CA2571207C (en) 2004-06-15 2014-08-05 Dentsply International Inc. Low shrinkage and low stress dental compositions
US7502908B2 (en) 2006-05-04 2009-03-10 International Business Machines Corporation Method for providing an address format compatible with different addressing formats used for addressing different sized address spaces
US20080100636A1 (en) 2006-10-31 2008-05-01 Jiin Lai Systems and Methods for Low-Power Computer Operation
US7783858B2 (en) 2007-01-20 2010-08-24 International Business Machines Corporation Reducing memory overhead of a page table in a dynamic logical partitioning environment
US7861036B2 (en) 2007-09-18 2010-12-28 Agere Systems Inc. Double degraded array protection in an integrated network attached storage device
US8571745B2 (en) 2008-04-10 2013-10-29 Robert Todd Pack Advanced behavior engine
JP5186982B2 (ja) 2008-04-02 2013-04-24 富士通株式会社 データ管理方法及びスイッチ装置
US8806101B2 (en) 2008-12-30 2014-08-12 Intel Corporation Metaphysical address space for holding lossy metadata in hardware
US9389895B2 (en) 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
JP5660053B2 (ja) 2010-01-20 2015-01-28 日本電気株式会社 ネットワーク装置、ネットワーク構成方法及びネットワーク装置のプログラムを記録したプログラム記録媒体
CA2791523C (en) 2010-09-24 2013-09-10 Pravala Inc. Accessing local network resources in a multi-interface system
US8495274B2 (en) 2010-12-08 2013-07-23 International Business Machines Corporation Address translation table to enable access to virtual functions
US8726276B2 (en) 2011-01-26 2014-05-13 International Business Machines Corporation Resetting a virtual function that is hosted by an input/output adapter
US8504780B2 (en) 2011-04-08 2013-08-06 Hitachi, Ltd. Computer, computer system, and data communication method
US8751713B2 (en) 2011-05-06 2014-06-10 International Business Machines Corporation Executing virtual functions using memory-based data in a PCI express SR-IOV and MR-IOV environment
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US8713562B2 (en) 2012-01-06 2014-04-29 International Business Machines Corporation Intelligent and automated code deployment
US9015351B1 (en) 2012-03-02 2015-04-21 Marvell International Ltd. Address translation for SR-IOV virtual function apertures
US9098805B2 (en) 2012-03-06 2015-08-04 Koodbee, Llc Prediction processing system and method of use and method of doing business
WO2013134433A2 (en) 2012-03-06 2013-09-12 Koodbee, Llc Prediction processing system and method of use and method of doing business
US9836316B2 (en) * 2012-09-28 2017-12-05 Intel Corporation Flexible acceleration of code execution
US9134779B2 (en) 2012-11-21 2015-09-15 International Business Machines Corporation Power distribution management in a system on a chip
US9424219B2 (en) 2013-03-12 2016-08-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Direct routing between address spaces through a nontransparent peripheral component interconnect express bridge
US9720717B2 (en) 2013-03-14 2017-08-01 Sandisk Technologies Llc Virtualization support for storage devices
US20150378886A1 (en) 2013-04-08 2015-12-31 Avalanche Technology, Inc. Software-defined ssd and system using the same
US9734096B2 (en) 2013-05-06 2017-08-15 Industrial Technology Research Institute Method and system for single root input/output virtualization virtual functions sharing on multi-hosts
US10635316B2 (en) 2014-03-08 2020-04-28 Diamanti, Inc. Methods and systems for data storage using solid state drives
US9501245B2 (en) 2014-05-02 2016-11-22 Cavium, Inc. Systems and methods for NVMe controller virtualization to support multiple virtual machines running on a host
CN104461958B (zh) 2014-10-31 2018-08-21 华为技术有限公司 支持sr-iov的存储资源访问方法、存储控制器及存储设备
KR102336443B1 (ko) 2015-02-04 2021-12-08 삼성전자주식회사 가상화 기능을 지원하는 스토리지 장치 및 사용자 장치
US9378049B1 (en) 2015-02-12 2016-06-28 Amazon Technologies, Inc. Servicing I/O requests in an I/O adapter device
KR102398213B1 (ko) 2015-03-09 2022-05-17 삼성전자주식회사 저장 장치, 그것을 포함하는 호스트 시스템, 및 그것의 맵 테이블 업데이트 방법
US10114675B2 (en) 2015-03-31 2018-10-30 Toshiba Memory Corporation Apparatus and method of managing shared resources in achieving IO virtualization in a storage device
US10025747B2 (en) 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US9639280B2 (en) 2015-06-18 2017-05-02 Advanced Micro Devices, Inc. Ordering memory commands in a computer system
US20170032245A1 (en) 2015-07-01 2017-02-02 The Board Of Trustees Of The Leland Stanford Junior University Systems and Methods for Providing Reinforcement Learning in a Deep Learning System
KR102371916B1 (ko) 2015-07-22 2022-03-07 삼성전자주식회사 가상 머신을 지원하는 스토리지 장치, 그것을 포함하는 스토리지 시스템 및 그것의 동작 방법
KR102519663B1 (ko) 2015-07-31 2023-04-07 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 시스템 및 그것의 동작 방법
US9948556B2 (en) 2015-08-25 2018-04-17 Google Llc Systems and methods for externalizing network functions via packet trunking
US9929750B2 (en) 2015-09-08 2018-03-27 Toshiba Memory Corporation Memory system
US9959138B1 (en) 2015-09-11 2018-05-01 Cohesity, Inc. Adaptive self-maintenance scheduler
US10866910B2 (en) 2015-09-28 2020-12-15 Sandisk Technologies Llc Systems, methods, and computer-readable media for managing instruction fetch in virtual computing environments
US10586158B2 (en) 2015-10-28 2020-03-10 The Climate Corporation Computer-implemented calculation of corn harvest recommendations
US10204006B2 (en) 2015-10-28 2019-02-12 Avago Technologies International Sales Pte. Limited Systems and methods for side data based soft data flash memory access
US10764242B2 (en) 2015-11-24 2020-09-01 At&T Intellectual Property I, L.P. Providing network address translation in a software defined networking environment
KR102572357B1 (ko) 2016-02-03 2023-08-29 삼성전자주식회사 Raid-6 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10216575B2 (en) 2016-03-17 2019-02-26 Sandisk Technologies Llc Data coding
US10635499B2 (en) 2016-03-23 2020-04-28 Unisys Corporation Multifunction option virtualization for single root I/O virtualization
US20180032249A1 (en) 2016-07-26 2018-02-01 Microsoft Technology Licensing, Llc Hardware to make remote storage access appear as local in a virtualized environment
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10254966B2 (en) 2016-12-28 2019-04-09 Western Digital Technologies, Inc. Data management based on I/O traffic profiling
US10228874B2 (en) 2016-12-29 2019-03-12 Intel Corporation Persistent storage device with a virtual function controller
US10956346B1 (en) * 2017-01-13 2021-03-23 Lightbits Labs Ltd. Storage system having an in-line hardware accelerator
US10339068B2 (en) 2017-04-24 2019-07-02 Advanced Micro Devices, Inc. Fully virtualized TLBs
US10379765B2 (en) 2017-06-27 2019-08-13 Western Digital Technologies, Inc. Geometry-aware command scheduling
US10908998B2 (en) 2017-08-08 2021-02-02 Toshiba Memory Corporation Managing function level reset in an IO virtualization-enabled storage device
US10996888B2 (en) 2017-10-31 2021-05-04 Qualcomm Incorporated Write credits management for non-volatile memory
US11048537B2 (en) * 2017-11-10 2021-06-29 Microsoft Technology Licensing, Llc Virtual machine compute re-configuration
US10509753B2 (en) 2018-02-26 2019-12-17 Micron Technology, Inc. Dynamic allocation of resources of a storage system utilizing single root input/output virtualization
US10698709B2 (en) * 2018-03-07 2020-06-30 Microsoft Technology Licensing, Llc Prediction of virtual machine demand
US10901910B2 (en) 2018-04-05 2021-01-26 International Business Machines Corporation Memory access based I/O operations
US20190354599A1 (en) 2018-05-21 2019-11-21 Microsoft Technology Licensing, Llc Ai model canvas
CN108959127B (zh) 2018-05-31 2021-02-09 华为技术有限公司 地址转换方法、装置及系统
US11630920B2 (en) 2018-06-29 2023-04-18 Intel Corporation Memory tagging for side-channel defense, memory safety, and sandboxing
US10725941B2 (en) 2018-06-30 2020-07-28 Western Digital Technologies, Inc. Multi-device storage system with hosted services on peer storage devices
US11429419B2 (en) 2018-08-03 2022-08-30 Nvidia Corporation Secure access of virtual machine memory suitable for AI assisted automotive applications
US11074013B2 (en) 2018-08-07 2021-07-27 Marvell Asia Pte, Ltd. Apparatus and methods for providing quality of service over a virtual interface for solid-state storage
US10866740B2 (en) 2018-10-01 2020-12-15 Western Digital Technologies, Inc. System and method for performance-based multiple namespace resource allocation in a memory
US11010314B2 (en) 2018-10-30 2021-05-18 Marvell Asia Pte. Ltd. Artificial intelligence-enabled management of storage media access
US11481118B2 (en) 2019-01-11 2022-10-25 Marvell Asia Pte, Ltd. Storage media programming with adaptive write buffer release
US11132131B2 (en) 2019-02-28 2021-09-28 Oracle International Corporation Consistently enforcing I/O resource constraints for workloads on parallel-access storage devices
US11133067B2 (en) 2019-03-08 2021-09-28 Western Digital Technologies, Inc. Multi-phased programming with balanced gray coding
US11023397B2 (en) 2019-03-25 2021-06-01 Alibaba Group Holding Limited System and method for monitoring per virtual machine I/O
US11055232B2 (en) 2019-03-29 2021-07-06 Intel Corporation Valid bits of a translation lookaside buffer (TLB) for checking multiple page sizes in one probe cycle and reconfigurable sub-TLBS
US11372586B2 (en) 2020-05-19 2022-06-28 Hewlett Packard Enterprise Development Lp System and method for regulating NVMe-oF command requests and data flow across a network with mismatched rates
US20230045617A1 (en) 2021-08-03 2023-02-09 Samsung Electronics Co., Ltd. Method and electronic device for managing a boost time required for an application launch

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011128787A (ja) * 2009-12-16 2011-06-30 Internatl Business Mach Corp <Ibm> アドレス変換を高速化する方法及びシステム
US20140281142A1 (en) * 2011-09-23 2014-09-18 Avalanche Technology, Inc. Storage System Employing MRAM and Redundant Array of Solid State Disk
CN102708316A (zh) * 2012-04-19 2012-10-03 北京华胜天成科技股份有限公司 一种用于多租户架构中数据隔离的方法
US20140019602A1 (en) * 2012-07-12 2014-01-16 Microsoft Corporation Load balancing for single-address tenants
US20140304299A1 (en) * 2013-03-15 2014-10-09 Emc Corporation Data management in a multi-tenant distributive environment
CN104202359A (zh) * 2014-08-12 2014-12-10 浪潮电子信息产业股份有限公司 一种基于刀片服务器的NVMe SSD虚拟化设计方法
KR101579941B1 (ko) * 2014-09-03 2015-12-23 서울대학교 산학협력단 가상머신 i/o 관리 방법 및 장치
US20170302501A1 (en) * 2014-12-31 2017-10-19 Huawei Technologies Co., Ltd. Method, Apparatus, and System for Controlling Sending of MAC Address Forwarding Table
US20160218991A1 (en) * 2015-01-23 2016-07-28 Netapp, Inc. Provisioning of isolated path from computer to co-located storage
US20180088804A1 (en) * 2016-09-28 2018-03-29 Amazon Technologies, Inc. Virtualizing non-volatile storage at a peripheral device
CN108038390A (zh) * 2017-12-09 2018-05-15 珠海横琴小可乐信息技术有限公司 一种软件即服务平台租户数据隔离与共享的方法及系统

Also Published As

Publication number Publication date
US20200050385A1 (en) 2020-02-13
US11656775B2 (en) 2023-05-23
EP3608787A1 (en) 2020-02-12
KR20200016809A (ko) 2020-02-17

Similar Documents

Publication Publication Date Title
US11656775B2 (en) Virtualizing isolation areas of solid-state storage media
US11537529B1 (en) Storage drive with defect management on basis of segments corresponding to logical erase units
US11966581B2 (en) Data management scheme in virtualized hyperscale environments
US11029853B2 (en) Dynamic segment allocation for write requests by a storage system
KR102519904B1 (ko) 영구 메모리 할당 및 구성
US20210165737A1 (en) Namespace mapping optimization in non-volatile memory devices
US11016817B2 (en) Multi root I/O virtualization system
US10152234B1 (en) Virtual volume virtual desktop infrastructure implementation using a primary storage array lacking data deduplication capability
US20230315293A1 (en) Data management scheme in virtualized hyperscale environments
US10977198B2 (en) Hybrid memory system interface
WO2020122779A1 (en) Methods and nodes for handling memory
WO2018067745A1 (en) Parallel segment writer

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right

Effective date of registration: 20201229

Address after: Ford street, Grand Cayman, Cayman Islands

Applicant after: Kaiwei international Co.

Address before: Hamilton, Bermuda Islands

Applicant before: Marvell International Ltd.

Effective date of registration: 20201229

Address after: Singapore City

Applicant after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Applicant before: Kaiwei international Co.

Effective date of registration: 20201229

Address after: Hamilton, Bermuda Islands

Applicant after: Marvell International Ltd.

Address before: Saint Michael

Applicant before: MARVELL WORLD TRADE Ltd.

TA01 Transfer of patent application right
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination