こんにちは、ネットワールドの海野です。
この記事は Nutanix Advent Calendar 2023 の20日目の記事として投稿されています。
ということで【 ネットワールドらぼ版 NVIDIA vGPU 設計虎の巻】シリーズのエピソード4です。
GPU への理解を深めるために物理的に取り付けるという作業を経る
GPU はメーカー出荷時に取り付けておくことを強くお勧めします
Nutanix AHV の環境で NVIDIA vGPU を使うためには、物理的なサーバーに GPU のカードが取り付けられていることが必要です。
ここでは GPU というものについて理解を深めてもらうために、 NX-3175-G5 という Nutanix ハードウェアに NVIDIA T4 という GPU のカードを取り付ける様子からご紹介しますが、通常 SIer やユーザーのみなさまはご自身で GPU のカードを取り付けるということはしません。
その理由としてサポートの可否が挙げられます。
と言いますのも、その一例として GPU は一般的に大きな電力を消費します。
そのため、ご自身の判断で取り付けますとサーバー筐体自体の電力供給能力を超えてしまい、想定しない挙動をすることや、物理的な破損をしてしまうことも考えられます。
また、GPU のカードに対して電源を供給するためのケーブルがなかったり、そもそもPCI Express が埋まっていて GPU を挿す余裕がないということもあり得ます。
そういった背景から、ネットワールドでは製品出荷時に GPU オプションを選定いただき、ハードウェアベンダーからのサポートがある状態での GPU 導入を強くお勧めしております。
では、物理的に取り付けましょう
アンラッキングした NX-3175-G5 です。(ちょっと懐かしい)
この世代はまだドライバーが必要ですよね。
蓋を開けてライザーボードを取り出し、 NVIDIA T4 を挿し込みます。
ライザーボードを元の位置に戻し、蓋を閉じて再ラッキングして取り付けは完了です。
無事、PRISM から取り付けられているハードウェアとして NVIDIA T4 が認識されていることが確認できました。
ソフトウェア的に使えるようにする
物理的な作業に続きまして(本来は不要ですが…)、ソフトウェア的に使えるようにする手順が必要です。
大きく3つのステップに分けて考えることができます。
- Nutanix AHV に対する NVIDIA vGPU のドライバーの設定
- NVIDIA vGPU ソフトウェアのライセンスサーバーの設定
- AHV 上で稼働する仮想マシンのドライバーの設定
それぞれ順を追って解説していきます。
Nutanix AHV に対する NVIDIA vGPU のドライバーの設定
一般的に NVIDIA vGPU のドライバーは NVIDIA のエンタープライズ向けポータルサイトからダウンロードするようご案内していますが、 Nutanix だけは特別で Nutanix のポータルからダウンロードする必要があります。
公式な手順としてはこちらに記載がありますが、この記事を読むひとは日本語での情報を求めている方かと思いますので、参考として投稿日現在の手順をまとめておきます。
My Nutanix から Support & Insights Portal を開きます。
検索欄に "NVIDIA" と入力し、検索します。
[Downloads] のカテゴリでトップヒットしたものを開きます。
任意のバージョンのドライバーを選択し、Download をします。
なお、投稿日現在で最新の 16.2 というバージョンが提供されていますが、各環境に応じて最適なバージョンをご選定ください。
ご参考までに…
以下の NVIDIA vGPU Software Documentation を参照し、 vGPU Branch Status が Long-Term Support という記載があるバージョンが一般的には無難な選定とされています。
今回の環境は以下の図の通り AHV 20220304.441 というバージョンですので、それに適したドライバーをダウンロードしました。
ダウンロードできました。
.tar.gz から .rpm ファイルを抽出します。
ここでは例として、WinSCP を使い CVM に対してインストールファイル (.rpm) を転送・配置します。
また、転送先のファイルパスは "/var/tmp/NVIDIA" としました。
ファイルの配置後、CVM へ接続した状態の SSH から以下のコマンドでインストールを実行します。
install_host_package -r /var/tmp/NVIDIA/nvidia-vgpu-5.10.177-2.el7.nutanix.20220304.441.x86_64-525.105.14-2.x86_64.rpm
"yes" で次に進めます。
インストールに成功すると以下のようなメッセージが表示されます。
自動的に CVM の再起動が始まります。
ちなみにですが…
インストール時のコマンドについて引数に注意してください。
Web サーバーにインストールファイルを配置した場合は引数 "-u" ですが、今回のように CVM のローカル内に配置した場合は引数 "-r" です。
この画像は公式ドキュメントを一部抜粋したものです。
再起動完了後、AHV に対して SSH 接続した状態で以下のコマンドを実行すると、NVIDIA のドライバーが適用され、動作していることが確認できます。( CVM ではありません。)
nvidia-smi
NVIDIA Licensing System (NLS) について
最新の NLS についてここでは詳しく言及しませんが、現時点でも以下の YouTube の動画が参考になります。
14:27あたりで言及されていますが、 DLS 利用の際は Nutanix AHV 専用のアプライアンスの提供はなく、 Linux KVM 版をそのままご利用いただけます。
PRISM で vGPU を搭載した仮想マシンを作成する
クラスター内の GPU ノードで Create VM をすると Graphics の項目から GPU を追加することが選択できるようになります。
また、適切に NVIDIA のドライバーがインストールされている場合、 vGPU の項目を選択できます。
(逆に言えば、不適切な場合は Passthrough しか選べない、ということもあります。)
ここでは Quadro-Vitual-DWS,5.0 を選択しました。プロファイルは T4-2Q です。
ここではテスト用に Windows Server 2019 をインストールしました。
所定の手順に従って VirtIO も最新版をインストール済みです。
Nutanix AHV の NVIDIA ドライバーのバージョンに合わせて、Windows Server 2019 用のゲスト OS 用ドライバーもインストールします。
このとき、事前に Windows Server 側でリモートデスクトップが利用できるようにしておくことをお勧めします。
ゲスト OS 用ドライバーのインストール後、NLS のトークンファイルも所定のフォルダーに格納します。
再起動後、Windows Server にサインインすると NLS からライセンスが取得できた通知がポップアップしました。
動作確認のため、Windows Server から一度サインアウトし、その状態のまま手元のパソコンから改めてリモートデスクトップで Windows Server へ接続します。
ここでは GPU-Z と GPU Profiler というツールで GPU の動作を確認しています。
Chrome 上で GPU が稼働していることがわかります。
あとがき
JST でポストできてよかったです。
海野 航
得意ジャンルは EUC で、好きなジャンルは無心でできるコーディング。