云环境下虚拟机异构环境迁移

2019-03-19    来源:多智时代

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

现在是老环境的虚拟机需要往新环境迁移。

面临的问题:

1.新老环境存储不同

2.部分代码不同

3.网络环境不同

4.win2003的虚拟机老环境没有装virtio驱动,新环境用的virtio

解决方案:

现在迁移的总体方案

1、在新环境各个用户的账号下创建相同规格(或者不同规格)虚拟机,这样可以保证数据库数据是没有问题的,也不会多出垃圾数据;创建相同的卷;需要记录虚拟机uuid和卷uuid,以下称为:{new_instance_uuid}和{new_volume_uuid}

如果规格完全相同,则迁移后界面显示的规格和实际规格就没有问题

如果规格不同,则迁移后存在底层实际是老环境的规格,而界面显示是新的规格

2、将老环境虚拟机的实际资源拷贝到新环境下:

具体操作:

a、获取需要迁移的虚拟机的uuid,以下称为:{old_instance_uuid},通过cinder list | grep {instance_uuid}查询到存储卷的id,以下称为{old_volume_uuid}。

b、拷贝文 件/var/lib/nova/instances/{old_instance_uuid}/disk 到/var/lib/nova/instances/{new_instance_uuid}/disk ,拷贝之前记得备份,如果虚机是2003的系统,记得先安装virtio驱动,安装方法在后面。

c、拷贝文件/var/lib/nova/instances/volume-{old_volume_uuid}到新环境的计算节点下(新建目录之下,待传到rbd上后可删除)

d、拷贝文件/var/lib/nova/instances/_base/{base_uuid}到新环境对应的目录

获取{base_uuid}的方法:

qemu-img info disk 查看backup file路径对应的文件

3、待资源都拷贝到新环境之后,作如下替换操作:

a、由于存 储不同(新环境使用ceph rbd,老环境是glusterfs),首先修改拷贝过来得文件名称为volume-{new_volume_uuid};然后删除rbd中已存在的 volume-{new_volume_uuid},最后重新往rbd中上传改过名称的用户存储文件volume-{new_volume_uuid}。

具体操作如下:

aa:修改名称:

mv volume-{old_volume_uuid} volume-{new_volume_uuid}

bb:删除rbd存储数据:

rbd rm volumes/volume-{new_volume_uuid}

(此处需在计算节点操作,因为计算节点安装了ceph客户端)

cc:上传老环境的改过名的存储文件到rbd中:

qemu-img convert -f raw -O raw volume-{new_volume_uuid} rbd:volumes/volume-{new_volume_uuid}

(同样计算节点操作)

4、目前新环境使用的virtio的网卡(支持千兆),老环境没有使用,因此win2003需要安装virtio驱动才能正常使用网络,经过测试必须在disk文件中安装才能生效,因此对于需要迁移的win2003,需要一个一个去安装驱动。

安装步骤:

a、将老环境的虚拟机的disk拷贝到备份目录,并同时将virtio驱动拷贝,2003的virtio驱动virtio-win-1.5.2-2003.vfd

命令如下:

/usr/libexec/qemu-kvm -m 1024 -drive file=disk,index=0,boot=on -fda virtio-win-1.5.2.vfd -boot d -net nic,model=virtio -net user -nographic -vnc :90

使用vnc登陆机器,安装virtio驱动(设备管理器里更新驱动,选择软盘)

装好后拷贝到新环境对应的目录下

原文出自:http://blog.csdn.net/ivy_feifei/article/details/41543461

标签: [db:TAGG]

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:三大策略推动云计算发展与落地

下一篇:物联网的根本优势是什么