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)、
- 您可能需要更新分区表:
如果您将启动卷的大小向上调整(从 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
- 调整文件系统大小
# 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。