Address mapping method in DPU local storage virtualization
By introducing the virtual address mapping module and the address mapping configuration management module on the host side in the DPU, the problem that local storage devices that do not support single virtualization cannot achieve storage resource sharing is solved, and efficient and flexible local storage virtualization services are realized.
Patent Information
- Application Number
- CN202411990327.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-31
- Publication Date
- 2025-04-11
- Estimated Expiration
- 2044-12-31
AI Technical Summary
In the prior art, local storage devices that are not supported by single root virtualization (SR-IOV) only have one address domain in the IOMMU, resulting in these storage devices being exclusively owned by one virtual machine or host, and the sharing and flexible scheduling of storage resources cannot be achieved.
By introducing the virtual address mapping module and the address mapping configuration management module on the host side in the DPU, the address mapping process is reconstructed, and the virtual machine physical address to the global direct memory access address is mapped, and the corresponding address mapping is performed in the IOMMU.
Eliminate data copying, and SSD accesses virtual machines through direct memory access, avoiding the memory overhead of maintaining page tables and synchronizing page tables, reducing the complexity of memory access, and achieving efficient and flexible local storage virtualization services.
Smart Images

Figure CN119806749A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of data center virtualization and storage management, and in particular relates to an address mapping method in DPU local storage virtualization. Background Art
[0002] In the field of data centers and cloud computing, storage technology has always been the focus of attention. In traditional local storage methods, solid-state drives (SSDs) are usually mounted directly on the customer's server and connected at high speed through the computer peripheral component interconnect bus (PCIe) interface. This configuration optimizes the performance of the SSD because data reading and writing do not require additional network transmission, while avoiding additional server and network costs.
[0003] In the field of local storage, a problem that cannot be ignored is that local storage devices that do not support single root virtualization (SR-IOV) have only one address domain in the input and output memory management unit (IOMMU). This means that without virtualization processing, these storage devices can only be used exclusively by a virtual machine (VM) or host, and storage resources cannot be shared and flexibly scheduled. In order to share and efficiently utilize storage resources, local storage needs to be processed by storage virtualization technology before it can provide services for multiple client virtual machines.
[0004] At present, 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 this basis. However, SPDK uses a polling mechanism to monitor and process I / O requests, which requires the allocation of exclusive CPU cores for its virtualization services. This practice seriously occupies the host's computing resources and affects the performance of other applications. In order to reduce the occupation of host computing resources by the virtualization software stack, the latest technical trend in the industry is to use hardware offload acceleration technology to provide storage virtualization services. There are currently two mainstream methods: local storage offload acceleration solutions based on independent hardware support and local storage offload acceleration solutions based on DPU support. Among them, the local storage offload acceleration solution based on independent hardware support adds a storage offload hardware between the SSD and the host, which is responsible for providing storage virtualization functions and directly virtualizing the device to the customer, providing high-performance local storage. However, this solution requires additional hardware, which increases the cost of cloud vendors.
[0005] Another local storage offload acceleration solution based on DPU support does not require additional hardware costs, because DPU has been widely deployed in cloud vendors for offloading acceleration virtual networks. This solution provides customers with hardware virtualization capabilities through DPU. DPU directly transmits TLP messages with SSD hardware through PCIe P2P communication protocol, sends IO read and write requests to SSD through P2P, and updates the value of SSD register. However, for SSDs with only one address domain, direct memory access (DMA) data transmission with multiple virtual machines at the same time will cause address domain conflicts. There are several ways for SSDs to transfer data to virtual machines under this P2P architecture. One is to transfer data from SSD to the cache area on DPU first, and then to the destination address of the virtual machine through virtual function (VF) DMA. Although this method can avoid address domain conflicts, it will increase the delay of data transmission and occupy the PCIe bandwidth and memory bandwidth of DPU itself. The second is to let the SSD use a unique physical address (HPA) to write data directly into the virtual machine, but this requires maintaining the same page table mapping in the DPU as the IOMMU in the host, which will occupy the memory space of the DPU and generate synchronization overhead due to changes in the page table swap in and out in the host. For this problem, an existing solution in academia uses large pages to fix all the memory used by the virtual machine in the host, but it introduces the complexity of memory management and cannot achieve over-configuration of memory.
[0006] Therefore, how to achieve efficient and flexible local storage virtualization services while ensuring data reliability is still an important issue that needs to be urgently solved in the current storage technology field. Summary of the invention
[0007] In view of the above, the purpose of the present 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, cloud computing and other fields.
[0008] In order to achieve the above-mentioned invention object, the technical solution provided by the present invention is as follows:
[0009] An address mapping method in DPU local storage virtualization provided by an embodiment of the present invention includes 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 perform mapping configuration of the virtual machine physical address and the host 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 the global direct memory access address resources, first allocates the global direct memory access address 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 a system call interface provided by an address mapping configuration management module on the host side to perform mapping configuration between the virtual machine physical address and the host physical address, including:
[0015] During the virtual machine startup process, it is initialized and an address mapping request for the virtual machine physical address and the host physical address is sent through the system call interface. After receiving the address mapping request for the virtual machine physical address and the host physical address, the address mapping configuration management module on the host side configures the virtual machine physical address and the host physical address.
[0016] Preferably, the pre-initialized mapping page table of the DPU maintains an address mapping from the virtual machine physical address to the allocated global direct memory access address. After the mapping is completed, when the subsequent virtual machine IO request is sent to the DPU, the virtual address mapping module of the DPU will map the virtual machine 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 allocated global direct memory access addresses.
[0018] Preferably, when an SSD shared by multiple virtual machines is connected and processes IO read / write requests, different virtual machines directly send IO read / write requests to the DPU through the virtual disk created by the DPU, and the virtual address mapping module of the DPU maps the virtual machine physical address to the allocated global direct memory access address and encapsulates the new IO read / write request. The DPU sends the new IO read / write request to the SSD, and the SSD directly moves data to the host's memory through the allocated global direct memory access address.
[0019] Preferably, mapping the virtual machine physical address to the allocated global direct memory access address and encapsulating a new IO read / write request through a virtual address mapping module of the DPU includes:
[0020] The storage virtualization software stack of the DPU performs command parsing for the IO read / write requests of different virtual machines respectively, and obtains the data destination direct memory access address of the command. In the virtualization scenario, the data destination direct memory access address is the virtual machine physical address of different virtual machines;
[0021] According to the address mapping 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 address and other parsed commands into new IO read / write requests.
[0023] Preferably, when the storage virtualization software stack maps the virtual machine physical address through the virtual address mapping module, the legality of the address mapping is judged. If the allocated global direct memory access address is illegal, an error is returned and the IO read / write request is terminated. If the allocated global direct memory access address is legal, the mapped global direct memory access address is returned.
[0024] Preferably, when judging the legality of address mapping, different address ranges of allocated global direct memory access addresses corresponding to each virtual machine are generated in the virtual address mapping module according to the virtual machine physical address ranges of different virtual machines. If the mapped virtual machine physical address range is within the address range of the allocated global direct memory access address, it is judged to be legal, otherwise it is illegal.
[0025] Preferably, the DPU sends a new IO read / write request 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 through the P2P hardware module.
[0027] Preferably, the SSD directly moves data to the memory of the host through the allocated global direct memory access address, including:
[0028] After receiving the 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] The direct memory access data read / write request passes through the IOMMU, which maps the target global direct memory access address, checks whether it is legal, maps the global direct memory access address to the host physical address, and acts on the host physical memory corresponding to the data buffer of the virtual machine.
[0030] Compared with the prior art, the present invention has the following beneficial effects:
[0031] The present invention provides an address mapping method in DPU local storage virtualization, which can eliminate data copying and enable SSD to directly serve virtual machines through direct memory access. At the same time, a mapping of the virtual machine physical address to the allocated global direct memory access address is established through a mapping page table maintained on the DPU, and there is no need to maintain an IOMMU page table in the DPU that is exactly the same as that in the host, thereby avoiding the memory overhead of maintaining the page table and the overhead of synchronizing the page table, and reducing the complexity of memory access. BRIEF DESCRIPTION OF THE DRAWINGS
[0032] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0033] Figure 1 It is a flow chart of an address mapping method in DPU local storage virtualization provided by an embodiment of the present invention;
[0034] Figure 2 It is a schematic diagram of the hardware architecture and address mapping initialization process of the address mapping method in DPU local storage virtualization provided by an embodiment of the present invention;
[0035] Figure 3 It 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 by an embodiment of the present invention;
[0036] Figure 4 It is a schematic diagram of the virtual address mapping module provided by an embodiment of the present invention performing legality verification and address mapping. DETAILED DESCRIPTION
[0037] In order to make the purpose, technical solution and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific implementation methods described herein are only used to explain the present invention and do not limit the protection scope of the present invention.
[0038] The inventive concept of the present invention is as follows: in view of the limitation of the address domain of a single storage device in the prior art, after the virtualization software stack is unloaded to the acceleration device, the SSD cannot simultaneously perform zero-copy data transmission between multiple virtual machines, that is, it is impossible to simultaneously realize zero-copy data transmission and solve the conflict problem of the address domain. An embodiment of the present invention provides an address mapping method in DPU local storage virtualization, by adding an address mapping configuration management module in the host and adding a virtual address mapping module in the DPU, a DPA to HPA address mapping process of the DPU is added to the original IOMMU address mapping process, and at the same time, the GPA to HPA address mapping of the existing IOMMU mapping is changed to the GPA to DPA to HPA address mapping, and the conflict and security isolation problems of the GPA addresses of different VMs in the mapping table of the IOMMU are solved through the intermediate DPA, thereby realizing efficient and flexible local storage virtualization services.
[0039] First, the terms involved in the embodiments of the present invention are explained:
[0040] DPU: Data Processing Unit, a data processing unit, is an acceleration chip or system-level chip in the data center;
[0041] PCIe: Peripheral Component Interconnect Express, computer peripheral component interconnect bus standard;
[0042] SSD: Solid State Drivers, solid state drives, high-performance storage components;
[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: is a fully functional instance on a physical device, which provides all management and configuration functions of 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 a virtual machine or other instance in a virtualized environment.
[0046] P2P: PCIe Peer to Peer, refers to the communication method in which messages are directly transmitted between two devices on a PCIe link without passing through the host CPU;
[0047] IOMMU: Input / Output Memory Management Unit, which is the IO data transfer DMA address translator responsible for translating the target address of the DMA request initiated by the device from the virtual address to the actual physical memory address;
[0048] VFIO: Virtual Function I / O, is a kernel module of the Linux kernel, responsible for providing IOMMU page table mapping function for user-mode programs;
[0049] VM: Virtual Machine;
[0050] HPA: Host Physical Address, host physical address;
[0051] GPA: Guest Physical Address, virtual machine physical address;
[0052] DMA: Direct Memory Access, direct memory access;
[0053] DPA: DPU Global Physical Address, global DMA address allocated by DPU.
[0054] Figure 1 It is a flow chart of an address mapping method in DPU local storage virtualization provided by an embodiment of the present invention. In the existing technical scheme, in the virtualization scenario, the data transmission of the device mainly relies on IOMMU for address translation, which is also the basic dependent technology for the device to pass directly to the virtual machine in the virtualization scenario. However, the object of the IOMMU's address conversion is a completed PCIe device, that is, it has an independent PCIe BDF (Bus, device, function) number. However, when an SSD device (with an independent BDF) needs to interact with multiple VMs for data, the existing IOMMU device cannot solve such requirements, which also leads to the need for data transmission to be transferred through the DPU when the SSD is shared by multiple VMs. Because the DPU provides SRIOV hardware virtualization capabilities, each VM will have an independent BDF VF device, so direct data transmission can be performed. Therefore, in order to solve this problem, two new modules are added in the embodiment of the present invention, including an address mapping configuration management module and a virtual address mapping module.
[0055] like Figure 1 As shown, an embodiment of the present 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 perform mapping configuration between the virtual machine physical address and the host 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 the global direct memory access address resources, first allocates the global direct memory access address 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.
[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 the existing device direct virtualization technology, if the SSD is to be directly passed to the VM device so that the VM can directly access the SSD hardware to improve performance, then the VM needs to call the host's VFIO module to map the VM's GPA and the host's HPA address during initialization. The hardware that supports this mapping is the IOMMU. VFIO accepts mapping requests from the application layer and sends these mappings to the IOMMU. In the embodiment of the present invention, a virtual address mapping module is added to the DPU to maintain the mapping page table, and an address mapping configuration management module is added to the host, which changes the existing VFIO process of directly mapping the IOMMU page table.
[0061] Figure 2 FIG. 1 is a schematic diagram of the hardware architecture and initialization address mapping process of the address mapping method in DPU local storage virtualization provided by an embodiment of the present invention, such as Figure 2 As shown, the detailed steps of the improved VM address mapping of the present invention are further shown:
[0062] 1. When the VM is initialized, the GPA and HPA address mapping requests are sent down. 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 (including 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 (expressed as GPA->DPA). The mapping page table is located in the page table allocated by the virtual address mapping module and returns the DPA to the address mapping configuration management module of the host.
[0065] 4. The address mapping configuration management module sends 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, through the address mapping configuration management module, the DPU DPA->HPA address mapping process is added to the original IOMMU address mapping process, and the GPA->HPA address mapping of the IOMMU mapping is changed to the DPA->HPA address mapping. DPA is used to solve the problem of conflict and security isolation of the GPA addresses of different VMs in the IOMMU mapping table.
[0067] After completing the initialization of the address mapping, the processing flow of an IO read request is as follows: Figure 3 As shown, Figure 3 In the example, the SSD is shared by two virtual machines. The virtual machine directly sends the IO read request to the DPU through the SRIOV virtualized disk provided by the DPU. The DPU sends the IO read command to the SSD through P2P. Based on the initialized address mapping configuration, the SSD can safely map the address to the HPA address of the corresponding virtual machine's memory, thereby enabling the SSD to directly move data with the VM's memory through DMA when the SSD is shared by multiple VMs.
[0068] like Figure 3 The processing steps of the IO read request shown are as follows:
[0069] 1. Different virtual machines send IO read requests (including GPA addresses) through the VF pass-through device provided by the DPU's SRIOV, and the DPU's storage virtualization software stack receives the IO read requests from each virtual machine.
[0070] 2. The storage virtualization software stack of the DPU performs command parsing for the IO read request of the virtual machine and obtains the data destination DMA address of the command. In the virtualization scenario, it is the GPA address of the virtual machine. Through the aforementioned initialization process, the GPA address of the virtual machine has established an address mapping in the virtual address mapping module of the DPU 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 illegal, an error is returned to terminate the IO read request. If it is legal, the mapped global DMA address (i.e., DPA) is returned.
[0071] 3. The DPU's storage virtualization software stack encapsulates the obtained 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 data. When the DPA in the request passes through the IOMMU, a legality check is first performed. After the legality check, the DPA is translated into HPA, so that the SSD data read acts on the host physical memory corresponding to the data buffer of the virtual machine.
[0073] Among them, Figure 4 As shown, in the virtual address mapping module, when the legality of the address mapping is judged, according to the virtual machine physical address ranges of different virtual machines (such as 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 dev id of the virtual SSD corresponding to each virtual machine is simulated in the virtual address mapping module of the DPU (such as virtual machine 0 corresponds to dev id=0, virtual machine 1 corresponds to dev id=1, virtual machine 2 corresponds to dev id=2, and so on), and a certain address offset (calculated according to the value of the dev id) is used to generate different address ranges of the allocated global direct memory access address corresponding to each virtual machine, that is, the GPA address range plus the simulated dev id of the SSD of each virtual machine is obtained to obtain the DPA (such as 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 address range of the allocated DMA address (ie, DPA), it is judged to be legal, otherwise it is illegal.
[0074] As mentioned above, the virtual address mapping module mainly provides three functions. The first is to provide a mapping interface to the host, and the host-side address mapping configuration management module can issue address mapping requests. The second is to create and maintain a new address mapping page table, which maps the address mapping of GPA->DPA. After the mapping is completed, when the subsequent VM IO request is sent to the DPU, the virtual address mapping module of the DPU will map the GPA address of the IO request to DPA and replace it. The third is to maintain a DPA address mechanism for different VM isolation to ensure that there will be no security isolation problems between different VMs due to malicious address tampering. Therefore, when different VMs issue IO requests, the corresponding addresses can be mapped to the address area allocated to the device (or VM) through different device IDs, thereby achieving security isolation.
[0075] In summary, an address mapping method in DPU local storage virtualization provided by an embodiment of the present invention provides a DMA address mapping mechanism for virtualized device pass-through scenarios under the DPU hardware architecture. This mapping mechanism reconstructs the existing mechanism and process of address mapping between virtual machines and hosts 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 the existing solution SSD to directly perform DMA data transmission with multiple VMs. At the same time, this method is virtual machine-aware, and builds a new DMA global address resource on the DPU, realizing secure isolation of addresses of different VMs through device IDs, thereby ensuring data reliability while achieving efficient and flexible local storage virtualization services.
[0076] The specific implementation methods described above provide a detailed description of the technical solutions and beneficial effects of the present invention. It should be understood that the above is only the most preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, supplements and equivalent substitutions made within the scope of the principles of the present invention should be included in the protection scope of the present invention.
Claims
1. An address mapping method in DPU local storage virtualization, characterized in that: The following steps are involved: The virtual machine calls the system call interface provided by the address mapping configuration management module on the host side to perform mapping configuration of the virtual machine physical address and the host 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 the global direct memory access address resources, first allocates the global direct memory access address 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; 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 address mapping configuration management module on the host side to perform mapping configuration of the virtual machine physical address and the host physical address, including: During the virtual machine startup process, it is initialized and an address mapping request for the virtual machine physical address and the host physical address is sent through the system call interface. After receiving the address mapping request for the virtual machine physical address and the host physical address, the address mapping configuration management module on the host side configures the virtual machine physical address and the host 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 the address mapping from the virtual machine's physical address to the allocated global direct memory access address. After the mapping is completed, when the subsequent virtual machine's IO request is 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.
4. The address mapping method in DPU local storage virtualization according to claim 1, characterized in that: Different virtual machines are isolated through the assigned global direct memory access addresses.
5. The address mapping method in DPU local storage virtualization according to claim 1, characterized in that: When the SSD shared by multiple virtual machines is connected to process IO read / write requests, different virtual machines directly send IO read / write requests to the DPU through the virtual disk created by the DPU. The virtual address mapping module of the DPU maps the virtual machine physical address to the allocated global direct memory access address and encapsulates the new IO read / write request. The DPU sends the new IO read / write request to the SSD, and the SSD directly moves data to the host's memory through 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 a new IO read / write request, including: The storage virtualization software stack of the DPU performs command parsing for the IO read / write requests of different virtual machines respectively, and obtains the data destination direct memory access address of the command. In the virtualization scenario, the data destination direct memory access address is the virtual machine physical address of different virtual machines; According to the address mapping 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 6, characterized in that: When the storage virtualization software stack maps the virtual machine physical address through the virtual address mapping module, the legality of the address mapping is judged. If the allocated global direct memory access address is illegal, an error is returned and the IO read / write request is terminated. If the allocated global direct memory access address is legal, the mapped global direct memory access address is returned.
8. The address mapping method in DPU local storage virtualization according to claim 7, characterized in that: When judging the legality of address mapping, different address ranges of allocated global direct memory access addresses corresponding to each virtual machine are generated in the virtual address mapping module according to the virtual machine physical address ranges of different virtual machines. If the mapped virtual machine physical address range is within the address range of the allocated global direct memory access address, it is judged to be legal, otherwise it is illegal.
9. The address mapping method in DPU local storage virtualization according to claim 5, characterized in that: The DPU sends a new IO read / write request 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 through the P2P hardware module.
10. The address mapping method in DPU local storage virtualization according to claim 5, characterized in that: The SSD directly moves data to the host's memory through the allocated global direct memory access address, including: After receiving the 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; The direct memory access data read / write request passes through the IOMMU, which maps the target global direct memory access address, checks whether it is legal, maps the global direct memory access address to the host physical address, and acts on the host physical memory corresponding to the data buffer of the virtual machine.
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
Accelerator supporting hardware virtualization and data access method thereof
CN116719606A
Virtualization processing method and apparatuses, and computer system
US20130174155A1
Accelerating para-virtualization network using interface using direct memory access (DMA) remapping
US20190354387A1
Cited By
Inter-device P2P communication architecture, system and method based on universal address space
CN120512436A
IO port access method and system architecture based on DPU
CN120780401A
Virtual machine memory processing method and device, product, virtualization server and medium
CN120872507A
Multi-process DMA (Direct Memory Access) method and device based on equipment-side context identification, and chip
CN121478690A
Multi-process dma access method and device based on device end context recognition, chip
CN121478690B