移行元OSがRHEL7の場合

対象リージョン:全リージョン

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

このタスクについて

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

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

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

手順

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

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

    # vmware-uninstall-tools.pl

    または

    # rpm -e open-vm-tools
  2. NetworkManagerの有効化

    NetworkManagerを有効にします。

    # systemctl enable NetworkManager
    # systemctl start NetworkManager
  3. ネットワークインターフェース名の変更

    移行後の環境でネットワークが正しく設定されるように、ネットワークインターフェース名を変更します。

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

      # cp -p /etc/default/grub /etc/default/grub.bak
    2. /etc/default/grubを編集します。

      # vi /etc/default/grub

      以下のように、GRUB_CMDLINE_LINUXに”net.ifnames=0” および ”biosdevname=0” を追加します。

      変更前)
      GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet"
      変更後)
      GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet net.ifnames=0 biosdevname=0"
    3. /boot/grub2/grub.cfgに対して変更を反映します。

      # grub2-mkconfig -o /boot/grub2/grub.cfg
    4. OSを再起動します。

      # reboot
    5. ネットワークインターフェース"eth0"が表示されることを確認します。

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

      # cp -p /etc/sysconfig/network-scripts/ifcfg-eno16780032
      /etc/sysconfig/network-scripts/org.ifcfg-eno16780032

      ※上記のファイル名"ifcfg-eno16780032"は一例です。

      ※退避するファイルの名前の"org."は先頭に付けてください。

    7. ネットワークインターフェースの設定ファイルのファイル名を変更します。

      # mv /etc/sysconfig/network-scripts/ifcfg-eno16780032
      /etc/sysconfig/network-scripts/ifcfg-eth0
    8. ネットワークインターフェースの設定ファイルを編集します。

      # vi /etc/sysconfig/network-scripts/ifcfg-eth0

      以下のように変更します。

      NAME=eth0
      DEVICE=eth0

      以下の行がある場合は削除します。

      HWADDR=00:0c:29:e6:f2:e9

      ※上記の値は一例です。

    9. OSを再起動します。

      # reboot
    10. ネットワークインターフェース"eth0"に設定が反映されたことを確認します。

      # ip addr show
  4. ブートログ出力先の設定

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

    1. /etc/default/grubを編集します。

      # vi /etc/default/grub

      以下のように、" GRUB_CMDLINE_LINUX"の値から"rhgb quiet"を削除し、"console=tty0 console=ttyS0,115200"を追加します。

      変更前)
      GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0"
      変更後)
      GRUB_CMDLINE_LINUX="crashkernel=auto console=tty0 console=ttyS0,115200 net.ifnames=0 biosdevname=0"

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

      GRUB_TERMINAL="serial console"
      GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0 modprobe.blacklist=floppy"
      GRUB_SAVEDEFAULT=true
      GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
    2. /boot/grub2/grub.cfg に対して、/etc/default/grubの変更を反映します。

      # grub2-mkconfig -o /boot/grub2/grub.cfg
    3. OSを再起動します。

      # reboot
  5. サブスクリプションの割当て

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

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

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

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

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

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

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

      # subscription-manager subscribe --pool=<Pool ID>
  6. SSHサーバのインストール

    SSHサーバを、以下の手順でインストールします。

    # yum -y install openssh-server
    # systemctl enable sshd.service
    # systemctl start sshd.service
    ヒント: 必要に応じてSSHサービスを設定してください。
  7. cloud-initのインストール

    cloud-initをインストールします。

    # yum -y install cloud-init --enablerepo=rhel-7-server-rh-common-rpms
  8. サブスクリプションサービスの登録解除

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

    # subscription-manager unregister
  9. cloud.cfgの設定

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

    # vi /etc/cloud/cloud.cfg

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

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

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

    ssh_deletekeys: 0
    ヒント: 上記以外にもcloud-initの動作を設定できます。設定方法についてはcloud-initのサポートサイトを参照してください。
  10. ネットワーク設定(DHCP接続)

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

    1. ネットワーク設定をDHCPに変更します。

      # nmcli connection modify eth0 ipv4.method auto
      # nmcli connection modify eth0 ipv4.addresses "" ipv4.gateway ""
    2. ネットワークインターフェースを再起動します。

      # nmcli connection down eth0
      # nmcli connection up eth0
    3. ネットワーク設定が"eth0"に反映されたことを確認します。

      # cat /etc/sysconfig/network-scripts/ifcfg-eth0

      以下を確認します。

      • 「BOOTPROTO=dhcp」となっていること
      • 「IPADDR=」が存在しないこと
      • 「PREFIX=」が存在しないこと
      • 「GATEWAY=」が存在しないこと
  11. virtioドライバの有効化

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

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

      # cd /boot
      # mv initramfs-3.10.0-327.el7.x86_64.img initramfs-3.10.0-327.el7.x86_64.img.bak

      ※上記のファイル名"initramfs-3.10.0-327.el7.x86_64.img"は一例です。

    2. virtioドライバが組み込まれたinitramfsを作成します。

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

      # ls -l initramfs-3.10.0-327.el7.x86_64.img
  12. Zeroconfの無効化

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

    # vi /etc/sysconfig/network

    以下の行を追記します。

    NOZEROCONF=yes
  13. ファイアーウォールの無効化
    # systemctl stop firewalld
    # systemctl disable firewalld
  14. OSのシャットダウン

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

    # shutdown -h now