先决条件
exsi到openstack的迁移,分为两种,一种是静态迁移,另一种是在线迁移。
静态迁移(offline migration)也叫做常规迁移,离线迁移。在迁移之前将虚拟机暂停,同时拷贝虚拟机镜像和状态到目的主机。相比较于在线迁移(online migration),其缺点就是静态迁移方式的过程需要显式的停止虚拟机的运行。
在线迁移的过程仅有非常短暂的停机时间,保证迁移过程中虚拟机服务的持续可用;静态迁移的优点是兼容性强,不需要VMM的同意API接口,可以借助第三方工具辅助迁移。由于目前VMM的开发没有统一的标准,不同的虚拟化厂商,尤其是闭源的厂商开发的VMM各成一套,静态迁移是解决不同类型虚拟机之间迁移的有效办法。我们分别演示使用手动方式将VMware虚拟机迁移到KVM和使用自动化迁移工具virt-v2v方式来迁移。
迁移前软件包的安装
yum install -y qemu-kvm
yum install -y libvirt
yum install -y virt-manager
yum install -y virt-v2v
使用virt-v2v工具自动迁移
如果虚机是ESXi种的虚机,那么我们可以使用virt-v2v的工具直接进行自动迁移。virt-v2v工具可以将其他hypervisor平台上的虚拟机迁移到KVM上。它可以读取Xen,Hyper-v,VMware平台上的虚拟机,将它们迁移到由libvirt管理的KVM,openstack或者RHEV环境中。本节只针对ESCi上如何将虚机迁移到KVM中,往openstack和RHEV上迁移只需要转换镜像和导入即可不做赘述。
KVM存储池配置过程
mkdir -p /data/vmfs
virsh pool-define-as vmdisk --type dir --target /data/vmfs
virsh pool-build vmdisk
virsh pool-autostart vmdisk
virsh pool-start vmdisk
创建ESXi认证文件
vim /root/.netrc
machine YourESXiServerIPAddress login root password YourESXiServerIPAddress
chmod 0600 ~/.netrc
开始迁移
开始迁移前先测试看是否能够连接上ESXi主机
virsh -c esx://10.1.80.112/?no_verify=1 list --all
如果能够看到运行在这个ESXi上的主机说明连接没有问题。
开始迁移
virt-v2v-copy-to-local -ic esx://root@10.1.80.112/?no_verify=1 测试机1
使用virt-v2v-copy-to-local命令即可把对应的VM迁移到本地,其中需要输入两次密码,
两次的密码均为esxi宿主机的登录密码,迁移完成后会在当前目录生成一个xml文件和disk1磁盘文件
注意:
1、测试机1表示为虚拟机的名字
2、迁移之前需要把虚拟机关机
格式转换
迁移完成后,就需要把磁盘文件的格式转换成OpenStack能够识别的格式
virt-v2v -i libvirtxml 测试机1.xml -o
local
-os
/img
-of raw
#测试机1.xml为刚才迁移时生成的xml文件 #-os为转换格式后存放的路径 #-of为指定转换的格式为raw
上传镜像并启动测试
openstack image create "cs" --file 测试机1-sda --disk-format qcow2 --container-format bare --public