移行元OSがCentOS 7の場合

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

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

このタスクについて

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

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

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

手順

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

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

    # vmware-uninstall-tools.pl

    または

    # rpm -e open-vm-tools
  2. cloud-initのインストール

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

    • CentOS 7.2以前の場合

      1. cloud-initの入手

        弊社提供のcloud-initモジュールを、ヘルプデスクから入手します。提供される最新のものを使用してください。

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

        # yum -y install --enablerepo=* --disablerepo=c7-media
         /var/tmp/cloud-init-0.7.5-10.el7.FJ.20160406.noarch.rpm cloud-utils
        ヒント: cloud-initモジュールの格納先、ファイル名については、環境に合わせて読み替えてください。
      3. cloud-initの確認

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

        # rpm -qi cloud-init

        富士通提供のcloud-initがインストールされていた場合の表示例を以下に示します。

        # rpm -qi cloud-init
        Name        : cloud-init
                  <--省略-->
        Packager    : FUJITSU LIMITED
        Vendor      : FUJITSU LIMITED
                  <--省略-->

        富士通提供のcloud-initがインストールされていない場合、再インストールを行い、富士通提供cloud-initに入れ替わったことを確認します。

        # rpm -e cloud-init
        # rpm -q cloud-init
        # rm -rf /var/lib/cloud
        # rpm -ivh /var/tmp/cloud-init-0.7.5-10.el7.FJ.20160406.noarch.rpm
        # rpm -qi cloud-init
    • CentOS7.3以降の場合

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

        # yum -y install cloud-init --enablerepo=* --disablerepo=c7-media
      2. cloud-initの確認

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

        # rpm -qi cloud-init

        cloud-initの情報が表示されることを確認してください。

  3. ブートログ出力先の設定

    カーネルがブートログを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の値を変更します。

      変更前)GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet"
      変更後)GRUB_CMDLINE_LINUX="crashkernel=auto console=tty0 console=ttyS0,115200"
    3. /boot/grub2/grub.cfg への変更を反映します。

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

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

    1. NetworkManagerを有効にします。

      # yum -y install NetworkManager
      # systemctl enable NetworkManager
      # systemctl start NetworkManager
    2. /etc/sysconfig/network-scripts/ifcfg-<ネットワークインターフェース名>の設定を、以下の内容に修正します。

      ONBOOT=yes
      BOOTPROTO=dhcp
    3. ネットワークを再起動します。

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

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

      ※元ファイル名(ifcfg-eno16780032)は一例であり、環境によって異なります。

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

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

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

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

      ※「NAME="eth0"」と「DEVICE="eth0"」の記載方法でも問題ありません。

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

      # vi /etc/default/grub

      以下のように、GRUB_CMDLINE_LINUXに値を追記します。

      追記前)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"
    5. /boot/grub2/grub.cfg に対して、/etc/default/grubの変更を反映します。

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

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

    2. OSを再起動します。

      # reboot
  7. Zeroconfの無効化

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

    # vi /etc/sysconfig/network

    以下の行を追記します。

    NOZEROCONF=yes
  8. ファイアーウォールの無効化
    # systemctl stop firewalld
    # systemctl disable firewalld
  9. 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
  10. cloud.cfgの設定

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

    # vi /etc/cloud/cloud.cfg

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

    datasource_list: ['OpenStack']
    datasource:
      OpenStack:
        timeout: 180
    ヒント: 上記以外にもcloud-initの動作を設定できます。設定方法についてはcloud-initのサポートサイトを参照してください。
  11. OSのシャットダウン

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

    # shutdown -h now