需求

由于服务器迁移,为维护方便,将统一使用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,修改网卡配置文件后重启网卡,网络正常。

至此。KVM虚拟机迁移至VMWare ESXi 施工完成。

最新文章

  1. spring aop实现
  2. 设置session失效时间
  3. swift 异步加载图片(第三方框架ImageLoader)
  4. jsp:和属性相关的方法,请求的转发,重定向
  5. 如何重装air
  6. (DT系列二)device tree的书写规范
  7. iOS开发手记 - iOS9.3 UINavigationController添加后不显示storyboard中viewcontroller里的控件的解决方法
  8. DenyHosts安装及配置
  9. 使用c#解析json库
  10. [Swift]LeetCode686. 重复叠加字符串匹配 | Repeated String Match
  11. 【Teradata SQL】FALLBACK表改为NO FALLBACK表
  12. springboot + mybatis +pageHelper分页排序
  13. js 文件异步上传 显示进度条 显示上传速度 预览文件
  14. hbase-连接流程
  15. scala-actor线程间通信
  16. Js 编程题汇总
  17. K均值聚类
  18. Slickflow.NET 开源工作流引擎高级开发(三) -- 并行分支容器与会签工作流模式的组合
  19. EF中GroupBy扩展方法的简单使用
  20. android的几种“通知”方式简单实现(Notification&amp;NotificationManager)

热门文章

  1. 内网Linux下安装Nginx1.23,添加stream模块实现tcp/udp代理转发
  2. 靶场练习1:Medium_Socialnetwork
  3. JSP过滤器、Session监听器、Servlet控制器的关系和执行顺序
  4. 初学银河麒麟linux笔记 第一章 虚拟机、麒麟系统、QT安装与运行
  5. sys&amp;faker&amp;jsonpath模块、异常处理、多线程、多进程
  6. SQL Server FOR XML EXPLICIT 一步步学习
  7. postgresql 学习链接
  8. docker+gunicorn+fastapi部署
  9. ucocIII野火
  10. IMX6Ull驱动