TWI625674B - 用於支援在主機上運行的多個虛擬機器的nvme控制器虛擬化的系統和方法 - Google Patents

用於支援在主機上運行的多個虛擬機器的nvme控制器虛擬化的系統和方法 Download PDF

Info

Publication number
TWI625674B
TWI625674B TW104107519A TW104107519A TWI625674B TW I625674 B TWI625674 B TW I625674B TW 104107519 A TW104107519 A TW 104107519A TW 104107519 A TW104107519 A TW 104107519A TW I625674 B TWI625674 B TW I625674B
Authority
TW
Taiwan
Prior art keywords
nvme
virtual
nvme controller
controller
host
Prior art date
Application number
TW104107519A
Other languages
English (en)
Other versions
TW201543366A (zh
Inventor
穆罕默德 瑞格希布 胡珊
威薩爾 穆蓋
曼諾庫瑪 潘尼克
費瑟爾 瑪索得
布萊恩 佛森
理查 尤金 克萊思勒
Original Assignee
美商凱為公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/279,712 external-priority patent/US9501245B2/en
Application filed by 美商凱為公司 filed Critical 美商凱為公司
Publication of TW201543366A publication Critical patent/TW201543366A/zh
Application granted granted Critical
Publication of TWI625674B publication Critical patent/TWI625674B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

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)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提出了一種新方式,該方式考量到了系統和方法,這些系統和方法虛擬化與計算設備或者主機相關聯的物理NVMe控制器,從而使得在主機上運行的每個虛擬機器可以具有它自己專用虛擬NVMe控制器。首先,在單個物理NVMe控制器上創建多個虛擬NVMe控制器,該單個物理NVMe控制器與一個或者多個儲存裝置相關聯。一旦被創建,該多個虛擬NVMe控制器就被提供給在主機上運行的VM以代替被附接到主機的單個物理NVMe控制器,並且虛擬NVMe控制器中的每個虛擬NVMe控制器把將被它的對應的VM存取的存儲單元組織為邏輯卷。作為結果,在主機上運行的VM中的每個VM具有它自己的名稱空間並且可以通過它自己的虛擬NVMe控制器直接存取它的存放裝置。

Description

用於支援在主機上運行的多個虛擬機器的NVME控制器虛擬化的 系統和方法
本發明涉及NVME控制器虛擬化的系統和方法,尤其是指用於支援多個虛擬機器的NVME控制器虛擬化的系統和方法。
非揮發性記憶體快捷(也被稱為NVMe或者NVM Express)是一種允許固態驅動(SSD)有效使用附接到計算設備或者主機的高速週邊部件互連快捷(PCIe)匯流排的規範。這裡,PCIe匯流排是被設計用於支援硬體I/O虛擬化以及使能用於匯流排設備的最大系統匯流排輸送量、低I/O pin腳數以及小物理空間佔用的高速串列電腦擴展匯流排。NVMe典型地在主機的非揮發性記憶體控制器上操作,該非揮發性記憶體控制器管理被存儲在非揮發性記憶體(例如,SSD)上的資料並且與主機通信。這樣的NVMe控制器,以對廣泛的企業和用戶端系統上的增加的和高效的性能和互通性為目標,提供用於基於PCIe的SSD存取的指令集和特徵集。與通過I/O堆疊的簡化的基於串列附接SCSI(SAS)或者基於串列ATA(SATA)的SSD相比,使用NVMe控制器以存取基於PCIe的SSD的主要益處是減少的延時、增加的每秒輸入/輸出(I/O)操作(IOPS)以及更低的功率消耗。
服務提供者已經越來越多地在雲端上的第三方資料中心,通過在資料中心處的主機/伺服器上運行多個虛擬機器(VM), 提供它們的web服務(例如,網站)。這裡,VM是物理機器(即,電腦)的軟體實現方式,該物理機器執行程式以模擬存在的計算環境,諸如作業系統(OS)。VM在超管理器(hypervisor)的頂部運行,該超管理器在主機上創建和運行一個或者多個VM。超管理器利用虛擬操作平臺呈現每個VM並且管理主機上的每個VM的執行。通過使具有不同作業系統的多個VM能夠共用同一主機機器,超管理器在能源消耗和成本效率方面,尤其在雲端計算環境中,致使對計算資源的更有效使用。
當前,VM的主機只能看到物理地連接的NVMe控制器的單個實例,並且只有在主機上運行的管理程式可以存取物理NVMe控制器。因此,在主機上運行的所有VM不得不共用同一NVMe控制器,並且不得不通過超管理器來存取與NVMe控制器關聯的存儲單元(名稱空間)。由於在資料中心處的主機上運行的VM可能屬於不同的web服務提供方,所以將希望每個VM可以對於它自己的存儲單元具有它自己的專用的NVMe控制器和名稱空間,而不是與其他VM共用。
相關領域的前述示例以及與之相關的限制旨在於是例示性而非排他的。相關領域的其他限制通過閱讀說明書以及研究附圖將變得顯而易見。
為了解決VM共用NVMe控制器和名稱空間等的問題,本發明提供了一種支援非揮發性記憶體快速(NVMe)控制器虛擬化的系統。該系統包括NVMe管理引擎。在操作中,所述NVMe管理引擎被配置為創建和初始化在單個物理NVMe控制器上運行的一個或者多個虛擬NVMe控制器,其中所述虛擬NVMe控制器中的每個虛擬NVMe控制器被配置為支援的多個虛擬機器(VM)中的一個虛擬機器以訪問它的存儲單元。
在所述單個物理NVMe控制器上運行的所述虛擬 NVMe控制器,其中所述虛擬NVMe控制器中的每個虛擬NVMe控制器被配置為:建立具有用於一個或者多個對應的名稱空間的存儲單元的邏輯卷,以供所述VM中的一個VM來存取;從所述VM擷取和處理命令及/或資料,以存取用於所述VM的存儲單元的所述邏輯卷或者所述名稱空間;經由所述虛擬NVMe控制器向所述VM提供回所述命令及/或資料的處理結果。
本發明又提供一種支援非揮發性記憶體快速(NVMe)控制器虛擬化的電腦實現的方法。該方法包括後術步驟。創建和初始化在單個物理NVMe控制器上運行的一個或者多個虛擬NVMe控制器,其中所述虛擬NVMe控制器中的每個虛擬NVMe控制器被配置為支援多個虛擬機器(VM)中的一個虛擬機器;建立具有一個或者多個對應的名稱空間的存儲單元的邏輯卷,所述名稱空間供所述VM中的每個VM經由它的對應的虛擬NVMe控制器存取;經由所述VM中的每個VM的對應的虛擬NVMe控制器,從所述每個VM擷取和處理命令及/或資料,以存取用於所述VM的存儲單元的所述邏輯卷或者所述名稱空間;經由所述VM的對應的虛擬NVMe控制器,向所述VM提供回所述命令及/或資料的處理結果。
100‧‧‧系統
102‧‧‧物理NVMe控制器
104‧‧‧虛擬NVMe控制器
106‧‧‧主機
108‧‧‧NVMe管理引擎
200‧‧‧硬體
202‧‧‧NVMe處理引擎
204‧‧‧NVMe佇列管理器
206‧‧‧處理器
208‧‧‧記憶體
110‧‧‧虛擬機器(VM)
111‧‧‧PCIe/NVMe連結/連接
112‧‧‧超管理器
114‧‧‧NVMe驅動器
118‧‧‧介面
120‧‧‧儲存裝置
210‧‧‧記憶體
212‧‧‧提交佇列
214‧‧‧完成佇列
216‧‧‧資料緩衝器
218‧‧‧等待緩衝器
300‧‧‧流程圖
302‧‧‧方塊
304‧‧‧方塊
306‧‧‧方塊
308‧‧‧方塊
在結合附圖閱讀以下詳細描述時最好地理解本公開內容的各個方面。值得注意的是,根據行業內的標準慣例,各種特徵並非按比例繪製。事實上,為了討論的清晰,各種特徵的尺寸可以被任意增加或者減少。
第一圖描繪了根據一些實施例的支援NVMe控制器虛擬化的系統100的示圖的示例。
第二圖描繪了根據一些實施例的在第一圖中描繪的物理NVMe控制器102的硬體實現方式的示例。
第三圖描繪了根據一些實施例的用來支持NVMe控制器虛擬化的過程的示例的流程圖。
以下公開內容為了實現本主題的不同特徵而提供了許多不同實施例或者示例。以下描述了組件和佈置的具體示例以簡化本公開內容。當然,這些僅是示例而並非旨在於限制。另外,本公開內容可以重複在各種示例中的引用數字和/或字母。這一重複是為了簡單和清楚,而非規定所討論的各種實施例和/或配置之間的關係。
提出了一種新方式,該方式考量系統和方法,該系統和方法虛擬化與計算設備或者主機相關聯的NVMe控制器,從而使得在主機上運行的每個虛擬機器可以具有它自己專用NVMe控制器。首先,在單個物理NVMe控制器上創建與一個或者多個儲存裝置相關聯的多個虛擬NVMe控制器。一旦被創建,則該多個虛擬NVMe控制器被提供給在主機上運行的VM以代替附接到主機的單個物理NVMe控制器,並且每個虛擬NVMe控制器把將由它的對應的VM存取的存儲單元組織為邏輯卷。作為結果,在主機上運行的VM中的每個VM具有它自己的名稱空間並且可以通過它自己的虛擬NVMe控制器直接存取它的儲存裝置。
通過將單個物理NVMe控制器虛擬化為多個虛擬NVMe控制器,本文提出的方式使來自在第三方資料中心處託管的不同web服務提供方的VM,能夠各自具有對它自己的存儲名稱空間的專用存取,這為VM改善了延時、性能、資料安全性以及完整性。另外,由於虛擬NVMe控制器使VM能夠直接存取它們的儲存裝置的名稱空間,而不用通過主機上的超管理器,因此它們高效地卸載資料並且控制來自超管理器的I/O操作,因此為主機消除了潛在的瓶頸並且為VM存取它們的儲存裝置增加了I/O輸送量。
第一圖描繪了支援NVMe控制器虛擬化的系統100的示圖的示例。雖然該示圖將元件描繪為在功能上地分離,但是這樣的描述僅用於例示性目的。將顯然的是,在這一附圖中繪出 的元件可以被任意地結合或者拆分為分離的軟體,韌體和/或硬體元件。此外,也將顯然的是,無論這樣的元件如何被組合或者拆分,它們都能夠在同一主機或者多個主機上執行,並且其中該多個主機可以經由一個或者多個網路被連接。
在圖1的示例中,系統100包括在物理NVMe控制器102上運行的多個虛擬NVMe控制器104以及在主機106上運行的NVMe管理引擎108。這裡,主機106可以是計算設備、通信設備、儲存裝置或者任何能夠運行軟體元件的電子設備。作為非限制性示例,計算設備可以是但不限於,膝上型PC、桌上型PC、移動設備或者諸如x86/ARM伺服器之類的伺服器機器。通信設備可以是但不限於行動電話。
在一些實施例中,主機106還主控多個VM 110,每個VM被配置為在網路之上向用戶端提供基於web的服務。這裡,VM 110在計算單元/裝置/主機106上的超管理器112的頂端上運行,該VM 110包括一個或者多個CPU或者微處理器、諸如RAM之類的記憶體(也被稱作主記憶體)以及諸如非揮發性記憶體(也被稱作次要存放裝置)之類存儲單元,其中存儲有用於實踐一個或者多個處理的軟體指令。當軟體指令被執行,軟體指令的至少子集被載入到記憶體中,並且計算單元變成用於實踐該方法的專用計算單元。當在通用計算單元上被實施時,電腦程式程式碼片段配置計算單元以創建特定邏輯電路。過程可以選擇性地被至少部分地體現在由用於執行處理的專用積體電路(ASIC)形成的數位訊號處理器中。在一些實施例中,NVMe管理引擎108可以作為超管理器112的元件在主機106上運行,如在下面詳細討論的那樣。
在第一圖的示例中,物理NVMe控制器102是具有軟體、韌體、硬體和/或其他被用於完成目的的元件的硬體/韌體非揮發性記憶體存取模組。物理NVMe控制器102經由PCIe/NVMe連結/連接111與主機106耦合,並且在主機106上運行的VM 110和NVMe管理引擎108兩者均被配置為經由PCIe/NVMe連結/連 接111存取物理NVMe控制器102和虛擬NVMe控制器104。作為非限制性示例,PCIe/NVMe連結/連接111是PCIe Gen3 x8匯流排。
在一些實施例中,物理NVMe控制器102還包括用於存取注入SSD之類的多個非揮發性硬碟儲單元102並且與之通信的介面118。在一些實施例中,物理NVMe控制器102提供物理功能(PF)和虛擬功能(VF)兩者來支援在其上運行的虛擬NVMe控制器104。如這裡所引用的,PF功能是用來配置和管理控制器的單根I/O虛擬化(SR-IOV)功能的PCIe功能,諸如支援虛擬化和顯露PCIe VF;其中VF功能是支持SR-IOV並且表示用於為虛擬NVMe控制器104的控制器的虛擬化的實例的羽量級PCIe功能。每個VF共用物理NVMe控制器102上的一個或者多個物理資源,其中此類資源包括但不限於接通控制器記憶體(on-controller memory),硬體加速器以及物理NVMe控制器102的存儲介面118。
第二圖描繪了在第一圖中描繪的物理NVMe控制器102的硬體實現方式200的示例。如在第二圖的示例中所示,硬體實現方式至少包括NVMe處理引擎202以及被實現為支援NVMe處理引擎202的NVMe佇列管理器(NQM)204。這裡,NVMe處理引擎202包括一個或者多個CPU/處理器206(例如,多核ARM/MIPS處理器)以及諸如DRAM之類的主記憶體208。NVMe處理引擎202被配置為執行所有NVMe管理和命令,並且在命令完成後提供結果。硬體實現的NQM 204向在NVMe處理引擎202上執行的虛擬NVMe控制器104提供前端介面。在一些實施例中,NQM 204至少管理,包括將被NVMe處理引擎202處理的多個管理和控制命令的提交佇列212,以及包括已經被NVMe處理引擎202處理了的多個管理和控制命令的狀態的完成佇列214。在一些實施例中,NQM 204進一步管理一個或者多個資料緩衝器216,該資料緩衝器216包括,經由虛擬NVMe控制器104中的一個虛擬NVMe控制器,從儲存裝置讀取的或者將被寫入存儲存置的資 料。在一些實施例中,提交佇列212、完成佇列214以及資料緩衝器216中的一個或者多個被維持在主機106的記憶體210中。
當在主機106上運行的VM 110中的一個VM執行讀取或者寫入操作時,它在主機106上的提交佇列212中放置對應的命令/指令。在其操作期間,NQM 204被配置為,基於讀取或者寫入操作的“門鈴(doorbell)”,從主機106上的提交佇列212提取管理和/或控制命令,其中門鈴由主機106生成並且自主機106接收。NQM 204還提取將被從主機106上的資料緩衝器216中的一個資料緩衝器通過寫入操作寫入的資料。然後,NQM 204在NVMe處理引擎202的記憶體208中的等待緩衝器218中放置提取來的命令,從而等待多核處理器206來處理。在一些實施例中,在等待緩衝器218中接收的命令,按照它們被接收的順序經由多核處理器206,被對應的虛擬NVMe控制器處理。一旦命令被處理,NQM 204就將命令的狀態放回完成佇列214中並且相應地通知對應的VM 110。NQM 204還將通過讀取操作所讀取的資料放入資料緩衝器216並且使其對VM 110可用。
在第一圖的示例中,由NVMe管理引擎108創建並管理在單個物理NVMe控制器102上運行的多個虛擬NVMe控制器104。這裡,每個虛擬NVMe控制器104是模仿將被在主機106上運行的VM 110中的一個VM所存取的NVMe控制器的功能的硬體加速的軟體引擎,其中虛擬NVMe控制器104的所有功能可以被NVMe管理引擎108管理,如以下具體討論的那樣。
在一些實施例中,虛擬NVMe控制器104具有與VM 110的一對一對應關係,其中每個虛擬NVMe控制器104僅與VM 110中的一個VM互動並且僅允許來自VM 110中的一個VM的存取。每個虛擬NVMe控制器104被指派並且專用於支援VM 110中的一個並且僅一個VM來訪問它的儲存裝置,其中任何單個虛擬NVMe控制器104未被跨越多個VM 110所共用。在一些實施例中,在系統100的初始化期間,向每個VM 110配置並且指派唯一靜態秘密(unique static secret)(例如,12位元組長)。每個從 特定VM 110到虛擬NVMe控制器104的隨後請求,接著針對在虛擬NVMe控制器104與VM 110之間的互動處理期間被即時指派給特定VM 110的靜態秘密,被檢查並且認證。
在一些實施例中,虛擬NVMe控制器104中的每個虛擬NVMe控制器建立並且向它的對應的VM 110提供邏輯或者虛擬卷/盤,該邏輯或者虛擬卷/盤是VM 110對其執行I/O操作的存儲單元/設備的彙集。這裡,卷被分類為虛擬的,因為它映射到本地附接於NVMe控制器102的一個或者多個物理儲存裝置。在一些實施例中,虛擬卷包括在虛擬卷與儲存裝置120之間的中繼資料映射表,其中映射表將傳入(incoming)(虛擬)卷識別符和虛擬卷上的邏輯區塊定址(LBA)轉譯為一個或者多個對應的物理硬碟識別符和在儲存裝置120上的LBA。在一些實施例中,虛擬硬碟可以包括跨越在存放裝置120中的多個物理盤的邏輯區塊。
在一些實施例中,虛擬NVMe控制器104中的每個虛擬NVMe控制器將與它的對應的VM 110關聯的存儲單元提供/匯出,作為一個或者多個NVMe名稱空間,該一個或者多個NVMe名稱空間被組織為多個目錄和檔以使VM 110能夠經由檔案名和/或名稱空間中的路徑來存取虛擬卷。在一些實施例中,多個VM 110被使能以存取同一邏輯卷或者虛擬卷,並且每個邏輯/虛擬卷可以通過他們各自的虛擬NVMe控制器104在多個VM之中被共用。
在一些實施例中,每個虛擬NVMe控制器104被配置為支援來自它的對應的VM 110的、針對它的操作的基於身份的認證和存取,其中每個身份允許用於不同類型的命令的不同API調用集合,這些命令用來創建、初始化以及管理虛擬NVMe控制器104,和/或提供對用於VM 110的邏輯卷的存取。在一些實施例中,由虛擬NVMe控制器104使之可用的命令的類型,基於用戶通過VM 110請求存取的類型而改變,並且一些API調用不要求任何用戶登錄。作為非限制性的示例,NVMe管理引擎108可以 利用不同類型的命令來初始化和管理在物理NVMe控制器102上運行的虛擬NVMe控制器104。
在一些實施例中,虛擬NVMe控制器104中的每個虛擬NVMe控制器具有一對或者多對提交佇列212和與之關聯的完成佇列214,其中每個佇列可以容納來自VM 110中的一個VM的多個命令條目。如上所述,提交佇列212中的命令首先由NQM 204從主機106的記憶體210提取到如上所述的NVMe處理引擎202的等待緩衝器218。在其操作期間,虛擬NVMe控制器104中的每個虛擬NVMe控制器從等待緩衝器218取回它的對應的VM 110的命令,並且通過調用由物理NVMe控制器102提供的支援VF功能經由NVMe處理引擎202處理在將被相應地寫入或者讀取到邏輯卷的資料上的命令。作為結果,資料經由介面到硬碟存儲裝置118,被傳輸到或者自VM 110邏輯卷中的存儲單元接收。一旦命令已被處理,虛擬NVMe控制器104就在處理引擎202的等待緩衝器218中保存已執行的命令的狀態,該命令然後被NQM 204放入完成佇列214中。被VM的命令所處理的資料也在主機106的記憶體210的資料緩衝器216和NVMe處理引擎202的記憶體208之間被傳遞。
在一些實施例中,在主機106上運行的VM 110中的每個VM具有NVMe驅動器114,該NVMe驅動器被配置為經由PCIe/NVMe連結/連接111與物理NVMe控制器102和虛擬NVMe控制器104互動。在一些實施例中,NVMe驅動器114中的每個NVMe驅動器是虛擬功能(VF)驅動器,該被虛擬功能(VF)驅動器配置為與主機106的PCIe/NVMe連結/連接111互動,以及在它對應的VM 110和虛擬NVMe控制器104之間設立通信路徑,以及接收和傳輸與對應的VM 110關聯的資料。在一些實施例中,VM 106的VF NVMe驅動器114和對應的虛擬NVMe控制器104通過如上所述的SR-IOV PCIe連接彼此通信。
在一些實施例中,由主機106的超管理器112控制和調度的VM 110,獨立地運行並且彼此隔離,從而使得一個VM 110不能存取在同一主機上運行的任何其他VM 110的邏輯卷和/或通信。當向和/或從VM 110傳輸命令和/或資料時,對應的VF NVMe驅動器114直接從它的佇列和/或資料緩衝器放入和/或擷取命令和/或資料,該命令和/或資料從PCIe/NVMe連結/連接111發送或者接收,而資料無需被主機106或者在同一主機106上運行的任何其他VM 110所存取。
在第一圖的示例中,NVMe管理引擎108被配置為與NVMe控制器102互動並且被用作管理員角色以初始化和管理多個虛擬NVMe控制器104。在一些實施例中,NVMe管理引擎108是在主機106上運行的超管理器112中嵌入的軟體元件。在一些實施例中,NVMe管理引擎108是物理功能(PF)NVMe驅動器,該物理功能(PF)NVMe驅動器是支援SR-IOV介面並且被用於配置和管理諸如支援虛擬化以及向虛擬NVMe控制器104顯露PCIe VF的NVMe控制器102的SR-IOV功能的PCIe功能實現方式。
在其操作期間,NVMe管理引擎108被配置為決定支援VM 110所需的虛擬NVMe控制器104的數目,向用於與VM 110通信的物理NVMe控制器102載入驅動器,創建、發起並且監視專用於服務於VM 110的虛擬NVMe控制器104,以及為這些各種元件處理關鍵/管理更新。在其操作期間,NVMe管理引擎108發出管理命令,該管理命令被放置在主機106的記憶體210中的它的提交佇列212中,由NQM 204來提取,並且由物理NVMe控制器102的處理引擎202所處理。命令的執行結果被NQM 204放置在完成佇列214中以用於NVMe管理引擎108來處理。
在一些實施例中,NVMe管理引擎108被配置為設置和初始化虛擬NVMe控制器104以用於與VM 110的VF NVMe驅動器114一起操作。NVMe管理引擎108執行初始交握(handshake)並且建立與物理NVMe控制器102的一請求/回應通信通道。NVMe管理引擎108識別所需的有效虛擬NVMe控制器104的數目並且接著創建多個各自專用於VM 110中的一個VM的 多個虛擬NVMe控制器104,初始化並且管理物理NVMe控制器102上的虛擬NVMe控制器104。在一些實施例中,NVMe管理引擎108可以隨後基於在主機106上運行的VM 110的數目和/或物理NVMe控制器102的物理限制,來添加和/或刪除虛擬NVMe控制器104,以支援虛擬NVMe控制器104。
在一些實施例中,當特定VM 110被從當前主機106遷移到另一主機時,NVMe管理引擎108被配置為,作為用於VM 110的遷移處理的一部分,及時凍結被指派給VM 110的虛擬NVMe控制器104並且將虛擬NVMe控制器104移動到不同物理NVMe控制器102。在一些實施例中,NVMe管理引擎108被配置為拍攝NVMe管理引擎108正運行於其上當前物理NVMe控制器102上的虛擬NVMe控制器104的快照(snapshot),並且將快照拷貝到它將要運行於其上的新的物理NVMe控制器102。隨著遷移,VM 110的NVMe驅動器114將與在新的物理NVMe控制器102上運行的虛擬NVMe控制器104的實例通信,並且VM 110可以不間斷地繼續訪問它的名稱空間中的存儲單元。
第三圖描繪了用於支持NVMe控制器虛擬化的處理的示例的流程圖。儘管這一附圖為了例示目的按照特定順序描繪了功能步驟,但該處理並不限於步驟的任何特定順序或者排列。相關領域技術人員將領會到,在這一附圖中描繪的各種步驟可以按照各種方式被省略、重新排列、結合和/或適配。
在第三圖的示例中,流程圖300開始於方塊302,其中創建和初始化在單個物理NVMe控制器上運行的一個或者多個虛擬NVMe控制器,其中虛擬NVMe控制器中的每個虛擬NVMe控制器被配置為支援按照一對一對應在主機上運行的多個虛擬機器(VM)中的一個或者多個VM。流程圖300繼續至方塊304,建立具有一個或者多個對應的名稱空間的存儲單元的邏輯卷,該名稱空間以供VM中的每個VM經由它的對應的虛擬NVMe控制器來存取。流程圖300繼續至方塊306,其中來自VM中的每個VM的命令和/或資料,被它的對應的虛擬NVMe控制器所擷取並 處理以存取用於VM的存儲單元中的邏輯卷。流程圖300結束於方塊308,其中命令和/或資料的處理結果,經由它的對應的虛擬NVMe控制器,被提供回VM。
這裡描述的方法和系統可以至少部分地按照電腦實現的過程和用於實踐這些過程的裝置的形式被體現。公開的方法也可以至少部分地按照有形的、利用電腦程式代碼編碼的非暫態機器可讀存儲媒介的形式被體現。媒介可以包括例如RAM、ROM、CD-ROM、DVD-ROM、BD-ROM、硬碟驅動、快閃記憶體、或者任何其他非暫態機器可讀存儲介質,其中,當電腦程式代碼被載入到電腦中並由電腦執行時,電腦成為用於實踐方法的裝置。方法也可以至少部分地按照電腦的形式被地具體化,在該電腦中載入和/或執行電腦程式代碼,從而使得電腦成為用於實踐方法的專用電腦。當在通用處理器上被實施時,電腦程式程式碼片段配置處理器以創建特定邏輯電路。方法可以選擇性地至少部分地在由專用積體電路形成的數位訊號處理器中被體現以用於執行方法。
經出於例示和描述的目的,而提供了對要求保護的標的內容的各種實施例的前述說明。並非旨在於耗盡或者將要求保護的標的內容限制為所公開的精確形式。許多修改和變化對本領域技術人員而言是顯而易見的。實施例被選擇和描述以便最好地描述本發明的原則及其實踐應用,由此使得相關領域的其他技術人員能夠理解要求保護的標的內容、各種實施例以及具有適合於預期的特定使用的各種修改。

Claims (29)

  1. 一種支援非揮發性記憶體快速(NVMe)控制器虛擬化的系統,包括:在主機上運行的NVMe管理引擎,在操作中,所述NVMe管理引擎被配置為創建和初始化在單個物理NVMe控制器上運行的一個或者多個虛擬NVMe控制器,其中所述虛擬NVMe控制器中的每個虛擬NVMe控制器被配置為支援在所述主機上運行的多個虛擬機器(VM)中的一個虛擬機器以訪問它的存儲單元;接著基於運行在所述主機的所述虛擬機器的數目及所述物理NVMe控制器支援所述虛擬NVMe控制器的物理限制增加或移除一或多個所述虛擬NVMe控制器;在所述單個物理NVMe控制器上運行的所述虛擬NVMe控制器,其中所述虛擬NVMe控制器中的每個虛擬NVMe控制器被配置為:建立具有用於一個或者多個對應的名稱空間的存儲單元的邏輯卷,以供所述VM中的一個VM來存取;從所述VM擷取和處理命令及/或資料,以存取用於所述VM的存儲單元的所述邏輯卷或者所述名稱空間;經由所述虛擬NVMe控制器向所述VM提供回所述命令及/或資料的處理結果。
  2. 如申請專利範圍第1項所述的系統,其中:所述VM的所述主機是x86/ARM伺服器。
  3. 如申請專利範圍第1項所述的系統,其中:所述虛擬NVMe控制器中的每個虛擬NVMe控制器是模仿NVMe控制器的功能的硬體加速的軟體引擎。
  4. 如申請專利範圍第1項所述的系統,其中:所述虛擬NVMe控制器中的每個虛擬NVMe控制器被配置為僅與所述VM中的一個VM互動並且僅允許來自所述VM中的一個VM的存取。
  5. 如申請專利範圍第1項所述的系統,其中:在所述邏輯卷中的所述存儲單元中的每個存儲單元,被本地附接到所述物理NVMe控制器。
  6. 如申請專利範圍第1項所述的系統,其中:所述名稱空間中的每個名稱空間被組織為多個目錄和檔,以使得所述VM能夠,經由存放裝置上的所述名稱空間中的路徑或者檔案名,存取所述邏輯卷。
  7. 如申請專利範圍第1項所述的系統,其中:所述多個VM中的多個VM被使能存取同一邏輯卷,並且每個邏輯卷被使能以在所述多個VM之間通過它們的各自的虛擬NVMe控制器被共用。
  8. 如申請專利範圍第1所述的系統,其中:所述虛擬NVMe控制器中的每個虛擬NVMe控制器被配置為支援來自它的對應的VM的、針對它的操作的基於身份的認證和存取,其中每個身份允許用於不同類型的命令的不同API調用集合,所述命令用來創建、初始化以及管理所述虛擬NVMe控制器及/或提供對用於所述VM的所述存儲單元的存取。
  9. 如申請專利範圍第1項所述的系統,其中:在所述主機上運行的所述VM彼此隔離,從而使得一個VM無法訪問在同一主機上運行的任何其他VM的資料存儲及/或通信。
  10. 如申請專利範圍第1項所述的系統,其中:所述NVMe管理引擎是被嵌入在運行於所述主機上的超管理器中的物理功能(PF)NVMe驅動器。
  11. 如申請專利範圍第1項所述的系統,其中:所述NVMe管理引擎被配置為,決定支援所述VM所需的所述虛擬NVMe控制器的數目,向用來與所述VM通信的所述物理NVMe控制器載入驅動器,起動並且監視專用於服務於所述VM的所述虛擬NVMe控制器。
  12. 如申請專利範圍第1項所述的系統,其中:所述NVMe管理引擎被配置為,作為用於所述VM的遷移過程的一部分,及時凍結被指派給所述VM的所述虛擬NVMe控制器以及將所述虛擬NVMe控制器移動到不同物理NVMe控制器,所述VM正在從當前主機被遷移到另一主機。
  13. 如申請專利範圍第1項所述的系統,其中:所述物理NVMe控制器,經由週邊元件互聯快速(PCIe)/NVMe連結,連接到所述主機。
  14. 如申請專利範圍第13項所述的系統,其中:在所述主機上運行的所述VM中的每個VM具有被配置為,經由所述PCIe/NVMe連接,與所述物理NVMe控制器和所述虛擬NVMe控制器互動的NVMe驅動器。
  15. 如申請專利範圍第1項所述的系統,其中:所述物理NVMe控制器提供物理功能(PF)和虛擬功能(VF)兩者,以支援在其上運行的所述虛擬NVMe控制器。
  16. 如申請專利範圍第15項所述的系統,其中:所述虛擬NVMe控制器中的每個虛擬NVMe控制器被配置為,通過調用由所述物理NVMe控制器提供的支援VF功能,來處理它的對應的VM的所述命令。
  17. 如申請專利範圍第1項所述的系統,其中:所述物理NVMe控制器還包括:NVMe佇列管理器(NQM),所述NQM被配置為管理包括來自所述VM的所述命令的多個佇列;處理引擎,所述處理引擎至少包括記憶體單元和被配置為處理所述佇列中的所述命令的處理器。
  18. 如申請專利範圍第17項所述的系統,其中:所述NQM從第一佇列提取所述命令,將所述命令提供給所述處理引擎以用於處理,並且將所述命令的處理結果放入用於所述VM的第二佇列中。
  19. 一種支援非揮發性記憶體快速(NVMe)控制器虛擬化的電腦實現的方法,包括:創建和初始化在單個物理NVMe控制器上運行的一個或者多個虛擬NVMe控制器,其中所述虛擬NVMe控制器中的每個虛擬NVMe控制器被配置為支援在主機上運行的多個虛擬機器(VM)中的一個虛擬機器;建立具有一個或者多個對應的名稱空間的存儲單元的邏輯卷,所述名稱空間供所述VM中的每個VM經由它的對應的虛擬NVMe控制器存取;經由所述VM中的每個VM的對應的虛擬NVMe控制器,從所述每個VM擷取和處理命令及/或資料,以存取用於所述VM的存儲單元的所述邏輯卷或者所述名稱空間;經由所述VM的對應的虛擬NVMe控制器,向所述VM提供回所述命令及/或資料的處理結果。
  20. 如申請專利範圍第19項所述的方法,還包括:經由週邊元件互聯快速(PCIe)/NVMe連結,將所述物理NVMe控制器連接到所述主機。
  21. 如申請專利範圍第19項所述的方法,還包括:從第一佇列取來所述命令,將所述命令提供給處理引擎以用於處理,以及將所述命令的所述處理結果放入用於所述VM的第二佇列中。
  22. 如申請專利範圍第19項所述的方法,還包括:將所述名稱空間中的每個名稱空間組織為多個目錄和檔,以使得所述VM能夠,經由存放裝置上的所述名稱空間中的路徑及/或檔案名,來存取所述邏輯卷。
  23. 如申請專利範圍第19項所述的方法,還包括:使得所述多個VM中的多個VM能夠存取同一邏輯卷,並且使得每個邏輯卷能夠在所述多個VM之間通過它們的各自的虛擬NVMe控制器被共用。
  24. 如申請專利範圍第19項所述的方法,還包括:由所述虛擬NVMe控制器中的每個虛擬NVMe控制器支持來自它的對應的VM的、針對它的操作的基於身份的認證和存取,其中每個身份允許用於不同類型的命令的不同API調用集合,所述命令用來創建、初始化以及管理所述虛擬NVMe控制器及/或提供對用於所述VM的所述存儲單元的存取。
  25. 如申請專利範圍第19項所述的方法,還包括:使在所述主機上運行的所述VM彼此隔離,從而使得一個VM無法存取在同一主機上運行的任何其他VM的資料存儲及/或通信。
  26. 如申請專利範圍第19項所述的方法,還包括:決定支持所述VM所需的所述虛擬NVMe控制器的數目,向用來與所述VM通信的所述物理NVMe控制器載入驅動器,起動並且監視專用於服務於所述VM的所述虛擬NVMe控制器。
  27. 如申請專利範圍第19項所述的方法,還包括:作為用於所述VM的遷移過程的一部分,及時凍結被指派給所述VM的所述虛擬NVMe控制器以及將所述虛擬NVMe控制器移動到不同物理NVMe控制器,所述VM正在從當前主機被遷移到另一主機。
  28. 如申請專利範圍第19項所述的方法,還包括:提供物理功能(PF)和虛擬功能(VF)兩者以支援在所述物理NVMe控制器上運行的所述虛擬NVMe控制器。
  29. 如申請專利範圍第28項所述的方法,還包括:通過調用由所述物理NVMe控制器提供的所述支援PF及/或VF功能,來處理它的對應的VM的所述命令。
TW104107519A 2014-05-02 2015-03-10 用於支援在主機上運行的多個虛擬機器的nvme控制器虛擬化的系統和方法 TWI625674B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461987956P 2014-05-02 2014-05-02
US61/987,956 2014-05-02
US14/279,712 US9501245B2 (en) 2014-05-02 2014-05-16 Systems and methods for NVMe controller virtualization to support multiple virtual machines running on a host
US14/279,712 2014-05-16

Publications (2)

Publication Number Publication Date
TW201543366A TW201543366A (zh) 2015-11-16
TWI625674B true TWI625674B (zh) 2018-06-01

Family

ID=54356104

Family Applications (5)

Application Number Title Priority Date Filing Date
TW104106793A TWI637613B (zh) 2014-05-02 2015-03-04 用於支援經由nvme將網路上的可擴展存放裝置作為本機存放區進行訪問的系統和方法
TW104106790A TWI621023B (zh) 2014-05-02 2015-03-04 用於支持對經由nvme控制器、通過網路存取的遠端存儲設備的熱插拔的系統和方法
TW104106791A TW201546717A (zh) 2014-05-02 2015-03-04 用於支援經由nvme控制器的、通過網路的用於遠端存放設備的本地快取記憶體的系統和方法
TW104107518A TW201543226A (zh) 2014-05-02 2015-03-10 用於支援經由nvme控制器的、通過網路的用於可擴展存放裝置的增值服務的系統和方法
TW104107519A TWI625674B (zh) 2014-05-02 2015-03-10 用於支援在主機上運行的多個虛擬機器的nvme控制器虛擬化的系統和方法

Family Applications Before (4)

Application Number Title Priority Date Filing Date
TW104106793A TWI637613B (zh) 2014-05-02 2015-03-04 用於支援經由nvme將網路上的可擴展存放裝置作為本機存放區進行訪問的系統和方法
TW104106790A TWI621023B (zh) 2014-05-02 2015-03-04 用於支持對經由nvme控制器、通過網路存取的遠端存儲設備的熱插拔的系統和方法
TW104106791A TW201546717A (zh) 2014-05-02 2015-03-04 用於支援經由nvme控制器的、通過網路的用於遠端存放設備的本地快取記憶體的系統和方法
TW104107518A TW201543226A (zh) 2014-05-02 2015-03-10 用於支援經由nvme控制器的、通過網路的用於可擴展存放裝置的增值服務的系統和方法

Country Status (2)

Country Link
US (2) US9294567B2 (zh)
TW (5) TWI637613B (zh)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10979503B2 (en) * 2014-07-30 2021-04-13 Excelero Storage Ltd. System and method for improved storage access in multi core system
US10565054B2 (en) 2016-08-29 2020-02-18 Excelero Storage Ltd. System and method for reducing bandwidth consumption of a client device accessing a remote storage device
US10237347B2 (en) * 2015-06-08 2019-03-19 Excelero Storage Ltd. System and method for providing a client device seamless access to a plurality of remote storage devices presented as a virtual device
US9658782B2 (en) 2014-07-30 2017-05-23 Excelero Storage Ltd. Scalable data using RDMA and MMIO
US10936200B2 (en) 2014-07-30 2021-03-02 Excelero Storage Ltd. System and method for improved RDMA techniques for multi-host network interface controllers
US9733845B2 (en) * 2014-09-29 2017-08-15 Cisco Technology, Inc. Shared virtualized local storage
US9712619B2 (en) * 2014-11-04 2017-07-18 Pavilion Data Systems, Inc. Virtual non-volatile memory express drive
US9565269B2 (en) 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
US9740436B2 (en) * 2014-11-14 2017-08-22 International Business Machines Corporation Elastic file system management in storage cloud environments
US9760314B2 (en) * 2015-05-29 2017-09-12 Netapp, Inc. Methods for sharing NVM SSD across a cluster group and devices thereof
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US9823849B2 (en) * 2015-06-26 2017-11-21 Intel Corporation Method and apparatus for dynamically allocating storage resources to compute nodes
US20170031601A1 (en) * 2015-07-30 2017-02-02 Kabushiki Kaisha Toshiba Memory system and storage system
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
CN105426248A (zh) * 2015-11-11 2016-03-23 浪潮集团有限公司 一种自动热拔的方法及装置
US10289337B1 (en) * 2015-11-18 2019-05-14 Western Digital Technologies, Inc. Orientation-based data transfer
US10275160B2 (en) 2015-12-21 2019-04-30 Intel Corporation Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US9940060B1 (en) 2016-05-02 2018-04-10 Pure Storage, Inc. Memory use and eviction in a deduplication storage system
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10620840B2 (en) * 2016-05-27 2020-04-14 Intel Corporation Computer product, method, and system to dynamically manage storage devices accessed remotely over a network
US10089134B2 (en) 2016-06-30 2018-10-02 Western Digital Technologies, Inc. Controlling access to namespaces of a storage device
US10628182B2 (en) 2016-07-11 2020-04-21 Pure Storage, Inc. Generation of an instruction guide based on a current hardware configuration of a system
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
CN107665091B (zh) * 2016-07-28 2021-03-02 深圳大心电子科技有限公司 数据读取方法、数据写入方法及其存储控制器
US10540095B1 (en) 2016-08-12 2020-01-21 Pure Storage, Inc. Efficient garbage collection for stable data
US10423437B2 (en) 2016-08-17 2019-09-24 Red Hat Israel, Ltd. Hot-plugging of virtual functions in a virtualized environment
TWI595356B (zh) * 2016-08-19 2017-08-11 大心電子(英屬維京群島)股份有限公司 資料傳輸方法及使用所述方法的儲存控制器與清單管理電路
US10200376B2 (en) * 2016-08-24 2019-02-05 Intel Corporation Computer product, method, and system to dynamically provide discovery services for host nodes of target systems and storage resources in a network
US10176116B2 (en) 2016-09-28 2019-01-08 Intel Corporation Computer product, method, and system to provide discovery services to discover target storage resources and register a configuration of virtual target storage resources mapping to the target storage resources and an access control list of host nodes allowed to access the virtual target storage resources
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
WO2018067746A1 (en) * 2016-10-04 2018-04-12 Pure Storage, Inc. RESERVATIONS OVER MULTIPLE PATHS ON NVMe OVER FABRICS
US20180095788A1 (en) 2016-10-04 2018-04-05 Pure Storage, Inc. Scheduling operations for a storage device
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US10678432B1 (en) 2016-10-04 2020-06-09 Pure Storage, Inc. User space and kernel space access to memory devices through private queues
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
KR20180047402A (ko) 2016-10-31 2018-05-10 삼성전자주식회사 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
WO2018119742A1 (zh) * 2016-12-28 2018-07-05 华为技术有限公司 NVMe over Fabric中转发报文的方法、设备和系统
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US10387661B2 (en) 2017-01-09 2019-08-20 Pure Storage, Inc. Data reduction with end-to-end security
US10528280B1 (en) 2017-01-31 2020-01-07 Pure Storage, Inc. Tombstones for no longer relevant deduplication entries
US11003381B2 (en) * 2017-03-07 2021-05-11 Samsung Electronics Co., Ltd. Non-volatile memory storage device capable of self-reporting performance capabilities
US10958729B2 (en) * 2017-05-18 2021-03-23 Intel Corporation Non-volatile memory express over fabric (NVMeOF) using volume management device
US10275361B2 (en) 2017-05-31 2019-04-30 Seagate Technology Llc Managing multiple namespaces in a non-volatile memory (NVM)
US10852990B2 (en) * 2017-08-02 2020-12-01 Samsung Electronics Co., Ltd. Hybrid framework of NVMe-based storage system in cloud computing environment
CN112214166B (zh) * 2017-09-05 2022-05-24 华为技术有限公司 用于传输数据处理请求的方法和装置
EP3688596B1 (en) * 2017-09-27 2024-05-08 INTEL Corporation Computer program product, system, and method to manage access to storage resources from multiple applications
US10503404B2 (en) 2017-10-23 2019-12-10 Micron Technology, Inc. Namespace management in non-volatile memory devices
US10437476B2 (en) 2017-10-23 2019-10-08 Micron Technology, Inc. Namespaces allocation in non-volatile memory devices
US11580034B2 (en) 2017-11-16 2023-02-14 Micron Technology, Inc. Namespace encryption in non-volatile memory devices
US10915440B2 (en) 2017-11-16 2021-02-09 Micron Technology, Inc. Namespace mapping optimization in non-volatile memory devices
US10678703B2 (en) 2017-11-16 2020-06-09 Micron Technology, Inc. Namespace mapping structual adjustment in non-volatile memory devices
US10223254B1 (en) 2017-11-16 2019-03-05 Micron Technology, Inc. Namespace change propagation in non-volatile memory devices
CN109840232B (zh) * 2017-11-28 2022-05-13 华为技术有限公司 存储设备及存储设备的元件管理方法
US10740479B2 (en) * 2018-01-24 2020-08-11 International Business Machines Corporation Controlling access to removable non-volatile memory device using instruction file
US11321249B2 (en) * 2018-03-26 2022-05-03 Samsung Electronics Co., Ltd. Mechanism to autonomously manage SSDS in an array
US10649674B2 (en) 2018-05-03 2020-05-12 Western Digital Technologies, Inc. Extended controller pre-initialization using boot partitions in solid state systems
GB201814918D0 (en) * 2018-09-13 2018-10-31 Blancco Tech Group Ip Oy Method and apparatus for use in sanitizing a network of non-volatile memory express devices
US11119954B2 (en) 2018-09-25 2021-09-14 Western Digital Technologies, Inc. Host emulator
CN112352221A (zh) * 2019-01-31 2021-02-09 英特尔公司 用以支持虚拟化环境中的ssd设备驱动器与物理ssd之间的sq/cq对通信的快速传输的共享存储器机制
US11656992B2 (en) 2019-05-03 2023-05-23 Western Digital Technologies, Inc. Distributed cache with in-network prefetch
CN111913903A (zh) * 2019-05-10 2020-11-10 烽火通信科技股份有限公司 一种支持NVMe磁盘热插拔的控制系统及方法
JP2021033845A (ja) 2019-08-28 2021-03-01 キオクシア株式会社 メモリシステムおよび制御方法
TWI723575B (zh) * 2019-10-14 2021-04-01 宇瞻科技股份有限公司 具有熱插拔安全防護機制sata界面的儲存裝置
US11093329B1 (en) 2020-03-27 2021-08-17 Dell Products L.P. RAID proxy storage-device-assisted data update system
US11372785B2 (en) * 2020-05-06 2022-06-28 Microsoft Technology Licensing, Llc Local non-volatile memory express virtualization device
CN111651269A (zh) * 2020-05-18 2020-09-11 青岛镕铭半导体有限公司 实现设备虚拟化的方法、装置及计算机可读存储介质
US11822964B2 (en) 2020-06-03 2023-11-21 Baidu Usa Llc Data protection with static resource partition for data processing accelerators
US12032980B2 (en) * 2020-06-03 2024-07-09 Baidu Usa Llc Data protection with dynamic resource isolation for data processing accelerators
US11416176B2 (en) * 2020-06-23 2022-08-16 Western Digital Technologies, Inc. Function processing using storage controllers for load sharing
US11765250B2 (en) 2020-06-26 2023-09-19 Western Digital Technologies, Inc. Devices and methods for managing network traffic for a distributed cache
US11675706B2 (en) 2020-06-30 2023-06-13 Western Digital Technologies, Inc. Devices and methods for failure detection and recovery for a distributed cache
KR20220003757A (ko) * 2020-07-02 2022-01-11 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11736417B2 (en) 2020-08-17 2023-08-22 Western Digital Technologies, Inc. Devices and methods for network message sequencing
CN112099916B (zh) * 2020-09-07 2022-06-24 平安科技(深圳)有限公司 虚拟机数据的迁移方法、装置、计算机设备及存储介质
CN112202855A (zh) * 2020-09-18 2021-01-08 北京金山云网络技术有限公司 裸金属服务器与弹性块存储的通信装置、智能网卡和系统
JP7154261B2 (ja) * 2020-09-25 2022-10-17 株式会社日立製作所 複合型ストレージシステム
CN114490106A (zh) * 2020-11-13 2022-05-13 瑞昱半导体股份有限公司 信息交换系统与方法
US12088470B2 (en) * 2020-12-18 2024-09-10 Western Digital Technologies, Inc. Management of non-volatile memory express nodes
US20220309019A1 (en) * 2021-03-25 2022-09-29 Mellanox Technologies, Ltd. Storage Protocol Emulation in a Peripheral Device
US11934658B2 (en) 2021-03-25 2024-03-19 Mellanox Technologies, Ltd. Enhanced storage protocol emulation in a peripheral device
US11606437B2 (en) * 2021-04-23 2023-03-14 EMC IP Holding Company, LLC System and method for boosting up performance of NVMe-TCP transport
US11726666B2 (en) 2021-07-11 2023-08-15 Mellanox Technologies, Ltd. Network adapter with efficient storage-protocol emulation
US11989594B2 (en) 2021-08-03 2024-05-21 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for associating computational device functions with compute engines
US11899585B2 (en) 2021-12-24 2024-02-13 Western Digital Technologies, Inc. In-kernel caching for distributed cache
US11934663B2 (en) 2022-01-10 2024-03-19 Western Digital Technologies, Inc. Computational acceleration for distributed cache
CN114089926B (zh) * 2022-01-20 2022-07-05 阿里云计算有限公司 分布式存储空间的管理方法、计算设备及存储介质
US11797379B2 (en) 2022-02-04 2023-10-24 Western Digital Technologies, Inc. Error detection and data recovery for distributed cache
US11928336B2 (en) 2022-03-03 2024-03-12 Samsung Electronics Co., Ltd. Systems and methods for heterogeneous storage systems
JP2023140928A (ja) 2022-03-23 2023-10-05 キオクシア株式会社 メモリシステム
CN117631958A (zh) * 2022-08-19 2024-03-01 成都华为技术有限公司 一种dpu的存储空间扩展方法、装置及系统
US12117948B2 (en) 2022-10-31 2024-10-15 Mellanox Technologies, Ltd. Data processing unit with transparent root complex
US12007921B2 (en) 2022-11-02 2024-06-11 Mellanox Technologies, Ltd. Programmable user-defined peripheral-bus device implementation using data-plane accelerator (DPA)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130055249A1 (en) * 2011-08-29 2013-02-28 Vmware, Inc. Virtual machine provisioning in object storage system
US20130198450A1 (en) * 2012-01-31 2013-08-01 Kiron Balkrishna Malwankar Shareable virtual non-volatile storage device for a server

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329318A (en) 1993-05-13 1994-07-12 Intel Corporation Method for optimizing image motion estimation
US6988025B2 (en) 2000-11-28 2006-01-17 Power Measurement Ltd. System and method for implementing XML on an energy management device
US5638525A (en) 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US6356915B1 (en) 1999-02-22 2002-03-12 Starbase Corp. Installable file system having virtual file system drive, virtual device driver, and virtual disks
US6925533B2 (en) 2003-05-07 2005-08-02 International Business Machines Corporation Virtual disk image system with local cache disk for iSCSI communications
US7613898B2 (en) 2006-01-17 2009-11-03 Globalfoundries Inc. Virtualizing an IOMMU
US8239646B2 (en) * 2007-07-31 2012-08-07 Vmware, Inc. Online virtual machine disk migration
GB2460841B (en) * 2008-06-10 2012-01-11 Virtensys Ltd Methods of providing access to I/O devices
US20100082922A1 (en) 2008-09-30 2010-04-01 Vmware, Inc. Virtual machine migration using local storage
US8219676B2 (en) 2009-06-22 2012-07-10 Citrix Systems, Inc. Systems and methods for web logging of trace data in a multi-core system
JP4990940B2 (ja) * 2009-07-06 2012-08-01 株式会社日立製作所 計算機装置及びパス管理方法
US9069596B2 (en) 2009-11-17 2015-06-30 International Business Machines Corporation Hypervisor file system
US8291135B2 (en) 2010-01-15 2012-10-16 Vmware, Inc. Guest/hypervisor interrupt coalescing for storage adapter virtual function in guest passthrough mode
US8239655B2 (en) 2010-01-18 2012-08-07 Vmware, Inc. Virtual target addressing during direct data access via VF of IO storage adapter
US8799414B2 (en) 2010-05-03 2014-08-05 Panzura, Inc. Archiving data for a distributed filesystem
US9582319B2 (en) 2010-08-13 2017-02-28 International Business Machines Corporation Migrating virtual machines across network separated data centers
US8489699B2 (en) 2010-08-13 2013-07-16 Vmware, Inc. Live migration of virtual machine during direct access to storage over SR IOV adapter
US8756441B1 (en) 2010-09-30 2014-06-17 Emc Corporation Data center energy manager for monitoring power usage in a data storage environment having a power monitor and a monitor module for correlating associative information associated with power consumption
WO2012042509A1 (en) * 2010-10-01 2012-04-05 Peter Chacko A distributed virtual storage cloud architecture and a method thereof
US20120110259A1 (en) 2010-10-27 2012-05-03 Enmotus Inc. Tiered data storage system with data management and method of operation thereof
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US8903882B2 (en) 2010-12-13 2014-12-02 International Business Machines Corporation Method and data processing unit for calculating at least one multiply-sum of two carry-less multiplications of two input operands, data processing program and computer program product
US9098214B1 (en) 2010-12-28 2015-08-04 Amazon Technologies, Inc. Managing virtual machine migration
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
EP2718785A4 (en) 2011-06-13 2014-12-31 Lynux Works Inc SYSTEMS AND METHOD FOR SAFE DOMAIN INSULATION
US8490092B2 (en) 2011-07-06 2013-07-16 Microsoft Corporation Combined live migration and storage migration using file shares and mirroring
WO2013025540A1 (en) 2011-08-12 2013-02-21 Sandisk Enterprise Ip Llc Cache management including solid state device virtualization
US10592416B2 (en) 2011-09-30 2020-03-17 Oracle International Corporation Write-back storage cache based on fast persistent memory
US8874848B2 (en) 2011-09-30 2014-10-28 Net App, Inc. Intelligence for controlling virtual storage appliance storage allocation
US8966172B2 (en) 2011-11-15 2015-02-24 Pavilion Data Systems, Inc. Processor agnostic data storage in a PCIE based shared storage enviroment
US9467512B2 (en) 2012-01-17 2016-10-11 Intel Corporation Techniques for remote client access to a storage medium coupled with a server
US8892684B2 (en) 2012-05-25 2014-11-18 Microsoft Corporation Dynamic selection of resources for compression in a content delivery network
US20130326113A1 (en) * 2012-05-29 2013-12-05 Apple Inc. Usage of a flag bit to suppress data transfer in a mass storage system having non-volatile memory
US20140007189A1 (en) * 2012-06-28 2014-01-02 International Business Machines Corporation Secure access to shared storage resources
US9563480B2 (en) * 2012-08-21 2017-02-07 Rackspace Us, Inc. Multi-level cloud computing system
US9154157B2 (en) 2012-09-27 2015-10-06 Intel Corporation Search unit to accelerate variable length compression/decompression
US8996781B2 (en) 2012-11-06 2015-03-31 OCZ Storage Solutions Inc. Integrated storage/processing devices, systems and methods for performing big data analytics
US9081686B2 (en) 2012-11-19 2015-07-14 Vmware, Inc. Coordinated hypervisor staging of I/O data for storage devices on external cache devices
US9122515B2 (en) * 2012-12-19 2015-09-01 Dell Products L.P. Completion notification for a storage device
US20140195634A1 (en) 2013-01-10 2014-07-10 Broadcom Corporation System and Method for Multiservice Input/Output
US9003071B2 (en) * 2013-03-13 2015-04-07 Futurewei Technologies, Inc. Namespace access control in NVM express PCIe NVM with SR-IOV
US9292331B2 (en) * 2013-03-15 2016-03-22 Bracket Computing, Inc. Expansion of services for a virtual data center guest
US9756128B2 (en) * 2013-04-17 2017-09-05 Apeiron Data Systems Switched direct attached shared storage architecture
US9430412B2 (en) * 2013-06-26 2016-08-30 Cnex Labs, Inc. NVM express controller for remote access of memory and I/O over Ethernet-type networks
KR20150047784A (ko) * 2013-10-25 2015-05-06 삼성전자주식회사 서버 시스템 및 스토리지 시스템
US9195401B2 (en) 2014-02-18 2015-11-24 University Of Florida Research Foundation, Inc. Method and apparatus for virtual machine live storage migration in heterogeneous storage environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130055249A1 (en) * 2011-08-29 2013-02-28 Vmware, Inc. Virtual machine provisioning in object storage system
US20130198450A1 (en) * 2012-01-31 2013-08-01 Kiron Balkrishna Malwankar Shareable virtual non-volatile storage device for a server

Also Published As

Publication number Publication date
US20150319243A1 (en) 2015-11-05
TW201543226A (zh) 2015-11-16
TW201543366A (zh) 2015-11-16
TW201546717A (zh) 2015-12-16
TWI621023B (zh) 2018-04-11
TWI637613B (zh) 2018-10-01
TW201543225A (zh) 2015-11-16
TW201543843A (zh) 2015-11-16
US9294567B2 (en) 2016-03-22
US9819739B2 (en) 2017-11-14
US20150319237A1 (en) 2015-11-05

Similar Documents

Publication Publication Date Title
TWI625674B (zh) 用於支援在主機上運行的多個虛擬機器的nvme控制器虛擬化的系統和方法
US9501245B2 (en) Systems and methods for NVMe controller virtualization to support multiple virtual machines running on a host
US9529773B2 (en) Systems and methods for enabling access to extensible remote storage over a network as local storage via a logical storage controller
US9430268B2 (en) Systems and methods for supporting migration of virtual machines accessing remote storage devices over network via NVMe controllers
US8776089B2 (en) File system independent content aware cache
US20160077740A1 (en) Systems and methods for enabling local caching for remote storage devices over a network via nvme controller
US9626324B2 (en) Input/output acceleration in virtualized information handling systems
US9075540B2 (en) Virtualizing storage for WPAR clients
US20150205542A1 (en) Virtual machine migration in shared storage environment
US10628196B2 (en) Distributed iSCSI target for distributed hyper-converged storage
US11934658B2 (en) Enhanced storage protocol emulation in a peripheral device
WO2015043147A1 (zh) 一种虚拟机内存数据的迁移方法及相关装置和集群系统
US10346065B2 (en) Method for performing hot-swap of a storage device in a virtualization environment
JP6774971B2 (ja) データアクセスアクセラレータ
US20220309019A1 (en) Storage Protocol Emulation in a Peripheral Device
WO2016101282A1 (zh) 一种i/o任务处理的方法、设备和系统
US9729660B2 (en) Method and system for detecting virtual machine migration
US11748285B1 (en) Transaction ordering management
US11507292B2 (en) System and method to utilize a composite block of data during compression of data blocks of fixed size
US8140810B2 (en) Storage management command control in virtualized environment
US11301156B2 (en) Virtual disk container and NVMe storage management system and method
US12093542B2 (en) Scaled zero-touch operating system provisioning on targeted storage
CN118672725A (zh) 存储控制器以及操作包括存储控制器的电子系统的方法