标签:无视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)修改等问题,需要分开讨论解决。
5076

被折叠的 条评论
为什么被折叠?



