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
    
  • ネットプラン・ベース ( 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:cloud-initを設定する

  • クラウドイニット設定を作成し、設定を保持する
  • より複雑だが、コントロールできる

個別の 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)、

  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 を使用して、シンプロビジョニングされた VMDK 内の未使用領域を回収することができます。 VPCでは、すべてのボリュームがストレージ・レイヤーでシン・プロビジョニングされますが、fstrimはVPCのスペース再生成には影響しません。 fstrimはストレージを解放しないことを覚えておいてほしい。

既存のfstrim cronジョブはそのままでもよいし、不要なI/Oを避けるために削除してもよい。