介绍
当前我们有一整套运行长达5年之久的VMware
,因服务器逐步报废的原因,我们决定将所有的VMware
虚拟主机迁移至OpenStack
。OpenStack
是采用Kolla
部署的Train版本的高可用环境,Ceph为独立部署的Nautilus版本。
当前我们需要从VMware ESXi
迁移超过220个VMware
虚拟机(Linux
和Windows
)到OpenStack
。除了VMware
主机外,还有少部分的Hyper-V
虚拟主机也要进行迁移。本文将为大家演示用于迁移虚拟机的步骤和命令。通过这些步骤和命令,可以轻松创建自动进行迁移的脚本。
本次迁移仅仅涉及V2V
,不涉及任何的P2V
。
比较新版本的libguestfs-tools
和qemu-img convert
可以很好地处理VMDK
文件(旧版本的工具存在一些问题),因此迁移效率更高。迁移过程中去除了从VMDK
到VMDK
(单个文件)以及从VMDK
到RAW
的转换步骤。通过减少这些步骤,使迁移速度将加倍。
迁移过程中需要注意本文涉及到的命令,因为一些命令非常强大,并且可以破坏Ceph
和OpenStack
中的配置和数据。因此,请谨慎的使用相关的命令
全局步骤
安装
VirtIO
驱动程序扩展分区(可选)
自定义虚拟机(可选)
创建
Cinder
卷将
VMDK
转换为Ceph
创建
Neutron
端口(可选)在
OpenStack
中创建和启动实例
技术指标
以下是用于迁移的基础结构的规范:
云平台:
OpenStack Train
云存储:
Ceph
Windows
实例:Windows Server 2012R2
至2016
Linux
实例:RHEL5/6/7
,SLES
,Debian
和Ubuntu
只能转换来自
ESXi
的VMDK
文件,无法使用qemu-img
从VMware Player
转换VMDK
文件不涉及加密磁盘的迁移
OpenStack
为实例提供VirtIO
半虚拟化硬件
需求
Linux
“迁移服务器”(可以使用Ubuntu 14.04/16.04/18.04
,CentOS6/CentOS7
,Redhat6/Redhat7
,Fedora19-22
),同时需满足以下需求:
服务器操作系统(已成功通过以下测试):
RHEL6
(RHEL7
没有“libguestfs-winsupport
”)Fedora 19、20、21
和22
Ubuntu 14.04,16.04
和18.04
与正在运行的
OpenStack
环境的网络连接。最好不要通过公网Internet
,因为我们需要“超级管理员”权限。本地网络连接通常比Internet连接更快。如果能保证是万兆网络的话将会更好。足够的硬件性能与功能来转换磁盘并能在
KVM
中运行实例(大小取决于您要在一定时间内迁移的实例,如有SSD
最佳)。
我们使用的服务器配置为,8核Intel Xeon E3-1230@3.3 GHz
,64 GB RAM
,8块1TB SSD
,并且每小时能够迁移超过500 GB 。但是,这实际上取决于实例磁盘空间的使用情况。我的旧公司笔记本电脑(Core i5
和8GB RAM
和一个旧的4500rmp HDD
)也可以工作,但是显然性能很差。
在迁移之前还要满足如下需求:
拥有
Linux
迁移主机上的本地sudo(root)
权限QEMU/KVM
主机OpenStack
的权限(通过Keystone
获取)对
Ceph
的相应的操作权限对
OpenStack API
和Ceph
的不受限制网络访问VirtIO
驱动程序(可从Red Hat&