一种微虚机的启动方法及系统与流程

文档序号:37154130发布日期:2024-02-26 17:12阅读:17来源:国知局
本发明属于虚拟化领域,尤其涉及一种微虚机的启动方法及系统。
背景技术
::1、微虚机目前多用于安全容器,安全容器是开发用于提供额外的安全层的,它是一种使用微虚机隔离的容器,把每个容器都用单独的微虚机进行隔离。而普通容器是共享主机的资源和内核,因此安全容器相比普通容器具有更好的隔离性和安全性。2、正是由于安全容器是通过单独的微虚机进行隔离的,那么,安全容器在启动时比普通容器多了启动微虚机的时间。因此,安全容器的启动速度较慢。3、现有技术下,在启动微虚机时,创建虚拟设备和加载客户虚拟机(guest)内核文件是串行执行,必须等加载客户虚拟机(guest)内核文件完成才能创建虚拟设备,导致微虚机启动较慢。技术实现思路1、为解决上述问题,本发明提供了如下方案:一种微虚机的启动方法及系统。其中,一种微虚机的启动方法,包括:2、当接受到微虚机的启动请求后,向物理机申请内存、打开guest内核文件,并生成内核引导命令行;3、判断当前使用的virtio传输层的协议种类和客户虚拟机的系统架构,根据不同种类的virtio传输层协议和客户虚拟机的系统架构进行对应处理后,启动一个新线程加载客户虚拟机内核文件,并创建virtio虚拟设备和acpi table;4、等待客户虚拟机内核文件加载完成后,启动客户虚拟机的vcpu。5、优选地,根据不同种类的virtio传输层协议进行对应处理的过程包括,6、若判断当前使用的virtio传输层协议是virtio-mmio,则根据cpu平台计算获得mmio总线占用的cpu物理地址空间,从mmio总线地址末端开始为每个virtio-mmio虚拟设备分配设备配置空间的mmio地址范围,以及为每个virtio-mmio虚拟设备分配中断号,并将所述virtio-mmio虚拟设备的mmio地址范围和中断号添加到内核引导命令行;7、若判断当前使用的virtio传输层协议是virtio-pci,则进一步判断客户虚拟机的系统架构。8、优选地,根据不同种类的客户虚拟机的系统架构进行对应处理的过程包括,9、若判断所述客户虚拟机的系统架构是x86架构,则直接启动一个新线程加载客户虚拟机内核文件;10、若判断所述客户虚拟机的系统架构是aarch64架构,则先从guest内存段的0地址开始映射长度为4mib的内存以模拟uefi flash,接着启动一个新线程加载客户虚拟机内核文件,将所述客户虚拟机内核文件作为内核pe文件进行加载后,创建virtio虚拟设备和acpi table。11、优选地,将所述客户虚拟机内核文件作为内核pe文件进行加载的过程包括,12、将所述客户虚拟机内核文件作为内核pe文件进行加载,若加载成功,直接创建virtio虚拟设备和acpi table;13、若加载失败,则使用uefi flash,将所述客户虚拟机内核文件作为uefi二进制文件进行加载,然后再创建virtio虚拟设备和acpi table。14、本发明还提供一种微虚机的启动系统,包括:15、请求接收模块,用于接收微虚机的启动请求;16、请求处理模块,与所述请求接收模块连接,用于在接受到微虚机的启动请求后,向物理机申请内存、打开guest内核文件,并生成内核引导命令行;17、判断模块,与所述请求处理模块连接,用于判断当前使用的virtio传输层的协议种类和客户虚拟机的系统架构;18、处理模块,与所述判断模块连接,用于对不同种类的virtio传输层协议和客户虚拟机的系统架构进行对应处理;19、系统启动模块,与所述处理模块连接,用于启动微虚机。20、优选地,所述virtio传输层的协议种类包括virtio-mmio、virtio-pci;21、所述客户虚拟机的系统架构包括x86架构、aarch64架构。22、优选地,所述处理模块包括协议处理单元;23、所述协议处理单元包括第一处理单元、第二处理单元;24、所述第一处理单元用于当判断当前使用的virtio传输层协议是virtio-mmio时,根据cpu平台计算获得mmio总线占用的cpu物理地址空间,从mmio总线地址末端开始为每个virtio-mmio虚拟设备分配设备配置空间的mmio地址范围,以及为每个virtio-mmio虚拟设备分配中断号,并将所述virtio-mmio虚拟设备的mmio地址范围和中断号添加到内核引导命令行;25、所述第二处理单元用于当判断当前使用的virtio传输层协议是virtio-pci时,进一步判断客户虚拟机的系统架构。26、优选地,所述处理模块还包括系统架构处理单元;27、所述系统架构处理单元包括第三处理单元、第四处理单元;28、所述第三处理单元用于当判断所述客户虚拟机的系统架构是x86架构时,直接启动一个新线程加载客户虚拟机内核文件;29、所述第四处理单元用于当判断所述客户虚拟机的系统架构是aarch64架构,先从guest内存段的0地址开始映射长度为4mib的内存以模拟uefi flash,接着启动一个新线程加载客户虚拟机内核文件,将所述客户虚拟机内核文件作为内核pe文件进行加载后,创建virtio虚拟设备和acpi table。30、优选地,所述第四处理单元包括第一加载单元、第二加载单元;31、所述第一加载单元用于当所述客户虚拟机内核文件作为内核pe文件进行加载,加载成功时,直接创建virtio虚拟设备和acpi table;32、所述第二加载单元用于当所述客户虚拟机内核文件作为内核pe文件进行加载,加载失败时,使用uefi flash,将所述客户虚拟机内核文件作为uefi二进制文件进行加载,然后再创建virtio虚拟设备和acpi table。33、优选地,所述系统启动模块包括第一启动单元、第二启动单元;34、所述第一启动单元用于启动新线程加载客户虚拟机内核文件,并创建virtio虚拟设备和acpi table;35、所述第二启动单元用于等待客户虚拟机内核文件加载完成后,启动客户虚拟机的vcpu。36、与现有技术相比,本发明具有如下优点和技术效果:37、本发明在启动微虚机时,通过在创建虚拟设备之前,启动一个新线程加载客户虚拟机(guest)内核文件,并在虚拟设备创建完成之后,等待内核文件加载完成,使得创建虚拟设备和加载客户虚拟机(guest)内核文件能并发执行,实现进一步提升虚拟机启动速度。38、通过本发明的启动方法启动微虚机,可以实现创建虚拟设备和加载客户虚拟机(guest)内核文件的并发执行。相比现有技术的串行执行,能显著提升微虚机启动速度。尤其当需创建的虚拟设备越多时,提升效果越明显。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1