现在是构环老环境的虚拟机需要往新环境迁移。
面临的云环移问题:
解决方案:
现在迁移的总体方案
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
责任编辑:Ophira 来源: 云计算先驱的博客 虚拟化动态迁移(责任编辑:综合)
江西省一季度国有经济亮出成绩单 国有企业资产规模达到6.1万亿元
首创奥特莱斯厦门项目预计12月正式对外营业,建筑面积12.5万㎡