VMware vSphere 8 における GPU パーティショニング (vGPU) の設定:AI と VDI のためのリソース最適化

VMware tutorial - IT technology blog
VMware tutorial - IT technology blog

なぜ VMware vSphere 8 で GPU を分割 (vGPU) する必要があるのか?

NVIDIA A100、L40、RTX 6000 Ada といった強力なグラフィックスカードを所有することは、すべての管理者の dream です。しかし、物理カードを 1 台の仮想マシンに丸ごと割り当てる (DirectPath I/O) と、通常 70〜80% のリソースが無駄になります。巨大な AI モデル (LLM) をトレーニングする場合を除き、社内チャットボットの実行、小規模モデルのファインチューニング、VDI の展開などのタスクでは、カードの性能を十分に引き出せません。

私が 8 台の ESXi ホストクラスターで実施した実際のプロジェクトでは、2 枚の A100 80GB カードから、データサイエンスチームの 15 台の仮想マシンのニーズをいかに満たすかが課題でした。vSphere 8 上の NVIDIA vGPU テクノロジーがその鍵となりました。これにより、物理 GPU を複数の小さな部分 (GPU パーティション) に「スライス」し、ハードウェア投資コストを最も効率的に最適化できます。

設定前の準備チェックリスト

すぐにインストールを始めないでください。途中でエラーが発生するのを避けるため、以下のコンポーネントが揃っていることを確認しましょう。

  • ハードウェア: NVIDIA エンタープライズシリーズ (Tesla, Ampere, Ada Lovelace)。注意: 一般的な GeForce シリーズは ESXi 上で vGPU を公式にサポートしていません。
  • ライセンス: NVIDIA vGPU ソフトウェアライセンス (GRID, vCS, または vWS)。ライセンスがないと、20 分後に GPU パフォーマンスが大幅に制限されるため、これは必須です。
  • ドライバー: ESXi 専用の NVIDIA VIB ファイルと、対応するゲスト OS (Windows/Linux) 用のドライバー。
  • vSphere 8: Device Groups 機能や vGPU 使用時のスムーズな vMotion 機能を活用するために、バージョン 8.0 へのアップグレードを推奨します。

ステップ 1: ESXi への NVIDIA ホストドライバー (VIB) のインストール

まず、ESXi ホストをメンテナンスモードにします。WinSCP などを使用して、ドライバーファイル (.vib) をホストのデータストアにアップロードします。

ホストに SSH で接続し、以下のコマンドを実行します。

# メンテナンスモードを有効にする
esxcli system maintenanceMode set --enable true

# データストアからドライバーをインストールする
esxcli software vib install -v /vmfs/volumes/datastore1/NVIDIA-VMware_ESXi_8.0_Host_Driver_535.129.03-1OEM.800.1.0.20613240.vib

# システムを再起動する
reboot

ホストの再起動後、nvidia-smi コマンドでカードの状態を確認します。温度や消費電力などのステータスが完全に表示されれば、工程の 50% は完了です。

ステップ 2: vSphere Client でのグラフィックスデバイスの設定

デフォルトでは、ESXi はグラフィックスカードを「共有」として認識します。vGPU 機能を有効にするには、Shared Direct モードに切り替える必要があります。

  1. vCenter にアクセスし、ESXi ホスト -> 設定 -> ハードウェア -> グラフィックス を選択します。
  2. グラフィックスデバイス タブで、対応する NVIDIA カードを選択し、編集 をクリックします。
  3. Shared Direct (ベンダー共有パススルー) モードに切り替えます。
  4. この変更を完全に適用するために、最後にホストを再起動します。

ステップ 3: 仮想マシン (VM) への vGPU プロファイルの割り当て

ここで、各仮想マシンにどれだけのリソースを割り当てるかを決定します。例えば、1 枚の A100 80GB カードを 10 台の仮想マシンに分割し、それぞれに 8GB の専用 VRAM を持たせることができます。

設定手順:

  1. VM を右クリック -> 設定の編集
  2. 新規デバイスの追加 -> PCI デバイス を選択します。
  3. 新しいデバイスの項目で、NVIDIA vGPU を選択します。
  4. 適切な GPU プロファイル を選択します。接尾辞の意味に注意してください:
    • Q: プロフェッショナルなグラフィックデザイン用 (Quadro)。
    • C: AI 計算、ディープラーニング用に最適化 (Compute)。
    • A: 一般的な仮想化アプリケーション用。

例: プロファイル grid_a100-4c は、仮想マシンに 4GB の VRAM を割り当て、AI 計算タスクに最適化されます。

重要な注意点: 非常によくあるミスは、すべてのゲストメモリを予約 (Reserve all guest memory) にチェックを入れ忘れることです。vGPU では、仮想マシンが物理 RAM を固定して保持する必要があり、共有 (オーバーコミット) は許可されません。このオプションがないと、仮想マシンの電源を入れた直後にエラーが発生します。

ステップ 4: ゲスト OS へのドライバーインストールと確認

仮想マシンが起動すると、OS は新しい PCI デバイスを認識しますが、まだ動作しない状態です。ゲスト OS 専用の NVIDIA ドライバーをインストールする必要があります (ESXi ホスト上のドライバーとバージョンが一致している必要があります)。

Ubuntu の場合、nvidia-smi コマンドで素早く確認できます。結果には、物理カードの全容量ではなく、割り当てた vGPU プロファイル (例: 4GB VRAM) が正確に表示されます。これで、CUDA や Docker をインストールし、Stable Diffusion などのアプリケーションを展開する準備が整いました。

監視とライセンス管理

実際の運用プロセスでは、GPU の負荷を監視することが非常に重要です。vSphere 8 では、この部分が大幅に改善されました。各ホストに SSH でログインして手動でコマンドを入力する必要はもうありません。

vCenter インターフェースのホストの 監視 タブで、各仮想マシンの VRAM と GPU 使用率 (%) のグラフが視覚的に表示されます。これにより、システムパフォーマンスを報告したり、新しいカードへの投資時期を判断したりするのが容易になります。

ライセンスについて: 仮想マシン内の NVIDIA ライセンスクライアント の設定を忘れないでください。ライセンスサーバー (DLS または CLS) に接続できない場合、短期間の使用後に計算パフォーマンスが著しく低下します。

実戦経験からの結び

vSphere 8 での vGPU 展開は技術的に難しいものではありませんが、プロファイルの選択とライセンス管理において細心の注意が必要です。ラボ環境であれば、GitHub 上の 「vGPU Unlock」ソリューションも興味深い選択肢かもしれません。しかし、本番環境では、安定性を確保し、NVIDIA からのタイムリーなサポートを受けるために、常に正規ライセンスを使用してください。

もし 「Module DevicePowerOn failed」 というエラーに遭遇した場合は、まず RAM の予約設定を確認してください。エラーの 90% はここが原因です。皆さんの導入が成功することを願っています!

Share: