8.2.4. カスタム GPU ゲストイメージのビルド
GPU 対応コンピュートノードと共にオーバークラウドをデプロイしたら、NVIDIA GRID ゲストドライバーおよびライセンスファイルを使用してカスタムの仮想 GPU 対応インスタンスイメージをビルドします。
NVIDIA GRID ライセンスファイルの作成
オーバークラウドホストで、NVIDIA GRID のライセンス情報が含まれる gridd.conf ファイルを作成します。前のステップでインストールしたセルフホスト NVIDIA GRID ライセンスサーバーからのライセンスサーバー情報を使用します。以下に例を示します。
# /etc/nvidia/gridd.conf.template - Configuration file for NVIDIA Grid Daemon # This is a template for the configuration file for NVIDIA Grid Daemon. # For details on the file format, please refer to the nvidia-gridd(1) # man page. # Description: Set License Server Address # Data type: string # Format: "<address>" ServerAddress=[NVIDIA_LICENSE_SERVER_URL] # Description: Set License Server port number # Data type: integer # Format: <port>, default is 7070 ServerPort=[PORT_NUMBER] # Description: Set Backup License Server Address # Data type: string # Format: "<address>" #BackupServerAddress= # Description: Set Backup License Server port number # Data type: integer # Format: <port>, default is 7070 #BackupServerPort= # Description: Set Feature to be enabled # Data type: integer # Possible values: # 0 => for unlicensed state # 1 => for GRID vGPU # 2 => for Quadro Virtual Datacenter Workstation FeatureType=[TYPE_ID] # Description: Parameter to enable or disable Grid Licensing tab in nvidia-settings # Data type: boolean # Possible values: TRUE or FALSE, default is FALSE EnableUI=TRUE # Description: Set license borrow period in minutes # Data type: integer # Possible values: 10 to 10080 mins(7 days), default is 1440 mins(1 day) #LicenseInterval=1440 # Description: Set license linger period in minutes # Data type: integer # Possible values: 0 to 10080 mins(7 days), default is 0 mins #LingerInterval=10
ゲストイメージおよび NVIDIA GRID ゲストドライバーの準備
NVIDIA の Web サイトから、GPU デバイスに対応する NVIDIA GRID ゲストドライバー RPM パッケージをダウンロードします。必要なドライバーを確認するには、NVIDIA ドライバーダウンロードポータル を参照してください。
注記ポータルからドライバーをダウンロードするには、NVIDIA カスタマーとして登録されている必要があります。
ドライバー RPM パッケージから ISO イメージを作成します。この ISO イメージを使用して、以下の手順でコンピュートノードにドライバーをインストールします。
[root@virtlab607 guest]# 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 10:59:50 2018 18.08% done, estimate finish Wed Oct 31 10:59:50 2018 27.14% done, estimate finish Wed Oct 31 10:59:50 2018 36.17% done, estimate finish Wed Oct 31 10:59:50 2018 45.22% done, estimate finish Wed Oct 31 10:59:50 2018 54.25% done, estimate finish Wed Oct 31 10:59:50 2018 63.31% done, estimate finish Wed Oct 31 10:59:50 2018 72.34% done, estimate finish Wed Oct 31 10:59:50 2018 81.39% done, estimate finish Wed Oct 31 10:59:50 2018 90.42% done, estimate finish Wed Oct 31 10:59:50 2018 99.48% done, estimate finish Wed Oct 31 10:59:50 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)
GPU インスタンス用にカスタマイズするゲストイメージをコピーします。以下に例を示します。
[root@virtlab607 guest]# cp rhel-server-8.0-update-4-x86_64-kvm.qcow2 rhel-server-8.0-update-4-x86_64-kvm-gpu.qcow2
カスタマイズスクリプトの作成および実行
デフォルトでは、GPU 負荷用に指定する各インスタンスに NVIDIA GRID ドライバーをインストールする必要があります。そのためには、ゲストイメージを変更し、再起動してからゲストドライバーをインストールします。ゲストインスタンスに対するこのプロセスを自動化するスクリプトを作成することができます。
nvidia-prepare-guest.sh という名前のスクリプトを作成します。このスクリプトにより、必要なリポジトリーを有効にし、インスタンスを最新のカーネルに更新し、NVIDIA GRID ゲストドライバーをインストールし、インスタンスに gridd.conf ライセンスファイルをアタッチします。
#/bin/bash # Add build tooling subscription-manager register --username [USERNAME] --password [PASSWORD] subscription-manager attach --pool=8a85f98c651a88990165399d8eea03e7 subscription-manager repos --disable=* subscription-manager repos --enable=rhel-8-server-rpms dnf upgrade -y dnf install -y gcc make kernel-devel cpp glibc-devel glibc-headers kernel-headers libmpc mpfr elfutils-libelf-devel # NVIDIA GRID guest script mkdir /tmp/mount mount LABEL=NVIDIA /tmp/mount /bin/sh /tmp/mount/NVIDIA-Linux-x86_64-430.24-grid.run mkdir -p /etc/nvidia cp /tmp/mount/gridd.conf /etc/nvidia
前のステップでコピーしたゲストイメージで、スクリプトを実行します。以下に例を示します。
$ virt-customize --attach nvidia-guest.iso -a rhel-server-8.0-update-4-x86_64-kvm-gpu.qcow2 -v --run nvidia-prepare-guest.sh
カスタムゲストイメージを Glance にアップロードします。
(overcloud) [stack@director ~]$ openstack image create rhelgpu --file /var/images/x86_64/rhel-server-8.0-update-4-x86_64-kvm-gpu.qcow2 --disk-format qcow2 --container-format bare --public