virtio驱动程序注入方法和装置制造方法及图纸

技术编号:33383812 阅读:15 留言:0更新日期:2022-05-11 22:57
本发明专利技术提供一种virtio驱动程序注入方法和装置。该方法应用于云平台,在云平台之间进行Linux虚拟机迁移的过程中注入virtio驱动程序,使Linux虚拟机迁移后可以立即以virtio驱动程序运行,该方法包括:对Linux虚拟机根目录下的initrd文件系统进行解压,得到initrd文件系统中的文件夹和文件;将Linux虚拟机lib目录下的virtio驱动程序拷贝到initrd文件系统中对应的文件夹中;对包含virtio驱动程序的initrd文件系统执行depmod命令,并对initrd文件系统进行压缩,可以保证Linux虚拟机迁移之后启动成功和运行状态符合预期。后启动成功和运行状态符合预期。后启动成功和运行状态符合预期。

【技术实现步骤摘要】
virtio驱动程序注入方法和装置


[0001]本专利技术涉及计算机
,尤其涉及一种virtio驱动程序注入方法和装置。

技术介绍

[0002]虚拟机在云平台,也称为计算平台之间的迁移大多是通过迁移工具来实现,由于每一种云平台所采用的基础技术可能不同,虚拟机在迁移到目标云平台上之后由于兼容性问题以及性能问题,常常需要在迁移过来的虚拟机上安装合适的驱动程序,例如,对于从基于VMWare的云平台迁移到基于qemu的平台上的Linux虚拟机,需要安装virtio驱动程序来提高Linux虚拟机的性能,而这一驱动程序在一些情况下并不会默认安装,需要在Linux虚拟机迁移过程中或者迁移之后进行安装。
[0003]现有的Linux虚拟机的virtio驱动程序的注入方法主要有以下两种:
[0004]一种是在Linux虚拟机迁移之后,首先以兼容的方式使Linux虚拟机开机,然后在Linux虚拟机内部进行virtio驱动程序的安装,安装的方式一般是通过云平台提供的类似VMWare tools的工具来实现,安装完成之后将虚拟机关机,再切换成virtio驱动程序开机。
[0005]另一种是在Linux虚拟机迁移过程中,在磁盘数据迁移完成之后,通过将磁盘挂载出来,向Linux虚拟机内部注入virtio驱动程序,Redhat/CentOS系统一般是通过dracut
‑‑
add

drivers"virtio virtio_balloon virtio_blk virtio_net"命令来注入virtio驱动程序。
[0006]第一种virtio驱动程序的注入方法实现简单,兼容性好。但是该方法需要用户进行额外的操作,不能做到Linux虚拟机迁移后立即以virtio驱动程序运行。
[0007]第二种virtio驱动程序的注入方法可以做到Linux虚拟机迁移后立即以virtio驱动程序运行,但是对于某些特殊的Linux虚拟机,由于dracut命令的生成方式,是根据Linux虚拟机内部配置以及检测当前运行环境来重新生成一个initrd文件,在跨平台数据迁移过程中,Linux虚拟机处于关机状态,执行dracut命令的迁移工具不能提供一个与原始Linux虚拟机相同的运行环境,因此在一些Linux虚拟机迁移的情况下,可能会丢失用户自定义的内核模块,导致Linux虚拟机启动失败或者Linux虚拟机运行状态非预期。

技术实现思路

[0008]本专利技术提供一种virtio驱动程序注入方法和装置,用以解决现有技术中需要用户进行额外的操作,Linux虚拟机迁移后不能立即以virtio驱动程序运行,Linux虚拟机迁移后启动失败或者Linux虚拟机运行状态非预期的缺陷,可以在不需要用户进行额外的操作的基础上,实现Linux虚拟机迁移后立即以virtio驱动程序运行,可以保证Linux虚拟机迁移之后启动成功和运行状态符合预期。
[0009]第一方面,本专利技术提供一种virtio驱动程序注入方法,应用于云平台,在所述云平台之间进行Linux虚拟机迁移的过程中注入virtio驱动程序,使所述Linux虚拟机在迁移之后可以立即以所述virtio驱动程序运行,所述注入方法包括:
[0010]对所述Linux虚拟机根目录下的initrd文件系统进行解压处理,得到所述initrd文件系统中的文件夹和文件;
[0011]对所述Linux虚拟机lib目录下的所述virtio驱动程序进行复制,并将所述virtio驱动程序粘贴到所述initrd文件系统中对应的文件夹中;
[0012]对包含所述virtio驱动程序的initrd文件系统执行depmod命令,生成所述initrd文件系统中模块之间的依赖关系文件;
[0013]对执行所述depmod命令后的initrd文件系统进行压缩处理。
[0014]根据本专利技术提供的virtio驱动程序注入方法,对所述Linux虚拟机根目录下的initrd文件系统进行解压处理,得到所述initrd文件系统中的文件夹和文件,包括:
[0015]确定所述Linux虚拟机根目录下的所述initrd文件系统的压缩格式;
[0016]根据所确定的压缩格式,对所述initrd文件系统进行解压处理,得到所述initrd文件系统中的文件夹和文件;
[0017]对执行所述depmod命令后的initrd文件系统进行压缩处理,包括:
[0018]根据所确定的压缩格式,对执行所述depmod命令后的initrd文件系统进行压缩处理。
[0019]根据本专利技术提供的virtio驱动程序注入方法,对所述Linux虚拟机根目录下的initrd文件系统进行解压处理,得到所述initrd文件系统中的文件夹和文件之前,还包括:
[0020]在所述Linux虚拟机磁盘数据迁移之后,对所述Linux虚拟机根目录所在的磁盘进行挂载。
[0021]根据本专利技术提供的virtio驱动程序注入方法,对所述Linux虚拟机lib目录下的所述virtio驱动程序进行复制,包括:
[0022]对所述Linux虚拟机/lib/modules/$KERNEL_VERSION/kernel/drivers/目录下的所述virtio驱动程序进行复制。
[0023]根据本专利技术提供的virtio驱动程序注入方法,所述Linux虚拟机是从基于VMWare的云平台迁移到基于qemu的云平台上。
[0024]第二方面,本专利技术提供一种virtio驱动程序注入装置,应用于云平台,在所述云平台之间进行Linux虚拟机迁移的过程中注入virtio驱动程序,使所述Linux虚拟机在迁移之后可以立即以所述virtio驱动程序运行,所述注入装置包括:
[0025]文件解压模块,用于对所述Linux虚拟机根目录下的initrd文件系统进行解压处理,得到所述initrd文件系统中的文件夹和文件;
[0026]驱动复制模块,用于对所述Linux虚拟机lib目录下的所述virtio驱动程序进行复制,并将所述virtio驱动程序粘贴到所述initrd文件系统中对应的文件夹中;
[0027]文件生成模块,用于对包含所述virtio驱动程序的initrd文件系统执行depmod命令,生成所述initrd文件系统中模块之间的依赖关系文件;
[0028]文件压缩模块,用于对执行所述depmod命令后的initrd文件系统进行压缩处理。
[0029]根据本专利技术提供的virtio驱动程序注入装置,还包括:
[0030]磁盘挂载模块,用于在所述Linux虚拟机磁盘数据迁移之后,对所述Linux虚拟机根目录所在的磁盘进行挂载。
[0031]第三方面,本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并
可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面所述virtio驱动程序注入方法的步骤。...

【技术保护点】

【技术特征摘要】
1.一种virtio驱动程序注入方法,其特征在于,应用于云平台,在所述云平台之间进行Linux虚拟机迁移的过程中注入virtio驱动程序,使所述Linux虚拟机在迁移之后可以立即以所述virtio驱动程序运行,所述注入方法包括:对所述Linux虚拟机根目录下的initrd文件系统进行解压处理,得到所述initrd文件系统中的文件夹和文件;对所述Linux虚拟机lib目录下的所述virtio驱动程序进行复制,并将所述virtio驱动程序粘贴到所述initrd文件系统中对应的文件夹中;对包含所述virtio驱动程序的initrd文件系统执行depmod命令,生成所述initrd文件系统中模块之间的依赖关系文件;对执行所述depmod命令后的initrd文件系统进行压缩处理。2.根据权利要求1所述的virtio驱动程序注入方法,其特征在于,对所述Linux虚拟机根目录下的initrd文件系统进行解压处理,得到所述initrd文件系统中的文件夹和文件,包括:确定所述Linux虚拟机根目录下的所述initrd文件系统的压缩格式;根据所确定的压缩格式,对所述initrd文件系统进行解压处理,得到所述initrd文件系统中的文件夹和文件;对执行所述depmod命令后的initrd文件系统进行压缩处理,包括:根据所确定的压缩格式,对执行所述depmod命令后的initrd文件系统进行压缩处理。3.根据权利要求1或2所述的virtio驱动程序注入方法,其特征在于,对所述Linux虚拟机根目录下的initrd文件系统进行解压处理,得到所述initrd文件系统中的文件夹和文件之前,还包括:在所述Linux虚拟机磁盘数据迁移之后,对所述Linux虚拟机根目录所在的磁盘进行挂载。4.根据权利要求3所述的virtio驱动程序注入方法,其特征在于,对所述Linux虚拟机lib目录下的所述virtio驱动程序进行复制,包括:对所述Linux虚拟机/lib/modules/$KERNEL_VERS...

【专利技术属性】
技术研发人员:刘明磊
申请(专利权)人:北京志凌海纳科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1