从vmware迁移的虚拟机修改磁盘接口为VIRTIO的方法
问题背景:
超融合上虚拟机磁盘接口有 3 种,VIRTIO,IDE 和 SCSI,其中 VIRTIO 接口是性能最好的,推荐所有 windows 和 linux 虚拟机均使用 VIRTIO 接口。
在浪潮超融合平台直接创建的 linux 系列虚拟机磁盘默认都是使用 VIRTIO 接口,但是从 VMware 上跨云迁移过来的虚拟机只能使用 IDE 或者 SCSI 接口,如果直接更改磁盘接口为 VIRTIO,启动虚拟机后无法进入系统,提示找不到 lv。
解决办法:
直接修改磁盘接口为 VIRTIO 后无法进入系统,是由于从 VMware 迁移过来的虚拟机,系统内核默认未激活相关驱动,可按照如下方式处理。
虚拟机磁盘使用 IDE 引导,正常进入系统,系统内部 lsblk 如下,盘符是 sdx(此处为 sda)。

确保虚拟机内部已安装好 ICS VMtools。

在超融合平台上编辑虚拟机,增加一个新磁盘,磁盘接口选择为 VIRTIO,大小随意。

系统内查看,可看到一个盘符为 vdx(此处为 vda)的盘。

执行 fdisk(gdisk、parted 也可),给 vda 创建一个分区,激活 VIRTIO 驱动。

超融合平台上,给该虚拟机打一个快照,防止后续操作导致数据受影响。

cd 到 /boot 目录,执行如下命令,重建 initramfs 文件,重建前可先备份原来的文件。具体的内核版本号,需要按照现场环境的来填。

查看内核已包含 virtio 相关驱动。

执行 sync,然后关闭虚拟机,修改系统盘接口为 VIRTIO,启动虚拟机后可正常进入系统。
若按如上流程操作后有问题,可恢复快照后,将磁盘接口改回 IDE 再启动。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 FengLee