TWI621023B - 用於支持對經由nvme控制器、通過網路存取的遠端存儲設備的熱插拔的系統和方法 - Google Patents
用於支持對經由nvme控制器、通過網路存取的遠端存儲設備的熱插拔的系統和方法 Download PDFInfo
- Publication number
- TWI621023B TWI621023B TW104106790A TW104106790A TWI621023B TW I621023 B TWI621023 B TW I621023B TW 104106790 A TW104106790 A TW 104106790A TW 104106790 A TW104106790 A TW 104106790A TW I621023 B TWI621023 B TW I621023B
- Authority
- TW
- Taiwan
- Prior art keywords
- remote storage
- nvme
- storage devices
- storage device
- host
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0866—Checking the configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation 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控制器的主機上運行的一個或者多個VM,作為NVMe名稱空間中的邏輯卷,從而使得在主機上運行的每個VM可以存取這些遠端存儲設備以執行讀取/寫入操作,如同它們是本機存儲區設備。在基於VM的存儲空間需要向或者從遠端存儲設備的集合添加或者去除一個或者多個遠端存儲設備時,NVMe控制器相應地更新NVMe名稱空間中的邏輯卷,並且使這些遠端存儲設備能夠在運行時從多個遠端存儲設備被熱插拔或者拔出,而無需關停和重啟任何VM、主機和/或NVMe控制器。VM然後可以對更新的NVMe名稱空間執行讀取/寫入操作,以在沒有中斷的情況下
動態地反映遠端存儲設備的集合的配置中的改變。
Description
本發明涉及用於支持對經由NVME控制器、通過網路存取的遠端存儲設備的熱插拔的系統和方法。
本申請要求對藉由引用而全部結合於此、提交於2014年5月2日並且名稱為“Systems and methods for accessing extensible storage devices over a network as local storage via NVMe controller”的第61/987,956號美國臨時專利申請的權益。
本申請與藉由引用而全部結合於此、提交於2014年5月16日並且名稱為“Systems and methods for NVMe controller virtualization to support multiple virtual machines running on a host”的第14/279,712號同處申請狀態之美國專利申請有關。
本申請與藉由引用而全部結合於此、提交於2014年6月10日並且名稱為“Systems and methods for enabling access to extensible storage devices over a network as local storage via NVMe controller”的第14/300,552號同處申請狀態之美國專利申請有關。
本申請與藉由引用而全部結合於此、提交於2014年6月27日並且名稱為“Systems and methods for enabling local caching for remote storage devices over a network via NVMe controller”的第14/317,467號同處申請狀態之美國專利申請有關。
本申請與藉由引用而全部結合於此、提交於2014年8月29日並且名稱為“Systems and methods for enabling value added services for extensible storage devices over a network via NVMe controller”的第14/473,111號同處申請狀態之美國專利申請有關。
服務提供者已經越來越多地藉由在雲中的協力廠商資料中心處的主機/伺服器上運行多個虛擬機器(VM)來在資料中心處提供它們的web服務(例如,網站)。這裡,VM是物理機器(即,電腦)的軟體實現方式,該物理機器執行程式以類比現有計算環境,比如作業系統(OS)。VM在管理程式上面運行,該管理程式在主機上創建和運行一個或者多個VM。管理程式向每個VM呈現虛擬操作平臺並且管理主機上的每個VM的執行。藉由使具有不同作業系統的多個VM能夠共用相同主機機器,管理程式引起尤其在雲計算環境中的在能量消耗和成本有效性二者方面的對計算資源的更高效使用。
也被稱為NVMe或者NVM快速的非揮發性記憶體快速是一種允許固態硬碟(SSD)進行對附接到計算設備或者主機的高速週邊部件互連快速(PCIe)匯流排的有效使用的規範。這裡,PCIe匯流排是高速串列電腦擴展匯流排,該高速串列電腦擴展匯流排被設計為支援硬體I/O虛擬化並
且支援用於匯流排設備的最大系統匯流排輸送量、低I/O管腳計數和小物理覆蓋面積。NVMe通常在主機的非揮發性記憶體控制器上操作,該非揮發性記憶體控制器管理在非揮發性記憶體(例如,SSD、SRAM、快閃記憶體、HDD等)上存儲的資料並且與主機通信。這樣的NVMe控制器提供用於基於PCIe的SSD存取的命令集和特徵集,其中目標在於廣範圍的企業和用戶端系統上的增加和有效的性能和可互通性。使用NVMe控制器存取基於PCIe的SSD的主要益處是與藉由對I/O堆疊的流線化的基於串列附接SCSI(SAS)或者基於串列ATA(SATA)的SSD比較的減少的延時、增加的每秒輸入/輸出(I/O)操作和更低功率消耗。
當前,在主機上運行的VM可以存取本機耦合到物理NVMe控制器的多個存儲裝置(例如,基於PCIe的SSD),該物理NVMe控制器附接到主機。在一些情況下,可以支援對這些本機附接的存儲裝置的熱插拔,例如,如果在運行時從NVMe控制器添加(插入)或者從NVMe控制器去除(拔出)本機連接的設備(比如,SSD)之一,則NVMe控制器將識別該改變並且向主機呈現更新的NVMe名稱空間,而無需對主機/控制器的任何重啟。這裡,VM可以存取的存儲卷的數目受對於可以本機耦合到物理NVMe控制器的物理存儲單元/卷的最大數目的物理限制所約束。由於在資料中心處的主機上運行的VM可以屬於不同web服務提供者並且每個VM可以具有它自己的可以在操作期間即時改變並且因此不為主機所知的存儲需要,所以不可能為在主機上運行的所有VM提前預測和分配將滿足它們的存儲需要的固定數量的存儲卷。雖然支援通過網路的、對遠端存儲設備的存取可以在存儲操作期間向VM提供可擴展/靈活的存儲卷,但是希望能夠基於用戶
/服務提供者的需求在運行時動態地調整遠端存儲設備的容量。
相關技術和與之有關的限制的前述示例旨在於例示而不是排他的。相關技術的其它限制將在閱讀說明書和研讀圖式圖式時變得清楚。
本發明提供一種用於支援對虛擬化的遠端存儲設備的熱插拔的系統,包括:在物理非揮發性記憶體快速(NVMe)控制器上運行的NVMe存儲代理引擎,所述NVMe存儲代理引擎在操作中被配置為:按照存儲網路通訊協定、經由NVMe控制器、通過網路創建和映射一個或者多個NVMe名稱空間中的一個或者多個邏輯卷到遠端存儲設備的集合,其中所述邏輯卷由在主機上運行的一個或者多個虛擬機器(VM)可存取,如同它們是本機存儲區卷;對於向通過所述網路可存取的遠端存儲設備的所述集合的任何添加或者從遠端存儲設備的所述集合的任何去除,監視遠端存儲設備的所述集合的配置;當在運行時向或者從遠端存儲設備的所述集合添加或者去除一個或者多個遠端存儲設備時,相應地更新被映射到遠端存儲設備的所述集合的在所述NVMe名稱空間中的所述邏輯卷;在所述物理NVMe控制器上運行的NVMe存取引擎,所述NVMe存取引擎在操作中被配置為:向在所述主機上運行的所述VM呈現更新的在所述NVMe名稱空間中的所述邏輯卷,以反映添加或者去除的所述遠端存儲設備;使在所述主機上運行的所述VM能夠對更新的所述邏輯卷執行一個或者多個讀取和/或寫入操作,而無需關停或者重啟所述主機和/或所述NVMe控制器。
本發明復提供一種用於支援對虛擬化的遠端存儲設備的熱插拔的電腦實施的方法,包括:經由NVMe控制器、通過網路創建和映射一
個或者多個NVMe名稱空間中的一個或者多個邏輯卷到遠端存儲設備的集合,其中所述邏輯卷由在主機上運行的一個或者多個虛擬機器(VM)可存取,如同它們是本機存儲區卷;對於向通過所述網路可存取的遠端存儲設備的所述集合的任何添加或者從遠端存儲設備的所述集合的去除而監視遠端存儲設備的所述集合的配置;當在運行時向或者從遠端存儲設備的所述集合添加或者去除一個或者多個遠端存儲設備時,相應地更新被映射到遠端存儲設備的所述集合的在所述NVMe名稱空間中的所述邏輯卷;向在所述主機上運行的所述VM呈現更新的在所述NVMe名稱空間中的所述邏輯卷,以反映添加或者去除的所述遠端存儲設備;使在所述主機上運行的所述VM能夠對更新的所述邏輯卷執行一個或者多個讀取和/或寫入操作,而無需關停或者重啟所述主機和/或所述NVMe控制器。
100‧‧‧系統
102‧‧‧NVMe控制器
104‧‧‧NVMe存儲代理引擎
106‧‧‧NVMe存取引擎
108‧‧‧存儲存取引擎
110‧‧‧虛擬機器
111‧‧‧PCIe/NVMe連接
114‧‧‧VF NVMe驅動器
116‧‧‧適配層
120‧‧‧本機存儲裝置
122‧‧‧遠端存儲裝置
132‧‧‧網路
200‧‧‧硬體實現方式
202‧‧‧NVMe處理引擎
204‧‧‧NQM
206‧‧‧多核處理器
208‧‧‧記憶體
210‧‧‧記憶體
212‧‧‧提交佇列
214‧‧‧完成佇列
216‧‧‧資料緩衝器
218‧‧‧等待緩衝器
220‧‧‧網路磁碟
222‧‧‧到存儲裝置的介面
400‧‧‧流程圖
402‧‧‧方塊
404‧‧‧方塊
406‧‧‧方塊
408‧‧‧方塊
410‧‧‧方塊
500‧‧‧系統
502‧‧‧虛擬NVMe控制器
504‧‧‧虛擬NVMe存儲代理引擎
506‧‧‧虛擬NVMe存取引擎
從在與圖式一起閱讀時的以下具體描述最好地理解本公開內容的方面。注意,根據業內標準實踐,各種特徵未按比例繪製。事實上,為了討論清楚,可以任意地增加或者減少各種特徵的尺度。
第1圖描繪了根據一些實施例的、用於支援對將作為本機存儲區設備向VM呈現的遠端存儲設備的虛擬化的系統的示圖的示例。
第2圖描繪了根據一些實施例的、在第1圖中描繪的物理NVMe控制器的硬體實現方式的示例。
第3圖描繪了根據一些實施例的、在邏輯卷的NVMe名稱空間與遠端物理存儲卷之間映射的查閱資料表的非限制性示例。
第4圖描繪了根據一些實施例的、用於支持對經由NVMe控
制器、通過網路可存取的虛擬化的遠端存儲設備的熱插拔或者拔出的過程的示例的流程圖。
第5圖描繪了根據一些實施例的用於支援對將作為本機存儲區設備向VM呈現的多個遠端存儲設備的虛擬化的系統的示圖的非限制性示例,其中物理NVMe控制器還包括多個虛擬NVMe控制器。
以下公開內容提供了用於實施主題內容的不同特徵的許多不同實施例或者示例。以下描述部件和佈置的具體示例以簡化本公開內容。這些當然僅為示例而並未旨在於限制。此外,本公開內容還可以在各種示例中重複標號和/或字母。這一重複是為了簡化和清楚的目的,並且本身並未規定在討論的各種實施例和/或配置之間的關係。
提出了一種設想了系統和方法的新方式,這些系統和方法用於支援在操作期間經由NVMe控制器對被虛擬化為可擴展/靈活的存儲裝置的遠端存儲設備中的一個或者多個遠端存儲設備和NVMe名稱空間的熱插拔和/或拔出。NVMe控制器先虛擬化和呈現遠端存儲設備的集合到在附接到NVMe控制器的主機上運行的一個或者多個VM,作為NVMe名稱空間中的邏輯卷,從而使得在主機上運行的每個VM可以存取這些遠端存儲設備以執行讀取/寫入操作,如同它們是本機存儲區設備。在基於VM的存儲空間需要向或者從遠端存儲設備的集合添加或者去除一個或者多個遠端存儲設備時,NVMe控制器相應地更新NVMe名稱空間中的邏輯卷,並且使這些遠端存儲設備能夠在運行時從多個遠端存儲設備被熱插拔或者拔出,而無需關停和重啟任何VM、主機和/或NVMe控制器。VM然後可以對更新的NVMe名
稱空間執行讀取/寫入操作,以在沒有中斷的情況下動態地反映遠端存儲設備的集合的配置中的改變。
藉由虛擬化遠端存儲設備、如同它們是VM的本機磁碟,提出的方式使VM能夠具有對擴展的遠端存儲設備的安全和快速的存取,其中可以基於VM的即時需要來調整容量,因此去除對VM經由NVMe控制器可存取的存儲卷的數目的任何物理限制。重要的是,藉由支持在運行時對遠端存儲設備的集合的配置的動態調整(例如,向集合添加或者從集合去除遠端存儲設備中的一個或者多個遠端存儲設備),而並未關停任何VM、主機、控制器和其它設備,提出的方式擴展從本機耦合到NVMe控制器的存儲裝置到通過網路可存取的遠端存儲設備的熱插拔能力,從而支持在沒有任何中斷和延時的情況下對遠端存儲設備的無縫擴展和/或收縮。作為結果,可以使遠端存儲設備的存在和對遠端存儲設備的調整對VM及其用戶透明。
第1圖描繪了用於支援對將作為本機存儲區設備向VM呈現的遠端存儲設備的虛擬化的系統100的示圖的示例。雖然各示圖將部件描繪為在功能上分離,但是這樣的描繪僅用於例示性目的。將清楚,可以任意地組合或者將在這一圖式中繪製的部件劃分為分離的軟體、韌體和/或硬體部件。另外,也將清楚,這樣的部件無論如何組合或者劃分它們,都可以在相同主機或者多個主機上執行,並且其中多個主機可以被一個或者多個網路連接。
在第1圖的示例中,系統100包括物理NVMe控制器102,該物理NVMe控制器102至少具有在NVMe控制器102上運行的NVMe存儲代理引擎104、NVMe存取引擎106和存儲存取引擎108。這裡,物理NVMe控制器
102是具有用來實現具體目的的軟體、韌體、硬體和/或其它部件的硬體/韌體NVMe模組。如以下具體討論的那樣,物理NVMe控制器102包括CPU或者微處理器、存儲單元或者記憶體(也被稱為主記憶體,比如RAM)中的一項或者多項,該存儲單元或者存儲器具有存儲的用於實現一個或者多個過程的軟體指令。物理NVMe控制器102提供用於支援在它上運行的引擎的物理功能(PF)和虛擬功能(VF)二者,其中引擎將通常包括在物理NVMe控制器102的存儲單元中存儲的用於實現一個或者多個過程的軟體指令。如這裡所指,PF功能是用來配置和管理控制器的單個根I/O虛擬化(SR-IOV)功能(比如實現虛擬核和暴露PCIe VF)的PCIe功能,其中VF功能是支持SR-IOV並且代表控制器102的虛擬核的實例的羽量級PCIe功能。每個VF共用物理NVMe控制器102上的一個或者多個物理資源,其中這樣的資源包括但不限於如第2圖中描繪和以下具體討論的物理NVMe控制器102的控制器上記憶體208、硬體處理器206、到存儲裝置的介面222和網路磁碟220。
在第1圖的示例中,計算單元/裝置/主機112運行多個VM 110,每個VM被配置為通過網際網路向用戶端提供基於web的服務。這裡,主機112可以是計算設備、通信設備、存儲裝置或者能夠運行軟體部件的任何電子設備。作為非限制性示例,計算設備可以是但不限於膝上型PC、桌面型PC、移動設備或者伺服器機器、比如x86/ARM伺服器。通信設備可以是但不限於行動電話。
在第1圖的示例中,主機112經由PCIe/NVMe鏈路/連接111耦合到物理NVMe控制器102,並且在主機112上運行的VM 110被配置為經由PCIe/NVMe鏈路/連接111存取物理NVMe控制器102。作為非限制性示例,
PCIe/NVMe鏈路/連接111是PCIe Gen3 x8匯流排。
第2圖描繪了第1圖中描繪的物理NVMe控制器102的硬體實現方式200的示例。如在第2圖的示例中所示,硬體實現方式200至少包括NVMe處理引擎202和被實施的用於支援NVMe處理引擎202的NVMe佇列管理器(NQM)204。這裡,NVMe處理引擎202包括一個或者多個CPU/處理器206(例如,多核/多執行緒ARM/MIPS處理器)和主記憶體208、比如DRAM。NVMe處理引擎202被配置為執行所有NVMe指令/命令並且在完成指令時提供結果。硬體實施的NQM 204提供到在NVMe處理引擎202上執行的引擎的前端介面。在一些實施例中,NQM 204至少管理提交佇列212和完成佇列214,該提交佇列212包括將由NVMe處理引擎202處理的多個監管和控制指令,該完成佇列214包括NVMe處理引擎202已經處理的多個監管和控制指令的狀態。在一些實施例中,NQM 204還管理一個或者多個資料緩衝器216,該一個或者多個資料緩衝器包括經由NVMe控制器102從存儲裝置讀取或者將向存儲裝置寫入的資料。在一些實施例中,在主機112的記憶體210內維持提交佇列212、完成佇列214和資料緩衝器216中的一項或者多項。在一些實施例中,物理NVMe控制器102的硬體實現方式200還包括到存儲裝置的介面222和網路磁碟220,該到存儲裝置的介面222使多個可選存儲裝置120能夠本機耦合到物理NVMe控制器102和由物理NVMe控制器102存取,該網路磁碟220使網路的多個存儲裝置122能夠遠端地連接到NVMe控制器102。
在第1圖的示例中,NVMe控制器102的NVMe存取引擎106被配置為從在主機102上運行的VM 110接收和管理用於讀取/寫入操作的指令和資料。當在主機112上運行的VM 110之一執行讀取或者寫入操作時,它在
提交佇列212中放置對應的指令,其中該指令是以NVMe格式。在它的操作期間,NVMe存取引擎106利用NQM 204以基於讀取或者寫入操作的“門鈴”從主機112上的提交佇列212提取監管和/或控制命令,其中門鈴由VM 110生成並且被從主機112接收。NVMe存取引擎106也利用NQM 204以從主機112上的資料緩衝器216之一提取寫入操作將寫入的資料。NVMe存取引擎106然後在NVMe處理引擎202的記憶體208中的等待緩衝器218中放置提取的命令以等待NVMe存儲代理引擎104處理。一旦指令被處理,NVMe存取引擎106就在完成佇列214中放回指令的狀態並且相應地通知對應的VM 110。NVMe存取引擎106也將由讀取操作讀取的資料放到資料緩衝器216並且使它可用於VM 110。
在一些實施例中,在主機112上運行的每個VM 110具有被配置為經由PCIe/NVMe鏈路/連接111與NVMe控制器102的NVMe存取引擎106交互的NVMe驅動器114。在一些實施例中,每個NVMe驅動器114是被配置為與主機112的PCIe/NVMe鏈路/連接111交互並且設立在它的對應的VM 110與NVMe存取引擎106之間的通信路徑以及接收和傳輸與對應的VM 110關聯的資料的虛擬功能(VF)驅動器。在一些實施例中,VM 110的VF NVMe驅動器114和NVMe存取引擎106如以上討論的那樣藉由SR-IOV PCIe連接相互通信。
在一些實施例中,VM 110在主機112上獨立地運行並且被相互隔離,從而使得一個VM 110不能存取在相同主機上運行的任何其它VM 110的資料和/或通信。在向和/或從VM 110傳輸命令和/或資料時,對應的VF NVMe驅動器114向和/或從它的佇列和/或資料緩衝器直接地放入和/或取回
從NVMe存取引擎106發送出或者接收的命令和/或資料而主機112或者在相同主機112上運行的任何其它VM 110未存取資料。
在第1圖的示例中,NVMe控制器102的存儲存取引擎108被配置為存取多個非揮發性磁碟存儲裝置/單元並且與它們通信,其中每個存儲單元(可選地)經由到存儲裝置的介面222本機耦合到NVMe控制器102(例如,本機存儲區設備120)或者按照某些通信協定(比如TCP/IP協定)經由網路通信介面/驅動器220通過網路132可由物理NVMe控制器102遠端地存取(例如,遠端存儲設備122)。在一些實施例中,遠端存儲設備122耦合到存儲存取引擎108通過網路可存取的一個或者多個遠端存儲設備(未示出)。如這裡所指,本機附接和遠端地可存取的存儲裝置中的每個存儲裝置可以是非揮發性(非暫態)存儲裝置,該存儲裝置可以是但不限於固態硬碟(SSD)、靜態隨機存取記憶體(SRAM)、磁硬碟驅動(HDD)和快閃記憶體驅動。網路132可以是但不限於網際網路、內部網路、廣域網路(WAN)、區域網路(LAN)、無線網路、藍牙、WiFi、移動通信網路或者任何其它網路類型。網路的物理連接和通信協定為本領域技術人員所熟知。
在第1圖的示例中,NVMe控制器102的NVMe存儲代理引擎104被配置為彙集在存儲網路通訊協定之下通過網路經由存儲存取引擎108可存取的遠端存儲設備的卷,並且將遠端存儲設備的存儲卷轉換成一個或者多個NVMe名稱空間,每個NVMe名稱空間包括將由在主機112上運行的VM 110存取的多個邏輯卷/設備(邏輯塊的彙集)。這樣,NVMe名稱空間可以包括卷,這些卷被映射到本機附接到NVMe控制器102的存儲裝置和存儲存取引擎108在存儲網路通訊協定之下遠端地可存取的存儲裝置二者。存儲
網路通訊協定用來存取通過網路可存取的遠端存儲設備,其中這樣的存儲網路通訊協定可以是但不限於網際網路小型電腦系統介面(iSCSI)。iSCSI是用於通過在網路上輸送SCSI命令來聯接資料存儲裝置的基於網際協定(IP)的存儲聯網標準。藉由支援通過網路對遠端存儲設備的存取,iSCSI增加通過區域網路(LAN)、廣域網路(WAN)和網際網路的存儲資料傳輸的能力和性能。
在一些實施例中,NVMe存儲代理引擎104將遠端存儲設備組織為VM 110可以存取並且執行I/O操作的、在NVMe名稱空間中的一個或者多個邏輯或者虛擬卷/塊,如同它們是本機存儲區卷。這裡,每個卷被分類為邏輯或者虛擬的,因為它映射到一個或者多個物理存儲裝置,該一個或者多個物理存儲裝置經由存儲存取引擎108本機附接到NVMe控制器102或者可由NVMe控制器102遠端地存取。在一些實施例中,使在主機112上運行的多個VM 110能夠存取相同邏輯卷或者虛擬卷,並且可以在多個VM之中共用每個邏輯/虛擬卷。
在一些實施例中,NVMe存儲代理引擎104還包括適配層/填墊(shim)116,該適配層/填墊是配置為管理在NVMe名稱空間與遠端物理存儲卷之間的消息流的軟體部件。具體而言,在經由NVMe存取引擎106從VM 110接收用於對一個或者多個邏輯卷/名稱空間的存儲操作(例如,讀取/寫入操作)的指令時,適配層/填墊116根據查閱資料表將在NVMe規範之下的指令轉換成在存儲網路通訊協定(比如iSCSI)之下對遠端物理存儲卷的一個或者多個對應的指令。反言之,在經由存儲存取引擎108接收關於對遠端物理存儲卷執行的存儲操作的結果和/或回饋時,適配層/填墊116也將結
果轉換成關於對一個或者多個邏輯卷/名稱空間的操作的回饋並且向VM 110提供這樣的轉換的結果。
在一些實施例中,NVMe存儲代理引擎104如由在第3圖中描繪的非限制性示例所示建立在邏輯卷的NVMe名稱空間Ns_1、…、Ns_m與通過網路可存取並且被導入到NVMe控制器102的遠端物理存儲裝置/卷Vol_1、…、Vol_n之間映射的查閱資料表。這裡,有在NVMe名稱空間與物理存儲卷之間的多到多對應,這意味著一個名稱空間(例如,Ns_2)可以對應於映射到多個遠端物理存儲卷(例如,Vol_2和Vol_3)的邏輯卷,並且單個遠端物理存儲卷也可以被包括在多個邏輯卷中並且經由它們的對應的NVMe名稱空間可由VM 110存取。
在第1圖的示例中,NVMe控制器102的NVMe存取引擎106被配置為匯出和呈現遠端物理存儲裝置112的NVMe名稱空間和邏輯卷到在主機112上運行的VM 110,作為與那些本機連接的存儲裝置120沒有不同的可存取存儲裝置。NVMe存取引擎106也被配置為從VM 110接受用於對映射到遠端存儲設備122的邏輯卷執行一個或者多個讀取/寫入操作的指令。NVMe控制器102使用iSCSI式存儲網路通訊協定通過網路對遠端存儲設備122執行的實際映射和操作對VM 110透明。
在一些實施例中,在NVMe控制器102上運行的各種部件被配置為支援在熱插拔事件之下、對遠端物理存儲裝置122的當前集合的改變,其中在運行時向遠端物理存儲裝置的集合熱插拔和/或從遠端物理存儲裝置的集合熱拔出一個或者遠端存儲設備而未關停或者重啟任何VM 110、主機112和NVMe控制器102。具體而言,NVMe存儲代理引擎104被配置為經
由存儲存取引擎108監視遠端物理存儲裝置122的當前集合的配置。當在主機112上運行的VM 110中的至少一個VM請求比遠端物理存儲裝置122的當前集合可以提供的存儲卷更多的存儲卷時,向遠端物理存儲裝置122的當前集合添加(熱插拔)一個或者多個附加遠端存儲設備以滿足使用者/VM的需求。一旦(例如,經由遠端存儲控制器)插入了這些附加遠端存儲設備,NVMe控制器102的存儲存取引擎108就被配置為通過網路監視和收集新添加的遠端存儲設備的卷資訊,並且向NVMe存儲代理引擎104提供這樣的資訊。作為非限制性示例,在添加新遠端存儲設備122時,網路存儲協定(比如iSCSI)使用協定功能向NVMe控制器102的存儲存取引擎108導入這一新遠端存儲設備122。相似地,在去除現有遠端存儲設備122時,將在網路存儲協定(例如,iSCSI)之下、作為更新的結果而從NVMe控制器102去除它。NVMe存儲代理引擎104然後被配置為更新和擴展在NVMe名稱空間/邏輯卷與遠端存儲設備的集合122之間的映射,以在運行時包括附加遠端物理存儲裝置。NVMe存取引擎106被配置為向VM 110呈現更新NVMe名稱空間,從而使得VM 110可以存取被映射到新添加的遠端物理存儲裝置的邏輯卷並且對該邏輯卷執行讀取/寫入操作。這裡,作為熱插拔事件的對遠端存儲設備122的配置的任何更新無需關停或者重啟任何VM 110、主機112和NVMe控制器102。
在一些實施例中,NVMe存儲代理引擎104被配置為監視對被映射到由在主機上運行的VM 110活躍使用的遠端存儲設備122的邏輯卷和名稱空間的存取(例如,讀取/寫入操作),並且使去往/來自那些遠端存儲設備的資料流程量“優先”,從而使得在主機112上運行的VM 110可以具有對這些邏輯卷和名稱空間的就緒存取。作為非限制性示例,NVMe存儲代
理引擎104被配置為在預期VM 110的下一讀取操作時,從被VM 110最頻繁地存取的遠端存儲設備122的卷向與NVMe控制器102本機關聯的快取記憶體(例如,記憶體208)預取資料。在一些實施例中,在VM 110切換成使用不同邏輯卷或者名稱空間時,NVMe存儲代理引擎104被配置為保存VM 110先前使用的邏輯卷和名稱空間的上下文資訊(如果VM 110將在近的將來需要存取它們)並,且使新邏輯卷/名稱空間可用於VM 110。這裡,邏輯卷的上下文資訊包括但不限於邏輯卷的當前位置(檔、塊)、將對邏輯卷執行的操作(讀取/寫入)等。在一些實施例中,NVMe存儲代理引擎104被配置為維持對被映射到遠端存儲設備122的邏輯卷和名稱空間的不活躍計時器/計數器,並且從查閱資料表清除已經某個時間段(例如,不活躍計時器在預定閾值以上)不活躍(例如,未被VM 110的讀取/寫入操作所存取)的一個或者多個邏輯卷和名稱空間以及將向VM 110呈現的那些邏輯卷和名稱空間。因而,從遠端存儲設備122的集合去除和/或熱拔出被映射到被清除的邏輯卷和名稱空間的遠端存儲設備。在一些實施例中,如果與遠端存儲設備122之一的連通出於某個原因而丟失並且變成不可達,則NVMe存儲代理引擎104被配置為通知存取被映射到遠端存儲設備的名稱空間中的邏輯卷的VM 110,並且更新名稱空間中的邏輯卷以去除被映射到不可達遠端存儲設備的卷。
第4圖描繪了用於支持對經由NVMe控制器通過網路可存取的虛擬化的遠端存儲設備的熱插拔或者拔出的過程的示例的流程圖。雖然這一圖式出於例示的目的而按照特定順序描繪了功能步驟,但是該過程不限於任何特定步驟順序或者排列。本領域技術人員將認識到,可以用各種
方式省略、重新排列、組合和/或適配在這一圖式中繪製的各種步驟。
在第4圖的示例中,流程圖400始於方塊402,其中經由NVMe控制器、通過網路創建和映射一個或者多個NVMe名稱空間中的一個或者多個邏輯卷到遠端存儲設備的集合,其中邏輯卷可由在主機上運行的一個或者多個虛擬機器(VM)存取,如同它們是本機存儲區卷。流程圖400繼續到方塊404,其中在比如iSCSI之類的存儲網路通訊協定之下、在運行時對於向通過網路可存取的遠端存儲設備的集合的任何添加或者從遠端存儲設備的集合的去除,監視遠端存儲設備的集合的配置。流程第4圖00繼續到方塊406,其中當在運行時、向或者從遠端存儲設備的集合添加或者去除一個或者多個遠端存儲設備時,相應地更新被映射到遠端存儲設備的集合的在NVMe名稱空間中的邏輯卷。流程第4圖00繼續到方塊408,其中向在主機上運行的VM呈現更新的、在NVMe名稱空間中的邏輯卷,以反映添加或者去除的遠端存儲設備。流程圖結束於方塊410,其中使在主機上運行的VM能夠對更新的邏輯卷執行一個或者多個讀取和/或寫入操作,而無需關停或者重啟主機和/或NVMe控制器。
第5圖描繪了用於支持對將作為用於VM的本機存儲區設備的遠端存儲設備的虛擬化的系統500的示圖的非限制性示例,其中物理NVMe控制器102還包括多個虛擬NVMe控制器502。在第5圖的示例中,多個虛擬NVMe控制器502在單個物理NVMe控制器102上運行,其中虛擬NVMe控制器502中的每個虛擬NVMe控制器是硬體加速的軟體引擎,該軟體引擎類比將由在主機112上運行的VM 110之一存取的NVMe控制器的功能。在一些實施例中,虛擬NVMe控制器502具有與VM 110的一到一對應,其中每個
虛擬NVMe控制器104與VM 110中的僅一個VM交互並且允許來自僅一個VM的存取。每個虛擬NVMe控制器104被指派到VM 110中的一個並且僅一個VM和專用於支持該一個並且僅一個VM存取它的存儲裝置,其中未跨多個VM 110共用任何單個虛擬NVMe控制器104。
在一些實施例中,每個虛擬NVMe控制器502被配置為支援基於身份的認證和來自它的對應的VM 110的存取以用於它的操作,其中每個標識允許用於不同命令/指令類型的不同API調用集合,這些命令/指令用來創建、初始化和管理虛擬NVMe控制器502和/或提供對用於VM 110的邏輯卷的存取。在一些實施例中,虛擬NVMe控制器502使之可用的命令的類型基於藉由VM 110請求存取的用戶類型而變化,並且一些API調用無需任何用戶登錄。作為非限制性示例,可以利用不同命令類型以初始化和管理在物理NVMe控制器102上運行的虛擬NVMe控制器502。
如在第5圖的示例中所示,每個虛擬NVMe控制器502還可以包括以與以上討論的相應的NVMe存儲代理引擎104和NVMe存取引擎106相似的方式工作的虛擬NVMe存儲代理引擎504和虛擬NVMe存取引擎506。在一些實施例中,每個虛擬NVMe控制器502中的虛擬NVMe存儲代理引擎504被配置為經由可以由在物理NVMe控制器102上運行的所有虛擬NVMe控制器502共用的存儲存取引擎108存取本機附接的存儲裝置120和遠端地可存取的存儲裝置122二者。
在操作期間,每個虛擬NVMe控制器502創建和映射一個或者多個NVMe名稱空間中的一個或者多個邏輯卷到通過網路可存取的多個遠端存儲設備122。每個虛擬NVMe控制器502然後向它的在主機112上運行的
對應VM 110呈現邏輯卷的NVMe名稱空間,如同它們是本機存儲區卷。在向或者從遠端存儲設備122添加或者去除一個或者多個遠端存儲設備122時,虛擬NVMe控制器50監視並且相應地更新NVMe名稱空間中的邏輯卷。虛擬NVMe控制器502還被配置為向VM 110呈現NVMe名稱空間中的更新的邏輯卷,並且使VM 110能夠存取更新的邏輯卷,而無需關停或者重啟任何VM 110、主機122、虛擬NVMe控制器502和物理NVMe控制器102。
在一些實施例中,在第5圖中描繪的每個虛擬NVMe控制器502具有與它關聯的一對或者多對提交佇列212和完成佇列214,其中每個佇列可以容納來自VM 110之一的多個指令條目。如以上討論的那樣,NQM 204如以上討論的那樣先從主機112的記憶體210向NVMe處理引擎202的等待緩衝器218提取提交佇列212中的指令。在它的操作期間,每個虛擬NVMe控制器502從等待緩衝器218取回來自它的對應的VM 110的指令,並且根據存儲網路通訊協定轉換指令以便藉由調用由物理NVMe控制器102提供的VF函數對通過網路在本機存儲區設備120和/或遠端存儲設備122上存儲的資料執行讀取/寫入操作。在操作期間,經由到存儲存取引擎的介面108在VM 110的邏輯卷中向或者從本機/遠端存儲設備傳輸或者接收資料。一旦已經處理了操作,虛擬NVMe控制器502就在處理引擎202的等待緩衝器218中保存執行的指令的狀態,這些指令然後被NQM 204放置到完成佇列214中。也在主機112的記憶體210的資料緩衝器216與NVMe處理引擎202的記憶體208之間傳送由VM 110的指令處理的資料。
可以至少部分地以用於實現這些過程的由電腦實施的過程和裝置的形式體現這裡描述的方法和系統。也可以至少部分地以用電腦程
式代碼編碼的有形、非暫態機器可讀存儲媒體的形式體現公開的方法。媒體可以例如包括RAM、ROM、CD-ROM、DVD-ROM、BD-ROM、硬碟驅動、快閃記憶體或者任何其它非暫態機器可讀存儲媒體,其中在電腦程式代碼被載入到電腦並且由電腦執行時,電腦變成用於實現該方法的裝置。也可以至少部分地以電腦的形式體現方法,電腦程式代碼被載入到該電腦中和/或被執行,從而使得電腦變成用於實現方法的專用電腦。在被實施在通用處理器上時,電腦程式程式碼片段配置處理器以創建具體邏輯電路。可以備選地至少部分地在由用於執行方法的專用積體電路形成的數位訊號處理器中體現方法。
已經出於例示和描述的目的而提供了要求保護的主題內容的各種實施例的前文描述。並未旨在於窮舉要求保護的主題內容或者使要求保護的主題內容限於公開的精確形式。許多修改和變化將為本領域技術人員所清楚。選擇和描述實施例以便最佳地描述本發明的原理及其實際應用,由此使本領域技術人員能夠理解要求保護的主題內容、各種實施例和具有與設想的特定使用相適的各種修改。
Claims (27)
- 一種用於支援對虛擬化的遠端存儲設備的熱插拔的系統,包括:具有一或多個處理器的物理非揮發性記憶體快速(NVMe)控制器,所述NVMe控制器在操作中被配置為:按照存儲網路通訊協定、經由所述NVMe控制器、通過網路創建和映射一個或者多個本機NVMe名稱空間中的一個或者多個邏輯卷到遠端存儲設備的集合,其中映射至所述遠端儲存設備的所述邏輯卷經由所述NVMe控制器、通過網路由在主機上運行的一個或者多個虛擬機器(VM)可存取,如同它們是耦合到所述NVMe控制器的本機存儲區卷;對於向通過所述網路可存取的遠端存儲設備的所述集合的任何添加或者從遠端存儲設備的所述集合的任何去除,監視遠端存儲設備的所述集合的配置;當在運行時向或者從遠端存儲設備的所述集合添加或者去除一個或者多個遠端存儲設備時,通過網路相應地更新被映射到遠端存儲設備的所述集合的在所述NVMe名稱空間中的所述邏輯卷;向在所述主機上運行的所述VM呈現更新的在所述NVMe名稱空間中的所述邏輯卷,以反映添加或者去除的所述遠端存儲設備;使在所述主機上運行的所述VM能夠對更新的所述邏輯卷執行一個或者多個讀取和/或寫入操作,而無需關停或者重啟所述主機和/或所述NVMe控制器。
- 如請求項1所述的系統,其中: 所述VM的所述主機是x86或ARM伺服器。
- 如請求項1所述的系統,其中:所述邏輯卷還包括本機附接到所述物理NVMe控制器的存儲裝置。
- 如請求項1所述的系統,其中:所述VM在所述主機上獨立地運行,並且被相互隔離,從而使得一個VM無法存取在相同主機上運行的任何其它VM的資料和/或通信。
- 如請求項1所述的系統,其中:所述存儲網路通訊協定是網際網路小型電腦系統介面(iSCSI)。
- 如請求項1所述的系統,其中:所述多個VM中的數個VM被使得能夠存取相同邏輯卷,並且每個邏輯卷被使得能夠在所述數個VM之間被共用。
- 如請求項1所述的系統,其中:所述NVMe控制器被配置為執行通過所述網路的、對所述VM透明的對所述遠端存儲設備的所述映射。
- 如請求項1所述的系統,其中:所述物理NVMe控制器被配置為通過所述網路監視和收集添加或者去除的所述遠端存儲設備的卷資訊。
- 如請求項1所述的系統,其中:所述NVMe控制器被配置為監視對映射到由在所述主機上運行的所述VM活躍使用的所述遠端存儲設備的所述邏輯卷和名稱空間的 存取,並且使去往/來自那些遠端存儲設備的資料流程量優先,從而使得所述VM具有對這些邏輯卷和名稱空間的就緒存取。
- 如請求項9所述的系統,其中:所述NVMe控制器被配置為在預期所述VM的下一讀取操作時,從被所述VM最頻繁地存取的所述遠端存儲設備的卷向與所述NVMe控制器本機關聯的快取記憶體預取資料。
- 如請求項1所述的系統,其中:所述NVMe控制器被配置為保存由所述VM之一先前使用的所述邏輯卷和所述名稱空間的上下文以用於將來使用,並且在所述VM切換為使用不同邏輯卷或者名稱空間時,使新邏輯卷和名稱空間可用於所述VM。
- 如請求項1所述的系統,其中:所述NVMe控制器被配置為建立在所述邏輯卷的所述NVMe名稱空間與向所述NVMe控制器導入的所述遠端物理存儲卷之間映射的查閱資料表。
- 如請求項12所述的系統,其中:所述NVMe控制器被配置為維持對映射到所述遠端存儲設備的所述邏輯卷和名稱空間的不活躍計時器/計數器,並且從所述查閱資料表清除已經某個時間段未被所述VM存取的一個或者多個邏輯卷和名稱空間以及清除將向所述VM呈現的所述邏輯卷和名稱空間。
- 如請求項13所述的系統,其中:從所述遠端存儲設備的所述集合去除和/或熱拔出被映射到被清 除的所述邏輯卷和名稱空間的所述遠端存儲設備。
- 如請求項1所述的系統,其中:所述NVMe控制器被配置為向存取被映射到所述遠端存儲設備中的一個或者多個遠端存儲設備的所述名稱空間中的邏輯卷的所述VM通知所述遠端存儲設備中的一個或者多個遠端存儲設備通過所述網路不可達,並且更新所述名稱空間中的所述邏輯卷以去除被映射到不可達的所述遠端存儲設備的所述卷。
- 一種用於支援對虛擬化的遠端存儲設備的熱插拔的電腦實施的方法,包括:經由NVMe控制器、通過網路創建和映射一個或者多個本機NVMe名稱空間中的一個或者多個邏輯卷到遠端存儲設備的集合,其中映射至所述遠端儲存設備的所述邏輯卷經由所述NVMe控制器、通過網路由在主機上運行的一個或者多個虛擬機器(VM)可存取,如同它們是耦合到所述NVMe控制器的本機存儲區卷;對於向通過所述網路可存取的遠端存儲設備的所述集合的任何添加或者從遠端存儲設備的所述集合的去除而監視遠端存儲設備的所述集合的配置;當在運行時向或者從遠端存儲設備的所述集合添加或者去除一個或者多個遠端存儲設備時,通過網路相應地更新被映射到遠端存儲設備的所述集合的在所述NVMe名稱空間中的所述邏輯卷;向在所述主機上運行的所述VM呈現更新的在所述NVMe名稱空間中的所述邏輯卷,以反映添加或者去除的所述遠端存儲設備; 使在所述主機上運行的所述VM能夠對更新的所述邏輯卷執行一個或者多個讀取和/或寫入操作,而無需關停或者重啟所述主機和/或所述NVMe控制器。
- 如請求項16所述的方法,還包括:使所述VM能夠在所述主機上獨立地運行,並且相互隔離所述VM,從而使得一個VM無法存取在相同主機上運行的任何其它VM的所述資料和/或通信。
- 如請求項16所述的方法,還包括:使所述多個VM中的數個VM能夠存取相同邏輯卷,並且每個邏輯卷能夠在所述數個VM之間被共用。
- 如請求項16所述的方法,還包括:執行通過所述網路的、對所述VM透明的對所述遠端存儲設備的所述映射。
- 如請求項16所述的方法,還包括:通過所述網路監視和收集添加或者去除的所述遠端存儲設備的卷資訊。
- 如請求項16所述的方法,還包括:監視對映射到由在所述主機上運行的所述VM活躍使用的所述遠端存儲設備的所述邏輯卷和名稱空間的存取,並且使去往/來自那些遠端存儲設備的資料流程量優先,從而使得所述VM具有對這些邏輯卷和名稱空間的就緒存取。
- 如請求項21所述的方法,還包括: 在預期所述VM的下一讀取操作時,從被所述VM最頻繁地存取的所述遠端存儲設備的卷向與所述NVMe控制器本機關聯的快取記憶體預取資料。
- 如請求項16所述的方法,還包括:保存由所述VM之一先前使用的所述邏輯卷和所述名稱空間的上下文以用於將來使用,並且在所述VM切換到使用不同邏輯卷或者名稱空間時使新邏輯卷和名稱空間可用於所述VM。
- 如請求項16所述的方法,還包括:建立在所述邏輯卷的所述NVMe名稱空間與所述遠端物理存儲卷之間映射的查閱資料表。
- 如請求項24所述的方法,還包括:維持對映射到所述遠端存儲設備的所述邏輯卷和名稱空間的不活躍計時器/計數器,並且從所述查閱資料表清除已經某個時間段未被所述VM存取的一個或者多個邏輯卷和名稱空間以及將向所述VM呈現的所述邏輯卷和名稱空間。
- 如請求項25所述的方法,還包括:從所述遠端存儲設備的所述集合去除和/或熱拔出被映射到被清除的所述邏輯卷和名稱空間的所述遠端存儲設備。
- 如請求項16所述的方法,還包括:向存取被映射到所述遠端存儲設備中的一個或者多個遠端存儲設備的所述名稱空間中的邏輯卷的所述VM通知所述遠端存儲設備中的一個或者多個遠端存儲設備通過所述網路不可達,並且更新所述名 稱空間中的所述邏輯卷以去除被映射到不可達的所述遠端存儲設備的所述卷。
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/496,916 | 2014-09-25 | ||
US14/496,916 US9819739B2 (en) | 2014-05-02 | 2014-09-25 | Systems and methods for supporting hot plugging of remote storage devices accessed over a network via NVME controller |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201543225A TW201543225A (zh) | 2015-11-16 |
TWI621023B true TWI621023B (zh) | 2018-04-11 |
Family
ID=54356104
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104106790A TWI621023B (zh) | 2014-05-02 | 2015-03-04 | 用於支持對經由nvme控制器、通過網路存取的遠端存儲設備的熱插拔的系統和方法 |
TW104106793A TWI637613B (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 After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104106793A TWI637613B (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控制器虛擬化的系統和方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9294567B2 (zh) |
TW (5) | TWI621023B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI723575B (zh) * | 2019-10-14 | 2021-04-01 | 宇瞻科技股份有限公司 | 具有熱插拔安全防護機制sata界面的儲存裝置 |
Families Citing this family (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9658782B2 (en) | 2014-07-30 | 2017-05-23 | Excelero Storage Ltd. | Scalable data using RDMA and MMIO |
US10979503B2 (en) * | 2014-07-30 | 2021-04-13 | Excelero Storage Ltd. | System and method for improved storage access in multi core system |
US10936200B2 (en) | 2014-07-30 | 2021-03-02 | Excelero Storage Ltd. | System and method for improved RDMA techniques for multi-host network interface controllers |
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 |
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 |
US9733845B2 (en) * | 2014-09-29 | 2017-08-15 | Cisco Technology, Inc. | Shared virtualized local storage |
US9565269B2 (en) * | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
US9712619B2 (en) * | 2014-11-04 | 2017-07-18 | Pavilion Data Systems, Inc. | Virtual non-volatile memory express drive |
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 |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
KR20170028825A (ko) | 2015-09-04 | 2017-03-14 | 퓨어 스토리지, 아이앤씨. | 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색 |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | 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 |
US10133503B1 (en) | 2016-05-02 | 2018-11-20 | Pure Storage, Inc. | Selecting a deduplication process based on a difference between performance metrics |
US9940060B1 (en) | 2016-05-02 | 2018-04-10 | Pure Storage, Inc. | Memory use and eviction in a deduplication storage system |
US10452297B1 (en) | 2016-05-02 | 2019-10-22 | Pure Storage, Inc. | Generating and optimizing summary index levels in a deduplication storage system |
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 |
EP3485364B1 (en) * | 2016-10-04 | 2022-11-30 | 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 |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10678432B1 (en) | 2016-10-04 | 2020-06-09 | Pure Storage, Inc. | User space and kernel space access to memory devices through private queues |
US20180095788A1 (en) | 2016-10-04 | 2018-04-05 | Pure Storage, Inc. | Scheduling operations for a storage device |
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 | 삼성전자주식회사 | 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
ES2800064T3 (es) * | 2016-12-28 | 2020-12-23 | Huawei Tech Co Ltd | Procedimiento, dispositivo y sistema para transferencia de paquetes en NVME sobre tejido |
US10387661B2 (en) | 2017-01-09 | 2019-08-20 | Pure Storage, Inc. | Data reduction with end-to-end security |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
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 | 华为技术有限公司 | 用于传输数据处理请求的方法和装置 |
WO2019061072A1 (en) | 2017-09-27 | 2019-04-04 | Intel Corporation | COMPUTER PROGRAM PRODUCT, SYSTEM AND METHOD FOR MANAGING ACCESS TO STORAGE RESOURCES FROM MULTIPLE APPLICATIONS |
US10437476B2 (en) | 2017-10-23 | 2019-10-08 | Micron Technology, Inc. | Namespaces allocation in non-volatile memory devices |
US10503404B2 (en) | 2017-10-23 | 2019-12-10 | Micron Technology, Inc. | Namespace management in non-volatile memory devices |
US10915440B2 (en) | 2017-11-16 | 2021-02-09 | Micron Technology, Inc. | Namespace mapping optimization in non-volatile memory devices |
US11580034B2 (en) | 2017-11-16 | 2023-02-14 | Micron Technology, Inc. | Namespace encryption in non-volatile memory devices |
US10223254B1 (en) * | 2017-11-16 | 2019-03-05 | Micron Technology, Inc. | Namespace change propagation 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 |
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 |
WO2020155005A1 (en) * | 2019-01-31 | 2020-08-06 | Intel Corporation | Shared memory mechanism to support fast transport of sq/cq pair communication between ssd device driver in virtualization environment and physical ssd |
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 | キオクシア株式会社 | メモリシステムおよび制御方法 |
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 | 青岛镕铭半导体有限公司 | 实现设备虚拟化的方法、装置及计算机可读存储介质 |
US12032980B2 (en) * | 2020-06-03 | 2024-07-09 | Baidu Usa Llc | Data protection with dynamic resource isolation for data processing accelerators |
US11822964B2 (en) | 2020-06-03 | 2023-11-21 | Baidu Usa Llc | Data protection with static resource partition 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 |
US11934658B2 (en) | 2021-03-25 | 2024-03-19 | Mellanox Technologies, Ltd. | Enhanced storage protocol emulation in a peripheral device |
US20220309019A1 (en) * | 2021-03-25 | 2022-09-29 | Mellanox Technologies, Ltd. | 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的存储空间扩展方法、装置及系统 |
US12007921B2 (en) | 2022-11-02 | 2024-06-11 | Mellanox Technologies, Ltd. | Programmable user-defined peripheral-bus device implementation using data-plane accelerator (DPA) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110119669A1 (en) * | 2009-11-17 | 2011-05-19 | International Business Machines Corporation | Hypervisor file system |
US20130055249A1 (en) * | 2011-08-29 | 2013-02-28 | Vmware, Inc. | Virtual machine provisioning in object storage system |
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 |
Family Cites Families (44)
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 | 株式会社日立製作所 | 計算機装置及びパス管理方法 |
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 |
US8489699B2 (en) | 2010-08-13 | 2013-07-16 | Vmware, Inc. | Live migration of virtual machine during direct access to storage over SR IOV adapter |
US9582319B2 (en) | 2010-08-13 | 2017-02-28 | International Business Machines Corporation | Migrating virtual machines across network separated data centers |
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 |
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 |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US9098214B1 (en) | 2010-12-28 | 2015-08-04 | Amazon Technologies, Inc. | Managing virtual machine migration |
US9092337B2 (en) | 2011-01-31 | 2015-07-28 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for managing eviction of data |
US9129123B2 (en) | 2011-06-13 | 2015-09-08 | Lynx Software Technologies, Inc. | Systems and methods of secure domain isolation involving separation kernel features |
US8490092B2 (en) | 2011-07-06 | 2013-07-16 | Microsoft Corporation | Combined live migration and storage migration using file shares and mirroring |
US9323659B2 (en) | 2011-08-12 | 2016-04-26 | Sandisk Enterprise Ip Llc | Cache management including solid state device virtualization |
US8874848B2 (en) | 2011-09-30 | 2014-10-28 | Net App, Inc. | Intelligence for controlling virtual storage appliance storage allocation |
US10592416B2 (en) | 2011-09-30 | 2020-03-17 | Oracle International Corporation | Write-back storage cache based on fast persistent memory |
US8966172B2 (en) | 2011-11-15 | 2015-02-24 | Pavilion Data Systems, Inc. | Processor agnostic data storage in a PCIE based shared storage enviroment |
WO2013109640A1 (en) | 2012-01-17 | 2013-07-25 | Intel Corporation | Techniques for command validation for access to a storage device by a remote client |
US9652182B2 (en) * | 2012-01-31 | 2017-05-16 | Pavilion Data Systems, Inc. | Shareable virtual non-volatile storage device for a server |
US8892684B2 (en) | 2012-05-25 | 2014-11-18 | Microsoft Corporation | Dynamic selection of resources for compression in a content delivery network |
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 |
-
2014
- 2014-06-10 US US14/300,552 patent/US9294567B2/en active Active
- 2014-09-25 US US14/496,916 patent/US9819739B2/en active Active
-
2015
- 2015-03-04 TW TW104106790A patent/TWI621023B/zh active
- 2015-03-04 TW TW104106793A patent/TWI637613B/zh active
- 2015-03-04 TW TW104106791A patent/TW201546717A/zh unknown
- 2015-03-10 TW TW104107518A patent/TW201543226A/zh unknown
- 2015-03-10 TW TW104107519A patent/TWI625674B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110119669A1 (en) * | 2009-11-17 | 2011-05-19 | International Business Machines Corporation | Hypervisor file system |
US20130055249A1 (en) * | 2011-08-29 | 2013-02-28 | Vmware, Inc. | Virtual machine provisioning in object storage system |
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 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI723575B (zh) * | 2019-10-14 | 2021-04-01 | 宇瞻科技股份有限公司 | 具有熱插拔安全防護機制sata界面的儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW201543226A (zh) | 2015-11-16 |
TW201546717A (zh) | 2015-12-16 |
TW201543366A (zh) | 2015-11-16 |
US20150319237A1 (en) | 2015-11-05 |
TW201543225A (zh) | 2015-11-16 |
TW201543843A (zh) | 2015-11-16 |
US9819739B2 (en) | 2017-11-14 |
US20150319243A1 (en) | 2015-11-05 |
TWI625674B (zh) | 2018-06-01 |
US9294567B2 (en) | 2016-03-22 |
TWI637613B (zh) | 2018-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI621023B (zh) | 用於支持對經由nvme控制器、通過網路存取的遠端存儲設備的熱插拔的系統和方法 | |
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 | |
US9501245B2 (en) | Systems and methods for NVMe controller virtualization to support multiple virtual machines running on a host | |
US10282192B1 (en) | Updating device code through a bus | |
CN110063051B (zh) | 用于重新配置服务器的系统和方法以及服务器 | |
US20160077740A1 (en) | Systems and methods for enabling local caching for remote storage devices over a network via nvme controller | |
JP6514330B2 (ja) | 複数のコンピュートサブシステムを備えるチップ上のシステム | |
US10496613B2 (en) | Method for processing input/output request, host, server, and virtual machine | |
US9959214B1 (en) | Emulated translation unit using a management processor | |
US9854036B2 (en) | Method for migrating memory data of virtual machine, and related apparatus and cluster system | |
JP6029550B2 (ja) | 計算機の制御方法及び計算機 | |
US9069587B2 (en) | System and method to cache hypervisor data | |
EP2879053B1 (en) | Virtual machine memory data migration method, related apparatus, and cluster system | |
JP2015503784A (ja) | グラフィックス処理部における仮想マシン間の移行 | |
US11016817B2 (en) | Multi root I/O virtualization system | |
US11467776B1 (en) | System supporting virtualization of SR-IOV capable devices | |
US20190007483A1 (en) | Server architecture having dedicated compute resources for processing infrastructure-related workloads | |
US11687443B2 (en) | Tiered persistent memory allocation | |
CN117520215A (zh) | 一种缺页处理方法和相关设备 |