6.3. ブートディスクでの iSCSI カーネルパラメーターの設定
イメージ上のカーネルで iSCSI ブートを有効にする必要があります。そのためには、QCOW2 イメージをマウントし、イメージ上で iSCSI コンポーネントを有効にします。
前提条件
Red Hat Enterprise Linux QCOW2 イメージをダウンロードして、アンダークラウドの
/home/stack/ディレクトリーにコピーします。以下のページから、QCOW2 形式で Red Hat Enterprise Linux KVM イメージをダウンロードすることができます。
手順
-
アンダークラウドに
stackユーザーとしてログインします。 QCOW2 イメージをマウントし、
rootユーザーとしてアクセスします。nbdカーネルモジュールを読み込みます。sudo modprobe nbd
$ sudo modprobe nbdCopy to Clipboard Copied! Toggle word wrap Toggle overflow QCOW イメージを
/dev/nbd0として接続します。sudo qemu-nbd --connect=/dev/nbd0 <IMAGE>
$ sudo qemu-nbd --connect=/dev/nbd0 <IMAGE>Copy to Clipboard Copied! Toggle word wrap Toggle overflow NBD 上のパーティションを確認します。
sudo fdisk /dev/nbd0 -l
$ sudo fdisk /dev/nbd0 -lCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい Red Hat Enterprise Linux QCOW2 イメージには、パーティションが 1 つだけ含まれます。通常、そのパーティションは NBD の
/dev/nbd0p1という名前です。イメージのマウントポイントを作成します。
mkdir /tmp/mountpoint
mkdir /tmp/mountpointCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージをマウントします。
sudo mount /dev/nbd0p1 /tmp/mountpoint/
sudo mount /dev/nbd0p1 /tmp/mountpoint/Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージがホストのデバイス情報にアクセスできるように、
devディレクトリーをマウントします。sudo mount -o bind /dev /tmp/mountpoint/dev
sudo mount -o bind /dev /tmp/mountpoint/devCopy to Clipboard Copied! Toggle word wrap Toggle overflow ルートディレクトリーをマウントポイントに変更します。
sudo chroot /tmp/mountpoint /bin/bash
sudo chroot /tmp/mountpoint /bin/bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow
イメージ上で iSCSI を設定します。
注記このステップの一部のコマンドにより、以下のエラーが返される場合があります。
lscpu: cannot open /proc/cpuinfo: No such file or directory
lscpu: cannot open /proc/cpuinfo: No such file or directoryCopy to Clipboard Copied! Toggle word wrap Toggle overflow このエラーは重要ではないので、エラーを無視して構いません。
resolv.confファイルを一時的な場所に移動します。mv /etc/resolv.conf /etc/resolv.conf.bak
# mv /etc/resolv.conf /etc/resolv.conf.bakCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat コンテンツ配信ネットワークの DNS 要求を解決するために、一時的な
resolv.confファイルを作成します。以下の例では、ネームサーバーに8.8.8.8を使用しています。echo "nameserver 8.8.8.8" > /etc/resolv.conf
# echo "nameserver 8.8.8.8" > /etc/resolv.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow マウントしたイメージを Red Hat コンテンツ配信ネットワークに登録します。
subscription-manager register
# subscription-manager registerCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドにより要求されたら、ユーザー名およびパスワードを入力します。
Red Hat Enterprise Linux が含まれるサブスクリプションをアタッチします。
subscription-manager list --all --available subscription-manager attach --pool <POOLID>
# subscription-manager list --all --available # subscription-manager attach --pool <POOLID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <POOLID>をサブスクリプションのプール ID に置き換えます。デフォルトのリポジトリーを無効にします。
subscription-manager repos --disable "*"
# subscription-manager repos --disable "*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux リポジトリーを有効にします。
Red Hat Enterprise Linux 7:
subscription-manager repos --enable "rhel-7-server-rpms"
# subscription-manager repos --enable "rhel-7-server-rpms"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8:
subscription-manager repos --enable "rhel-8-for-x86_64-baseos-eus-rpms"
# subscription-manager repos --enable "rhel-8-for-x86_64-baseos-eus-rpms"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
iscsi-initiator-utilsパッケージをインストールします。yum install -y iscsi-initiator-utils
# yum install -y iscsi-initiator-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow マウントしたイメージの登録を解除します。
subscription-manager unregister
# subscription-manager unregisterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 元の
resolv.confファイルを復元します。mv /etc/resolv.conf.bak /etc/resolv.conf
# mv /etc/resolv.conf.bak /etc/resolv.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow マウントされたイメージのカーネルバージョンを確認します。
rpm -qa kernel
# rpm -qa kernelCopy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、出力が
kernel-3.10.0-1062.el7.x86_64の場合、カーネルバージョンは3.10.0-1062.el7.x86_64になります。次のステップのために、このカーネルバージョンを書き留めておきます。注記新しい Red Hat Enterprise Linux QCOW2 イメージには、1 つのカーネルバージョンしかインストールされません。複数のカーネルバージョンがインストールされている場合は、最新のものを使用してください。
initramfs イメージに
networkおよびiscsidracut モジュールを追加します。dracut --force --add "network iscsi" /boot/initramfs-<KERNELVERSION>.img <KERNELVERSION>
# dracut --force --add "network iscsi" /boot/initramfs-<KERNELVERSION>.img <KERNELVERSION>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <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
# dracut --force --add "network iscsi" /boot/initramfs-3.10.0-1062.el7.x86_64.img 3.10.0-1062.el7.x86_64Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/default/grub設定ファイルを編集し、GRUB_CMDLINE_LINUXパラメーターにrd.iscsi.firmware=1を追加します。vi /etc/default/grub
# vi /etc/default/grubCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200n8 no_timer_check net.ifnames=0 rd.iscsi.firmware=1"Copy to Clipboard Copied! Toggle word wrap Toggle overflow これらの変更を保存します。
注記このステップで
grubメニュー設定を再ビルドしないでください。この手順の後のステップで、grubメニューを一時仮想マシンとして再ビルドします。マウントされたイメージからホストオペレーティングシステムに戻ります。
exit
# exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
イメージをアンマウントします。
一時的なマウントポイントから
devディレクトリーをアンマウントします。sudo umount /tmp/mountpoint/dev
$ sudo umount /tmp/mountpoint/devCopy to Clipboard Copied! Toggle word wrap Toggle overflow マウントポイントからイメージをアンマウントします。
sudo umount /tmp/mountpoint
$ sudo umount /tmp/mountpointCopy to Clipboard Copied! Toggle word wrap Toggle overflow QCOW2 イメージを
/dev/nbd0/から切断します。sudo qemu-nbd --disconnect /dev/nbd0
$ sudo qemu-nbd --disconnect /dev/nbd0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
イメージ上で
grubメニュー設定を再ビルドします。libguestfs-toolsパッケージをインストールします。sudo yum -y install libguestfs-tools
$ sudo yum -y install libguestfs-toolsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要アンダークラウドに
libguestfs-toolsパッケージをインストールする場合は、アンダークラウドのtripleo_iscsidサービスとのポートの競合を避けるためにiscsid.socketを無効にします。sudo systemctl disable --now iscsid.socket
$ sudo systemctl disable --now iscsid.socketCopy to Clipboard Copied! Toggle word wrap Toggle overflow QEMU を直接使用するように
libguestfsバックエンドを設定します。export LIBGUESTFS_BACKEND=direct
$ export LIBGUESTFS_BACKEND=directCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージ上の grub 設定を更新します。
guestfish -a <IMAGE> -m /dev/sda1 sh "/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg"
$ guestfish -a <IMAGE> -m /dev/sda1 sh "/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg"Copy to Clipboard Copied! Toggle word wrap Toggle overflow