7.3. ブートディスクでの iSCSI カーネルパラメーターの設定


イメージ上のカーネルで iSCSI ブートを有効にする必要があります。そのためには、QCOW2 イメージをマウントし、イメージ上で iSCSI コンポーネントを有効にします。

前提条件

  1. Red Hat Enterprise Linux QCOW2 イメージをダウンロードして、アンダークラウドの /home/stack/ ディレクトリーにコピーします。以下のページから、QCOW2 形式で Red Hat Enterprise Linux KVM イメージをダウンロードすることができます。

手順

  1. アンダークラウドに stack ユーザーとしてログインします。
  2. QCOW2 イメージをマウントし、root ユーザーとしてアクセスします。

    1. nbd カーネルモジュールを読み込みます。

      $ sudo modprobe nbd
    2. QCOW イメージを /dev/nbd0 として接続します。

      $ sudo qemu-nbd --connect=/dev/nbd0 <IMAGE>
    3. NBD 上のパーティションを確認します。

      $ sudo fdisk /dev/nbd0 -l

      新しい Red Hat Enterprise Linux QCOW2 イメージには、パーティションが 1 つだけ含まれます。通常、そのパーティションは NBD の /dev/nbd0p1 という名前です。

    4. イメージのマウントポイントを作成します。

      mkdir /tmp/mountpoint
    5. イメージをマウントします。

      sudo mount /dev/nbd0p1 /tmp/mountpoint/
    6. イメージがホストのデバイス情報にアクセスできるように、dev ディレクトリーをマウントします。

      sudo mount -o bind /dev /tmp/mountpoint/dev
    7. ルートディレクトリーをマウントポイントに変更します。

      sudo chroot /tmp/mountpoint /bin/bash
  3. イメージ上で iSCSI を設定します。

    注記

    このステップの一部のコマンドにより、以下のエラーが返される場合があります。

    lscpu: cannot open /proc/cpuinfo: No such file or directory

    このエラーは重要ではないので、エラーを無視して構いません。

    1. resolv.conf ファイルを一時的な場所に移動します。

      # mv /etc/resolv.conf /etc/resolv.conf.bak
    2. Red Hat コンテンツ配信ネットワークの DNS 要求を解決するために、一時的な resolv.conf ファイルを作成します。以下の例では、ネームサーバーに 8.8.8.8 を使用しています。

      # echo "nameserver 8.8.8.8" > /etc/resolv.conf
    3. マウントしたイメージを Red Hat コンテンツ配信ネットワークに登録します。

      # subscription-manager register

      コマンドにより要求されたら、ユーザー名およびパスワードを入力します。

    4. Red Hat Enterprise Linux が含まれるサブスクリプションをアタッチします。

      # subscription-manager list --all --available
      # subscription-manager attach --pool <POOLID>

      <POOLID> をサブスクリプションのプール ID に置き換えます。

    5. デフォルトのリポジトリーを無効にします。

      # subscription-manager repos --disable "*"
    6. Red Hat Enterprise Linux リポジトリーを有効にします。

      • Red Hat Enterprise Linux 7:

        # subscription-manager repos --enable "rhel-7-server-rpms"
      • Red Hat Enterprise Linux 8:

        # subscription-manager repos --enable "rhel-8-for-x86_64-baseos-rpms"
    7. iscsi-initiator-utils パッケージをインストールします。

      # yum install -y iscsi-initiator-utils
    8. マウントしたイメージの登録を解除します。

      # subscription-manager unregister
    9. 元の resolv.conf ファイルを復元します。

      # mv /etc/resolv.conf.bak /etc/resolv.conf
    10. マウントされたイメージのカーネルバージョンを確認します。

      # rpm -qa kernel

      たとえば、出力が kernel-3.10.0-1062.el7.x86_64 の場合、カーネルバージョンは 3.10.0-1062.el7.x86_64 になります。次のステップのために、このカーネルバージョンを書き留めておきます。

      注記

      新しい Red Hat Enterprise Linux QCOW2 イメージには、1 つのカーネルバージョンしかインストールされません。複数のカーネルバージョンがインストールされている場合は、最新のものを使用してください。

    11. initramfs イメージに network および iscsi dracut モジュールを追加します。

      # dracut --force --add "network iscsi" /boot/initramfs-<KERNELVERSION>.img <KERNELVERSION>

      <KERNELVERSION>rpm -qa kernel から取得したバージョンに置き換えます。以下の例では、カーネルバージョンに 3.10.0-1062.el7.x86_64 を使用しています。

      # dracut --force --add "network iscsi" /boot/initramfs-3.10.0-1062.el7.x86_64.img 3.10.0-1062.el7.x86_64
    12. /etc/default/grub 設定ファイルを編集し、GRUB_CMDLINE_LINUX パラメーターに rd.iscsi.firmware=1 を追加します。

      # vi /etc/default/grub

      GRUB_CMDLINE_LINUX パラメーターに rd.iscsi.firmware=1 カーネル引数を追加した例を以下に示します。

      GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200n8 no_timer_check net.ifnames=0 rd.iscsi.firmware=1"

      これらの変更を保存します。

      注記

      このステップで grub メニュー設定を再ビルドしないでください。この手順の後のステップで、grub メニューを一時仮想マシンとして再ビルドします。

    13. マウントされたイメージからホストオペレーティングシステムに戻ります。

      # exit
  4. イメージをアンマウントします。

    1. 一時的なマウントポイントから dev ディレクトリーをアンマウントします。

      $ sudo umount /tmp/mountpoint/dev
    2. マウントポイントからイメージをアンマウントします。

      $ sudo umount /tmp/mountpoint
    3. QCOW2 イメージを /dev/nbd0/ から切断します。

      $ sudo qemu-nbd --disconnect /dev/nbd0
  5. イメージ上で grub メニュー設定を再ビルドします。

    1. libguestfs-tools パッケージをインストールします。

      $ sudo yum -y install libguestfs-tools
      重要

      アンダークラウドに libguestfs-tools パッケージをインストールする場合は、アンダークラウドの tripleo_iscsid サービスとのポートの競合を避けるために iscsid.socket を無効にします。

      $ sudo systemctl disable --now iscsid.socket
    2. QEMU を直接使用するように libguestfs バックエンドを設定します。

      $ export LIBGUESTFS_BACKEND=direct
    3. イメージ上の grub 設定を更新します。

      $ guestfish -a <IMAGE> -m /dev/sda1 sh "/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg"
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.