一种虚机跨平台迁移方法及系统
文献发布时间:2023-06-19 09:38:30
技术领域
本发明涉及计算机数据容灾备份技术领域,特别是涉及一种虚机跨平台迁移方法及系统。
背景技术
近些年,随着信息技术快速发展,各企业在信息化应用和要求方面也在逐步提高,信息覆盖面也越来越大,而信息在人们的生活工作中也显得更加的重要,故此,信息的安全问题也成为了当今计算机数据安全领域的一个重点。在现今社会中,容灾备份已经很大程度上解决了IT行业的信息安全问题,并且得到了很好的普及。
另一方面,随着虚拟化时代的到来,越来越多的企业将虚拟化技术应用到核心业务当中。虚拟化技术是将多个应用服务器以虚拟机(Virtual Machine,VM)的形式集中在一台虚拟化的物理服务器上运行的技术。虚拟化技术可以提高资源利用率,并具有集中管理的方便性,但是,同时也提高了数据安全风险。由于多个虚拟机运行在一个物理服务器(即虚拟化服务器)上,因此,一旦物理存储设备中的数据丢失,会引发多个虚拟机的服务中断,造成损失。因此,在虚拟化技术中,对虚拟机的数据备份也尤为重要。
esxi专为运行虚拟机、最大限度降低配置要求而简化部署而设计,esxi虚拟机已广泛应用到各企业的核心业务中。OpenStack则是一个开源的云计算管理平台项目,是一系列软件开源项目的组合,OpenStack从诞生到现在已经变得日渐成熟,基本上已经能够满足云计算用户的大部分的需求,OpenStack平台中具有多个用于提供不同类型服务的项目,例如Nova和Cinder等,Nova一般用于数据计算处理,Cinder用于块存储。目前,企业因成本及政策方面考虑,会将esxi虚机迁移到开源的OpenStack平台进行管理,借此压缩企业成本。
虚机跨平台迁移是指从esxi平台迁移一台和源机一致的虚机到OpenStack平台,保证源虚拟机和迁移出来的备用虚拟机的数据完全一致,从而保证用户的数据安全性。
然而,由于OpenStack平台限制,如esxi平台上虚机操作系统为windows,那么迁移到OpenStack平台之后,虚机将会无法开机,造成企业损失。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种虚机跨平台迁移方法及装置,以使esxi虚机迁移到OpenStack平台后,能正常使用且数据完整的虚机,从而提高数据的完整性。
为达上述目的,本发明提出一种虚机跨平台迁移方法,包括如下步骤:
步骤S1,建立迁移规则,并在规则启动后,对源虚拟机打快照,得到源虚机配置信息和快照磁盘;
步骤S2,根据源虚机配置信息于目标平台创建和源虚机一致的目标磁盘,并将在所述目标平台创建的目标磁盘挂载到所述目标平台的目标代理虚机;
步骤S3,下发迁移任务至所述目标代理虚机中的节点服务器;
步骤S4,利用所述节点服务器读取源虚机的磁盘数据,并根据所述磁盘映射表将数据写入挂载的磁盘内;
步骤S5,当节点数据传输完成后,利用所述节点服务器对目标虚机注入驱动,并根据步骤S1获取的源虚机配置拉起所述目标虚机。
优选地,于步骤S5之前,还包括如下步骤:
当节点数据传输完成后,卸载所述目标代理虚机上挂载的目标磁盘,并删除源虚机中的快照。
优选地,所述源虚拟机为esxi虚机,所述目标平台为OpenStack平台,所述目标平台预先创建所述目标代理虚机,并在该目标代理虚机中安装npsvr服务用于虚机操作,以及安装节点服务器用于数据传输及驱动注入。
优选地,于步骤S1中,通过npsvr服务,建立迁移规则,并在所述迁移规则启动后,利用所述npsvr服务通过应用程序接口操作esxi平台进行创建源虚机快照,获取源虚机配置信息及读取磁盘变化块。
优选地,所述迁移规则包括但不限于源虚机平台、目标平台以及所选择的源虚机平台的源虚机和目标代理虚机中的节点服务器的部分关键信息,以用于所述npsvr服务获取所需的环境相关信息。
优选地,于步骤S3中,所述npsvr服务下发迁移任务至所述目标代理虚机中的节点服务器,并将源虚机磁盘与挂载磁盘的磁盘映射表下发给所述节点服务器,于步骤S4中所述节点服务器根据所述磁盘映射表将数据写入挂载的磁盘内。
优选地,所述目标代理虚机中安装virtio依赖包,于步骤S5中,所述节点服务器调用指定接口将驱动注入到所述目标磁盘的系统盘中,在拉起虚机时,所述npsvr服务根据步骤S1获取的源虚机配置拉起所述目标虚机。
优选地,当节点数据传输完成后,通过所述npsvr服务卸载所述目标代理虚机上挂载的磁盘,并删除源虚机中的快照。
为达到上述目的,本发明还提供一种虚机跨平台迁移系统,包括:
源虚机,设置于源虚拟机平台;
目标代理虚机,设置于目标平台,所述目标代理虚机中设置有迁移模块及节点服务器,所述迁移模块用于建立迁移规则,在规则启动后,对源虚拟机打快照,得到源虚机配置信息和快照磁盘,根据源虚机配置信息创建和源虚机一致的目标磁盘,并将创建的目标磁盘挂载到所述目标代理虚机,下发迁移任务至所述节点服务器,并将源虚机磁盘与挂载磁盘的磁盘映射表下发给所述节点服务器;所述节点服务器根据源虚机配置信息读取源虚机的磁盘数据,将数据写入挂载的磁盘内,并于数据传输完成后对目标虚机注入驱动,根据源虚机配置拉起所述目标虚机。
优选地,当节点数据传输完成后,所述迁移模块卸载所述目标代理虚机上挂载的目标磁盘,并删除源虚机中的快照。
与现有技术相比,本发明一种虚机跨平台迁移方法及系统通过利用迁移平台建立迁移规则,在规则启动后对源虚拟机打快照,以得到源虚机配置信息和快照磁盘,根据源虚机配置信息在目标平台创建和源虚机一致的磁盘,并将创建的新磁盘挂载到目标平台的目标代理虚机,利用节点根据源虚机配置信息读取源虚机的磁盘数据,将数据写入挂载的磁盘内,并于数据传输完成后对所述目标代理虚机注入驱动,根据源虚机配置拉起目标虚机,通过本发明,不仅实现了将esxi虚机迁移到OpenStack平台的目的,而且在esxi虚机迁移到OpenStack平台后,能正常使用且数据完整的虚机,从而提高数据的完整性。
附图说明
图1为本发明一种虚机跨平台迁移方法的步骤流程图;
图2为本发明一种虚机跨平台迁移系统的系统架构图;
图3为本发明实施例中虚机跨平台迁移系统的架构图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图1为本发明一种虚机跨平台迁移方法的步骤流程图。如图1所示,本发明一种虚机跨平台迁移方法,应用于目标平台,包括如下步骤:
步骤S1,建立迁移规则,并在规则启动后,对源平台的源虚拟机打快照,得到源虚机配置信息和快照磁盘。所述迁移规则中包含源平台、目标平台以及所选择的源平台的虚机和目标平台代理虚机中的节点服务器的部分关键信息,用于npsvr服务获取所需的环境相关信息。
在本发明具体实施例中,源虚拟机为esxi虚机,esxi为源机所在平台,即源平台,本发明中目标平台为OpenStack,该OpenStack平台预先创建一目标代理虚机(同一个openstack平台中,代理虚机只需要一个即可),并在该目标代理虚机中安装npsvr服务用于虚机操作,通过npsvr服务(该服务集成了esxi平台及Openstack平台相关操作接口,用于操作平台虚机),建立迁移规则,并在规则启动后,npsvr服务通过api(ApplicationProgramming Interface,应用程序接口)操作esxi平台,进行创建源机快照,获取源虚机配置信息及读取磁盘变化块。
在本发明中,创建快照是为了保证数据的一致性,并且不会对原机的固有状态造成影响,基于快照实现源虚拟机的完整迁移。这里所创建的快照为临时快照,新虚机的数据及配置都是基于此快照获取的。
步骤S2,根据源虚机配置信息创建和源虚机一致的磁盘,并将在目标平台创建的目标磁盘挂载到所述目标代理虚机。
在本发明具体实施例中,当从esxi源虚机临时快照中获取源虚拟机的配置信息,根据该源虚拟机配置信息于Openstack平台创建与所述源虚拟机磁盘一致的目标磁盘以用于存放源虚机数据供目标虚机使用,并将创建的和源虚机一致的目标磁盘挂载到OpenStack平台的目标代理虚机上,以供节点服务器写入数据。
步骤S3,下发迁移任务到目标平台的目标代理虚机中的节点服务器,并将源虚机磁盘与挂载磁盘的磁盘映射表下发给目标代理虚机内的节点服务器,以通过节点服务进行数据传输。
也就是说,所述目标平台,即OpenStack平台的目标代理虚机中还安装节点服务器以用于数据传输及驱动注入,当通过npsvr服务下发迁移任务至OpenStack平台代理虚机中的节点服务器,将esxi源虚机磁盘和OpenStack平台目标代理虚机上挂载的磁盘的磁盘映射表下发给节点服务器,保证节点服务器将数据正确写入与源虚机磁盘对应新虚拟机的OpenStack磁盘。
步骤S4,利用节点服务器读取源虚机的磁盘数据,并根据磁盘映射表将数据写入挂载的磁盘内。
具体地,当npsvr服务获取了源虚机配置以及读取源虚机磁盘变化块下发到节点服务器中,由于节点服务器集成了VDDK(Virtual Disk Development Kit,虚拟磁盘开发包),根据npsvr服务下发的磁盘变化块,通过VDDK读取并写入数据到挂载的磁盘内。
步骤S5,当目标平台节点数据传输完成后,通过npsvr服务卸载目标平台中目标代理虚机上挂载的目标磁盘,并删除源虚机的快照。
具体地说,目标代理虚机中的npsvr服务中存在监控线程时刻监测节点服务器的运行状态,若监测到节点服务已经完成数据传输写入工作,则将目标磁盘从所述目标代理虚机上卸载,也就是说,数据传输完成后需将目标磁盘从目标代理虚机上卸载,这样创建的目标虚机才能使用该目标磁盘,并且此时源虚机的快照也没用了,npsvr服务则通过api接口操作esxi平台,快照直接删除。由于目标代理虚机在Openstack平台上,所以npsvr服务可以直接将目标磁盘卸载。也就是说,当数据传输完成后,不仅需要将目标代理虚机上挂载的磁盘卸载,还要清理esxi平台上源虚机的临时快照,以保证源虚机状态正常。
步骤S6,利用节点服务器对目标虚机注入驱动,以及根据步骤S1获取的源虚机配置通过npsvr服务拉起目标虚机,也即创建目标虚机。
在本发明具体实施例中,为解决esxi中源虚机为Windows操作系统,迁移到Openstack平台中目标虚机不可用的问题,需要在Openstack平台的目标代理虚机中安装virtio依赖包,在拉起目标虚机时,节点服务器调用指定接口从目标代理虚机获得驱动,将其注入目标磁盘的系统盘中以实现对目标虚机的驱动注入,以保证windows系统的目标虚机能正常使用。
图2为本发明一种虚机跨平台迁移系统的系统架构图。如图2所示,本发明一种虚机跨平台迁移系统,包括:
源虚拟机20,设置于源虚机平台,在本发明具体实施例中,源虚机平台20为esxi平台,提供一个或多个源虚拟机。
目标代理虚机21,设置于目标平台,所述目标代理虚机中设置有迁移模块及节点服务器,所述迁移模块用于建立迁移规则,在迁移规则启动后,对源虚拟机打快照,得到源虚机配置信息和快照磁盘,根据源虚机配置信息创建和源虚机一致的目标磁盘,并将创建的目标磁盘挂载到所述目标代理虚机,下发迁移任务至所述节点服务器,并将源虚机磁盘与挂载磁盘的磁盘映射表下发给所述节点服务器,所述节点服务器根据源虚机配置信息读取源虚机的磁盘数据,将数据写入挂载的磁盘内,并于数据传输完成后对所述目标代理虚机注入驱动,所述迁移模块根据源虚机配置拉起目标代理虚机
在本发明中,迁移模块通过安装于目标代理虚机21的npsvr服务,实现操作平台虚拟机的目的,具体地,迁移模块进一步包括:
快照单元,用于建立迁移规则,在规则启动后,对源虚拟机打快照,得到源虚机配置信息和快照磁盘。
在本发明具体实施例中,快照单元210通过所述npsvr服务,建立迁移规则,并在规则启动后,npsvr服务通过api(Application Programming Interface,应用程序接口)操作esxi平台,进行创建源机快照,获取源虚机配置信息及读取磁盘变化块。
在本发明中,创建快照是为了保证数据的一致性,并且不会对原机的固有状态造成影响,基于快照实现源虚拟机的完整迁移。这里所创建的快照为临时快照,新虚机的数据及配置都是基于此快照获取的。
目标磁盘创建单元,用于根据源虚机配置信息创建和源虚机一致的目标磁盘,并将在目标平台创建的新磁盘挂载到所述目标代理虚机。
在本发明具体实施例中,当快照单元从esxi源虚机临时快照中获取源虚拟机的配置信息后,目标磁盘创建单元则根据该源虚拟机配置信息于Openstack平台创建与所述源虚拟机磁盘一致的目标磁盘,以用于存放源虚机数据供目标虚机使用,并将创建的和源虚机一致的新磁盘挂载到OpenStack平台的目标代理虚机上,以供节点服务器写入数据。
任务下发单元,用于下发迁移任务至目标平台的目标代理虚机中的节点服务器,并将源虚机磁盘与挂载磁盘的磁盘映射表下发给节点服务器,以通过节点服务进行数据传输。
也就是说,所述目标平台,即OpenStack平台的目标代理虚机中还安装节点服务器以用于数据传输及驱动注入,当任务下发单元通过npsvr服务下发迁移任务至OpenStack平台代理虚机中的节点服务器,将esxi源虚机磁盘和OpenStack平台目标代理虚机上挂载的磁盘的磁盘映射表下发给节点服务器,保证节点服务器将数据正确写入与源虚机磁盘对应新虚拟机的OpenStack磁盘。
快照删除单元,用于在目标平台节点数据传输完成后,通过npsvr服务卸载目标平台中目标代理虚机上挂载的目标磁盘,并删除源虚机的快照。
在本发明中,快照删除单元通过npsvr服务中存在的监控线程时刻监测节点服务器的运行状态,若监测到节点服务已经完成数据传输写入工作,则将目标磁盘从所述目标代理虚机上卸载,此时源虚机的快照就没用了,则进一步通过npsvr服务通过api接口操作esxi平台,将源虚拟平台上的临时快照直接删除。由于目标代理虚机在Openstack平台上,所以npsvr服务可以直接将目标磁盘卸载。也就是说,当数据传输完成后,不仅需要将目标代理虚机上挂载的磁盘卸载,还要清理esxi平台上源虚机的临时快照,以保证源虚机状态正常。
目标虚机拉起单元,用于在节点服务器对目标虚机注入驱动后,根据获取的源虚机配置通过npsvr服务拉起目标虚机。
在本发明具体实施例中,为解决esxi中源虚机为Windows操作系统,迁移到Openstack平台中目标虚机不可用的问题,需要在Openstack平台的目标代理虚机中安装virtio依赖包,当拉起目标虚机时,在节点服务器调用指定接口实现对目标虚机的驱动注入,目标虚机拉起单元再根据获取的源虚机配置通过npsvr服务拉起目标虚机,以保证windows系统的目标虚机能正常使用。
在本发明中,所述目标代理虚机,即OpenStack平台的目标代理虚机中还安装节点服务器以用于数据传输及驱动注入,当接收到任务下发单元下发的迁移任务以及源虚机磁盘与挂载磁盘的磁盘映射表后,所述节点服务器读取源虚机的磁盘数据,并根据磁盘映射表将数据写入挂载的磁盘内。
具体地,当通过npsvr服务获取了源虚机配置以及读取源虚机磁盘变化块并下发到节点服务器后,由于节点服务器集成了VDDK(Virtual Disk Development Kit,虚拟磁盘开发包),根据npsvr服务下发的磁盘变化块,通过VDDK读取并写入数据到挂载的磁盘内。
当目标虚机拉起单元通过npsvr服务拉起目标虚机时,还需节点服务器调用指定接口实现对目标虚机的驱动注入后(驱动注入目标磁盘的系统盘中),再根据npsvr服务获取的源虚机配置通过npsvr服务拉起目标虚机,以保证windows系统的目标代理虚机能正常使用。
如图3所示,在本实施例中,本发明一种虚机跨平台迁移系统包括源esxi平台,npsvr服务,Openstack平台三个部分,其中,esxi为源虚机所在平台;Openstack平台为目标平台,OpenStack平台预先创建一目标代理虚机VM,代理节点vm with i2node安装在目标代理虚机VM中,用于数据传输及驱动注入,目标代理虚机上的npsvr服务通过api操作esxi平台,进行创建源机快照,读取磁盘变化块,创建并挂载磁盘到Openstack平台的目标代理虚机上等操作。
根据图3,在本实施例中,虚机跨平台迁移过程如下:
S1:通过npsvr服务,建立迁移规则,规则启动后,对esxi平台中源虚机(VM1和VM2)打快照,并得到源虚机配置信息和快照磁盘。
在本发明中,创建快照是为了保证数据的一致性,并且不会对原机的固有状态造成影响,基于快照实现源虚拟机的完整迁移。此快照为临时快照,新虚机的数据及配置都是基于此快照获取的。
S2:npsvr服务在目标Openstack平台根据源虚机配置信息创建和源虚机(VM1和VM2)一致的目标磁盘。
这里指在Openstack平台中创建和源虚机磁盘数量大小一致的磁盘,存放源虚机数据,供新虚机(目标虚机)使用。
S3:将在Openstack平台创建的新磁盘挂载到目标代理虚机。
将S2创建的磁盘挂载到Openstack平台的目标代理虚机上,供代理节点vm withi2node写入数据。
S4:下发迁移任务至Openstack平台代理虚机中的代理节点vm with i2node,并把磁盘对应表给代理节点vm with i2node。
npsvr将源机磁盘和openstack上挂载的磁盘的映射表下发给代理节点vm withi2node,保证代理节点vm with i2node将数据正确写入与源机磁盘对应的Openstack磁盘。
S5:Openstack平台中代理虚机使用代理节点vm with i2node读取源端esxi平台上的磁盘数据,并把数据写入S3对应挂载上来的指定磁盘内。由于代理节点vm withi2node集成了VDDK(Virtual Disk Development Kit,虚拟磁盘开发包),根据npsvr服务下发的磁盘变化块,通过VDDK读取并写入数据到挂载的磁盘内
S6:节点数据传输完成后,目标代理虚机通过npsvr服务卸载Openstack平台中目标代理虚机上挂载的目标磁盘,并通过api接口删除esxi平台中源虚机的快照。
也就是说,当数据传输完成后,不仅需要将代理虚机上挂载的磁盘卸载,还要清理源虚机的临时快照,以保证源机状态正常
S7:根据S1获取的虚机配置拉起虚机。
代理节点vm with i2node在Openstack创建的目标磁盘系统盘中注入驱动,以保证目标虚机拉起后能正常使用,目标代理虚机通过npsvr服务根据步骤S1获取的源虚机配置通过npsvr服务拉起目标虚机。
可见,通过本发明,在虚机跨平台迁移过程中,只需要在openstack平台安装一台代理虚机,并安装节点服务器做一些简单的配置保存及注入依赖包,不需要占用更多的物理空间去存储数据,即可实现esxi虚机迁移到openstack平台,节省了很多资源。
综上所述,本发明一种虚机跨平台迁移方法及系统通过利用迁移平台建立迁移规则,在规则启动后对源虚拟机打快照,以得到源虚机配置信息和快照磁盘,根据源虚机配置信息在目标平台创建和源虚机一致的目标磁盘,并将创建的新磁盘挂载到目标平台的目标代理虚机,利用节点根据源虚机配置信息读取源虚机的磁盘数据,将数据写入挂载的磁盘内,并于数据传输完成后对所述目标代理虚机注入驱动,根据源虚机配置拉起目标虚机,通过本发明,不仅实现了将esxi虚机迁移到OpenStack平台的目的,而且在esxi虚机迁移到OpenStack平台后,能正常使用且数据完整的虚机,从而提高数据的完整性。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
- 一种虚机跨平台迁移方法及系统
- 虚机迁移时的邻节点时延检测方法及系统