当前位置:网站首页 > 桌面运维 正文 桌面运维

open Stack及VM虚拟机和其他平台虚拟机迁移至 VMware vSphere(esxi)虚拟化平台骨灰级后台磁盘替换法迁移...

南京泽同信息 2025-12-09 21:04:31 桌面运维 143 ℃ 0 评论

标签:无视VMware版本限制、无平台限制、跨平台操作、快速执行。

一、信息收集

1、收集待迁移机器的基础信息,包括主机名、系统版本、启动方式、CPU、内存、硬盘、网卡、IP、用户名、密码等信息,统计好总资源占用量,评估迁移后平台是否具备整体容纳资格。
2、规划好迁移后机器的主机名和IP地址信息,其他规格信息如无特殊要求,照旧即可,信息规划表如下所示:

二、拷贝待迁移机器的虚拟磁盘文件

1、open Stack中磁盘获取方式
可查看虚拟机信息,并查询磁盘卷文件所处位置,转换磁盘格式为vmdk并拷贝至本地。

virsh list			//查看虚拟机实例
virsh domblklist instance-000002df		//查看对应虚拟机实例磁盘信息
qemu-img info /dev/disk/by-path/pci-0000:4b:00.1-fc-0x500601624de0057e-lun-63	//查看磁盘详细信息,如大小格式
qemu-img convert -p -f raw /dev/disk/by-path/pci-0000:4b:00.1-fc-0x500601624de0057e-lun-63 -O vmdk /mnt/migrate.vmdk		//转换虚拟机磁盘格式从raw到vmdk格式并将转换后的磁盘放到/mnt/migrate.vmdk中


也可通过其他方式获取到虚拟机原始完整磁盘文件,该虚拟机有几块磁盘就拷贝几个磁盘文件至本地,确保磁盘文件的完整性及无损坏。
获取完整磁盘文件后转换其他格式磁盘文件如raw、qcow、qcow2等格式为vmdk格式,采用

qemu工具,Windows下及Linux下都可安装。转换命令为:
qemu-img convert -p -f raw /dev/disk/by-path/pci-0000:4b:00.1-fc-0x500601624de0057e-lun-63 -O vmdk /mnt/migrate.vmdk
-p	显示进度
-f	转换前磁盘格式
-O	转换后磁盘格式

2、VMware中磁盘获取方式
(1)VMware Workstation中导出
通过系统自带导出功能导出OVF文件。


导出完成后会生成如下文件,其中.vmdk结尾的磁盘文件最为重要,其他为该虚拟机各项信息的描述性文件。

也可以直接进入虚拟机文件存放目录下,找到虚拟磁盘文件。

以上方式都可获取到虚拟机磁盘文件。
(2)VMware vSphere或esxi中获取磁盘文件
同理,可通过系统自带导出功能导出OVF文件。

或进入虚拟机文件存放路径导出磁盘文件。

三、执行迁移操作

1、在平台中创建好虚拟机

系统版本与迁移的机器相匹配

规格信息与迁移的机器相匹配,待迁移机器有几块磁盘,则迁移后的机器添加几块磁盘,磁盘为空白即可,CD/DVD无需指定镜像,保持为空连接。

引导方式为BIOS

创建完成

2、上传待迁移的磁盘文件至虚拟化平台中。

登陆至esxi后台中,连接sftp进行上传。

上传完成。

3、执行迁移,对新创建空虚拟机进行磁盘替换
(1)将上传后的磁盘克隆至待迁移空虚拟机路径中。

vmkfstools -i CentOS_7.0-disk1.vmdk -d thin ../迁移01/new迁移01.vmdk
-i	指定克隆源磁盘
-d	指定克隆方式	thin表示精简置备方式

最后接目标路径及名称

(2)删除空虚拟机原磁盘文件,并将克隆后磁盘替换至该虚拟机中进行加载。

vmkfstools -U 迁移01.vmdk
-U	删除磁盘
vmkfstools -E new迁移01.vmdk 迁移01.vmdk
-E 替换源磁盘文件为新磁盘文件


(3)启动该虚拟机

(4)迁移完成,将系统开机
大多数情况下开机即可正常启动进入系统。
如出现以下情况,请执行后续步骤解决。

1.检查磁盘信息
报错信息中提示未找到/dev/centos/root,初步怀疑是由于底层虚拟化平台变更导致vg或LV命名发生变化。
2.进入救援模式
列出系统上可用逻辑卷

3.检查/etc/default/grub中引导信息
主要检查rd.lvm=参数值与lvs中列出的逻辑卷名称是否一致。

[root@Docker ~]# cat /etc/default/grub 
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

通过grub信息可以看到逻辑卷未发生变化,引导不成功并非是由于逻辑卷命名变更导致的。
4.重建initramfs 文件
判断可能是initramfs文件是依据旧平台硬件创建的,而不支持新平台的硬件。
尝试从系统的救援内核进行启动。
注:救援内核是由原始安装程序安装的,并且支持大多数硬件
重新引导虚拟机。在boot页面,选择CentOS Linx(0-rescue-xxx) 7 (Core)启动。

从救援内核启动引导成功,可以成功进入系统。说明是由于initramfs 文件导致未成功引导,我们只需要重建即可。


#cd /boot/
#dracut -f initramfs-3.10.0-957.el7.x86_64.img
#reboot


完成后重启系统即可,系统至此恢复正常。



注意事项:
虚拟机跨平台迁移涉及到底层硬件的环境的变更,正常情况下系统对大多数硬件环境都支持,迁移后可正常启动,但也可能出现一些突发问题导致拉起失败,如启动项调整、引导重构、磁盘接口变更、机器类型(machine type)修改等问题,需要分开讨论解决。

你可能想看:

版权说明:如非注明,本站文章均为 ZBLOG 原创,转载请注明出处和附带本文链接

请在这里放置你的在线分享代码
Copyright Your WebSite.Some Rights Reserved.
微信咨询&联系客服
QQ:2586422870
在线时间
9:00 ~ 23:00