8.2. NVIDIA GRID vGPU のデプロイ
本項では、コンピュートノードホストおよびゲストインスタンスに、NVIDIA 仮想 GPU (vGPU) デバイスをデプロイする方法について説明します。このエンドツーエンドプロセスには、以下の手順が含まれます。
- GPU 対応カスタムオーバークラウドイメージのビルド
- GPU ロール、プロファイル、およびフレーバーの準備
- オーバークラウドの設定およびデプロイ
- 仮想 GPU 対応カスタムゲストイメージのビルド
- インスタンス用の仮想 GPU フレーバーの準備
- 仮想 GPU 対応インスタンスの起動および設定
前提条件
オーバークラウドに NVIDIA GRID vGPU をデプロイする前に、環境が以下の要件を満たしていることを確認してください。
- デプロイメントは、「サポートされる構成および制限」 の説明に従って、仮想 GPU デバイスの要件を満たしている必要があります。
- アンダークラウドがデプロイされ、デフォルトのオーバークラウドイメージが Glance にアップロードされていること。
- NVIDIA GRID ライセンス要件に従う共に、セルフホストライセンスサーバーの URL が用意されていること。NVIDIA ライセンス要件およびセルフホストサーバーのインストールに関する詳細は、「Virtual GPU License Server Release Notes」の Web ページを参照してください。
8.2.1. カスタム GPU オーバークラウドイメージのビルド
オーバークラウドの Compute イメージに NVIDIA GRID ホストドライバーをインストールし、イメージを Glance にアップロードするには、アンダークラウドで以下の手順を実施します。
オーバークラウドイメージをコピーし、コピーしたイメージに
gpu
の接尾辞を追加します。$ cp overcloud-full.qcow2 overcloud-full-gpu.qcow2
YUM から ISO イメージ生成器ツールをインストールします。
$ sudo yum install genisoimage -y
NVIDIA の Web サイトから、GPU デバイスに対応する NVIDIA GRID ホストドライバー RPM パッケージをダウンロードします。必要なドライバーを確認するには、NVIDIA ドライバーダウンロードポータル を参照してください。
注記ポータルからドライバーをダウンロードするには、NVIDIA カスタマーとして登録されている必要があります。
ドライバー RPM パッケージから ISO イメージを作成し、イメージを nvidia-guest ディレクトリーに保存します。この ISO イメージを使用して、以下の手順でコンピュートノードにドライバーをインストールします。
$ genisoimage -o nvidia-guest.iso -R -J -V NVIDIA nvidia-guest/ I: -input-charset not specified, using utf-8 (detected in locale settings) 9.06% done, estimate finish Wed Oct 31 11:24:46 2018 18.08% done, estimate finish Wed Oct 31 11:24:46 2018 27.14% done, estimate finish Wed Oct 31 11:24:46 2018 36.17% done, estimate finish Wed Oct 31 11:24:46 2018 45.22% done, estimate finish Wed Oct 31 11:24:46 2018 54.25% done, estimate finish Wed Oct 31 11:24:46 2018 63.31% done, estimate finish Wed Oct 31 11:24:46 2018 72.34% done, estimate finish Wed Oct 31 11:24:46 2018 81.39% done, estimate finish Wed Oct 31 11:24:46 2018 90.42% done, estimate finish Wed Oct 31 11:24:46 2018 99.48% done, estimate finish Wed Oct 31 11:24:46 2018 Total translation table size: 0 Total rockridge attributes bytes: 358 Total directory bytes: 0 Path table size(bytes): 10 Max brk space used 0 55297 extents written (108 MB)
コンピュートノード用のドライバーインストールスクリプトを作成します。このスクリプトにより、スクリプトを実行する各コンピュートノードに NVIDIA GRID ホストドライバーがインストールされます。この例では、スクリプトは install_nvidia.sh という名前です。
#/bin/bash # NVIDIA GRID package mkdir /tmp/mount mount LABEL=NVIDIA /tmp/mount rpm -ivh /tmp/mount/NVIDIA-vGPU-rhel-8.0-430.27.x86_64.rpm
生成した ISO イメージをアタッチし、作成したドライバーインストールスクリプトを実行して、オーバークラウドイメージをカスタマイズします。以下に例を示します。
$ virt-customize --attach nvidia-packages.iso -a overcloud-full-gpu.qcow2 -v --run install_nvidia.sh [ 0.0] Examining the guest ... libguestfs: launch: program=virt-customize libguestfs: launch: version=1.36.10rhel=8,release=6.el8_5.2,libvirt libguestfs: launch: backend registered: unix libguestfs: launch: backend registered: uml libguestfs: launch: backend registered: libvirt
SELinux でカスタマイズしたイメージのラベルを付け直します。
$ virt-customize -a overcloud-full-gpu.qcow2 --selinux-relabel [ 0.0] Examining the guest ... [ 2.2] Setting a random seed [ 2.2] SELinux relabelling [ 27.4] Finishing off
Glance アップロード用にカスタムイメージファイルを準備します。以下に例を示します。
$ mkdir /var/image/x86_64/image $ guestmount -a overcloud-full-gpu.qcow2 -i --ro image $ cp image/boot/vmlinuz-3.10.0-862.14.4.el8.x86_64 ./overcloud-full-gpu.vmlinuz $ cp image/boot/initramfs-3.10.0-862.14.4.el8.x86_64.img ./overcloud-full-gpu.initrd
アンダークラウドから、Glance にカスタムイメージをアップロードします。
(undercloud) $ openstack overcloud image upload --update-existing --os-image-name overcloud-full-gpu.qcow2