先决条件
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 -olocal -os/img -of raw
- # 测试机 1.xml 为刚才迁移时生成的 xml 文件
- #-os 为转换格式后存放的路径
- #-of 为指定转换的格式为 raw
上传镜像并启动测试
openstack image create "cs" \
--file 测试机 1-sda \
- --disk-format qcow2 --container-format bare \
- --public
来源: https://www.cnblogs.com/jinyuanliu/p/10488033.html