Storage Controller Virtualization Layer for Multi-Client Resource Sharing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current UFS/eMMC storage devices are designed for single-host management, making it challenging to efficiently share storage resources among multiple virtual clients in virtualized environments, requiring additional processing for communication and resource allocation.
Innovation Solution
A virtualization layer in the storage controller traps storage resource requests from clients, providing them to a virtualized resource manager that creates virtual resource allocations corresponding to physical allocations, allowing the storage device to be shared among multiple clients by mapping and recording these allocations in a storage resource mapping table.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a single-host storage device is used, then the device structure remains simple, but it cannot support multiple virtual clients in virtualized environments
Solution Approach 1:
A virtualization layer is introduced as an intermediary component between multiple virtual clients and the physical storage device. This layer manages client identification, resource allocation, and data mapping, enabling the storage device to serve multiple clients without requiring complex changes to the storage device itself. The virtualization layer handles the complexity of multi-client coordination while maintaining the simplicity of the underlying storage hardware.
2Productivity
If multiple virtual clients access the storage device simultaneously, then resource utilization improves, but additional processing is required for communication and resource allocation
Solution Approach 1:
The storage resources are segmented into virtual partitions that can be independently allocated to different virtual clients. Each client receives a virtual view of the storage device with its own logical address space, allowing simultaneous access without interference. The virtualization layer manages these segments and maps virtual addresses to physical storage locations, enabling efficient multi-client resource utilization.
Solution Approach 2:
Storage resources are pre-partitioned into virtual allocations that can be assigned to different clients before actual data access occurs. The virtualization layer maintains allocation tables that map virtual clients to specific storage ranges in advance, so when clients access the storage device, the mapping is already established and no real-time processing is required for resource allocation.
3Ease of operation
If virtual resource allocation is implemented, then seamless sharing among clients is achieved, but a storage resource mapping table is required to track allocations
Solution Approach 1:
The virtualization layer creates virtual copies of the storage device's address space for each client. Instead of physically partitioning the storage device, the system creates virtual mappings that replicate the storage interface for each client. This allows clients to access storage as if they were the only user, while the mapping table tracks the correspondence between virtual and physical addresses.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Aspects disclosed in the detailed description include storage resource management in virtualized environments. In this regard, in one aspect, a virtualization layer is provided in a storage controller as an interface between one or more clients and a storage device. The storage controller is configured to trap storage resource requests from a client. A virtualized resource manager creates a virtual resource allocation that corresponds to a physical resource allocation in the storage device. The client receives the virtual resource allocation from the virtualization layer and subsequently accesses the virtual resource allocation through the storage controller as if the client were the sole user of the storage device. By trapping the storage resource requests at the storage controller and providing the virtual resource allocations to the one or more clients, it is possible to share compatibly the storage device among the one or more clients in a virtualized environment.