旧环境:
XEN+LVM, Centos 5
新环境:
KVM+Ceph, Centos 7
转格式机:
virt-v2v
virt-v2v-copy-to-local
目的:把旧环境中的windows服务器迁移到新环境中。
工具:
virt-v2v:虚拟化磁盘文件转换工具
virt-v2v-copy-to-local: 将源虚拟化磁盘导出到本地工具,在源为lvm的时候会用到。
准备工作:
软件安装:
libguestfs-winsupport, virtio-win, virt-v2v
yum install kvm
systemctl start libvirtd
yum install libguestfs-winsupport
wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
yum install virtio-win
yum install virt-v2v
免密登录:
转换机登录旧环境宿主机root账号做免密码(转换工具只能用这种方式)。
并在转换机上配置ssh-agent:
eval ssh-agent
ssh-add ~/.ssh/id_rsa
转化步骤:
- 旧环境源虚拟机(以instance-00000017为例)关机。
virt-v2v-copy-to-local -q -ic xen+ssh://root@xen.example.com instance-00000017
virt-v2v -i libvirtxml instance-00000017.xml -o local -os /data/image
- 新虚拟机(以instance-000007a2为例)关闭
virsh stop instance-000007a2
- 替换磁盘. ceph中旧磁盘重命名, 之后导入新镜像仍使用原磁盘名称.
获取新虚拟机的UUID如(ff4b7fe8-d56e-4dcc-92f1-6353ea5d977e)
则第一块盘命名为ff4b7fe8-d56e-4dcc-92f1-6353ea5d977e_disk
第二块盘命名为ff4b7fe8-d56e-4dcc-92f1-6353ea5d977e_disk.eph0
ceph中重命名旧磁盘
rbd -p rbd rename ff4b7fe8-d56e-4dcc-92f1-6353ea5d977e_disk ff4b7fe8-d56e-4dcc-92f1-6353ea5d977e_disk.bak
rbd -p rbd rename ff4b7fe8-d56e-4dcc-92f1-6353ea5d977e_disk.eph0 ff4b7fe8-d56e-4dcc-92f1-6353ea5d977e_disk.eph0.bak
新镜像导入到ceph
rbd -p rbd import --image-format 2 instance-00000017-sda ff4b7fe8-d56e-4dcc-92f1-6353ea5d977e_disk
rbd -p rbd import --image-format 2 instance-00000017-sdb ff4b7fe8-d56e-4dcc-92f1-6353ea5d977e_disk.eph0
- 启动实例
virsh start instance-000007a2
到这里已经迁移完成了。可以连接vnc查看。vnc viewer可能需要通过代理服务器。
备注:
dd旧版本不支持process参数,会报错,需要增加-q
参考文章: