CN117112072B - 一种跨平台虚拟机驱动替换方法、系统及存储介质 - Google Patents

一种跨平台虚拟机驱动替换方法、系统及存储介质 Download PDF

Info

Publication number
CN117112072B
CN117112072B CN202311387840.3A CN202311387840A CN117112072B CN 117112072 B CN117112072 B CN 117112072B CN 202311387840 A CN202311387840 A CN 202311387840A CN 117112072 B CN117112072 B CN 117112072B
Authority
CN
China
Prior art keywords
target
virtual machine
platform
disk
data block
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.)
Active
Application number
CN202311387840.3A
Other languages
English (en)
Other versions
CN117112072A (zh
Inventor
谢俊峰
王博恒
黄传波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Vinchin Science And Technology Co
Original Assignee
Chengdu Vinchin Science And Technology Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Vinchin Science And Technology Co filed Critical Chengdu Vinchin Science And Technology Co
Priority to CN202311387840.3A priority Critical patent/CN117112072B/zh
Publication of CN117112072A publication Critical patent/CN117112072A/zh
Application granted granted Critical
Publication of CN117112072B publication Critical patent/CN117112072B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种跨平台虚拟机驱动替换方法、系统及存储介质,属于计算机技术领域。所述方法包括:备份原平台虚拟机;构造索引结构模块;转化配置信息;转化数据块磁盘格式;获取硬件和驱动信息;恢复目标虚拟机。所述系统包括:备份虚拟机模块;构造索引结构模块;转化配置信息模块;转化数据块磁盘格式模块;获取硬件和驱动信息模块;恢复目标虚拟机模块。本发明能够有效实现不同种类平台间的磁盘格式快速转化,进而顺利实现跨平台的驱动替换,有效满足了目前跨平台虚拟机迁移的业务需求。

Description

一种跨平台虚拟机驱动替换方法、系统及存储介质
技术领域
本发明属于计算机技术领域,涉及一种跨平台虚拟机驱动替换方法、系统及存储介质。
背景技术
随着虚拟化技术的发展与应用,现在用户开始有大量虚拟机跨平台迁移业务的需求。虚拟机迁移业务指将虚拟机的业务从一个地方迁移到另外一个地方的过程,可以是同种虚拟化平台间的迁移,也可以是不同种类虚拟化平台间的迁移。
目前,在虚拟机迁移业务过程中,由于不同的虚拟化平台需要的硬件并不相同,因此需要进行驱动替换。驱动替换过程中涉及磁盘格式转化,即需要将原虚拟机磁盘格式的数据格式转化为目标虚拟机磁盘的数据格式,常见的磁盘数据格式有RAW格式、QCOW格式、VMDK格式、VHD格式和VHDX格式,这些磁盘格式均可能需要快速相互转化,但现在能够实现顺利快速转化的现有技术几乎没有,这样便会影响驱动替换的实现效率。
因此,在跨平台虚拟机驱动替换过程中,如何让多种磁盘格式间快速地实现转化,是当前急需解决的技术问题。
发明内容
本发明为了解决上述背景技术中的技术问题,提供一种跨平台虚拟机驱动替换方法、系统及存储介质。
本发明解决上述技术问题的技术方案如下:
第一个方面,提供了一种跨平台虚拟机驱动替换方法,方法,包括步骤:
(1)备份阶段
备份原平台虚拟机;
构造原平台磁盘数据块的索引结构,该索引结构由索引和数据组成,其中索引由若干元数据组成,每个元数据的结构包括数据块使用情况标识、数据块偏移和数据块长度;
(2)恢复阶段
将原平台虚拟机配置信息转化为目标平台虚拟机配置信息;
将原平台磁盘格式的数据块通过索引结构转化为目标平台磁盘格式的数据块;
获取目标虚拟机硬件与驱动信息;
根据目标虚拟机硬件与驱动信息,从驱动库挑选目标驱动,再将目标驱动注入到目标磁盘,进而恢复出目标虚拟机,该目标磁盘由备份的原平台数据映射而成。
在其中一个实施例中,将原平台磁盘格式的数据块通过索引结构转化为目标平台磁盘格式的数据块步骤,包括:
解析原平台磁盘数据块的索引结构,获得原平台磁盘数据块的基本信息,包括原平台磁盘数据块的索引、原平台磁盘数据块的大小和原平台磁盘数据块的偏移;
分析目标平台磁盘结构,再根据目标平台磁盘结构转化出目标平台磁盘数据块的基本信息,包括目标平台磁盘数据块的索引、目标平台磁盘数据块的大小和目标平台磁盘数据块的偏移;
根据原平台磁盘数据块的基本信息和目标平台磁盘数据块的基本信息,将原平台磁盘格式的数据块通转化为目标平台磁盘格式的数据块。
在其中一个实施例中,磁盘格式包括RAW格式、QCOW格式、VMDK格式、VHD格式和VHDX格式。
在其中一个实施例中,将原平台虚拟机配置信息转化为目标平台虚拟机配置信息步骤,还包括:
获取已备份虚拟机的配置信息,并将该配置信息转化为原虚拟化平台的原配置结构;
按照过渡配置结构的配置参数结构,将原配置结构转化为过渡配置结构,其中过渡配置结构的配置参数结构由虚拟机基本信息、虚拟机计算资源信息、磁盘列表、网卡列表和自定义列表组成;
将过渡配置结构转化为目标虚拟化平台的目标配置结构;
将目标配置结构转化为目标虚拟化平台的虚拟机配置信息。
在其中一个实施例中,虚拟机基本信息包括:虚拟机设备名称、虚拟机操作系统类型、虚拟机启动模式、BIOS和处理器架构;虚拟机计算资源信息包括:处理器数量和虚拟机内存;磁盘列表包括:磁盘名称、磁盘格式、总线类型、磁盘启动盘信息和磁盘大小;网卡列表包括:网卡名称、MAC地址、总线类型和IP信息。
在其中一个实施例中,获取目标虚拟机硬件与驱动信息步骤,还包括:
通过ISO镜像启动引导,获取目标虚拟机硬件与驱动信息。
在其中一个实施例中,根据目标虚拟机硬件与驱动信息,从驱动库挑选目标驱动,再将目标驱动注入到目标磁盘,进而恢复出目标虚拟机步骤,还包括:
将备份的原平台数据映射为本地文件;
将目标平台的本地文件映射为目标磁盘;
根据目标虚拟机硬件与驱动信息,从驱动库挑选目标驱动;
将目标驱动注入到目标磁盘;
根据注入目标驱动后的目标磁盘、转化后的配置信息和转化后的磁盘格式,恢复出目标虚拟机。
在其中一个实施例中,将目标驱动注入到目标磁盘步骤,还包括:
判断待恢复虚拟机的操作系统类型,若是Windows,则通过Dism系统工具或解析驱动inf文件的方式将目标驱动注入目标磁盘;若是Linux,则通过重新生成initrd文件的方式将目标驱动注入目标磁盘。
第二个方面,提供了一种跨平台虚拟机驱动替换系统,该系统包括:
备份虚拟机模块,用于备份原平台虚拟机;
构造索引结构模块,用于构造原平台磁盘数据块的索引结构,该索引结构由索引和数据组成,其中索引由若干元数据组成,每个元数据的结构包括数据块使用情况标识、数据块偏移和数据块长度;
转化配置信息模块,用于将原平台虚拟机配置信息转化为目标平台虚拟机配置信息;
转化数据块磁盘格式模块,用于将原平台磁盘格式的数据块通过索引结构转化为目标平台磁盘格式的数据块;
获取硬件和驱动信息模块,用于获取目标虚拟机硬件与驱动信息;
恢复目标虚拟机模块,用于根据目标虚拟机硬件与驱动信息,从驱动库挑选目标驱动,再将目标驱动注入到目标磁盘,进而恢复出目标虚拟机,该目标磁盘由备份的原平台数据映射而成。
在其中一个实施例中,转化数据块磁盘格式模块,包括:
解析原平台数据块索引结构单元,用于解析原平台磁盘数据块的索引结构,获得原平台磁盘数据块的基本信息,包括原平台磁盘数据块的索引、原平台磁盘数据块的大小和原平台磁盘数据块的偏移;
分析目标平台数据块索引结构单元,用于分析目标平台磁盘结构,再根据目标平台磁盘结构转化出目标平台磁盘数据块的基本信息,包括目标平台磁盘数据块的索引、目标平台磁盘数据块的大小和目标平台磁盘数据块的偏移;
磁盘格式转化单元,用于根据原平台磁盘数据块的基本信息和目标平台磁盘数据块的基本信息,将原平台磁盘格式的数据块通转化为目标平台磁盘格式的数据块。
在其中一个实施例中,转化配置信息模块,包括:
获取原配置结构单元,用于获取已备份虚拟机的配置信息,并将该配置信息转化为原虚拟化平台的原配置结构;
转化过渡配置结构单元,用于按照过渡配置结构的配置参数结构,将原配置结构转化为过渡配置结构,其中过渡配置结构的配置参数结构由虚拟机基本信息、虚拟机计算资源信息、磁盘列表、网卡列表和自定义列表组成;
获取目标配置结构单元,用于将过渡配置结构转化为目标虚拟化平台的目标配置结构;
创建目标虚拟机单元,用于将目标配置结构转化为目标虚拟化平台的虚拟机配置信息。
在其中一个实施例中,恢复目标虚拟机模块,包括:
映射本地文件单元,用于将备份的原平台数据映射为本地文件;
映射目标磁盘单元,用于将目标平台的本地文件映射为目标磁盘;
挑选目标驱动单元,用于根据目标虚拟机硬件与驱动信息,从驱动库挑选目标驱动;
注入目标驱动单元,用于将目标驱动注入到目标磁盘;
恢复目标虚拟机单元,用于根据注入目标驱动后的目标磁盘、转化后的配置信息和转化后的磁盘格式,恢复出目标虚拟机。
第三个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述跨平台虚拟机驱动替换方法。
本发明的有益效果是:
(1)本发明中,无论原平台的数据块是哪一种磁盘格式,都先构造其索引结构,再根据索引结构转化为目标平台磁盘格式的数据块,这样经构造的索引结构,能够帮助备份恢复系统在转化过程中去获得原存储情况,为快速实现不同种类平台间的磁盘格式转化奠定了基础;
(2)本发明中使用的索引结构,通用性较好,当需要进行多种不同平台间的磁盘格式转化时,能够减少转化磁盘,提高转化效率;
(3)本发明能够有效实现跨平台的驱动替换,磁盘格式转化也是基于数据块本身进行构造,对平台的性能影响几乎没有,实现了无感知驱动替换;
(4)本发明原主机迁移后可以顺利开机,有效满足了目前跨平台虚拟机迁移的业务需求,应用广泛。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图1为本发明实施例1中跨平台虚拟机驱动替换方法的流程示意图。
图2为本发明实施例1中索引结构的结构示意图。
图3为本发明实施例1中形成目标磁盘的示意图。
图4为本发明实施例2中跨平台虚拟机驱动替换方法的流程示意图。
图5为本发明实施例3中跨平台虚拟机驱动替换系统的结构示意图。
图6为本发明实施例3中转化配置信息模块的结构示意图。
图7为本发明实施例3中转化数据块磁盘格式模块的结构示意图。
图8为本发明实施例3中恢复目标虚拟机模块的结构示意图。
附图中,各标号所代表的部件列表如下:
3001、备份虚拟机模块;3002、构造索引结构模块;3003、转化配置信息模块;3004、转化数据块磁盘格式模块;3005、获取硬件和驱动信息模块;3006、恢复目标虚拟机模块;30031、获取原配置结构单元;30032、转化过渡配置结构单元;30033、获取目标配置结构单元;30034、创建目标虚拟机单元;30041、解析原平台数据块索引结构单元;30042、分析目标平台数据块索引结构单元;30043、磁盘格式转化单元;30061、映射本地文件单元;30062、映射目标磁盘单元;30063、挑选目标驱动单元;30064、注入目标驱动单元;30065、恢复目标虚拟机单元。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1
本实施例提供的方法,应用场景如下:
原平台为Vmware,磁盘格式为RAW,操作系统平台为Windows;
目标平台为KVM,磁盘格式为QCOW,操作系统平台为Windows。
结合如图1所示,提供一种跨平台虚拟机驱动替换方法,该方法包括:
S101.备份原平台虚拟机。
一般的,备份的虚拟机,包括的信息有:硬件信息、配置信息和数据库等。其中,硬件信息包括虚拟化平台类型和控制器类型信息。
S102.构造原平台磁盘数据块的索引结构,该索引结构由索引和数据组成,其中索引由若干元数据组成,每个元数据的结构包括数据块使用情况标识、数据块偏移和数据块长度。
S103.将原平台虚拟机配置信息转化为目标平台虚拟机配置信息。
进一步的,步骤S103,还包括:
S1031.获取已备份虚拟机的配置信息,并将该配置信息转化为原虚拟化平台的原配置结构;
S1032.按照过渡配置结构的配置参数结构,将原配置结构转化为过渡配置结构,其中过渡配置结构的配置参数结构由虚拟机基本信息、虚拟机计算资源信息、磁盘列表、网卡列表和自定义列表组成;
S1033.将过渡配置结构转化为目标虚拟化平台的目标配置结构;
S1034.将目标配置结构转化为目标虚拟化平台的虚拟机配置信息。
更进一步的,步骤S1031,还包括:
S10311.读取数据库,获取该虚拟机的配置信息初始字符串H(0);
S10312.将配置信息初始字符串H(0)转化为json格式配置信息H(0);
S10313.将json格式配置信息H(0)转化为原虚拟化平台的原配置结构。
更进一步的,步骤S1032中,虚拟机基本信息包括:虚拟机设备名称、虚拟机操作系统类型、虚拟机启动模式、BIOS和处理器架构;虚拟机计算资源信息包括:处理器数量和虚拟机内存;磁盘列表包括:磁盘名称、磁盘格式、总线类型、磁盘启动盘信息和磁盘大小;网卡列表包括:网卡名称、MAC地址、总线类型和IP信息。
具体的,IP信息包括IP地址和IP类型。
更进一步的,步骤S1034,还包括:
S10341.将目标配置结构转化为json格式配置信息H(2);
S10342.从json格式配置信息H(2)中获取目标虚拟机的配置信息,并根据该配置信息创建目标虚拟机。
可以理解的是,本实施例中的原配置结构、过渡配置结构和目标配置结构,均是内存中的一种自定义结构,三者间的转化过程都是在内存中进行。开发人员可以对config做修改,同时由于是内存中的结构,因此无论Windows系统还是Linux系统均可以使用,满足了广泛的虚拟机需求,通用性较好。
在本实施例中,原配置结构和目标配置结构不依赖于具体的结构;过渡配置结构具有特定的配置参数结构,通过虚拟机基本信息、虚拟机计算资源信息、磁盘列表和网卡列表,可以有效涵盖配置信息转化所需的全部内容,在结构中增加自定义,可以满足各虚拟化平台所存在的不同细节方面的处理需求,这样的过渡配置结构能够起到类似标准转化模板的作用。
S104.将原平台磁盘格式的数据块通过索引结构转化为目标平台磁盘格式的数据块。
可以理解的是,如图2所示,尽管RAW格式、QCOW格式、VMDK格式、VHD格式和VHDX格式各有不同,但都构造为本实施例的索引结构,使各种磁盘格式得到了统一,备份恢复系统便能够在转化过程中直接快速地获取数据块的原始存储信息,进而完成转化。
值得说明的是,索引结构由索引和数据组成,其中索引由若干元数据组成;若干元数据呈现为索引表的形式,例如索引表包括了元数据1、元数据2、元数据3、元数据4、元数据5;在元数据的结构中,数据块使用情况标识是用于确认该数据块有没有被使用;数据块偏移和数据块长度是用于定位数据块的位置。
S105.通过ISO镜像启动引导,获取目标虚拟机硬件与驱动信息。
在预部署虚拟机时,可将ISO镜像文件作为引导部件,ISO镜像文件中包含内核引导信息和安装路径,起到引导启动的作用。ISO镜像包括但不限于U盘ISO镜像、光盘ISO镜像。
S106.根据目标虚拟机硬件与驱动信息,从驱动库挑选目标驱动,再将目标驱动注入到目标磁盘,进而恢复出目标虚拟机,该目标磁盘由备份的原平台数据映射而成。
进一步的,步骤S106,还包括:
S1061.将备份的原平台数据映射为本地文件;
S1062.将目标平台的本地文件映射为目标磁盘;
S1063.根据目标虚拟机硬件与驱动信息,从驱动库挑选目标驱动;
S1064.将目标驱动注入到目标磁盘;
S1065.根据注入目标驱动后的目标磁盘、转化后的配置信息和转化后的磁盘格式,恢复出目标虚拟机。
需要说明的是,如图3所示,由于需要注入驱动,目标磁盘需要具备可操作性,本实施例将备份的原平台数据映射为本地文件,挂载为loop设备,格式为disk.img;之后,通过libguestfs工具将本地文件映射出来,例如文件名是“C:”,大小是60G,修改时间是空,这样便形成了一个可以操作的文件夹,方便注入驱动。
更进一步的,步骤S1064,还包括:
判断待恢复虚拟机的操作系统类型,若是Windows,则通过Dism系统工具或解析驱动inf文件的方式将目标驱动注入目标磁盘;若是Linux,则通过重新生成initrd文件的方式将目标驱动注入目标磁盘。
值得说明的是,对应不同操作系统,需要采用不同的方式来注入驱动,具体如下:
(1)若操作系统是Windows 2008R2及以上,则需要从驱动库中找到匹配的驱动文件,之后通过调用Windows自带的dism系统工具,将目标驱动文件注入到目标磁盘中。
(2)若操作系统是Windows 2008R2之前,则先从驱动库中找到匹配的驱动文件后,解析驱动inf文件,获取所有操作项;然后拷贝驱动文件到inf文件所指定的位置,即映射出来的目标磁盘;最后,找到目录/Windows/System32/config/下的注册表,修改inf文件中指定的注册表项,便可完成Windows 2008R2之前操作系统的驱动注入。
(3)若操作系统是Linux,则先在目标磁盘/boot下找到initr文件;然后解压initrd文件,在解压目录/lib/modules/内核版本/kernel/drivers中查看是否包含当前匹配驱动,如果当前initrd没有包含所需驱动,将当前系统路径的/lib/modules/内核版本/kernel/drivers下的驱动文件拷贝到解压的initrd对应路径下;再然后调用depmod重新生成modules.alias文件;最后重新压缩生成initrd文件,便可完成Linux操作系统的驱动注入。
本实施例,无论原平台的数据块是哪一种磁盘格式,都先构造其索引结构,再根据索引结构转化为目标平台磁盘格式的数据块,这样经构造的索引结构,能够帮助备份恢复系统在转化过程中去了解原存储情况,能够快速实现不同种类平台间的磁盘格式转化。
实施例2
本实施例提供的方法,应用场景如下:
第一原平台为Openstack,磁盘格式为QCOW,操作系统平台为Linux;
第二原平台为HCI,磁盘格式为VHD,操作系统平台为Windows;
第一目标平台为Hyper-V,磁盘格式为VHDX,操作系统平台为Linux;
第二目标平台为Zstack,磁盘格式为VMDK,操作系统平台为Windows。
如图4所示,提供一种跨平台虚拟机驱动替换方法,该方法包括:
S201.备份第一原平台和第二原平台的虚拟机。
S202.构造第一原平台磁盘数据块的索引结构H(0-1)和第二原平台磁盘数据块的索引结构H(0-2),该索引结构H(0-1)和索引结构H(0-2)均由索引和数据组成,其中索引由若干元数据组成,每个元数据的结构包括数据块使用情况标识、数据块偏移和数据块长度。
S203.将第一原平台虚拟机配置信息和第二原平台虚拟机配置信息分别转化为第一目标平台虚拟机配置信息和第二目标平台虚拟机配置信息。
进一步的,步骤S203,还包括:
S2031.获取第一原平台的配置信息T(0-1)和第二原平台的配置信息T(0-2),并将第一原平台的配置信息T(0-1)和第二原平台的配置信息T(0-2)分别转化为各自平台对应的原配置结构 M(0-1)和原配置结构 M(0-2);
S2032.按照过渡配置结构的配置参数结构,将原配置结构 M(0-1)和原配置结构M(0-2)均转化为过渡配置结构,其中过渡配置结构的配置参数结构由虚拟机基本信息、虚拟机计算资源信息、磁盘列表、网卡列表和自定义列表组成;
S2033.将过渡配置结构分别转化为第一目标虚拟化平台的目标配置结构 M(0-1)和第二目标虚拟化平台的目标配置结构 M(0-2);
S2034.将目标配置结构 M(0-1)和目标配置结构 M(0-2)分别转化为对应目标虚拟化平台的虚拟机配置信息。
值得说明的是,本实施例中的配置信息没有一对一进行转化,过渡配置结构的配置参数结构能够起到类似标准模板的作用,原平台的虚拟机配置信息先转化为过渡配置结构,再由过渡配置结构统一转化为目标平台的虚拟机配置信息,在需要处理大量不同种类虚拟化平台间的虚拟机配置信息转化场景,可以提高转化效率,且对系统影响小。
S204.将第一原平台磁盘数据块和第二原平台磁盘数据块分别通过索引结构H(0-1)和索引结构H(0-2)转化为第一目标平台磁盘格式的数据块和第二目标平台磁盘格式的数据块。
S205.通过ISO镜像启动引导,分别获取第一目标虚拟机和第二目标虚拟机的硬件与驱动信息。
S206.根据第一目标虚拟机硬件与驱动信息,从驱动库挑选第一目标驱动,再将第一目标驱动注入到第一目标磁盘,进而恢复出第一目标虚拟机,该第一目标磁盘由备份的第一原平台数据映射而成;根据第二目标虚拟机硬件与驱动信息,从驱动库挑选第二目标驱动,再将第二目标驱动注入到第二目标磁盘,进而恢复出第二目标虚拟机,该第二目标磁盘由备份的第二原平台数据映射而成。
本实施例,使用的索引结构,通用性较好,当需要进行多种不同平台间的磁盘格式转化时,能够减少转化磁盘次数,提高转化效率。
实施例3
如图5所示,在一个实施例中,提供了一种跨平台虚拟机驱动替换系统,该系统包括:
备份虚拟机模块3001,用于备份原平台虚拟机;
构造索引结构模块3002,用于构造原平台磁盘数据块的索引结构,该索引结构由索引和数据组成,其中索引由若干元数据组成,每个元数据的结构包括数据块使用情况标识、数据块偏移和数据块长度;
转化配置信息模块3003,用于将原平台虚拟机配置信息转化为目标平台虚拟机配置信息;
转化数据块磁盘格式模块3004,用于将原平台磁盘格式的数据块通过索引结构转化为目标平台磁盘格式的数据块;
获取硬件和驱动信息模块3005,用于获取目标虚拟机硬件与驱动信息;
恢复目标虚拟机模块3006,用于根据目标虚拟机硬件与驱动信息,从驱动库挑选目标驱动,再将目标驱动注入到目标磁盘,进而恢复出目标虚拟机,该目标磁盘由备份的原平台数据映射而成。
其中,如图6所示,转化配置信息模块3003,包括:
获取原配置结构单元30031,用于获取已备份虚拟机的配置信息,并将该配置信息转化为原虚拟化平台的原配置结构;
转化过渡配置结构单元30032,用于按照过渡配置结构的配置参数结构,将原配置结构转化为过渡配置结构,其中过渡配置结构的配置参数结构由虚拟机基本信息、虚拟机计算资源信息、磁盘列表、网卡列表和自定义列表组成;
获取目标配置结构单元30033,用于将过渡配置结构转化为目标虚拟化平台的目标配置结构;
创建目标虚拟机单元30034,用于将目标配置结构转化为目标虚拟化平台的虚拟机配置信息。
其中,如图7所示,转化数据块磁盘格式模块3004,包括:
解析原平台数据块索引结构单元30041,用于解析原平台磁盘数据块的索引结构,获得原平台磁盘数据块的基本信息,包括原平台磁盘数据块的索引、原平台磁盘数据块的大小和原平台磁盘数据块的偏移;
分析目标平台数据块索引结构单元30042,用于分析目标平台磁盘结构,再根据目标平台磁盘结构转化出目标平台磁盘数据块的基本信息,包括目标平台磁盘数据块的索引、目标平台磁盘数据块的大小和目标平台磁盘数据块的偏移;
磁盘格式转化单元30043,用于根据原平台磁盘数据块的基本信息和目标平台磁盘数据块的基本信息,将原平台磁盘格式的数据块通转化为目标平台磁盘格式的数据块。
其中,如图8所示,恢复目标虚拟机模块3006,包括:
映射本地文件单元30061,用于将备份的原平台数据映射为本地文件;
映射目标磁盘单元30062,用于将目标平台的本地文件映射为目标磁盘;
挑选目标驱动单元30063,用于根据目标虚拟机硬件与驱动信息,从驱动库挑选目标驱动;
注入目标驱动单元30064,用于将目标驱动注入到目标磁盘;
恢复目标虚拟机单元30065,用于根据注入目标驱动后的目标磁盘、转化后的配置信息和转化后的磁盘格式,恢复出目标虚拟机。
本实施例能够有效实现跨平台的驱动替换,磁盘格式转化也是基于数据块本身进行构造,对平台的性能影响几乎没有,实现了无感知驱动替换。同时,原主机迁移后可以顺利开机,有效满足了目前跨平台虚拟机迁移的业务需求,应用广泛。
实施例4
在本实施例中,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如实施例1或实施例2跨平台虚拟机驱动替换方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++、Ruby、Go,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (7)

1.一种跨平台虚拟机驱动替换方法,其特征在于,所述方法,包括步骤:
(1)备份阶段
备份原平台虚拟机;
构造原平台磁盘数据块的索引结构,该索引结构由索引和数据组成,其中索引由若干元数据组成,每个元数据的结构包括数据块使用情况标识、数据块偏移和数据块长度;
(2)恢复阶段
将原平台虚拟机配置信息转化为目标平台虚拟机配置信息;
将原平台磁盘格式的数据块通过所述索引结构转化为目标平台磁盘格式的数据块;
获取目标虚拟机硬件与驱动信息;
根据目标虚拟机硬件与驱动信息,从驱动库挑选目标驱动,再将所述目标驱动注入到目标磁盘,进而恢复出目标虚拟机,该目标磁盘由备份的原平台数据映射而成;
所述将原平台虚拟机配置信息转化为目标平台虚拟机配置信息步骤,还包括:
获取已备份虚拟机的配置信息,并将该配置信息转化为原虚拟化平台的原配置结构;
按照过渡配置结构的配置参数结构,将原配置结构转化为过渡配置结构,其中所述过渡配置结构的配置参数结构由虚拟机基本信息、虚拟机计算资源信息、磁盘列表、网卡列表和自定义列表组成;
将过渡配置结构转化为目标虚拟化平台的目标配置结构;
将目标配置结构转化为目标虚拟化平台的虚拟机配置信息;
所述将原平台磁盘格式的数据块通过所述索引结构转化为目标平台磁盘格式的数据块步骤,包括:
解析原平台磁盘数据块的索引结构,获得原平台磁盘数据块的基本信息,包括原平台磁盘数据块的索引、原平台磁盘数据块的大小和原平台磁盘数据块的偏移;
分析目标平台磁盘结构,再根据目标平台磁盘结构转化出目标平台磁盘数据块的基本信息,包括目标平台磁盘数据块的索引、目标平台磁盘数据块的大小和目标平台磁盘数据块的偏移;
根据原平台磁盘数据块的基本信息和目标平台磁盘数据块的基本信息,将原平台磁盘格式的数据块通转化为目标平台磁盘格式的数据块。
2.根据权利要求1所述的跨平台虚拟机驱动替换方法,其特征在于,所述虚拟机基本信息包括:虚拟机设备名称、虚拟机操作系统类型、虚拟机启动模式、BIOS和处理器架构;所述虚拟机计算资源信息包括:处理器数量和虚拟机内存;所述磁盘列表包括:磁盘名称、磁盘格式、总线类型、磁盘启动盘信息和磁盘大小;所述网卡列表包括:网卡名称、MAC地址、总线类型和IP信息。
3.根据权利要求1所述的跨平台虚拟机驱动替换方法,其特征在于,所述获取目标虚拟机硬件与驱动信息步骤,还包括:
通过ISO镜像启动引导,获取目标虚拟机硬件与驱动信息。
4.根据权利要求1所述的跨平台虚拟机驱动替换方法,其特征在于,所述根据目标虚拟机硬件与驱动信息,从驱动库挑选目标驱动,再将所述目标驱动注入到目标磁盘,进而恢复出目标虚拟机步骤,还包括:
将备份的原平台数据映射为本地文件;
将所述目标平台的本地文件映射为目标磁盘;
根据目标虚拟机硬件与驱动信息,从驱动库挑选目标驱动;
将所述目标驱动注入到目标磁盘;
根据注入目标驱动后的目标磁盘、转化后的配置信息和转化后的磁盘格式,恢复出目标虚拟机。
5.根据权利要求4所述的跨平台虚拟机驱动替换方法,其特征在于,所述将所述目标驱动注入到目标磁盘步骤,还包括:
判断待恢复虚拟机的操作系统类型,若是Windows,则通过Dism系统工具或解析驱动inf文件的方式将目标驱动注入目标磁盘;若是Linux,则通过重新生成initrd文件的方式将目标驱动注入目标磁盘。
6.一种跨平台虚拟机驱动替换系统,其特征在于,包括:
备份虚拟机模块,用于备份原平台虚拟机;
构造索引结构模块,用于构造原平台磁盘数据块的索引结构,该索引结构由索引和数据组成,其中索引由若干元数据组成,每个元数据的结构包括数据块使用情况标识、数据块偏移和数据块长度;
转化配置信息模块,用于将原平台虚拟机配置信息转化为目标平台虚拟机配置信息;
转化数据块磁盘格式模块,用于将原平台磁盘格式的数据块通过所述索引结构转化为目标平台磁盘格式的数据块;
获取硬件和驱动信息模块,用于获取目标虚拟机硬件与驱动信息;
恢复目标虚拟机模块,用于根据目标虚拟机硬件与驱动信息,从驱动库挑选目标驱动,再将所述目标驱动注入到目标磁盘,进而恢复出目标虚拟机,该目标磁盘由备份的原平台数据映射而成;
所述转化配置信息模块,包括:
获取原配置结构单元,用于获取已备份虚拟机的配置信息,并将该配置信息转化为原虚拟化平台的原配置结构;
转化过渡配置结构单元,用于按照过渡配置结构的配置参数结构,将原配置结构转化为过渡配置结构,其中过渡配置结构的配置参数结构由虚拟机基本信息、虚拟机计算资源信息、磁盘列表、网卡列表和自定义列表组成;
获取目标配置结构单元,用于将过渡配置结构转化为目标虚拟化平台的目标配置结构;
创建目标虚拟机单元,用于将目标配置结构转化为目标虚拟化平台的虚拟机配置信息;
所述转化数据块磁盘格式模块,包括:
解析原平台数据块索引结构单元,用于解析原平台磁盘数据块的索引结构,获得原平台磁盘数据块的基本信息,包括原平台磁盘数据块的索引、原平台磁盘数据块的大小和原平台磁盘数据块的偏移;
分析目标平台数据块索引结构单元,用于分析目标平台磁盘结构,再根据目标平台磁盘结构转化出目标平台磁盘数据块的基本信息,包括目标平台磁盘数据块的索引、目标平台磁盘数据块的大小和目标平台磁盘数据块的偏移;
磁盘格式转化单元,用于根据原平台磁盘数据块的基本信息和目标平台磁盘数据块的基本信息,将原平台磁盘格式的数据块通转化为目标平台磁盘格式的数据块。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5任一项所述的跨平台虚拟机驱动替换方法。
CN202311387840.3A 2023-10-25 2023-10-25 一种跨平台虚拟机驱动替换方法、系统及存储介质 Active CN117112072B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311387840.3A CN117112072B (zh) 2023-10-25 2023-10-25 一种跨平台虚拟机驱动替换方法、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311387840.3A CN117112072B (zh) 2023-10-25 2023-10-25 一种跨平台虚拟机驱动替换方法、系统及存储介质

Publications (2)

Publication Number Publication Date
CN117112072A CN117112072A (zh) 2023-11-24
CN117112072B true CN117112072B (zh) 2023-12-22

Family

ID=88806033

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311387840.3A Active CN117112072B (zh) 2023-10-25 2023-10-25 一种跨平台虚拟机驱动替换方法、系统及存储介质

Country Status (1)

Country Link
CN (1) CN117112072B (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216874A (zh) * 2008-01-17 2008-07-09 四川大学 一种跨平台多路数据监控方法
CN103970908A (zh) * 2014-05-28 2014-08-06 浪潮电子信息产业股份有限公司 一种虚拟机模板ivf存储方法
CN105897866A (zh) * 2016-03-29 2016-08-24 新浪网技术(中国)有限公司 一种基于IaaS云平台的云主机迁移方法及装置
CN106775922A (zh) * 2016-11-22 2017-05-31 山东浪潮云服务信息科技有限公司 一种基于插件机制的虚拟机迁移方法
CN107809295A (zh) * 2017-11-06 2018-03-16 中国舰船研究设计中心 一种跨平台时间同步装置及方法
CN108733323A (zh) * 2018-05-24 2018-11-02 云宏信息科技股份有限公司 数据盘自助格式化方法及装置
CN110737512A (zh) * 2019-10-25 2020-01-31 北京浪潮数据技术有限公司 跨平台虚拟机在线迁移方法及相关组件
CN111399984A (zh) * 2020-03-19 2020-07-10 上海英方软件股份有限公司 一种基于虚拟机备份数据的文件恢复方法及系统
CN112256397A (zh) * 2020-10-28 2021-01-22 上海英方软件股份有限公司 一种虚机跨平台迁移方法及系统
CN112328365A (zh) * 2020-11-05 2021-02-05 济南浪潮数据技术有限公司 一种虚拟机迁移方法、装置、设备及存储介质
CN112862934A (zh) * 2021-02-04 2021-05-28 北京百度网讯科技有限公司 用于处理动画的方法、装置、设备、介质和产品
CN113515344A (zh) * 2021-05-17 2021-10-19 中国工商银行股份有限公司 跨技术平台的虚拟机自动迁移方法及装置
CN114942781A (zh) * 2022-05-17 2022-08-26 电信科学技术第十研究所有限公司 一种用于数据读取的数据格式适配方法及装置
CN115390996A (zh) * 2022-10-28 2022-11-25 安超云软件有限公司 虚拟机迁移方法和装置、计算设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875063B2 (en) * 2014-07-02 2018-01-23 Hedvig, Inc. Method for writing data to a virtual disk using a controller virtual machine and different storage and communication protocols

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216874A (zh) * 2008-01-17 2008-07-09 四川大学 一种跨平台多路数据监控方法
CN103970908A (zh) * 2014-05-28 2014-08-06 浪潮电子信息产业股份有限公司 一种虚拟机模板ivf存储方法
CN105897866A (zh) * 2016-03-29 2016-08-24 新浪网技术(中国)有限公司 一种基于IaaS云平台的云主机迁移方法及装置
CN106775922A (zh) * 2016-11-22 2017-05-31 山东浪潮云服务信息科技有限公司 一种基于插件机制的虚拟机迁移方法
CN107809295A (zh) * 2017-11-06 2018-03-16 中国舰船研究设计中心 一种跨平台时间同步装置及方法
CN108733323A (zh) * 2018-05-24 2018-11-02 云宏信息科技股份有限公司 数据盘自助格式化方法及装置
CN110737512A (zh) * 2019-10-25 2020-01-31 北京浪潮数据技术有限公司 跨平台虚拟机在线迁移方法及相关组件
CN111399984A (zh) * 2020-03-19 2020-07-10 上海英方软件股份有限公司 一种基于虚拟机备份数据的文件恢复方法及系统
CN112256397A (zh) * 2020-10-28 2021-01-22 上海英方软件股份有限公司 一种虚机跨平台迁移方法及系统
CN112328365A (zh) * 2020-11-05 2021-02-05 济南浪潮数据技术有限公司 一种虚拟机迁移方法、装置、设备及存储介质
CN112862934A (zh) * 2021-02-04 2021-05-28 北京百度网讯科技有限公司 用于处理动画的方法、装置、设备、介质和产品
CN113515344A (zh) * 2021-05-17 2021-10-19 中国工商银行股份有限公司 跨技术平台的虚拟机自动迁移方法及装置
CN114942781A (zh) * 2022-05-17 2022-08-26 电信科学技术第十研究所有限公司 一种用于数据读取的数据格式适配方法及装置
CN115390996A (zh) * 2022-10-28 2022-11-25 安超云软件有限公司 虚拟机迁移方法和装置、计算设备和存储介质

Also Published As

Publication number Publication date
CN117112072A (zh) 2023-11-24

Similar Documents

Publication Publication Date Title
US7669020B1 (en) Host-based backup for virtual machines
EP2765508B1 (en) Installation method and installation device for application software
US10205627B2 (en) Method and system for clustering event messages
US8171491B2 (en) Object synchronization in shared object space
US8627310B2 (en) Capturing multi-disk virtual machine images automatically
US8996468B1 (en) Block status mapping system for reducing virtual machine backup storage
CN101650660B (zh) 从中央存储装置引导计算机系统
US9411691B2 (en) Virtual machine disaster recovery
US10120928B2 (en) Method and system for clustering event messages and managing event-message clusters
US8881144B1 (en) Systems and methods for reclaiming storage space from virtual machine disk images
WO2013086057A1 (en) System and method for restoring application data
US10872007B2 (en) Methods and systems to compound alerts in a distributed computing system
CN106777394B (zh) 一种集群文件系统
US11418555B1 (en) Systems and methods for streaming an application via object storage
US11150981B2 (en) Fast recovery from failures in a chronologically ordered log-structured key-value storage system
CN109951553B (zh) 数据处理方法、系统、电子设备以及计算机可读存储介质
CN111414231A (zh) 一种虚拟机镜像与容器镜像相互转换的方法及设备
US9336131B1 (en) Systems and methods for enabling virtual environments to mount non-native storage disks
US9158550B2 (en) Caching based operating system installation
CN117112072B (zh) 一种跨平台虚拟机驱动替换方法、系统及存储介质
CN112955867A (zh) 部分完成的指令的迁移
CN115586872A (zh) 一种容器镜像管理方法、装置、设备及存储介质
CN117112071B (zh) 一种跨平台配置信息转化方法、系统、设备及存储介质
US8135943B1 (en) Method, apparatus, and computer-readable medium for generating a dispatching function
CN116166204B (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
GR01 Patent grant
GR01 Patent grant