Linux 迁移至……时的注意事项 IBM Cloud VPC

请查阅《 Linux 迁移注意事项( IBM Cloud VPC )》,其中包括 VirtIO 驱动程序验证、cloud-init 配置以及网络设置。

在开始迁移之前,请考虑以下信息。

验证 VirtIO 驱动程序

Linux 迁移通常比 Windows 简单,但本指南介绍了一些需要注意的重要事项。

以下 Linux 发行版的内核中包含 VirtIO 驱动程序:

  • Ubuntu: 16.04 及以后版本
  • RHEL/CentOS: 6.x 后来
  • Debian: 8 及更高版本
  • SUSE:12 岁及以后

请使用以下命令验证 VirtIO 驱动程序是否已安装。

lsmod | grep virtio

您会看到以下驱动程序:

  • virtio_blk- 块设备驱动程序
  • virtio_net- 网络驱动程序
  • virtio_scsi- SCSI 驱动程序
  • virtio_pci- PCI 总线驱动程序

如果缺少这些驱动程序,则需要重新构建支持 VirtIO 的内核,或安装更新的发行版。

无需等效的 Sysprep

Linux 不将驱动程序与硬件绑定。 内核会在启动时检测新硬件,并加载相应的驱动程序。 这一过程使迁移变得简单,通常无需任何准备工作。

调整网络配置

Linux 不像 Windows 那样将驱动程序与硬件绑定。 内核会在启动时检测新硬件,并加载适当的驱动程序,这使得迁移大大简化,通常不需要特别的准备工作。

常见问题:网络接口名称在迁移过程中发生变化。

在 VMware 中,您的界面可能被命名为

  • ens192 (可预测的命名)
  • eth0 (传统命名)

在 VPC 中,它可以更改为:

  • ens3 或 ens33 (常见于 VirtIO 环境)
  • eth0 (如果使用传统的命名规则)

要解决静态 IP 配置问题,请使用以下信息:

  • NetworkManager-based ( Red Hat Enterprise Linux (RHEL)7及以上版本或 Ubuntu 的更新版本)

    # Identify new interface name
    ip link show
    # Edit connection
    nmcli con edit "System eth0"
    # Change interface-name to new name
    # Save and quit
    # Restart NetworkManager
    systemctl restart NetworkManager
    
  • 基于 Netplan ( Ubuntu 18.04 +)

    # /etc/netplan/01-netcfg.yaml
    network:
      version: 2
      ethernets:
        ens3:  # Updated from ens192
          addresses: [10.240.0.10/24]
          gateway4: 10.240.0.1
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4]
    
  • 传统的 /etc/network/interfaces ( Debian, 较老的 Ubuntu )

    auto ens3
    iface ens3 inet static
      address 10.240.0.10
      netmask 255.255.255.0
      gateway 10.240.0.1
    

修复 DHCP 配置:

如果使用 DHCP,配置会自动进行,但可能需要更新配置文件中的接口名称。

云启动注意事项

Cloud-init 用于初始化云实例,通常与图像模板一起使用。 该工具会在首次启动时运行,并执行以下操作:

  • 设置主机名
  • 配置联网
  • 创建用户和SSH密钥
  • 运行自定义脚本

迁移背景:如果已将 cloud-init 安装在迁移后的虚拟服务器上,VPC 会将首次启动视为首次启动,从而触发以下操作:

  • 主机名更改
  • 网络重新配置
  • 更改用户账户
  • 执行云启动脚本

设计决定

选项 1:禁用云启动

# Before migration
sudo touch /etc/cloud/cloud-init.disabled
# Or after migration via VNC console

选项 2:接受首次启动行为

  • 如果您希望 VPC 通过 DHCP 自动配置网络,则该功能非常有用
  • 启动后可能需要手动调整(主机名、用户等)

选项 3:配置云启动

  • 创建云启动配置以保留您的设置
  • 更复杂,但能让你控制

对于单个 VM 迁移(非模板部署),请禁用云启动以保留现有配置。 对于基于模板的部署,可使用 cloud-init 进行自动配置。

分区和文件系统注意事项

分区表验证:转移磁盘后,使用以下命令验证分区表是否完好无损:

# On worker virtual server instance (VSI) after transfer
fdisk -l /dev/vdb
# For GPT
gdisk -l /dev/vdb

调整引导卷大小 如果您向上调整了启动卷的大小(例如:从 VMware 中的 80 GB 调整为 VPC 中的 100 GB)、

  1. 您可能需要更新分区表:

如果您将启动卷的大小向上调整(从 VMware 中的 80 GB 调整为 VPC 中的 100 GB):

# For MBR
fdisk /dev/vda
# Delete and recreate partition with same start sector, new end sector
# For GPT (automatic backup GPT update)
gdisk /dev/vda
  1. 调整文件系统大小
# For ext4
resize2fs /dev/vda1
# For xfs
xfs_growfs /
# For LVM
pvresize /dev/vda2
lvextend -l +100%FREE /dev/mapper/vg-root
resize2fs /dev/mapper/vg-root

fstrim 和精简配置

在 VMware 中,您可以使用 fstrim 来回收薄 Provisioned VMDK 中未使用的空间。 在 VPC 中,所有卷都在存储层进行了精简配置,但 fstrim 对 VPC 中的空间回收没有影响。 请记住,fstrim 不会释放存储空间。

现有的 fstrim cron 作业可以保留或删除,以避免不必要的 I/O。