Windows server migration from Xen + LVM to KVM+Ceph(virt-v2v)

旧环境:

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

转化步骤:

  1. 旧环境源虚拟机(以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

  1. 新虚拟机(以instance-000007a2为例)关闭

virsh stop instance-000007a2

 

  1. 替换磁盘. 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

  1. 启动实例

virsh start instance-000007a2

 

到这里已经迁移完成了。可以连接vnc查看。vnc viewer可能需要通过代理服务器。

 

备注:

dd旧版本不支持process参数,会报错,需要增加-q

参考文章:

https://docs.fedoraproject.org/quick-docs/en-US/creating-windows-virtual-machines-using-virtio-drivers.html

https://github.com/coreos/fleet/issues/1480