迁移 Ubuntu 24.04 系统从 VMware虚拟化迁移到 KVM 虚拟化

当我们将虚拟机从 VMware 环境迁移到 KVM 虚拟化平台时,虽然系统能够成功启动,但可能会出现无法联网的情况。解决迁移 Ubuntu 24.04 系统从 VMware 到 KVM,无法获取IP导致没有网络的问题

1. 迁移前的准备

在迁移之前,需要做好以下准备工作:

  • 备份虚拟机:为了防止意外丢失数据,首先应该备份虚拟机。
  • 安装 QEMU-Guest-Agent:QEMU-Guest-Agent 是 KVM 环境中必要的工具,它能增强虚拟机和宿主机之间的交互,例如提供更好的网络性能和电源管理。 安装命令如下:
sudo apt update
sudo apt install qemu-guest-agent

2. 虚拟机迁移操作

迁移过程中,可以使用如下两种方法之一进行迁移:

  • 迁移虚拟磁盘:通过将 VMware 虚拟机的虚拟磁盘(通常为 .vmdk 文件)转换为 KVM 支持的格式(如 .qcow2.raw 格式)。

可以使用 qemu-img 工具进行格式转换:

qemu-img convert -f vmdk -O qcow2 vmware_disk.vmdk kvm_disk.qcow2
  • 直接导出并导入虚拟机:导出 VMware 虚拟机的配置并导入到 KVM 中,使用 KVM 的虚拟机管理工具如 virt-managervirsh 进行虚拟机的创建和配置。

3. 启动虚拟机并验证迁移

完成迁移后,启动虚拟机,确保虚拟机能够成功启动并进入系统。此时,我们会发现虚拟机能够正常启动,但有时候会出现无法联网的情况。

网络问题分析

在迁移完成后,我们的 Ubuntu 24.04 系统成功启动,但无法连接到网络。执行 ip a 命令时,虚拟机没有分配到 IP 地址,且网络接口无法连接。经过排查,发现问题的根本原因在于虚拟机的网络接口名称发生了变化。

VMware 与 KVM 中的网卡名称差异

在不同的虚拟化平台中,网络接口的命名规则是不同的:

  • VMware 中,网卡设备名通常是 ens33 或类似的名称。
  • KVM 中,网卡名称可能变为 ens3eth0 或其他类似的格式。

在迁移过程中,由于底层虚拟化平台的差异,网卡名称发生了变化,而系统中的网络配置文件仍然使用的是旧的设备名称,导致虚拟机无法正确连接到网络。

排查步骤

  1. 查看实际网卡名称

通过执行 ip a 命令查看系统中的实际网卡名称。该命令输出中显示网卡名称为 ens3,而不是 VMware 中的 ens33

ip a
  1. 检查 Netplan 配置文件

Netplan 是 Ubuntu 系统中用于网络配置的工具。我们需要检查 Netplan 配置文件,确认是否仍然使用旧的设备名称。

cat /etc/netplan/50-cloud-init.yaml

如果文件中仍然使用的是旧的 ens33,而实际的设备名称是 ens3,这将导致无法应用正确的网络配置。

解决方法

为了修复这个网络问题,只需将 Netplan 配置文件中的网卡名称从 ens33 更改为实际的 ens3,然后重新应用网络配置即可。

步骤 1:编辑 Netplan 配置文件

打开 Netplan 配置文件进行编辑:

sudo nano /etc/netplan/50-cloud-init.yaml

将原配置:

network:
  version: 2
  ethernets:
    ens33:
      dhcp4: true

修改为:

network:
  version: 2
  ethernets:
    ens3:
      dhcp4: true

步骤 2:应用新的网络配置

保存并关闭文件后,应用新的网络配置:

sudo netplan apply

步骤 3:检查网络是否恢复

重新执行 ip a 命令,检查网络接口是否已成功获取到 IP 地址:

ip a

您应该可以看到 ens3 接口已成功获取到 IP 地址,网络恢复正常。


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注