移行元OSがRHEL8の場合

対象リージョン:東日本第3/西日本第3

移行元仮想環境で稼働している仮想サーバのOSがRHEL8の場合、IaaS環境への移行に必要な作業を説明します。

このタスクについて

移行元となる仮想環境上および仮想サーバのOS上で、以下の作業を実施します。
重要:
  • 本手順に記載されたコマンド操作は一例であり、操作方法にはお客様環境により若干の差異がある場合があります。各操作はお客様の責任および判断にて、環境に応じて実行してください。
  • 仮想環境のコンソールを使用して操作してください。ネットワーク設定に影響があるため、リモートデスクトップなどの外部からは接続しないでください。

    例)VMware vSphere Clientから仮想マシンコンソールを起動、操作します。

  • 設定を変更する前に移行元仮想環境上でバックアップを取得し、復旧できるようにしておいてください。

手順

  1. VMware Toolsのアンインストール

    移行対象となる仮想サーバにVMware Toolsがインストールされている場合は、アンインストールしてください。

    # rpm -e open-vm-tools open-vm-tools-desktop
  2. サブスクリプションの割当て

    仮想サーバにサブスクリプションを割り当てていない場合は、以下を実施します。

    1. サブスクリプションサービスへの登録

      以下のコマンドを入力したあと、Red Hatアカウントのユーザー名とパスワードを入力して、システムをサブスクリプションサービスに登録します。

      # subscription-manager register
    2. 割当て可能なサブスクリプションの確認

      サブスクリプションサービスに登録されている割当て可能なサブスクリプションを確認します。以下のコマンドを実行したあと、仮想サーバに割り当てるサブスクリプションのPool IDを控えておきます。

      # subscription-manager list --available | less
    3. サブスクリプションの割当て

      手順2で控えておいたPool IDを指定して、仮想サーバにサブスクリプションを割り当てます。

      # subscription-manager subscribe --pool=<Pool ID>
  3. cloud-initのインストール

    cloud-initを、以下の手順でインストールします。

    1. cloud-initのインストール

      # dnf -y install cloud-init
    2. cloud-initの確認

      cloud-initが正常にインストールされているか確認します。

      # rpm -qi cloud-init

      cloud-initの情報が表示されることを確認します。

  4. cloud.cfgの設定

    /etc/cloud/cloud.cfgに cloud-initの動作を設定します。

    # vi /etc/cloud/cloud.cfg

    仮想サーバのメタデータに関する定義を設定します。

    datasource_list: ['OpenStack']
    datasource:
     OpenStack:
      timeout: 180

    ssh_deletekeysの設定値が0、またはfalseではない場合、以下のとおり設定します。

    デフォルトの設定値が数値型(1)の場合は、以下のどちらかを設定します。

    デフォルトの設定値がboolean型(true)の場合は、boolean型(false)を設定します。

    ssh_deletekeys: 0
    ssh_deletekeys: false
    ヒント: 上記以外にもcloud-initの動作を設定できます。設定方法についてはcloud-initのサポートサイトを参照してください。
  5. サブスクリプションサービスの登録解除

    サブスクリプションサービスへのシステムの登録を解除します。

    # subscription-manager unregister
  6. ブートログ出力先の設定

    カーネルがブートログをttyS0デバイスに書き込めるように、設定を変更します。

    1. /etc/default/grubを退避します。

      # cp -p /etc/default/grub /etc/default/grub.bak
    2. /etc/default/grubを編集し、grubにカーネルがブートログをttyS0デバイスに書き込む定義を追加します。

      以下のように、定義を末尾に追加または変更します。

      # vi /etc/default/grub
      GRUB_TERMINAL="serial console"
      GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0"
      GRUB_SAVEDEFAULT=true
      GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

      " GRUB_CMDLINE_LINUX"の値から"rhgb quiet"を削除し、"console=tty0 console=ttyS0,115200"を追記します。

      変更前)
      GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet"
      変更後)
      GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap console=tty0 console=ttyS0,115200"
    3. /boot/grub2/grub.cfg への変更を反映します。

      # grub2-mkconfig -o /boot/grub2/grub.cfg
  7. ネットワーク設定(DHCP接続)

    以下の手順でネットワーク設定を実施します。

    1. ネットワークインターフェースの設定ファイルを退避します。

      # cd /etc/sysconfig/network-scripts
      # cp -p ifcfg-eno16780032 org.ifcfg-eno16780032
      ヒント:
      • 元ファイル名(ifcfg-eno16780032)は一例であり、環境によって異なります。
      • 退避するファイルには、名前の先頭に"org."を付けてください。
    2. /etc/sysconfig/network-scripts/ifcfg-<ネットワークインターフェース名>の設定を、以下の内容に修正します。

      ONBOOT=yes
      BOOTPROTO=dhcp

      以下の行がある場合は、各行を削除します。値は例です。

      IPADDR=10.4.0.110
      PREFIX=22
      GATEWAY=10.4.0.220
    3. ネットワークを再起動します。

      # systemctl restart NetworkManager
  8. ネットワークインターフェース名の変更
    1. ネットワークインターフェースの設定ファイル名を変更します。

      # mv ifcfg-eno16780032 ifcfg-eth0
    2. ネットワークインターフェース設定の設定名とデバイス名を変更します。

      Ifcfg-eth0の値を「NAME=eth0」と「DEVICE=eth0」に変更します。

      ヒント: 「NAME="eth0"」と「DEVICE="eth0"」の記載方法でも問題ありません。
    3. /etc/default/grubを編集します。

      GRUB_CMDLINE_LINUXに値を追記します。

      # vi /etc/default/grub
      変更前)
      GRUB_CMDLINE_LINUX="crashkernel=auto console=tty0 console=ttyS0,115200"
      変更後)
      GRUB_CMDLINE_LINUX="crashkernel=auto console=tty0 console=ttyS0,115200 net.ifnames=0 biosdevnames=0"
    4. /boot/grub2/grub.cfg に/etc/default/grubの変更を反映します。

      # grub2-mkconfig -o /boot/grub2/grub.cfg
  9. MACアドレスの削除
    1. /etc/sysconfig/network-scripts/ifcfg-eth0から、ネットワークインターフェースの固有情報を削除します。

      「UUID=」と「HWADDR=」の行を削除します。

    2. OSを再起動します。

      # reboot
  10. Zeroconfの無効化

    Zeroconfを無効化して、移行後の仮想サーバがメタデータを取得できるようにします。

    # vi /etc/sysconfig/network

    以下の行がなければ追記します。

    NOZEROCONF=yes
  11. ファイアーウォールの無効化
    # systemctl stop firewalld
    # systemctl disable firewalld
    # systemctl stop nftables
    # systemctl disable nftables
  12. virtioドライバの有効化

    initramfsを、移行後のOS起動に必要なvirtioドライバが組み込まれたものに置き換えます。

    1. initramfsをバックアップします。

      # cd /boot
      # mv initramfs-4.18.0-147.el8.x86_64.img initramfs-4.18.0-147.el8.x86_64.img.bak
      ヒント: 上記のファイル名" initramfs-4.18.0-147.el8.x86_64.img"は一例です。
    2. virtioドライバが組み込まれたinitramfsを作成します。

      # dracut --add-drivers 'virtio_blk virtio_net'
    3. initramfsが正常に生成されたことを確認します。

      # ls -l initramfs-4.18.0-147.el8.x86_64.img
  13. OSのシャットダウン

    OSをシャットダウンします。

    # shutdown -h now