An address mapping method in DPU local storage virtualization
By introducing an address mapping module into the DPU local storage virtualization, the address domain conflict problem between SSD and multiple virtual machines is resolved, enabling efficient and flexible storage resource sharing and direct memory access, thereby improving the performance and resource utilization efficiency of the storage virtualization service.
Patent Information
- Application Number
- CN202411990327.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-31
- Publication Date
- 2025-11-14
- Estimated Expiration
- 2044-12-31
AI Technical Summary
In existing technologies, local storage virtualization solutions based on DPU suffer from address domain conflicts between SSDs and multiple virtual machines, leading to increased data transmission latency and memory bandwidth consumption, and failing to achieve efficient and flexible storage resource sharing and scheduling.
By adding an address mapping configuration management module on the host side and a virtual address mapping module on the DPU side, a mapping from virtual machine physical addresses to global direct memory access addresses is established, the address mapping mechanism is optimized, and the same IOMMU page table as the host is avoided in the DPU, enabling direct memory access between the SSD and multiple virtual machines.
By eliminating data copying, reducing memory access complexity and synchronization overhead, SSDs can achieve efficient and flexible direct memory access to virtual machines, thereby improving the performance and resource utilization efficiency of storage virtualization services.
Smart Images

Figure CN119806749B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of data center virtualization and storage management technology, specifically relating to an address mapping method in DPU local storage virtualization. Background Technology
[0002] In the data center and cloud computing fields, storage technology has always been a focus of attention. In traditional local storage, solid-state drives (SSDs) are typically mounted directly on the customer's server, achieving high-speed connectivity through the Computer Peripheral Component Interconnect (PCIe) interface. This configuration allows SSDs to achieve optimal performance because data read and write operations do not require additional network transmission, thus avoiding additional server and network costs.
[0003] In the field of local storage, a significant issue is that local storage devices that do not support single root virtualization (SR-IOV) have only one address domain in their Input / Output Memory Management Unit (IOMMU). This means that without virtualization, these storage devices can only be exclusively used by a single virtual machine (VM) or host, making it impossible to share and flexibly schedule storage resources. To achieve storage resource sharing and efficient utilization, local storage needs to be processed using storage virtualization technology to provide services to multiple guest virtual machines.
[0004] Currently, high-performance software virtualization solutions such as the Storage Performance Development Kit (SPDK) can abstract local storage into block devices and build a virtualization software stack on top of them. However, SPDK uses a polling mechanism to monitor and process I / O requests, which requires allocating dedicated CPU cores for its virtualization services. This approach severely consumes host computing resources and affects the performance of other applications. To reduce the virtualization software stack's consumption of host computing resources, the latest industry trend is to use hardware offloading acceleration technology to provide storage virtualization services. Currently, there are two main approaches: local storage offloading acceleration solutions based on independent hardware support and local storage offloading acceleration solutions based on DPU support. The local storage offloading acceleration solution based on independent hardware support adds a storage offloading hardware between the SSD and the host, responsible for providing storage virtualization functionality and directly virtualizing the device and providing it to the customer, offering high-performance local storage. However, this solution requires additional hardware, increasing the cost for cloud vendors.
[0005] Another local storage offloading acceleration solution based on DPU support requires no additional hardware costs, as DPUs are widely deployed by cloud vendors for offloading and accelerating virtual networks. This solution provides hardware virtualization capabilities to customers through DPUs. The DPU directly transmits TLP messages to the SSD hardware via the PCIe P2P communication protocol, sending IO read / write requests to the SSD and updating SSD register values through P2P. However, for SSDs with only one address domain, simultaneous direct memory access (DMA) data transfer with multiple virtual machines can lead to address domain conflicts. There are several ways for the SSD to transfer data to the virtual machine in this P2P architecture. One method is to first transfer data from the SSD to the buffer on the DPU, and then use Virtual Function (VF) DMA to the destination address of the virtual machine. While this method avoids address domain conflicts, it increases data transfer latency and consumes the DPU's own PCIe and memory bandwidth. The second approach is to allow the SSD to write data directly into the virtual machine using a unique physical address (HPA). However, this requires maintaining the same page table mapping in the DPU as the IOMMU in the host machine. This will consume the DPU's memory space and will generate synchronization overhead due to changes in page table swapping in and out in the host machine. An existing academic solution to this problem is to fix all the memory used by the virtual machine in the host machine by using big pages, but this introduces the complexity of memory management and cannot achieve memory over-provisioning.
[0006] Therefore, how to achieve efficient and flexible local storage virtualization services while ensuring data reliability remains an important problem that urgently needs to be solved in the current storage technology field. Summary of the Invention
[0007] In view of the above, the purpose of this invention is to provide an address mapping method in DPU local storage virtualization, which optimizes the address mapping mechanism to achieve efficient and flexible local storage virtualization services, thereby providing strong support for the development of big data, artificial intelligence and cloud computing.
[0008] To achieve the above-mentioned objectives, the present invention provides the following technical solution:
[0009] This invention provides an address mapping method in DPU local storage virtualization, comprising the following steps:
[0010] The virtual machine calls the system call interface provided by the address mapping configuration management module on the host side to configure the mapping between the virtual machine's physical address and the host's physical address;
[0011] The address mapping configuration management module sends the virtual machine physical address and length to the virtual address mapping module of the DPU;
[0012] The virtual address mapping module manages global direct memory access address resources. It first allocates global direct memory access addresses of the required length on the host side, then maps the virtual machine physical address to the allocated global direct memory access address in the pre-initialized mapping page table of the DPU, and returns the allocated global direct memory access address to the address mapping configuration management module.
[0013] The address mapping configuration management module obtains the allocated global direct memory access address and maps the allocated global direct memory access address to the host physical address in the IOMMU.
[0014] Preferably, the virtual machine calls the system call interface provided by the host-side address mapping configuration management module to configure the mapping between the virtual machine's physical address and the host's physical address, including:
[0015] During the virtual machine startup process, initialization is performed, and an address mapping request between the virtual machine's physical address and the host's physical address is sent through the system call interface. After receiving the address mapping request between the virtual machine's physical address and the host's physical address, the address mapping configuration management module on the host side configures the virtual machine's physical address and the host's physical address.
[0016] Preferably, the DPU's pre-initialized mapping page table maintains an address mapping from the virtual machine's physical address to the allocated global direct memory access address. After the mapping is completed, when subsequent virtual machine IO requests are sent to the DPU, the DPU's virtual address mapping module will map the virtual machine's physical address of the IO request to the allocated global direct memory access address and replace it.
[0017] Preferably, different virtual machines are isolated by allocating global direct memory access addresses.
[0018] Preferably, when processing IO read / write requests on an SSD shared by multiple virtual machines, different virtual machines directly send IO read / write requests to the DPU via virtual disks created by the DPU. The DPU's virtual address mapping module maps the virtual machine's physical address to the allocated global direct memory access address and encapsulates the new IO read / write request. The DPU then sends the new IO read / write request to the SSD, and the SSD directly moves data to the host's memory via the allocated global direct memory access address.
[0019] Preferably, the step of mapping the virtual machine physical address to the allocated global direct memory address and encapsulating new I / O read / write requests through the virtual address mapping module of the DPU includes:
[0020] The DPU's storage virtualization software stack parses commands for IO read / write requests from different virtual machines to obtain the direct memory access address of the data destination of the command. In the virtualization scenario, the direct memory access address of the data destination is the physical address of the virtual machine for different virtual machines.
[0021] Based on the address mapping already established in the virtual address mapping module of the DPU, the storage virtualization software stack maps the virtual machine physical address through the virtual address mapping module to obtain the allocated global direct memory access address;
[0022] The DPU's storage virtualization software stack encapsulates the allocated global direct memory access addresses and other parsed commands into new I / O read / write requests.
[0023] Preferably, when the storage virtualization software stack maps the physical address of the virtual machine through the virtual address mapping module, the validity of the address mapping is judged. If the allocated global direct memory access address is invalid, an error is returned and the IO read / write request is terminated. If the allocated global direct memory access address is valid, the mapped global direct memory access address is returned.
[0024] Preferably, when determining the legality of address mapping, the virtual address mapping module generates different address ranges of allocated global direct memory access addresses corresponding to each virtual machine based on the virtual machine physical address range of different virtual machines. If the mapped virtual machine physical address range is within the address range of the allocated global direct memory access addresses, it is determined to be legal; otherwise, it is illegal.
[0025] Preferably, the DPU sends new IO read / write requests to the SSD, including:
[0026] The DPU's storage virtualization software stack sends new IO read / write requests to the SSD mounted on the host side via a P2P hardware module.
[0027] Preferably, the SSD performs data transfer directly to the host's memory via an allocated global direct memory access address, including:
[0028] After receiving an IO read / write request and parsing the command, the SSD initiates a direct memory access data read / write request based on the obtained global direct memory access address.
[0029] Direct memory access data read / write requests pass through the IOMMU. The IOMMU maps the target global direct memory access address, checks its validity, and maps the global direct memory access address to a host physical address, which is then applied to the host physical memory corresponding to the virtual machine's data buffer.
[0030] Compared with the prior art, the beneficial effects of the present invention include at least the following:
[0031] This invention provides an address mapping method in DPU local storage virtualization, which eliminates data copying and enables SSDs to directly serve virtual machines via direct memory access. Simultaneously, by establishing a mapping page table maintained on the DPU to map virtual machine physical addresses to allocated global direct memory access addresses, it eliminates the need to maintain an identical IOMMU page table in the DPU as in the host, thereby avoiding the memory overhead of maintaining and synchronizing page tables and reducing the complexity of memory access. Attached Figure Description
[0032] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0033] Figure 1 This is a flowchart illustrating an address mapping method in DPU local storage virtualization provided by an embodiment of the present invention;
[0034] Figure 2 This is a schematic diagram of the hardware architecture and address mapping initialization process of the address mapping method in DPU local storage virtualization provided in this embodiment of the invention;
[0035] Figure 3 This is a schematic diagram of the hardware architecture and IO read request processing flow of the address mapping method in DPU local storage virtualization provided in this embodiment of the invention;
[0036] Figure 4 This is a schematic diagram illustrating the legitimacy verification and address mapping performed by the virtual address mapping module provided in this embodiment of the invention. Detailed Implementation
[0037] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the invention and do not limit the scope of protection of this invention.
[0038] The inventive concept of this invention is as follows: Due to the limitation of a single storage device address domain in existing technologies, after the virtualization software stack is offloaded to the acceleration device, the SSD cannot simultaneously perform zero-copy data transfer between multiple virtual machines, i.e., it cannot simultaneously achieve zero-copy data transfer and resolve address domain conflicts. This invention provides an address mapping method in DPU local storage virtualization. By adding an address mapping configuration management module to the host and a virtual address mapping module to the DPU, a DPA to HPA address mapping process is added to the original IOMMU address mapping process. Simultaneously, the existing IOMMU-mapped GPA to HPA address mapping is transformed into a GPA to DPA to HPA address mapping. The intermediate DPA resolves the conflicts and security isolation issues of different VMs' GPA addresses in the IOMMU's mapping table, thereby achieving efficient and flexible local storage virtualization services.
[0039] First, the terms used in the embodiments of this invention will be explained:
[0040] DPU: Data Processing Unit, is an acceleration chip or system-on-a-chip in data centers;
[0041] PCIe: Peripheral Component Interconnect Express, a standard for interconnecting computer peripheral components;
[0042] SSD: Solid State Drive, a high-performance storage component;
[0043] SRIOV: Single Root I / O Virtualization is a PCIe hardware virtualization technology specified by the PCIe protocol. The core concepts of SRIOV include Physical Function (PF) and Virtual Function (VF).
[0044] PF: A complete functional instance on a physical device, providing all the management and configuration functions for the device;
[0045] VF: A lightweight virtual device instance created from PF. Each VF has an independent data path and can be directly assigned to instances in virtual machines or other virtualization environments.
[0046] P2P: PCIe Peer to Peer, refers to a communication method on a PCIe link where two devices directly transmit messages without going through the host CPU.
[0047] IOMMU: Input / Output Memory Management Unit, which acts as an I / O data transfer DMA address translator, responsible for translating the target address of a DMA request initiated by the device from a virtual address to an actual physical memory address;
[0048] VFIO: Virtual Function I / O, is a kernel module in the Linux kernel responsible for providing IOMMU page table mapping functionality for user-mode programs;
[0049] VM: Virtual Machine;
[0050] HPA: Host Physical Address;
[0051] GPA: Guest Physical Address, the virtual machine's physical address;
[0052] DMA: Direct Memory Access;
[0053] DPA: DPU Global Physical Address, the global DMA address allocated by the DPU.
[0054] Figure 1 This is a flowchart illustrating an address mapping method in DPU local storage virtualization provided by an embodiment of the present invention. In existing technical solutions, in virtualization scenarios, device data transmission primarily relies on the IOMMU for address translation, which is the fundamental technology for direct device-to-virtual machine communication in virtualization scenarios. However, the IOMMU's address translation object is a complete PCIe device, i.e., possessing an independent PCIe BDF (Bus, Device, Function) number. But when an SSD device (with an independent BDF) needs to interact with multiple VMs, existing IOMMU devices cannot handle this requirement. This leads to data transmission needing to be relayed through the DPU when the SSD is shared by multiple VMs, because the DPU provides SRIOV hardware virtualization capabilities, and each VM has an independent BDF VF device, thus enabling direct data transmission. Therefore, to solve this problem, this embodiment of the invention adds two modules: an address mapping configuration management module and a virtual address mapping module.
[0055] like Figure 1 As shown, this embodiment of the invention provides an address mapping method in DPU local storage virtualization, which completes the initialization of address mapping, including the following steps:
[0056] S1, the virtual machine calls the system call interface provided by the address mapping configuration management module on the host side to configure the mapping between the virtual machine's physical address and the host's physical address.
[0057] S2, the address mapping configuration management module sends the virtual machine physical address and length to the virtual address mapping module of the DPU.
[0058] S3, the virtual address mapping module manages global direct memory access address resources. First, it allocates a global direct memory access address of the required length on the host side. Then, it maps the virtual machine physical address to the allocated global direct memory access address in the pre-initialized mapping page table of the DPU, and returns the allocated global direct memory access address to the address mapping configuration management module.
[0059] S4, the address mapping configuration management module obtains the allocated global direct memory access address and maps the allocated global direct memory access address to the host physical address in the IOMMU.
[0060] In existing device passthrough virtualization technologies, if an SSD is to pass through to a VM device, allowing the VM to directly access the SSD hardware and improve performance, the VM needs to map its GPA and the host's HPA address during initialization by calling the host's VFIO module. The hardware supporting this mapping is the IOMMU. VFIO receives mapping requests from the application layer and distributes these mappings to the IOMMU. This invention, in this embodiment, adds a virtual address mapping module to the DPU to maintain the mapping page table and adds an address mapping configuration management module to the host, changing the existing process of VFIO directly mapping the IOMMU page table.
[0061] Figure 2 This is a schematic diagram of the hardware architecture and initialization address mapping process of the address mapping method in DPU local storage virtualization provided in this embodiment of the invention, as shown below. Figure 2 As shown, the detailed steps of the improved VM address mapping of the present invention are further illustrated:
[0062] 1. During VM initialization, a GPA and HPA address mapping request is issued. The address mapping configuration management module receives the GPA to HPA address mapping request and establishes a GPA->HPA mapping for the virtual disk.
[0063] 2. The address mapping configuration management module sends a GPA address mapping request (containing the GPA address range of the virtual machine) to the virtual address mapping module of the DPU to further configure the mapping page table in the DPU.
[0064] 3. The mapping page table maintained in the virtual address mapping module allocates a globally unique global DMA address (DPA) and maps the GPA to the DPA (represented as GPA->DPA). This mapping page table is located in the page table allocated by the virtual address mapping module and returns the DPA to the host's address mapping configuration management module.
[0065] 4. The address mapping configuration management module issues the DPA->HPA address mapping to the IOMMU and configures the mapping page table in the IOMMU to complete the address mapping.
[0066] As described above, the address mapping configuration management module adds a DPU DPA->HPA address mapping process to the original IOMMU address mapping process. At the same time, the IOMMU's GPA->HPA address mapping is changed to DPA->HPA address mapping. DPA is used to solve the problem of conflict and security isolation of GPA addresses of different VMs in the IOMMU's mapping table.
[0067] After the address mapping initialization is completed, the processing flow for an IO read request is as follows: Figure 3 As shown, Figure 3 In this scenario, the SSD is shared by two virtual machines. The virtual machines directly send IO read requests to the DPU via the SRIOV virtualized disk provided by the DPU. The DPU then sends the IO read commands to the SSD via P2P. Based on the initial address mapping configuration, the SSD can securely map its address to the corresponding virtual machine's memory HPA address. This enables the SSD to directly move data between the virtual machine's memory and the VM's memory via DMA when the SSD is shared by multiple VMs.
[0068] like Figure 3 The steps for processing an IO read request are as follows:
[0069] 1. Different virtual machines send IO read requests (including GPA address) through the VF pass-through device provided by the DPU's SRIOV. The DPU's storage virtualization software stack receives the IO read requests from each virtual machine.
[0070] 2. The DPU's storage virtualization software stack parses commands for each virtual machine's I / O read request, obtaining the data destination DMA address of the command. In a virtualization scenario, this is the virtual machine's GPA address. Through the aforementioned initialization process, the virtual machine's GPA address has already been mapped in the DPU's virtual address mapping module during the initialization phase. Therefore, the storage virtualization software stack maps the GPA address through the virtual address mapping module. If the GPA address is invalid, an error is returned, and the I / O read request is terminated. If it is valid, the mapped global DMA address (i.e., DPA) is returned.
[0071] 3. The DPU's storage virtualization software stack encapsulates the acquired DPA and other parsed commands into a new IO read request, and sends the new IO read request command to the SSD mounted on the host side through the DPU's P2P hardware module.
[0072] 4. After receiving a new IO read request and parsing the command, the SSD initiates a DMA data write request to the host to move the data. When the DPA in the request passes through the IOMMU, it first performs a validity check. After the validity check is passed, the DPA is translated into HPA, so that the SSD's data read is applied to the host physical memory corresponding to the virtual machine's data buffer.
[0073] Among them, such as Figure 4 As shown, in the virtual address mapping module, when judging the legality of address mapping, based on the physical address range of different virtual machines (e.g., the GPA range of virtual machine 0 is 0-1TB, the GPA range of virtual machine 1 is 0-1TB, the GPA range of virtual machine 2 is 0-1TB, and so on), the virtual address mapping module of the DPU simulates the dev id of the virtual SSD corresponding to each virtual machine (e.g., dev id=0 for virtual machine 0, dev id=1 for virtual machine 1, dev id=2 for virtual machine 2, and so on). And through a certain address offset (calculated based on the value of dev id), different address ranges of the allocated global direct memory access address corresponding to each virtual machine are generated. That is, the GPA address range plus the simulated dev id of the SSD of each virtual machine to obtain the DPA (e.g., DPA: 0-1TB (dev id=0), DPA: 1-2TB (dev id=1), DPA: 2-3TB (dev id=2), and so on). If the mapped virtual machine physical address range is within the range of the allocated DMA address (i.e., DPA), it is considered valid; otherwise, it is invalid.
[0074] As described above, the virtual address mapping module primarily provides three functions. First, it provides a mapping interface to the host, enabling the host-side address mapping configuration management module to issue address mapping requests. Second, it creates and maintains a completely new address mapping page table, which maps GPA->DPA address mappings. After mapping, when subsequent VM IO requests are sent to the DPU, the DPU's virtual address mapping module maps the GPA address of the IO request to DPA and replaces it. Third, it maintains a DPA address mechanism for different VMs to ensure that security isolation issues do not occur between different VMs due to malicious address tampering. Therefore, when different VMs issue IO requests, different device IDs can map the corresponding addresses to the address range allocated to that device (or VM), achieving secure isolation.
[0075] In summary, the address mapping method in DPU local storage virtualization provided by this invention offers a DMA address mapping mechanism for virtualization device pass-through scenarios under the DPU hardware architecture. This mapping mechanism reconstructs the existing address mapping mechanism and process between virtual machines and the host through the address mapping configuration management module on the host side and the virtual address mapping module on the DPU side, solving the performance problem caused by the inability of SSDs to directly perform DMA data transfer with multiple VMs in existing solutions. Furthermore, this method is seamless for virtual machines, constructing a completely new DMA global address resource on the DPU and achieving address security isolation between different VMs through the device ID. This ensures data reliability while enabling efficient and flexible local storage virtualization services.
[0076] The specific embodiments described above illustrate the technical solution and beneficial effects of the present invention in detail. It should be understood that the above description is only the most preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, additions, and equivalent substitutions made within the scope of the principles of the present invention should be included within the protection scope of the present invention.
Claims
1. An address mapping method in DPU local storage virtualization, characterized in that, Includes the following steps: The virtual machine calls the system call interface provided by the address mapping configuration management module on the host side to configure the mapping between the virtual machine's physical address and the host's physical address; The address mapping configuration management module sends the virtual machine physical address and length to the virtual address mapping module of the DPU; The virtual address mapping module manages global direct memory access address resources. It first allocates global direct memory access addresses of the required length on the host side. Then, it maps the virtual machine physical address to the allocated global direct memory access address in the DPU's pre-initialized mapping page table and returns the allocated global direct memory access address to the address mapping configuration management module. Specifically, when the storage virtualization software stack maps the virtual machine physical address through the virtual address mapping module, it checks the address mapping's validity. If the allocated global direct memory access address is invalid, an error is returned, and the IO read / write request is terminated. If the allocated global direct memory access address is valid, the mapped global direct memory access address is returned. During the address mapping validity check, based on the different virtual machine physical address ranges, the virtual address mapping module generates different address ranges for the allocated global direct memory access addresses corresponding to each virtual machine. If the mapped virtual machine physical address range is within the allocated global direct memory access address range, it is considered valid; otherwise, it is invalid. The address mapping configuration management module obtains the allocated global direct memory access address and maps the allocated global direct memory access address to the host physical address in the IOMMU.
2. The address mapping method in DPU local storage virtualization according to claim 1, characterized in that, The virtual machine calls the system call interface provided by the host-side address mapping configuration management module to configure the mapping between the virtual machine's physical address and the host's physical address, including: During the virtual machine startup process, initialization is performed, and an address mapping request between the virtual machine's physical address and the host's physical address is sent through the system call interface. After receiving the address mapping request between the virtual machine's physical address and the host's physical address, the address mapping configuration management module on the host side configures the virtual machine's physical address and the host's physical address.
3. The address mapping method in DPU local storage virtualization according to claim 1, characterized in that, The DPU's pre-initialized mapping page table maintains an address mapping from the virtual machine's physical address to the allocated global direct memory access address. After the mapping is completed, when subsequent virtual machine I / O requests are sent to the DPU, the DPU's virtual address mapping module will map the virtual machine's physical address of the I / O request to the allocated global direct memory access address and replace it.
4. The address mapping method in DPU local storage virtualization according to claim 1, characterized in that, Different virtual machines are isolated by allocating global direct memory access addresses.
5. The address mapping method in DPU local storage virtualization according to claim 1, characterized in that, When processing I / O read / write requests on an SSD shared by multiple virtual machines, different virtual machines send I / O read / write requests directly to the DPU via virtual disks created by the DPU. The DPU's virtual address mapping module maps the virtual machine's physical address to the allocated global direct memory access address and encapsulates the new I / O read / write request. The DPU then sends the new I / O read / write request to the SSD, which then moves data directly to the host's memory via the allocated global direct memory access address.
6. The address mapping method in DPU local storage virtualization according to claim 5, characterized in that, The virtual address mapping module of the DPU maps the virtual machine physical address to the allocated global direct memory access address and encapsulates new IO read / write requests, including: The DPU's storage virtualization software stack parses commands for IO read / write requests from different virtual machines to obtain the direct memory access address of the data destination of the command. In the virtualization scenario, the direct memory access address of the data destination is the physical address of the virtual machine for different virtual machines. Based on the address mapping already established in the virtual address mapping module of the DPU, the storage virtualization software stack maps the virtual machine physical address through the virtual address mapping module to obtain the allocated global direct memory access address; The DPU's storage virtualization software stack encapsulates the allocated global direct memory access address and other parsed fields in the command into a new IO read / write request.
7. The address mapping method in DPU local storage virtualization according to claim 5, characterized in that, The DPU sends new IO read / write requests to the SSD, including: The DPU's storage virtualization software stack sends new IO read / write requests to the SSD mounted on the host side via a P2P hardware module.
8. The address mapping method in DPU local storage virtualization according to claim 5, characterized in that, The SSD performs data transfer directly to the host's memory via the allocated global direct memory access address, including: After receiving an IO read / write request and parsing the command, the SSD initiates a direct memory access data read / write request based on the obtained global direct memory access address. Direct memory access data read / write requests pass through the IOMMU. The IOMMU maps the target global direct memory access address, checks its validity, and maps the global direct memory access address to a host physical address, which is then applied to the host physical memory corresponding to the virtual machine's data buffer.
Citation Information
Patent Citations
An apparatus and method for memory address re-mapping of graphics data
CN101484883A
Unvarnished transmission method and system for PCI device of virtual machine
CN105159742A