NVMe Direct Virtualization for VM Storage Sharing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional memory subsystems, such as those using SR-IOV, are not applicable in environments that do not natively support single root input/output virtualization, limiting the ability to dynamically configure storage resources and share PCIe interfaces among virtual machines.
Innovation Solution
Implementing NVMe direct virtualization in a memory sub-system, which generates virtual NVMe controllers that appear as separate PCIe devices, allowing multiple virtual machines to share a single PCIe interface without relying on hypervisor software or additional physical controllers, thereby enabling transparent sharing of storage resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional memory subsystems use SR-IOV for virtualization, then storage resources can be dynamically configured and shared among virtual machines, but the solution is not applicable in environments that do not natively support single root input/output virtualization
Solution Approach 1:
The patent creates virtual copies of NVMe controllers within the memory subsystem that emulate physical PCIe devices. These virtual controllers are presented to virtual machines through a PCIe interface, allowing VMs to interact with storage resources as if they had dedicated physical controllers, thereby achieving virtualization without requiring native SR-IOV support.
Solution Approach 2:
The memory subsystem acts as an intermediary between the host system and virtual machines, managing storage resource allocation and presentation. It intercepts PCIe commands from VMs, translates them into appropriate memory operations, and returns results, thereby enabling virtualization functionality without requiring the host environment to support SR-IOV natively.
2Productivity
If multiple virtual machines share a single PCIe interface through NVMe direct virtualization, then resource sharing efficiency improves, but the system must generate and manage virtual NVMe controllers that appear as separate PCIe devices
Solution Approach 1:
The patent merges multiple virtual NVMe controller functionalities into a single memory subsystem device. Instead of requiring separate physical controllers for each virtual machine, the system combines storage management capabilities within one PCIe device, allowing multiple VMs to share the same physical hardware while maintaining isolated virtual control planes.
Solution Approach 2:
The virtual NVMe controllers are dynamically created and configured within the memory subsystem based on virtual machine requirements. The system can allocate, modify, or revoke virtual controller resources dynamically without requiring physical hardware changes, enabling flexible resource sharing and efficient utilization of the underlying storage media.
3Ease of manufacture
If the system eliminates the need for additional hardware and software dependencies, then ease of deployment improves, but the system must achieve SR-IOV equivalent performance without native support
Solution Approach 1:
The memory subsystem performs self-service by implementing its own virtualization logic internally without requiring external hypervisor software or additional controller hardware. The device autonomously manages virtual controller creation, command translation, and resource allocation, simplifying deployment while maintaining performance through direct PCIe access to storage media.
Data Source
AI summary
A system controller, operatively coupled with one or more memory devices, is configured to provide a plurality of virtual memory controllers, wherein each of the plurality of virtual memory controllers is associated with a different portion of the one or more memory devices, and provide a plurality of physical functions, wherein each of the plurality of physical functions corresponds to a different one of the plurality of virtual memory controllers. The system controller further presents the plurality of physical functions to a host computing system over a peripheral component interconnect express (PCIe) interface, the host computing system to assign each of the plurality of physical functions to a different virtual machine running on the host computing system.


