2014-11-28 14:02:13 来源:云计算先驱的博客
现在是老环境的虚拟机需要往新环境迁移。
面临的问题:
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
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。
