基于主机迁移的硬件设备配置方法、装置及设备转让专利
申请号 : CN202110889197.9
文献号 : CN113326105B
文献日 : 2021-11-05
发明人 : 张勇 , 程方全
申请人 : 深圳市科力锐科技有限公司
摘要 :
权利要求 :
1.一种基于主机迁移的硬件设备配置方法,其特征在于,所述基于主机迁移的硬件设备配置方法包括:
基于本地硬盘创建一虚拟机;
获取硬件设备配置信息,并根据所述硬件设备配置信息进行设备虚拟,以只读状态透传至所述虚拟机;
根据所述硬件设备配置信息在所述虚拟机的操作系统中安装设备驱动程序;
根据所述硬件设备配置信息对所述虚拟机的操作系统中各设备的驱动程序的初始化行为进行响应,并将驱动程序初始化后的配置保存至主机迁移后的操作系统,以完成主机迁移的硬件设备自动配置;
其中,所述基于本地硬盘创建一虚拟机,包括:在源主机的硬盘空间中获取一个空闲区域,对所述空闲区域进行分卷压缩,得到保留区域;
根据所述保留区域的容量对本地硬盘空间进行分卷压缩,得到迁移区域;
在所述迁移区域上安装预定操作系统,根据所述预定操作系统与本地硬盘创建一虚拟机,并基于迁移后的操作系统启动所述虚拟机。
2.如权利要求1所述的基于主机迁移的硬件设备配置方法,其特征在于,所述获取硬件设备配置信息,并根据所述硬件设备配置信息进行设备虚拟,以只读状态透传至所述虚拟机,包括:
获取设备信息,将所述设备信息输入至机器学习模型中进行训练,得到机器学习引擎;
将机器学习引擎编译到所述预定操作系统的内核中,扫描并保存硬件设备信息;
将所述硬件设备信息输入至机器学习引擎中进行学习训练,得到硬件设备配置信息,并根据所述硬件设备配置信息进行设备虚拟,以只读状态透传至所述虚拟机。
3.如权利要求1所述的基于主机迁移的硬件设备配置方法,其特征在于,所述根据所述硬件设备配置信息在所述虚拟机的操作系统中安装设备驱动程序,包括:根据所述硬件设备配置信息从所述虚拟机的虚拟光驱中获取待安装的设备驱动程序信息;
根据所述设备驱动程序信息在所述虚拟机的操作系统中安装设备驱动程序。
4.如权利要求3所述的基于主机迁移的硬件设备配置方法,其特征在于,所述根据所述硬件设备配置信息从所述虚拟机的虚拟光驱中获取待安装的设备驱动程序信息,包括:获取本地连接设备的驱动程序信息,根据所述驱动程序信息生成光盘镜像文件;
根据所述光盘镜像文件在虚拟机中虚拟一个光驱设备,得到虚拟光驱;
根据所述硬件设备配置信息从所述虚拟光驱中获取待安装的设备驱动程序信息。
5.如权利要求3所述的基于主机迁移的硬件设备配置方法,其特征在于,所述根据所述设备驱动程序信息在所述虚拟机的操作系统中安装设备驱动程序,包括:获取源主机操作系统支持的所有类型的硬盘控制器,选择其中任意一种类型的硬盘控制器进行虚拟,得到虚拟硬盘控制器;
获取本地硬盘数据,基于本地硬盘数据在所述虚拟硬盘控制器中虚拟一个硬盘,得到虚拟硬盘;
基于虚拟硬盘的操作系统启动虚拟机,并根据所述设备驱动程序信息在所述虚拟机的操作系统中安装设备驱动程序。
6.如权利要求1至5任一项所述的基于主机迁移的硬件设备配置方法,其特征在于,所述根据所述硬件设备配置信息对所述虚拟机的操作系统中各设备的驱动程序的初始化行为进行响应,并将驱动程序初始化后的配置保存至主机迁移后的操作系统,以完成主机迁移的硬件设备自动配置,包括:
根据所述硬件设备配置信息对所述虚拟机的操作系统中各设备的驱动程序的初始化行为进行响应,得到初始化设备;
将所述初始化设备的驱动程序及所述驱动程序对应的配置信息保存至主机迁移后的操作系统,以完成主机迁移的硬件设备自动配置。
7.一种基于主机迁移的硬件设备配置装置,其特征在于,所述基于主机迁移的硬件设备配置装置包括:
透传模块,用于基于本地硬盘创建一虚拟机;
透传模块,还用于获取硬件设备配置信息,并根据所述硬件设备配置信息进行设备虚拟,以只读状态透传至所述虚拟机;
配置模块,用于根据所述硬件设备配置信息在所述虚拟机的操作系统中安装设备驱动程序;
透传模块,还用于根据所述硬件设备配置信息对所述虚拟机的操作系统中各设备的驱动程序的初始化行为进行响应;
配置模块,还用于将驱动程序初始化后的配置保存至主机迁移后的操作系统,以完成主机迁移的硬件设备自动配置;
透传模块,还用于在源主机的硬盘空间中获取一个空闲区域,对所述空闲区域进行分卷压缩,得到保留区域,根据所述保留区域的容量对本地硬盘空间进行分卷压缩,得到迁移区域,在所述迁移区域上安装预定操作系统,根据所述预定操作系统与本地硬盘创建一虚拟机,并基于迁移后的操作系统启动所述虚拟机。
8.一种基于主机迁移的硬件设备配置设备,其特征在于,所述基于主机迁移的硬件设备配置设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于主机迁移的硬件设备配置程序,所述基于主机迁移的硬件设备配置程序配置为实现如权利要求1至6中任一项所述的基于主机迁移的硬件设备配置方法。
9.一种存储介质,其特征在于,所述存储介质上存储有基于主机迁移的硬件设备配置程序,所述基于主机迁移的硬件设备配置程序被处理器执行时实现如权利要求1至6任一项所述的基于主机迁移的硬件设备配置方法。
说明书 :
基于主机迁移的硬件设备配置方法、装置及设备
技术领域
背景技术
备和源主机的硬件设备存在有不一致的情况,迁移后的操作系统可能因未安装系统操作所
需的驱动程序,而导致系统启动失败或者系统工作异常。目前,操作系统迁移未安装所需的
驱动程序时,目标主机无法正常使用,需要人工修正驱动程序,但人工修正操作复杂,修正
耗时较长。
发明内容
主机迁移的硬件设备自动配置。
统,以完成主机迁移的硬件设备自动配置,包括:
所述处理器上运行的基于主机迁移的硬件设备配置程序,所述基于主机迁移的硬件设备配
置程序配置为实现如上文所述的基于主机迁移的硬件设备配置方法的步骤。
现如上文所述的基于主机迁移的硬件设备配置方法的步骤。
操作系统中各设备的驱动程序的初始化行为进行响应,并将驱动程序初始化后的配置保存
至主机迁移后的操作系统,以完成主机迁移的硬件设备自动配置。本发明通过将硬件设备
只读透传至虚拟机中,根据硬件设备配置信息在虚拟机的操作系统中安装设备驱动程序,
对只读透传设备进行配置并保存,以完成主机迁移的硬件设备自动配置,无需人工修正,提
高迁移效率。
附图说明
具体实施方式
存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包
括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的
有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保
真(Wireless‑Fidelity,Wi‑Fi)接口)。存储器1005可以是高速的随机存取存储器(Random
Access Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non‑Volatile Memory,
NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
件布置。
移的硬件设备配置设备中的处理器1001、存储器1005可以设置在基于主机迁移的硬件设备
配置设备中,所述基于主机迁移的硬件设备配置设备通过处理器1001调用存储器1005中存
储的基于主机迁移的硬件设备配置程序,并执行本发明实施例提供的基于主机迁移的硬件
设备配置方法。
算机迁移到另外一台计算机,因此,具有迁移后的操作系统的主机与迁移前的计算机可相
应的称为目标主机与源主机,主机迁移则是将源主机的操作系统及业务迁移至目标主机
中。
的设备。待源主机的业务系统迁移至目标主机后,目标主机可基于迁移后的系统创建一个
虚拟机,目标主机为虚拟机的物理主机,虚拟机的操作系统是迁移后的操作系统,通过虚拟
机的操作系统实现硬件设备的配置。
设备初始状态信息(如IO端口和MMIO内存的数据信息)、设备初始化过程中的各种变化状态
信息(如IO端口和MMIO内存的数据变化信息)以及数据变化期间硬件中断发生的时序。
拟机执行写入操作(如通过网卡发送数据、向硬盘写入数据或者通过显卡渲染),则虚拟机
的设备虚拟化引擎会忽略该写入操作,并直接返回成功(返回成功时实际仍是未执行写入
操作)或失败,或则对写入操作不做任何处理。
施例具体实现中,物理机(目标主机)和创建的虚拟机可以同时使用,只是虚拟机只能执行
读操作,写操作会被虚拟化引擎忽略掉。只读透传是指通过学习物理机硬件设备特性来进
行虚拟,是介于PCI直通和纯软件虚拟(纯软件虚拟化设备需要了解每个硬件设备的寄存器
特性及工作过程,然后逐一通过软件进行虚拟)之间的一种实现方法。
操作系统,然后虚拟机的操作系统会根据设备信息(如硬件设备的厂商ID、设备ID)来安装
设备驱动程序,并把驱动程序加载到系统上。
统,以完成主机迁移的硬件设备自动配置。
以及执行相应的操作,直至设备初始化完毕,其中,虚拟机的操作系统(迁移后的操作系统)
安装的设备驱动程序、以及相关的配置会写入虚拟硬盘(由于虚拟硬盘是基于目标主机的
硬盘创建的,虚拟硬盘上所有写入的数据最终会写入到目标主机的硬盘相同的区域上)。在
设备初始化正常结束后,就可以让设备执行各种操作(如网卡发送数据包,硬盘写入数据或
显卡渲染数据),但虚拟机中这些操作都会被虚拟化引擎忽略掉。待所有的设备驱动程序安
装完毕就可以关闭虚拟机,虚拟硬盘的读写最终会经虚拟化引擎处理,由虚拟化引擎转换
成物理硬盘的读写,从而保存至主机迁移所需的本地硬盘空间中(即保存到迁移后的操作
系统中),以完成主机迁移的硬件设备自动配置。
的操作系统中各设备的驱动程序的初始化行为进行响应,并将驱动程序初始化后的配置保
存至主机迁移后的操作系统,以完成主机迁移的硬件设备自动配置。本实施例通过将硬件
设备只读透传至虚拟机中,根据硬件设备配置信息在虚拟机的操作系统中安装设备驱动程
序,对只读透传设备进行配置并保存,以完成主机迁移的硬件设备自动配置,无需人工修
正,提高迁移效率。
域。
现中,由于很多业务系统硬盘上存储的数据量都是远小于硬盘的容量,并且文件系统都有
卷压缩的功能,因此可以对原主机和目标主机的硬盘空间均进行卷压缩,腾出一个相同的
空余区域(大小一致,硬盘的偏移量也一致),基于区域相同的空余区域安装预定操作系统,
基于预定操作系统实现主机迁移。
为操作系统的储存空间,分区3可作为数据库,用储存数据,分区4可用于实现数据库的数据
归档,其中,分区3的空间区域相较更多,因此,可选择将分区3的部分区域作为空闲区域进
行分卷压缩,从而得到保留区域,分区3的部分区域可以是分区3的尾部区域。
机的硬盘,迁移区域与保留区域的空间大小即储存容量一致,目标主机硬盘的偏移量与源
主机硬盘的偏移量也一致。
留区域的起始偏移量是800GB,大小是10GB,则可将预定操作系统即定制的操作系统安装到
目标主机硬盘的800GB到810GB这个区域即迁移区域。待预定操作系统安装之后重启目标主
机,就会从这个定制的操作系统启动,由定制的操作系统来完成整个系统、业务的迁移操
作。由于源主机硬盘的800GB到810GB这个区域已经用作保留区域,保留区域的数据将不会
进行迁移,所以目标主机硬盘上对应的迁移区域不会写入迁移数据,则不会对预定操作系
统造成破坏,影响硬件设备的配置。
信息。
存器的输入(赋值)和输出(读取状态),将机器学习引擎编译到预定操作系统的内核中,则
可将机器学习引擎的学习结果应用于虚拟机的只读透传。
机。
擎编译到一个内核模块中,在系统最早加载内核模块的阶段就能启动学习引擎,其中,内核
引导要早于系统初始化,机器学习引擎启动后可扫描PCI总线上的设备,获得硬件设备配置
信息,硬件设备配置信息可包括设备初始状态信息(如IO端口和MMIO内存的数据信息)、设
备初始化过程中的各种变化状态信息(如IO端口和MMIO内存的数据变化信息)以及数据变
化期间硬件中断发生的时序,并用于后续的设备模拟。同时,机器学习引擎还可以用于将不
同PCI总线连接设备的硬件设备配置信息输入至主机平台中训练学习,以获得更多的学习
结果。例如,将集成了学习引擎的定制操作系统放到各种硬件平台(如戴尔、华为、联想或浪
潮等平台)去学习,学习各个平台上的各种硬件设备(如英特尔网卡、博通网卡或英伟达显
卡等设备)的初始化交互过程,由于大部分设备都是主流厂商开发生产的,机器学习引擎可
覆盖大多数设备的硬件设备配置信息。
因为PCI设备开发后都会有对应的配置手册,手册中记录有描述该设备的配置过程,如设备
上电后所有寄存器的初始值,驱动程序配置时如何依次对寄存器进行赋值等,根据这些配
置说明可以在机器学习引擎中预设整个交互过程,用于后续将硬件设备只读透传给虚拟机
时根据预设过程进行设备模拟。
据的过程中,迁移区域的预定操作系统不会因写入迁移数据而遭到破坏。根据预定操作系
统与本地硬盘中创建一虚拟机,获取设备信息,将设备信息输入至机器学习模型中进行训
练,得到机器学习引擎,将机器学习引擎编译到预定操作系统的内核中,预定操作系统在不
同的硬件平台中学习,得到学习结果,将预定操作系统和学习结果一起安装至迁移区域,预
定操作系统扫描并保存硬件设备信息,将硬件设备信息输入至机器学习引擎中进行学习训
练,得到硬件设备配置信息,根据硬件设备配置信息与预定操作系统在不同的硬件平台中
的学习结果进行设备虚拟,易于实现虚拟机设备的只读透传。
硬件设备配置信息从所述虚拟光驱中获取待安装的设备驱动程序信息。
总线上连接的所有设备的驱动程序信息,驱动程序信息可包括所有设备的驱动程序,并把
这些驱动程序打包到一个光盘镜像文件中。
据在所述虚拟硬盘控制器中虚拟一个硬盘,得到虚拟硬盘;基于虚拟硬盘的操作系统启动
虚拟机,并根据所述设备驱动程序信息在所述虚拟机的操作系统中安装设备驱动程序。
下获得相关信息:HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e97b‑e325‑
11ce‑bfc1‑08002be10318}。假设源主机操作系统已经安装了IDE、virtio‑blk、virtio‑
scsi这三种类型硬盘控制器驱动程序,那么操作系统就支持这三种类型的硬盘控制器。假
设原机正在使用IDE这种类型的硬盘控制器,那么优先选择IDE硬盘控制器进行虚拟,得到
IDE虚拟硬盘控制器,后续虚拟硬盘挂接在IDE虚拟硬盘控制器上。
基于光盘镜像文件虚拟一个光驱设备,最后再将硬件设备只读透传给虚拟机,根据硬件设
备配置信息从虚拟光驱中获取待安装的设备驱动程序信息。虚拟机可包括两个硬盘,一个
可以是虚拟出来的硬盘,可以读写,用于启动和配置操作系统,另一个为只读透传的硬盘,
仅用于触发操作系统安装对应的硬盘控制器驱动程序。
程序对应的配置信息保存至主机迁移后的操作系统,以完成主机迁移的硬件设备自动配
置。
以及执行相应的操作,直至设备初始化完毕,得到初始化设备,其中,虚拟操作系统安装的
设备驱动、以及相关的配置会写入虚拟硬盘。在设备初始化正常结束后,就可以让设备执行
各种操作(如网卡发送数据包,硬盘写入数据或显卡渲染数据),但虚拟机中这些操作都会
被忽略掉。待所有的设备驱动程序安装完毕就可以关闭虚拟机,虚拟硬盘的读写最终会经
虚拟化引擎处理,由虚拟化引擎转换成物理硬盘的读写,将初始化设备的驱动程序及驱动
程序对应的配置信息保存至主机迁移所需的本地硬盘空间,以完成主机迁移的硬件设备自
动配置。
间恢复至初始状态。
后的操作系统对已做过卷压缩的分区即迁移区域执行卷扩展操作,恢复至卷压缩前的状
态,从而完成迁移后的状态复原。
虚拟一个硬盘,并挂接到虚拟硬盘控制器上,再基于光盘镜像文件虚拟一个光驱设备,最后
将硬件设备只读透传给虚拟机,根据硬件设备配置信息从虚拟光驱中获取待安装的设备驱
动程序信息,根据硬件设备配置信息对虚拟机的操作系统中各设备的驱动程序的初始化行
为进行响应,得到初始化设备,将初始化设备的驱动程序及驱动程序对应的配置信息保存
至主机迁移后的操作系统,完成主机迁移的硬件设备自动配置后将本地硬盘空间进行卷扩
展,以使本地硬盘空间恢复至初态,充分利用硬盘空间。
所述的基于主机迁移的硬件设备配置方法的步骤。
算机迁移到另外一台计算机,因此,具有迁移后的操作系统的主机与迁移前的计算机可相
应的称为目标主机与源主机,主机迁移则是将源主机的操作系统及业务迁移至目标主机
中。
的设备。待源主机的业务系统迁移至目标主机后,目标主机可基于迁移后的系统创建一个
虚拟机,目标主机为虚拟机的物理主机,虚拟机的操作系统是迁移后的操作系统,通过虚拟
机的操作系统实现硬件设备的配置。
设备初始状态信息(如IO端口和MMIO内存的数据信息)、设备初始化过程中的各种变化状态
信息(如IO端口和MMIO内存的数据变化信息)以及数据变化期间硬件中断发生的时序。
拟机执行写入操作(如通过网卡发送数据、向硬盘写入数据或者通过显卡渲染),则虚拟机
的设备虚拟化引擎会忽略该写入操作,并直接返回成功(返回成功时实际仍是未执行写入
操作)或失败,或则对写入操作不做任何处理。
施例具体实现中,物理机(目标主机)和创建的虚拟机可以同时使用,只是虚拟机只能执行
读操作,写操作会被虚拟化引擎忽略掉。只读透传是指通过学习物理机硬件设备特性来进
行虚拟,是介于PCI直通和纯软件虚拟(纯软件虚拟化设备需要了解每个硬件设备的寄存器
特性及工作过程,然后逐一通过软件进行虚拟)之间的一种实现方法。
操作系统,然后虚拟机的操作系统会根据设备信息(如硬件设备的厂商ID、设备ID)来安装
设备驱动程序,并把驱动程序加载到系统上。
以及执行相应的操作,直至设备初始化完毕,其中,虚拟机的操作系统(迁移后的操作系统)
安装的设备驱动程序、以及相关的配置会写入虚拟硬盘(由于虚拟硬盘是基于目标主机的
硬盘创建的,虚拟硬盘上所有写入的数据最终会写入到目标主机的硬盘相同的区域上)。在
设备初始化正常结束后,就可以让设备执行各种操作(如网卡发送数据包,硬盘写入数据或
显卡渲染数据),但虚拟机中这些操作都会被虚拟化引擎忽略掉。待所有的设备驱动程序安
装完毕就可以关闭虚拟机,虚拟硬盘的读写最终会经虚拟化引擎处理,由虚拟化引擎转换
成物理硬盘的读写,从而保存至主机迁移所需的本地硬盘空间中(即保存到迁移后的操作
系统中),以完成主机迁移的硬件设备自动配置。
的操作系统中各设备的驱动程序的初始化行为进行响应,并将驱动程序初始化后的配置保
存至主机迁移后的操作系统,以完成主机迁移的硬件设备自动配置。本实施例通过将硬件
设备只读透传至虚拟机中,根据硬件设备配置信息在虚拟机的操作系统中安装设备驱动程
序,对只读透传设备进行配置并保存,以完成主机迁移的硬件设备自动配置,无需人工修
正,提高迁移效率。
间进行分卷压缩,得到迁移区域;在所述迁移区域上安装预定操作系统,根据所述预定操作
系统与本地硬盘创建一虚拟机,并基于迁移后的操作系统启动所述虚拟机。
内核中,扫描并保存硬件设备信息;将所述硬件设备信息输入至机器学习引擎中进行学习
训练,得到硬件设备配置信息,并根据所述硬件设备配置信息进行设备虚拟,以只读状态透
传至所述虚拟机。
备,得到虚拟光驱;根据所述硬件设备配置信息从所述虚拟光驱中获取待安装的设备驱动
程序信息。
地硬盘数据,基于本地硬盘数据在所述虚拟硬盘控制器中虚拟一个硬盘,得到虚拟硬盘;基
于虚拟硬盘的操作系统启动虚拟机,并根据所述设备驱动程序信息在所述虚拟机的操作系
统中安装设备驱动程序。
置。
全部来实现本实施例方案的目的,此处不做限制。
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统
所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在
包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做
出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质
(如只读存储器(Read OnlyMemory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台
终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方
法。
术领域,均同理包括在本发明的专利保护范围内。