KVM虚拟机迁移至VMWare ESXi
需求
由于服务器迁移,为维护方便,将统一使用vmware 平台管理虚拟机,因此需将kvm 虚拟机统一迁至vmware
kvm 磁盘镜像转换
- 查看虚拟机
# virsh list --all
Id Name State
----------------------------------------------------
180 CentOS7.8-x86_64-10.65.6.61 running
- 虚拟机镜像使用qcow2格式,进入虚拟机配置文件编辑模式:定位到磁盘节点,在type节点中就是磁盘的格式:主要查看file文件位置,有的可能分系统盘和数据盘,要注意看有几块磁盘文件,以下虚拟机有两个磁盘镜像文件
# virsh edit CentOS7.8-x86_64-10.65.6.61
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/export/kvm_images/volume-3cd374e0-bdd0-43d9-b1d3-edc694a05b13.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/export/kvm_images/volume-3cd374e0-bdd0-43d9-b1d3-edc694a05b13-1.qcow2'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
</disk>
</devices>
- 在将KVM虚拟机镜像迁移至esxi之前需要先转换格式,将kvm虚拟机由qcow2转换成vmdk格式,以下是两个磁盘文件,分别是系统盘和数据盘,为了防止镜像被拆分为2GB的小块,需要增加compat6的选项。登录kvm 宿主机操作:
# mkdir /export/covert-test
# cd /export/covert-test
# qemu-img convert -f qcow2 /export/kvm_images/volume-3cd374e0-bdd0-43d9-b1d3-edc694a05b13.qcow2 -O vmdk test-91-61-os.vmdk -o compat6
# qemu-img convert -f qcow2 /export/kvm_images/volume-3cd374e0-bdd0-43d9-b1d3-edc694a05b13-1.qcow2 -O vmdk test-91-61-data.vmdk -o compat6
- 将生成的 vmdk传到vmware服务器上,前提是vmware 先开发ssh 22端口,此演示中 10.65.0.90 为vmware esxi 虚拟化宿主机,登录vmware 创建存放vmdk 的数据目录 /vmfs/volumes/SATA/convert-test,登录kvm 宿主机操作:
# scp test-91-61-os.vmdk test-91-61-data.vmdk 10.65.0.90:/vmfs/volumes/SATA/convert-test
- vmware虚拟机上进行磁盘第二次转换,登录vmware 宿主机操作:
# cd /vmfs/volumes/SATA/convert-test
# vmkfstools -i test-91-61-os.vmdk -d thin test-91-20-os-v1.vmdk
Destination disk format: VMFS thin-provisioned
Cloning disk 'test-91-61-os.vmdk'...
Clone: 100% done.
# vmkfstools -i test-91-61-data.vmdk -d thin test-91-20-data-v1.vmdk
Destination disk format: VMFS thin-provisioned
Cloning disk 'test-91-61-data.vmdk'...
Clone: 100% done.
# ls /vmfs/volumes/SATA/convert-test
test-91-20-data-v1-flat.vmdk test-91-20-os-v1-flat.vmdk test-91-61-data.vmdk
test-91-20-data-v1.vmdk test-91-20-os-v1.vmdk test-91-61.vmdk
- 后在vmware上创建虚拟机选择test-91-20-os-v1.vmdk 为系统启动盘、test-91-20-data-v1.vmdk 为数据盘
创建vmware 虚拟机并解决启动过程中的报错
-
新创建自定义虚拟机
-
启动虚拟机,但是提示报错信息,解决dracut=initqueue timeout - starting timeout scripts
-
加载iso 镜像,然后重启,目标是进入系统的救援模式
-
系统重启后无法进入安装系统界面,无法进入救援模式,需要调整bios,将启动项修改为 CD-ROM Drive启动
-
重启虚拟机后发现vmware 平台虚拟机重启速度太快,无法进入bios 修改启动项,因此需要修改虚拟机文件配置,登录vmware 宿主机,找见此虚拟机配置文件,登录vmware 宿主机操作:
# cd /vmfs/volumes/SATA/10.16.91.20-test-91-20
# vi 10.16.91.20-test-91-20.vmx
bios.forceSetupOnce = "TRUE"
bios.bootDelay = "10000"
-
重启vmware虚拟机,将 CD-ROM Drive 设置为启动第一项
-
重启后依次选择 Troubleshooting-->Rescue a Centos system --> 1-->执行下面的命令重新生成initramfs,如果不知道虚拟机密码,可在此模式下直接修改root 密码,方便后续再次重启进入单用户修改密码。登录此虚拟机操作:
chroot /mnt/sysimage
dracut --regenerate-all -f && grub2-mkconfig -o /boot/grub2/grub.cfg
exit
reboot
-
-------------------------进行重启!----------------------------------------------------
-
此时需要在控制台界面将iso 镜像移除,继续修改bios 将磁盘启动设置为第一位。刚开始时候是添加了两块硬盘,如果重启后找不到系统,需要进入bios 调整硬盘启动顺序即可
-
启动虚拟机,需要输入root 密码,有一个continue 的界面,进入系统后,配置网络发现重启网卡系统也会重启,这是因为 /etc/fstab 的问题,数据盘盘符已经更改,修改盘符 /dev/sdb1 后,执行挂载操作,确认挂载正常后重启系统。
- 配置网卡
此次从kvm 迁移至vmware 后发现网卡名成为了 ens192,修改网卡配置文件后重启网卡,网络正常。