CN117762572A - 宿主机与虚拟机共享目录文件***的卸载方法及设备 - Google Patents
宿主机与虚拟机共享目录文件***的卸载方法及设备 Download PDFInfo
- Publication number
- CN117762572A CN117762572A CN202410012107.1A CN202410012107A CN117762572A CN 117762572 A CN117762572 A CN 117762572A CN 202410012107 A CN202410012107 A CN 202410012107A CN 117762572 A CN117762572 A CN 117762572A
- Authority
- CN
- China
- Prior art keywords
- operating system
- virtual machine
- host
- virtiofs
- dpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 182
- 230000015654 memory Effects 0.000 claims abstract description 161
- 238000012545 processing Methods 0.000 claims abstract description 79
- 238000004891 communication Methods 0.000 claims abstract description 71
- 238000012544 monitoring process Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 241001026509 Kata Species 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种宿主机与虚拟机共享目录文件***的卸载方法及设备,涉及虚拟机技术领域。该方法将宿主机上的VIRTIOFS进程卸载至DPU;通过宿主机中的第一操作***中配置的DMA驱动前端控制器与DPU中的第二操作***中配置的DMA驱动后端控制器,建立DMA通信通道;通过数据处理器DPU控制VIRTIOFS进程基于DMA通信通道与宿主机上部署的虚拟机进行通信,以实现共享目录文件***的访问和数据处理。本公开可以将VIRTIOFS进程和共享目录文件***从宿主机迁移到DPU上,并通过直接内存访问技术,实现共享目录的实现。从而可以提高宿主机和/或虚拟机的性能。
Description
技术领域
本公开实施例涉及虚拟机技术领域,尤其涉及一种宿主机与虚拟机共享目录文件***的卸载方法及设备。
背景技术
在虚拟机技术领域中,虚拟机是运行于宿主机上的虚拟化设备,虚拟机上可以运行应用程序。宿主机上除了运行有虚拟机之外,还需要运行一些其余软件,例如,对虚拟机的监控软件、宿主机上的管理软件等。
现有技术中,宿主机上的各种软件基于宿主机的操作***,调用宿主机的各项资源,例如,显示资源、CPU(Central Processing Unit,中央处理器)、存储资源。在运行过程中,这些软件可以通过宿主机的操作***实现软件之间的通信。
然而,上述方案存在宿主机性能较差的问题。
发明内容
本公开实施例提供一种宿主机与虚拟机共享目录文件***的卸载方法及设备,可以提高宿主机的性能,并保证宿主机的目录共享功能正常。
第一方面,本公开实施例提供一种宿主机与虚拟机共享目录文件***的卸载方法,包括:
将宿主机上的虚拟机用户文件***VIRTIOFS进程卸载至数据处理器DPU,使得所述数据处理器DPU负责运行VIRTIOFS进程和维护VIRTIOFS进程相关的共享目录文件***;
在所述宿主机上的VIRTIOFS进程卸载至所述数据处理器DPU的情况下,通过所述宿主机中的第一操作***中配置的DMA驱动前端控制器与所述数据处理器DPU中的第二操作***中配置的DMA驱动后端控制器,建立供所述VIRTIOFS进程与所述宿主机上的虚拟机通信的DMA通信通道;
通过所述数据处理器DPU控制所述VIRTIOFS进程基于所述DMA通信通道与所述宿主机上部署的虚拟机进行通信,以实现所述共享目录文件***的访问和数据处理。
第二方面,本公开实施例提供一种宿主机与虚拟机共享目录文件***的卸载装置,所述装置包括:
卸载模块,用于将宿主机上的虚拟机用户文件***VIRTIOFS进程卸载至数据处理器DPU,使得所述数据处理器DPU负责运行VIRTIOFS进程和维护VIRTIOFS进程相关的共享目录文件***;
通道建立模块,用于在所述宿主机上的VIRTIOFS进程卸载至所述数据处理器DPU的情况下,通过所述宿主机中的第一操作***中配置的DMA驱动前端控制器与所述数据处理器DPU中的第二操作***中配置的DMA驱动后端控制器,建立供所述VIRTIOFS进程与所述宿主机上的虚拟机通信的DMA通信通道;
访问处理模块,用于通过所述数据处理器DPU控制所述VIRTIOFS进程基于所述DMA通信通道与所述宿主机上部署的虚拟机进行通信,以实现所述共享目录文件***的访问和数据处理。
第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备实现如第一方面所述的方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,使计算设备实现如第一方面所述的方法。
第五方面,本公开实施例提供一种计算机程序,所述计算机程序用于实现如第一方面所述的方法。
本公开实施例提供了一种宿主机与虚拟机共享目录文件***的卸载方法及设备,该方法包括:将宿主机上的VIRTIOFS进程卸载至DPU,使得DPU负责运行VIRTIOFS进程和维护VIRTIOFS进程相关的共享目录文件***;在宿主机上的VIRTIOFS进程卸载至DPU的情况下,通过宿主机中的第一操作***中配置的DMA驱动前端控制器与DPU中的第二操作***中配置的DMA驱动后端控制器,建立供VIRTIOFS进程与宿主机上的虚拟机通信的DMA通信通道;通过DPU控制VIRTIOFS进程基于DMA通信通道与宿主机上部署的虚拟机进行通信,以实现共享目录文件***的访问和数据处理。本公开实施例可以将VIRTIOFS进程和共享目录从宿主机迁移到DPU上,并通过直接内存访问技术,实现两个操作***上软件之间的通信,以保证上述共享目录的实现。从而可以在保证宿主机和/或虚拟机功能正常的基础上,提高宿主机和/或虚拟机的性能。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中共享目录的实现原理示意图;
图2是本公开实施例提供的设置数据处理单元后共享目录无法实现的原理示意图;
图3是本公开实施例提供的一种宿主机的软硬件分布示意图;
图4是本公开实施例提供的一种宿主机与虚拟机共享目录文件***的卸载方法的步骤流程图;
图5是本公开实施例提供的另一种宿主机与虚拟机共享目录文件***的卸载方法的步骤流程图;
图6是本公开实施例提供的一种宿主机与虚拟机共享目录文件***的卸载装置的结构框图;
图7是本公开实施例提供的一种电子设备的结构框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开实施例可以应用于虚拟机技术领域中。在虚拟机技术领域中,可以通过软件模拟设备硬件,以作为虚拟机的虚拟硬件。例如,在一些基于内核的虚拟机(Kernel-based Virtual Machine,KVM)技术方案中,可以通过快速仿真器(Quick Emulator,QEMU)实现设备硬件的模拟。
宿主机是虚拟机所在的物理设备,虚拟机依赖于宿主机而运行,虚拟机可以视为宿主机上的一个进程,一个宿主机上可以运行有一个或多个虚拟机。用户程序可以在宿主机或虚拟机上无感知的运行。在本公开实施例中,可以将在宿主机上运行的用户程序称为宿主机应用,将虚拟机上运行的用户程序称为虚拟机应用。
可以看出,宿主机上运行的软件较多,会降低宿主机的性能。宿主机的性能会进一步导致虚拟机性能较差。
为了解决上述技术问题,本公开实施例可以向宿主机上设置数据处理单元(DataProcessing Unit,DPU),以将宿主机上的一些软件迁移到该数据处理单元上运行。这样,可以提高宿主机的性能。
但是,在设置上述DPU之后,由于DPU和宿主机上运行的操作***不同,从而,会导致DPU上的软件和宿主机上的软件无法通信,会影响宿主机和/或虚拟机的一些功能异常。例如,在宿主机和虚拟机之间共享目录是一种常见场景,在安全容器(Kata Container)场景中具有很广泛的应用。以安全容器场景为例,共享目录中通常存储一些配置文件,这些配置文件中的配置信息由宿主机的操作***写入,以及由虚拟机读取。在设置DPU之前,该共享目录的场景可以正常实现,但是在添加上述DPU之后,该共享目录的场景可能无法实现。下面结合图1和图2详细说明共享目录的场景实现。
图1是现有技术中共享目录的实现原理示意图,图2是本公开实施例提供的设置数据处理单元后共享目录无法实现的原理示意图。
参照图1所示,现有技术中,宿主机上未设置DPU,虚拟机、虚拟机应用、宿主机应用、共享目录文件***、VIRTIOFS进程和虚拟机监控进程均运行在宿主机操作***上。并且这些软件可以通过宿主机操作***相互通信。例如,在上述共享目录的场景下,宿主机可以通过宿主机操作***向共享目录中的配置文件(共享目录文件***)中写入数据,虚拟机应用可以通过宿主机操作***访问上述共享目录文件***。
参照图2所示,在设置DPU之后,可以将图1所示的宿主机操作***上的任意软件,迁移到图2所示的DPU操作***上,例如,图2中将共享目录文件***、VIRTIOFS进程和虚拟机监控进程迁移到DPU操作***上。由于宿主机操作***和DPU操作***不同,从而宿主机操作***上的软件和DPU操作***上的软件无法直接通过操作***通信。例如,在上述共享目录的场景下,虚拟机应用无法通过宿主机操作***访问DPU操作***上的共享目录文件***,从而导致共享目录无法实现。
而本公开实施例可以通过直接内存访问(DMA,Direct Memory Access)技术,实现两个操作***上软件之间的通信,以保证上述共享目录的实现。从而可以在保证宿主机和/或虚拟机功能正常的基础上,提高宿主机和/或虚拟机的性能。
下面以具体地实施例对本公开实施例的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开实施例进行描述。
图3是本公开实施例提供的一种宿主机的软硬件分布示意图。参照图3所示,上述宿主机上设置有DPU,宿主机和DPU上分别运行有不同的操作***,分别称为宿主机操作***和DPU操作***,在本公开实施例中,将宿主机操作***称为第一操作***,DPU操作***称为第二操作***。与图2所示相同,将共享目录文件***、VIRTIOFS进程、虚拟机监控进程从宿主机迁移到DPU上,虚拟机、虚拟机应用和宿主机应用仍然保留在宿主机上。
其中,DPU可以通过硬件接口的方式连接至宿主机,以作为宿主机的一部分运行。DPU的处理性能通常比CPU(Central Processing Unit,中央处理器)低,从而,DPU上可以运行一些负载度较低的简单任务。
需要说明的是,第一操作***和第二操作***是不同的任意两个操作***,不同场景下的第一操作***可以不同。例如,在KVM方案下,第一操作***是Linux操作***,在其余一些方案中,第一操作***还可以是Unix操作***。本公开实施例对第一操作***和第二操作***不做限制。
在本公开实施例中,以第一操作***和第二操作***为步骤执行体进行说明。
图4是本公开实施例提供的一种宿主机与虚拟机共享目录文件***的卸载方法的步骤流程图。参照图4所示,该宿主机与虚拟机共享目录文件***的卸载方法包括:
S201:将宿主机上的VIRTIOFS进程卸载至DPU,使得DPU负责运行VIRTIOFS进程和维护VIRTIOFS进程相关的共享目录文件***。
其中,这里的卸载可以理解为迁移,将原本设置并运行于宿主机上的VIRTIOFS(Virtual Host User File System,虚拟机用户文件***)进程,迁移到数据处理器DPU上。因此,卸载前,VIRTIOFS进程由宿主机的第一操作***运行,卸载后,VIRTIOFS进程由DPU的第二操作***运行。
VIRTIOFS进程是用于对共享目录文件***进行文件管理,VIRTIOFS进程以用户态运行。VIRTIOFS进程通过VHOST-USER方法模拟设备。VHOST-USER方法是一种设备模拟方法,先由VIRTIO(另一种设备模拟方法)发展为VHOST(Virtual Host,虚拟机)模拟方法,再由VHOST发展为VHOST-USER。在这三种方案中,均需要在虚拟机中呈现真实设备的抽象,称为前端设备。虚拟机应用发送的请求会通过前端设备的前端驱动到达前端设备。前端设备在接收到请求后会转发到后端设备,后端设备在宿主机上实现。但是,这三种方案的区别就在于,后端设备的实现方式和位置不同。VIRTIO的后端设备在QEMU进程中,VHOST的后端设备在宿主机的第一操作***内核中,VHOST-USER的后端设备在宿主机的第一操作***的独立用户态进程中。VHOST-USER将后端设备的放到独立的用户态进程中,因此,其灵活性和可扩展性较高,从而具有广泛的应用。
S202:在宿主机上的VIRTIOFS进程卸载至DPU的情况下,通过宿主机中的第一操作***中配置的DMA驱动前端控制器与DPU中的第二操作***中配置的DMA驱动后端控制器,建立供VIRTIOFS进程与宿主机上的虚拟机通信的DMA通信通道。
其中,DMA驱动前端控制器可以理解为设置于第一操作***中的DMA驱动程序,用于使第一操作***直接访问内存。DMA驱动后端控制器可以理解为设置于第二操作***中的DMA驱动程序,用于使第二操作***直接访问内存。DMA驱动程序可以访问内存,以读取内存中的数据,或向内存中写入数据。
本公开实施例可以通过两个DMA驱动程序实现内存访问,可以准确的实现第二预设内存的读写和第四预设内存的读写,有助于提高内存访问准确度。
上述DMA通信通道用于基于内存复制实现VIRTIOFS进程和虚拟机之间的通信。
可选地,DMA驱动前端控制器为第一操作***的内核程序,DMA驱动后端控制器为第二操作***的内核程序。这样,有助于提高内存读写性能,以进一步提高第一操作***和第二操作***之间的通信效率。此外,内核程序通常具有很高的权限,可以在不需要申请权限的情况下,访问对应操作***中的任意内存,避免调用其余程序申请权限。
S203:通过数据处理器DPU控制VIRTIOFS进程基于DMA通信通道与宿主机上部署的虚拟机进行通信,以实现共享目录文件***的访问和数据处理。
其中,这里的通信包括:其一,虚拟机发送访问请求,以通过DMA通信通道将访问请求发送给VIRTIOFS进程,以进行共享目录文件***的访问;其二,VIRTIOFS进程将对访问请求的处理结果,通过DMA通信通道将处理结果发送给虚拟机。这里的访问请求可以是虚拟机中的虚拟机应用发起的,虚拟机应用运行于第一操作***上。虚拟机应用是任意应用程序。
上述访问可以是读取、写入、修改、删除等。本公开实施例对其不做限制。访问请求可以指定从共享目录中读取的共享目录文件***、以及从共享目录文件***中读取的行和/或列等。在目录共享场景中,共享目录中存储有配置文件作为共享目录文件***,配置文件中的配置信息由第一操作***写入,以使虚拟机应用使用该配置文件中的配置信息。这样,可以提高虚拟机应用的运行灵活性。
在实际应用中,由于虚拟机所对应的处理复杂度较高,从而通常情况下,将虚拟机、虚拟机应用和宿主机应用保留在第一操作***上运行,而将处理复杂度较低的应用程序,例如,如图3所示的虚拟机监控进程、共享目录文件***、VIRTIOFS进程等迁移到DPU的第二操作***上运行。也就是使用上述第一种设置方式,这样,复杂度较高的软件在宿主机的CPU上运行,而复杂度较低的软件在宿主机的DPU上运行,可以尽可能的提高宿主机和/或虚拟机的性能。
在一些实施方式中,可以在第一操作***中设置第一预设内存,以及,在第二操作***中设置第二预设内存。从而,通过DMA通信通道将虚拟机的访问请求,从第一预设内存复制到第二预设内存中,以通过第二操作***将访问请求转发给VIRTIOFS进程,使VIRTIOFS进程访问共享目录文件***。
其中,第一预设内存是第一操作***中存储访问请求的任意内存,第二预设内存是第二操作***中用于存储访问请求的任意内存。由于虚拟机运行于宿主机的第一操作***上,从而在虚拟机需要访问共享目录文件***时,会生成访问请求并存储在第一预设内存中。此时,第一操作***可以调用DMA驱动前端控制器,以通过DMA通信通道将第一预设内存中的访问请求复制到第二预设内存中。如此,实现了虚拟机的访问请求在第一操作***至第二操作***的传输。
第二操作***在接收到访问请求时,调用DMA驱动后端控制器从第二预设内存中读取访问请求,以发送给VIRTIOFS进程,VIRTIOFS进程可以根据该访问请求访问共享目录文件***。
可选地,上述通过第二操作***将访问请求转发给VIRTIOFS进程,可以包括:通过第二操作***的虚拟机监控进程,将访问请求转换为基于第二操作***的进程间通信请求,以发送给VIRTIOFS进程。
这里的虚拟机监控进程可以将访问请求转换为unix domain socket的请求,作为进程间通信请求。VIRTIOFS进程识别进程间通信请求,以成功的进行处理。
相应的,在VIRTIOFS进程对访问请求处理结束得到处理结果之后,会将处理结果通过虚拟机监控进程返回给第二操作***,以使第二操作***调用DMA驱动前端控制器,将处理结果发送给第一操作***。
从说明可以看出,为了传输访问请求,在第一操作***中设置第一预设内存,以及,在第二操作***中设置第二预设内存。相应的,为了传输对访问请求的处理结果,还可以在第二操作***中设置第三预设内存,以及,在第一操作***中设置第四预设内存。从而,可以通过DMA通信通道,将对访问请求的处理结果从第三预设内存复制到第四预设内存中,以通过第一操作***将处理结果转发给虚拟机。
其中,第三预设内存是第二操作***中存储处理结果的任意内存,第四预设内存是第一操作***中用于存储处理结果的任意内存。由于共享目录文件***和VIRTIOFS进程运行于DPU的第二操作***上,从而在VIRTIOFS进程针对访问请求生成处理结果时,会通过虚拟机监控进程将处理结果存储在第三预设内存中。此时,第二操作***可以调用DMA驱动后端控制器,以通过DMA通信通道将第三预设内存中的处理结果复制到第四预设内存中。如此,实现了访问请求的处理结果在第二操作***至第一操作***的传输。
第一操作***在接收到处理结果时,通过DMA驱动前端控制器从第四预设内存中读取处理结果,以发送给虚拟机,以使虚拟机可以根据处理结果进行后续处理。例如,当共享目录文件***为配置文件,从而处理结果包括虚拟机读取的配置数据,以根据配置数据对虚拟机或虚拟机应用进行配置处理。
综上所述,本公开实施例可以在第二操作***中设置第二预设内存,以及在第一操作***中设置第四预设内存,以通过对第二预设内存和第四预设内存进行直接内存访问,实现第一操作***和第二操作***之间的通信,进而实现两者上运行的软件之间的通信。
可以理解的是,前述第二预设内存可以是一个或多个,第四预设内存也可以为一个或多个。当第二预设内存为一个时,所有应用均可以共用该第二预设内存,同理,所有应用也可以共用一个第四预设内存。为了避免共用预设内存时导致的错误,可以设置多个第二预设内存和多个第四预设内存,以使不同应用分别使用自己的第二预设内存和第四预设内存。
基于上述多个第二预设内存和多个第四预设内存,在一些可选地实施方式中,在通过DMA通信通道将虚拟机的访问请求,从第一预设内存复制到第二预设内存中之前,可以通过第一操作***从访问请求中提取目标应用信息,以通过第一操作***根据目标应用信息确定访问请求对应的第二预设内存。
相应的,在通过DMA通信通道,将对访问请求的处理结果从第三预设内存复制到第四预设内存中之前,还可以通过第二操作***从访问请求中提取目标应用信息,以通过第二操作***根据目标应用信息确定处理结果对应的第四预设内存。
其中,目标应用信息可以是目标应用的标识、类型等,标识可以是名称或编号。目标应用是虚拟机中的虚拟机应用。本公开实施例可以根据目标应用信息确定第二预设内存和第四预设内存,以将一个或多个目标应用信息映射到同一个第二预设内存和第四预设内存中。也就是说,一个或多个不同的目标应用使用相同的第二预设内存和相同的第四预设内存,或,一个或多个类型的目标应用使用相同的第二预设内存和相同的第四预设内存。
本公开实施例的目标应用信息和预设内存之间的映射关系可以灵活设置,本公开实施例对其不做具体限制。
本公开实施例的一种典型应用场景是VHOST-USER中的目录共享场景,虚拟机包括应用于安全容器场景的虚拟机。参照图3所示,在本公开实施例的目录共享场景中,共享目录文件***、VIRTIOFS进程和虚拟机监控进程均设置于DPU上,依赖于DPU的第二操作***运行,这些软件的处理复杂度较低,可以由DPU进行处理。虚拟机应用和虚拟机以及宿主机应用设置于宿主机操作***上,依赖于宿主机的第一操作***运行。
因此,为了实现宿主机和虚拟机的目录共享,访问共享目录文件***的过程包括两阶段:
第一阶段:虚拟机应用发起访问请求,以使宿主机中的DMA驱动前端控制器将访问请求拷贝第二预设内存中。DPU中的DMA驱动后端控制器可以从第二预设内存中获取访问请求,以发送给虚拟机监控进程对其进行转换得到进程间通信请求,并通过VIRTIOFS进程访问共享目录文件***,也就是从共享目录文件***中获取数据,以作为处理结果。
第二阶段:VIRTIOFS进程将处理结果通过虚拟机监控进程发送给DPU的DMA驱动后端控制器,以使其将该处理结果拷贝到第四预设内存中,宿主机的DMA驱动前端控制器从第四预设内存中读取处理结果,以返回给虚拟机应用。
图5是本公开实施例提供的另一种宿主机与虚拟机共享目录文件***的卸载方法的步骤流程图。参照图5所示,上述宿主机与虚拟机共享目录文件***的卸载方法可以包括:
S301:将宿主机上的VIRTIOFS进程卸载至DPU,使得DPU负责运行VIRTIOFS进程和维护VIRTIOFS进程相关的共享目录文件***。
S302:在宿主机上的VIRTIOFS进程卸载至DPU的情况下,通过宿主机中的第一操作***中配置的DMA驱动前端控制器与DPU中的第二操作***中配置的DMA驱动后端控制器,建立供VIRTIOFS进程与宿主机上的虚拟机通信的DMA通信通道。
S303:在第一操作***中设置第一预设内存,以及,在第二操作***中设置第二预设内存。
S304:通过第一操作***从访问请求中提取目标应用信息。
S305:通过第一操作***根据目标应用信息确定访问请求对应的第二预设内存。
S306:通过DMA通信通道将虚拟机的访问请求,从第一预设内存复制到第二预设内存中,以通过第二操作***的虚拟机监控进程,将访问请求转换为基于第二操作***的进程间通信请求,以发送给VIRTIOFS进程,使VIRTIOFS进程访问共享目录文件***。
S307:在第二操作***中设置第三预设内存,以及,在第一操作***中设置第四预设内存。
S308:通过第二操作***从访问请求中提取目标应用信息。
S309:通过第二操作***根据目标应用信息确定处理结果对应的第四预设内存。
S310:通过DMA通信通道,将对访问请求的处理结果从第三预设内存复制到第四预设内存中,以通过第一操作***将处理结果转发给虚拟机。
需要说明的是,上述图5所示的各步骤可以在相互独立的基础上顺序灵活调整。此外,上述宿主机与虚拟机共享目录文件***的卸载方法可以参照前述图4所示的宿主机与虚拟机共享目录文件***的卸载方法对应说明,在此不再赘述。
对应于上文实施例的宿主机与虚拟机共享目录文件***的卸载方法,图6是本公开实施例提供的一种宿主机与虚拟机共享目录文件***的卸载装置的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。参照图6,上述宿主机与虚拟机共享目录文件***的卸载装置400包括:
卸载模块401,用于将宿主机上的虚拟机用户文件***VIRTIOFS进程卸载至数据处理器DPU,使得所述数据处理器DPU负责运行VIRTIOFS进程和维护VIRTIOFS进程相关的共享目录文件***。
通道建立模块402,用于在所述宿主机上的VIRTIOFS进程卸载至所述数据处理器DPU的情况下,通过所述宿主机中的第一操作***中配置的DMA驱动前端控制器与所述数据处理器DPU中的第二操作***中配置的DMA驱动后端控制器,建立供所述VIRTIOFS进程与所述宿主机上的虚拟机通信的DMA通信通道。
访问处理模块403,用于通过所述数据处理器DPU控制所述VIRTIOFS进程基于所述DMA通信通道与所述宿主机上部署的虚拟机进行通信,以实现所述共享目录文件***的访问和数据处理。
可选地,所述访问处理模块403还用于:
在所述第一操作***中设置第一预设内存,以及,在所述第二操作***中设置第二预设内存;通过所述DMA通信通道将所述虚拟机的访问请求,从所述第一预设内存复制到所述第二预设内存中,以通过所述第二操作***将所述访问请求转发给所述VIRTIOFS进程,使所述VIRTIOFS进程访问共享目录文件***。
可选地,所述访问处理模块403还用于:
在所述第二操作***中设置第三预设内存,以及,在所述第一操作***中设置第四预设内存;通过所述DMA通信通道,将对所述访问请求的处理结果从所述第三预设内存复制到所述第四预设内存中,以通过所述第一操作***将所述处理结果转发给所述虚拟机。
可选地,所述访问处理模块403还用于:
通过所述第二操作***的虚拟机监控进程,将所述访问请求转换为基于所述第二操作***的进程间通信请求,以发送给所述VIRTIOFS进程。
可选地,所述DMA驱动前端控制器为所述第一操作***的内核程序,所述DMA驱动后端控制器为所述第二操作***的内核程序。
可选地,所述装置还包括:
第一应用确定模块,用于在通过所述DMA通信通道将所述虚拟机的访问请求,从所述第一预设内存复制到所述第二预设内存中之前,通过所述第一操作***从所述访问请求中提取目标应用信息。
第一内存确定模块,用于通过所述第一操作***根据所述目标应用信息确定所述访问请求对应的第二预设内存。
第二应用确定模块,用于在通过所述DMA通信通道,将对所述访问请求的处理结果从所述第三预设内存复制到所述第四预设内存中之前,通过所述第二操作***从所述访问请求中提取所述目标应用信息。
第二内存确定模块,用于通过所述第二操作***根据所述目标应用信息确定所述处理结果对应的第四预设内存。
可选地,所述虚拟机包括应用于安全容器场景的虚拟机。
本实施例提供的宿主机与虚拟机共享目录文件***的卸载装置,可用于执行上述宿主机与虚拟机共享目录文件***的卸载方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图7是本公开实施例提供的一种电子设备的结构框图。该电子设备600包括存储器602和至少一个处理器601。
其中,存储器602存储计算机执行指令。
至少一个处理器601执行存储器602存储的计算机执行指令,使得电子设备600实现前述宿主机与虚拟机共享目录文件***的卸载方法。
此外,该电子设备600还可以包括接收器603和发送器604,接收器603用于接收从其余装置或设备的信息,并转发给处理器601,发送器604用于将信息发送到其余装置或设备。
在第一方面的第一种示例中,本公开实施例提供了一种宿主机与虚拟机共享目录文件***的卸载方法,包括:
将宿主机上的虚拟机用户文件***VIRTIOFS进程卸载至数据处理器DPU,使得所述数据处理器DPU负责运行VIRTIOFS进程和维护VIRTIOFS进程相关的共享目录文件***。
在所述宿主机上的VIRTIOFS进程卸载至所述数据处理器DPU的情况下,通过所述宿主机中的第一操作***中配置的DMA驱动前端控制器与所述数据处理器DPU中的第二操作***中配置的DMA驱动后端控制器,建立供所述VIRTIOFS进程与所述宿主机上的虚拟机通信的DMA通信通道。
通过所述数据处理器DPU控制所述VIRTIOFS进程基于所述DMA通信通道与所述宿主机上部署的虚拟机进行通信,以实现所述共享目录文件***的访问和数据处理。
基于第一方面的第一种示例,在第一方面的第二种示例中,所述通过所述数据处理器DPU控制所述VIRTIOFS进程基于所述DMA通信通道与所述宿主机上部署的虚拟机进行通信,包括:
在所述第一操作***中设置第一预设内存,以及,在所述第二操作***中设置第二预设内存。
通过所述DMA通信通道将所述虚拟机的访问请求,从所述第一预设内存复制到所述第二预设内存中,以通过所述第二操作***将所述访问请求转发给所述VIRTIOFS进程,使所述VIRTIOFS进程访问共享目录文件***。
基于第一方面的第二种示例,在第一方面的第三种示例中,所述方法还包括:
在所述第二操作***中设置第三预设内存,以及,在所述第一操作***中设置第四预设内存。
通过所述DMA通信通道,将对所述访问请求的处理结果从所述第三预设内存复制到所述第四预设内存中,以通过所述第一操作***将所述处理结果转发给所述虚拟机。
基于第一方面的第二种示例,在第一方面的第四种示例中,所述通过所述第二操作***将所述访问请求转发给所述VIRTIOFS进程,包括:
通过所述第二操作***的虚拟机监控进程,将所述访问请求转换为基于所述第二操作***的进程间通信请求,以发送给所述VIRTIOFS进程。
基于第一方面的第一至第四种示例,在第一方面的第五种示例中,所述DMA驱动前端控制器为所述第一操作***的内核程序,所述DMA驱动后端控制器为所述第二操作***的内核程序。
基于第一方面的第四种示例,在第一方面的第六种示例中,所述通过所述DMA通信通道将所述虚拟机的访问请求,从所述第一预设内存复制到所述第二预设内存中之前,还包括:
通过所述第一操作***从所述访问请求中提取目标应用信息。
通过所述第一操作***根据所述目标应用信息确定所述访问请求对应的第二预设内存。
所述通过所述DMA通信通道,将对所述访问请求的处理结果从所述第三预设内存复制到所述第四预设内存中之前,还包括:
通过所述第二操作***从所述访问请求中提取所述目标应用信息。
通过所述第二操作***根据所述目标应用信息确定所述处理结果对应的第四预设内存。
基于第一方面的第一种示例,在第一方面的第七种示例中,所述虚拟机包括应用于安全容器场景的虚拟机。
在第二方面的第一种示例中,提供了一种宿主机与虚拟机共享目录文件***的卸载装置,所述装置包括:
卸载模块,用于将宿主机上的虚拟机用户文件***VIRTIOFS进程卸载至数据处理器DPU,使得所述数据处理器DPU负责运行VIRTIOFS进程和维护VIRTIOFS进程相关的共享目录文件***。
通道建立模块,用于在所述宿主机上的VIRTIOFS进程卸载至所述数据处理器DPU的情况下,通过所述宿主机中的第一操作***中配置的DMA驱动前端控制器与所述数据处理器DPU中的第二操作***中配置的DMA驱动后端控制器,建立供所述VIRTIOFS进程与所述宿主机上的虚拟机通信的DMA通信通道。
访问处理模块,用于通过所述数据处理器DPU控制所述VIRTIOFS进程基于所述DMA通信通道与所述宿主机上部署的虚拟机进行通信,以实现所述共享目录文件***的访问和数据处理。
基于第二方面的第一种示例,在第二方面的第二种示例中,所述访问处理模块还用于:
在所述第一操作***中设置第一预设内存,以及,在所述第二操作***中设置第二预设内存。
通过所述DMA通信通道将所述虚拟机的访问请求,从所述第一预设内存复制到所述第二预设内存中,以通过所述第二操作***将所述访问请求转发给所述VIRTIOFS进程,使所述VIRTIOFS进程访问共享目录文件***。
基于第二方面的第二种示例,在第二方面的第三种示例中,所述访问处理模块还用于:
在所述第二操作***中设置第三预设内存,以及,在所述第一操作***中设置第四预设内存。
通过所述DMA通信通道,将对所述访问请求的处理结果从所述第三预设内存复制到所述第四预设内存中,以通过所述第一操作***将所述处理结果转发给所述虚拟机。
基于第二方面的第二种示例,在第二方面的第四种示例中,所述访问处理模块还用于:
通过所述第二操作***的虚拟机监控进程,将所述访问请求转换为基于所述第二操作***的进程间通信请求,以发送给所述VIRTIOFS进程。
基于第二方面的第一至第四种示例,在第二方面的第五种示例中,所述DMA驱动前端控制器为所述第一操作***的内核程序,所述DMA驱动后端控制器为所述第二操作***的内核程序。
基于第二方面的第四种示例,在第二方面的第六种示例中,所述装置还包括:
第一应用确定模块,用于在通过所述DMA通信通道将所述虚拟机的访问请求,从所述第一预设内存复制到所述第二预设内存中之前,通过所述第一操作***从所述访问请求中提取目标应用信息。
第一内存确定模块,用于通过所述第一操作***根据所述目标应用信息确定所述访问请求对应的第二预设内存。
第二应用确定模块,用于在通过所述DMA通信通道,将对所述访问请求的处理结果从所述第三预设内存复制到所述第四预设内存中之前,通过所述第二操作***从所述访问请求中提取所述目标应用信息。
第二内存确定模块,用于通过所述第二操作***根据所述目标应用信息确定所述处理结果对应的第四预设内存。
基于第二方面的第一种示例,在第二方面的第七种示例中,所述虚拟机包括应用于安全容器场景的虚拟机。
第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器和存储器。
所述存储器存储计算机执行指令。
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备实现第一方面任一项所述的方法。
第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,使计算设备实现第一方面任一项所述的方法。
第五方面,根据本公开的一个或多个实施例,提供了一种计算机程序,所述计算机程序用于实现第一方面任一项所述的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (11)
1.一种宿主机与虚拟机共享目录文件***的卸载方法,其特征在于,所述方法包括:
将宿主机上的虚拟机用户文件***VIRTIOFS进程卸载至数据处理器DPU,使得所述DPU负责运行所述VIRTIOFS进程和维护所述VIRTIOFS进程相关的共享目录文件***;
在所述宿主机上的VIRTIOFS进程卸载至所述DPU的情况下,通过所述宿主机中的第一操作***中配置的DMA驱动前端控制器与所述DPU中的第二操作***中配置的DMA驱动后端控制器,建立供所述VIRTIOFS进程与所述宿主机上的虚拟机通信的DMA通信通道;
通过所述DPU控制所述VIRTIOFS进程基于所述DMA通信通道与所述宿主机上部署的虚拟机进行通信,以实现所述共享目录文件***的访问和数据处理。
2.根据权利要求1所述的方法,其特征在于,所述通过所述DPU控制所述VIRTIOFS进程基于所述DMA通信通道与所述宿主机上部署的虚拟机进行通信,包括:
在所述第一操作***中设置第一预设内存,以及,在所述第二操作***中设置第二预设内存;
通过所述DMA通信通道将所述虚拟机的访问请求,从所述第一预设内存复制到所述第二预设内存中,以通过所述第二操作***将所述访问请求转发给所述VIRTIOFS进程,使所述VIRTIOFS进程访问共享目录文件***。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述第二操作***中设置第三预设内存,以及,在所述第一操作***中设置第四预设内存;
通过所述DMA通信通道,将对所述访问请求的处理结果从所述第三预设内存复制到所述第四预设内存中,以通过所述第一操作***将所述处理结果转发给所述虚拟机。
4.根据权利要求2所述的方法,其特征在于,所述通过所述第二操作***将所述访问请求转发给所述VIRTIOFS进程,包括:
通过所述第二操作***的虚拟机监控进程,将所述访问请求转换为基于所述第二操作***的进程间通信请求,以发送给所述VIRTIOFS进程。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述DMA驱动前端控制器为所述第一操作***的内核程序,所述DMA驱动后端控制器为所述第二操作***的内核程序。
6.根据权利要求3所述的方法,其特征在于,所述通过所述DMA通信通道将所述虚拟机的访问请求,从所述第一预设内存复制到所述第二预设内存中之前,还包括:
通过所述第一操作***从所述访问请求中提取目标应用信息;
通过所述第一操作***根据所述目标应用信息确定所述访问请求对应的第二预设内存;
所述通过所述DMA通信通道,将对所述访问请求的处理结果从所述第三预设内存复制到所述第四预设内存中之前,还包括:
通过所述第二操作***从所述访问请求中提取所述目标应用信息;
通过所述第二操作***根据所述目标应用信息确定所述处理结果对应的第四预设内存。
7.根据权利要求1所述的方法,其特征在于,所述虚拟机包括应用于安全容器场景的虚拟机。
8.一种宿主机与虚拟机共享目录文件***的卸载装置,其特征在于,所述装置包括:
卸载模块,用于将宿主机上的虚拟机用户文件***VIRTIOFS进程卸载至数据处理器DPU,使得所述DPU负责运行所述VIRTIOFS进程和维护所述VIRTIOFS进程相关的共享目录文件***;
通道建立模块,用于在所述宿主机上的VIRTIOFS进程卸载至所述DPU的情况下,通过所述宿主机中的第一操作***中配置的DMA驱动前端控制器与所述DPU中的第二操作***中配置的DMA驱动后端控制器,建立供所述VIRTIOFS进程与所述宿主机上的虚拟机通信的DMA通信通道;
访问处理模块,用于通过所述DPU控制所述VIRTIOFS进程基于所述DMA通信通道与所述宿主机上部署的虚拟机进行通信,以实现所述共享目录文件***的访问和数据处理。
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述电子设备实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,使计算设备实现如权利要求1至7任一项所述的方法。
11.一种计算机程序,其特征在于,所述计算机程序用于实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410012107.1A CN117762572A (zh) | 2024-01-03 | 2024-01-03 | 宿主机与虚拟机共享目录文件***的卸载方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410012107.1A CN117762572A (zh) | 2024-01-03 | 2024-01-03 | 宿主机与虚拟机共享目录文件***的卸载方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117762572A true CN117762572A (zh) | 2024-03-26 |
Family
ID=90320119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410012107.1A Pending CN117762572A (zh) | 2024-01-03 | 2024-01-03 | 宿主机与虚拟机共享目录文件***的卸载方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117762572A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216672A1 (en) * | 2004-03-25 | 2005-09-29 | International Business Machines Corporation | Method and apparatus for directory-based coherence with distributed directory management utilizing prefetch caches |
CN103810422A (zh) * | 2014-02-20 | 2014-05-21 | 东莞中国科学院云计算产业技术创新与育成中心 | 一种基于镜像智能管理的安全虚拟化隔离方法 |
CN108369604A (zh) * | 2017-12-28 | 2018-08-03 | 深圳前海达闼云端智能科技有限公司 | 一种多操作***共享文件***的方法、装置和电子设备 |
US20220261164A1 (en) * | 2016-10-20 | 2022-08-18 | Pure Storage, Inc. | Configuring Storage Systems Based On Storage Utilization Patterns |
CN115774701A (zh) * | 2022-12-01 | 2023-03-10 | 北京首都在线科技股份有限公司 | 数据共享方法、装置、电子设备及存储介质 |
CN116069262A (zh) * | 2023-03-06 | 2023-05-05 | 苏州浪潮智能科技有限公司 | 一种分布式存储卸载方法、装置、电子设备及存储介质 |
WO2023109880A1 (zh) * | 2021-12-16 | 2023-06-22 | 华为技术有限公司 | 一种业务恢复方法、数据处理单元及相关设备 |
WO2023179508A1 (zh) * | 2022-03-22 | 2023-09-28 | 北京有竹居网络技术有限公司 | 数据处理方法、装置、可读介质及电子设备 |
CN117193936A (zh) * | 2023-08-28 | 2023-12-08 | 北京志凌海纳科技有限公司 | 超融合架构下的虚拟机管理方法、装置及设备 |
-
2024
- 2024-01-03 CN CN202410012107.1A patent/CN117762572A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216672A1 (en) * | 2004-03-25 | 2005-09-29 | International Business Machines Corporation | Method and apparatus for directory-based coherence with distributed directory management utilizing prefetch caches |
CN103810422A (zh) * | 2014-02-20 | 2014-05-21 | 东莞中国科学院云计算产业技术创新与育成中心 | 一种基于镜像智能管理的安全虚拟化隔离方法 |
US20220261164A1 (en) * | 2016-10-20 | 2022-08-18 | Pure Storage, Inc. | Configuring Storage Systems Based On Storage Utilization Patterns |
CN108369604A (zh) * | 2017-12-28 | 2018-08-03 | 深圳前海达闼云端智能科技有限公司 | 一种多操作***共享文件***的方法、装置和电子设备 |
WO2023109880A1 (zh) * | 2021-12-16 | 2023-06-22 | 华为技术有限公司 | 一种业务恢复方法、数据处理单元及相关设备 |
WO2023179508A1 (zh) * | 2022-03-22 | 2023-09-28 | 北京有竹居网络技术有限公司 | 数据处理方法、装置、可读介质及电子设备 |
CN115774701A (zh) * | 2022-12-01 | 2023-03-10 | 北京首都在线科技股份有限公司 | 数据共享方法、装置、电子设备及存储介质 |
CN116069262A (zh) * | 2023-03-06 | 2023-05-05 | 苏州浪潮智能科技有限公司 | 一种分布式存储卸载方法、装置、电子设备及存储介质 |
CN117193936A (zh) * | 2023-08-28 | 2023-12-08 | 北京志凌海纳科技有限公司 | 超融合架构下的虚拟机管理方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
AOLITIANYA: "KVM虚拟机和宿主机共享目录", HTTPS://BLOG.CSDN.NET/AOLITIANYA/ARTICLE/DETAILS/127663701, 3 December 2022 (2022-12-03) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101496325B1 (ko) | 가상 머신의 상태를 저장, 복원하는 방법 및 장치 | |
CN102077188B (zh) | 用于虚拟化操作***的直接存储器访问过滤器 | |
US9116743B2 (en) | Storage medium, information processing apparatus, and migration method | |
CN102193824B (zh) | 虚拟机均质化以实现跨异构型计算机的迁移 | |
US20180349194A1 (en) | Accelerated data operations | |
US8356149B2 (en) | Memory migration | |
US8863123B2 (en) | Apparatus and method for virtualizing input/output devices using shared memory in host-based mobile terminal virtualization environment | |
WO2018176911A1 (zh) | 一种虚拟磁盘文件格式转换方法和装置 | |
US9875057B2 (en) | Method of live migration | |
KR20080106908A (ko) | 하드웨어 장치와 같은 자원을 소유하는 가상 컴퓨터를 이동시키기 위해 이용될 수 있는 컴퓨팅 시스템 및 방법 | |
CN110704161B (zh) | 虚拟机创建方法、装置及计算机设备 | |
US11886302B1 (en) | System and method for execution of applications in a container | |
CN114327777B (zh) | 确定全局页目录的方法、装置、电子设备及存储介质 | |
US9841985B2 (en) | Storage block deallocation in virtual environments | |
CA3129984A1 (en) | Method and system for accessing distributed block storage system in user mode | |
KR102326280B1 (ko) | 데이터 처리 방법, 장치, 기기 및 매체 | |
CN116028455A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
US20120159482A1 (en) | Seamless application integration apparatus and method | |
US10467078B2 (en) | Crash dump extraction of guest failure | |
KR102315102B1 (ko) | 가상 머신을 부팅하기 위한 방법, 장치, 기기 및 매체 | |
WO2020177567A1 (zh) | 一种迁移数据的方法、装置及*** | |
CN117762572A (zh) | 宿主机与虚拟机共享目录文件***的卸载方法及设备 | |
CN115617270A (zh) | 一种数据处理器的虚拟化存储设备数据处理方法及装置 | |
CN108932149A (zh) | 数据传输方法及装置 | |
CN112596950B (zh) | 虚拟机数据备份方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |