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(systemd 可預測命名)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 以保留現有組態。 對於基於範本的部署,請使用 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 來回收薄配置 VMDK 中的未使用空間。 在 VPC 中,所有磁碟區都在儲存層進行精簡預設,但 fstrim 對 VPC 中的空間回收沒有影響。 請記住,fstrim 並不會釋放儲存空間。
現有的 fstrim cron 作業可以維持原狀或移除,以避免不必要的 I/O。