本发明涉及虚拟机管理技术领域,特别是一种基于多云统管系统windows虚拟机跨云迁移的方法。
背景技术:
由于云计算快速发展多年,已经涌现一大批成熟的云计算平台,这些云平台下每个数据中心都能提供按需提供独立的虚拟机给用户使用,许多大型企业或者政府机构,都部署多个不同品牌的云平台,而这些云平台之间的存储资源统计并不共享,这样就存在以下隐患:
一是每个云平台都各自独立,相互资源并不能共享,当用户需要将虚拟机迁移到更合适的云平台上,就十分困难。
二是目前云平台只都不提供自己的虚拟机迁移到其他云平台的方法。
三是后期部分云平台不稳定或运营费用过高,影响客户正常经营,客户迫切需要把虚拟机迁移到其他稳定或性价比更高的云平台上。
四是传统迁移的方法不够通用,只支持其中一个云平台。
技术实现要素:
本发明解决的技术问题在于提供一种基于多云统管系统windows虚拟机跨云迁移的方法;解决多个云平台之间跨云迁移虚拟机、虚拟机不能在最合适的云平台上运行、迁移方法不够通用、成本不能控制等问题。
本发明解决上述技术问题的技术方案是:
所述的方法包括如下步骤:
步骤1:多云统管系统启动ftp服务;
步骤2:虚拟机磁盘转成文件;
步骤3:上传文件;
步骤4:将系统盘转成目标云平台的镜像文件;
步骤5:调用目标云平台的接口上传镜像;
步骤6:调用目标云平台的接口创建虚拟机;
步骤7:拷贝数据盘文件数据。
所述的虚拟机磁盘转成文件是指先将虚拟机上的非系统应用程序都关闭,然后将虚拟机的系统盘和数据盘都转成vhd格式文件,每个磁盘对应一个vhd文件;
所述的vhd格式文件,是指微软microsoftvirtualharddiskformat虚拟磁盘格式。
所述的上传文件是指将vhd格式文件上传到ftp服务上。
所述的将系统盘转成目标云平台的镜像文件是指将vhd格式的文件转成目标云平台的镜像文件格式,目前普遍的云平台都使用qcow2或vmdk格式,当目标云平台也使用vhd格式作为镜像的情况就不需要转换;
所述的目标云平台,是指虚拟机所属的云平台迁移到目标云平台;
所述的qcow2格式,是指是qemu支持的磁盘镜像格式之一,通常应用kvm虚拟化技术上;
所述的kvm,是指kernel-basedvirtualmachine的简称,是一个开源的系统虚拟化模块。kvm目前已成为主流虚拟化技术之一;
所述的vmdk格式,是指vmwarevirtualmachinediskformat的简称,是虚拟机vmware创建的虚拟硬盘格式,文件存在于vmware文件系统中,被称为vmfs虚拟机文件系统。
所述的调用目标云平台的接口上传镜像是调用目标云平台的接口,将镜像文件上传到目标云平台上,通过接口可以查询目标云平台有新的镜像。
所述的调用目标云平台的接口创建虚拟机是指通过新上传的镜像创建虚拟机,使刚创建出来的虚拟机系统盘和原所属云平台虚拟机相同。
所述的拷贝数据盘文件数据是指多云统管系统先将原来数据盘对应的vhd文件读取出来,并存放在ftp服务上,然后调用接口在目标云平台创建原来虚拟机一模一样大小的数据盘;并从ftp下载到新创建的数据盘;确保数据盘的数据也和原来的虚拟机一致。
所述的多云统管系统,是一个统一管理多个云平台基础设施的系统,此系统设置多个云平台的用户、密码,可以直接调用多个云平台的接口;
所述的ftp服务,是指在互联网上提供文件存储和访问服务,它们依照ftp协议提供服务;所述的ftp协议,是指文件传输协议。
本发明有益效果如下:
1、本发明通过一种基于多云统管系统windows虚拟机跨云迁移的方法,通过ftp服务作为中介,可以虚拟机磁盘对应的vhd文件存放起来,是一种通用的方法,可以非常灵活支持各种虚拟机上传和下载文件;本发明方法支持qcow2、vmdk、vhd格式的镜像文件,从而支持将虚拟机迁移到众多的云平台厂家;本发明方法可以将虚拟机从价格高昂的云平台迁移到性价比高的云平台厂商,从而达到成本控制的目的;也可以将不稳定云平台上的虚拟机迁移到稳定云平台上,保证虚拟机的可靠性。
2、本发明方法除了支持系统盘迁移,还支持数据盘的迁移,将数据盘的文件读取出来并且放在ftp服务上,从而让迁移后的虚拟机能够正常下载访问,区别于一般的方法。本发明方法通过disk2vhd工具,将虚拟机系统盘和数据盘都转成vhd系列文件格式,区别于其他迁移的方法。
附图说明
下面结合附图对本发明进一步说明:
图1是本发明流程图。
具体实施方式
本发明的实施方式有多种,这里以云平台为例说明其中一种实现方法,流程图如图1所示,具体实施过程如下:
1、多云统管系统启动ftp服务,命令行如下:
#servicevsftpdstart
多云统管系统和ftp服务默认在同一个服务器上,都是运行在linux操作系统,这样可以让多云统管系统可以直接访问和操作ftp上传或者下载的文件。
2、通过disk2vhd工具,选择需要转换的磁盘和存储文件的路径,将虚拟机磁盘转成vhd文件
3、通过在浏览器或者windows资源管理器上可以打开多云统管系统的ftp地址,通过ftp协议上传vhd文件到ftp服务上。
4、将系统盘转成目标云平台的镜像文件,命令行如下:
qemu-imgconvert-0目标镜像格式vhd文件路径目标文件名称
5、调用目标云平台的接口上传镜像,源代码例子如下:
6、调用目标云平台的接口创建虚拟机,源代码例子如下:
7、拷贝数据盘文件数据,流程如下:
1)先将vdh格式转成qcow2格式
qemu-imgconvert-0qocw2vhd文件路径vdx.qcow2
2)连接到块路径下
qemu-nbd-c/dev/nbd0vdx.qcow2
3)挂载到文件系统,并拷贝内容
#mount/deb/nbd0/mnt/vdx
将/mnt/vdx里面的内容拷贝到ftp服务上,/mnt/vdx文件实际上就是数据盘的文件,此时相当于ftp共享了数据盘的文件。
#cp-rf/mnt/vdx/*/var/ftp/虚拟机id/数据盘的盘符
4)在新建的虚拟机上创建跟原虚拟机一模一样大小的磁盘
5)在虚拟机里面下载文件
在浏览器或者windows资源管理器上可以打开多云统管系统的ftp地址,访问数据盘的文件,下载到新建的磁盘里面
整个流程结束。
本发明通过ftp服务作为多个云平台文件交换的代理角色,可以支持多个云平台之间的虚拟机相互迁移,从而让虚拟机放在最合适的云平台。