トレンドコラム

性能検証

【前編】NVIDIA Omniverse™ Enterprise環境を構築してみよう!

2022.04.08

サービスクリエーション本部 GPUエンジニア 中島 美葵

サービスクリエーション本部
GPUエンジニア
中島 美葵

【前編】NVIDIA Omniverse™ Enterprise環境を構築してみよう!

これまでアニメやゲームの中だけの概念だった「メタバース」や「仮想現実」、「XR」といったキーワードは、いまやビジネスに変革をもたらす新技術として脚光を浴びています。2022年はまさに「メタバース元年」となるかもしれません。

メタバースを現実のものにするためのプラットフォームとして、「NVIDIA Omniverse™ (エヌビディア オムニバース)」がリリースされています。

Omniverseを一言でいうと「仮想空間上で複数のユーザがコラボレーションし、3Dモデルの編集・閲覧・共有ができるツール」というところでしょうか。
例えば、日本にいるデザイナーAさんとアメリカにいるデザイナーBさんが協力して1つの作品を制作する場合。これまでは、Aさんが描いたデータを指定フォーマットでエクスポートし、Bさんがそれをインポートして作業を引き継ぐという形が一般的でした。
Omniverseを利用することで、AさんとBさんが仮想空間へアクセスし、1つのデータを2人で同時に編集することが可能となります。


図1 Omniverseによる共同編集のイメージ

多くのメンバーが参加する大規模なプロジェクトになればなるほど、この「同時に同じ環境へアクセスできる」メリットが活きることがお分かりになるかと思います。Omniverseはすでに、スマートシティのシミュレーションや、自動運転車両の試走、ハリウッド映画の制作など、さまざまな産業での検証が始まっています。

NVIDIA Eliteパートナーである当社でも、NVIDIA Omniverse™ のパートナーカウンシルに参画し、Innovation LAB上でNVIDIA Omniverse™ Enterprise(Omniverseの商用版です)の環境構築~検証を行っています。

この記事を書いている私(中島)は2021年4月に新卒入社した駆け出しエンジニアですが、誰も見たことのない未来の世界を作り出せるツールであるOmniverseに無限の可能性を感じ、先輩社員とともにさまざまな検証にチャレンジしています! 本記事では、これまでの成果をレポートします。

検証項目

今回は、当社がNVIDIA Omniverse™ Enterpriseの環境を構築する際に実施した点をお伝えします。少し長くなりましたので、前編 / 後編の2本に分けて公開します。

1. NVIDIA Omniverse™ Enterpriseの構成要素
2. vGPUセッティング
---前編はここまで-----
---後編でご紹介-------
3. NVIDIA Omniverse™ Nucleusインストール
4. NVIDIA Omniverse™ Launcherインストール
5. NVIDIA Omniverse™ Create / Viewインストール
6. 考察・感想

それぞれの手順の概要はWebサイト等でも公開されていますが、初心者が構築してみた生の声として、Omniverseの導入をお考えの方のご参考になれば幸いです。

1. NVIDIA Omniverse™ Enterpriseの構成要素

Omniverseには、1台の端末のみで利用可能なオープンベータ版と、複数人でコラボレーションするためのEnterprise版の2つがあります。今回はEnterprise版の環境構築を行っていきます。

Omniverseは複数のアプリケーションから構成されています。代表的なものは
 プラットフォームを管理する「NVIDIA Omniverse™ Nucleus」
 モデルの制作・編集を行う「NVIDIA Omniverse™ Create」
 Createで制作したモデルの閲覧を行う「NVIDIA Omniverse™ View」
などがあります。

また、Omniverseは多くのサードパーティーアプリとの接続にも対応しています。詳しくはNVIDIA公式サイトをご覧ください。

CreateやView、各種サードパーティーのアプリケーションを快適に利用するためには、NVIDIAのGPUが必須です。
コラボレーションに参加するメンバー全員に1台ずつGPUを搭載したパソコンを用意できればいいのですが、コスト等の都合からそうはいかないケースが大半だと思います。その場合、1台のGPUサーバーのリソースを仮想化し、メンバーが利用する仮想マシン(VDI端末)に割り当てていく方法がおすすめです。vGPUライセンスを利用してGPUリソースを仮想化&分割し、必要な人に必要な分だけリソースを配分することが可能になります。

リソースを配分するための下準備として、まずはvGPUの設定を行いましょう。なお、今回使用したハードウェア、ソフトウェアは下記の通りです。

表1 利用ハードウェア

項目 構成
サーバ筐体 SYS-740GP-TNRT
ストレージ(Data領域) 3.2TB NVMe
物理GPU NVIDIA A40 48GB
CPU Intel Xeon Platinum 8368 38c 270W 2.4GHz ×2
メモリ 256GB
ストレージ(OS領域) 480GB SSD

表2 利用ソフトウェア

項目 バージョン
VIB 470.82
VMware vCenter Server 7.0.3

vGPUセッティング

■NVIDIA GRID vGPU グラフィックカードのVIBダウンロード/インストール

※本手順の概要はWEBでも公開されています。(http://docs.nvidia.com/grid/index.html
vGPUを利用するため、VIBのダウンロード・インストールを行います。VIBとは「VMware Infrastructure Bundle」の略で、VMware や各OEM ベンダーから提供されているソフトウェアパッケージです。VIBをダウンロードしてESXi にインストールすると、各サーバーに特化した新機能を追加することができます。(今回の場合、vGPUの機能を追加)

NVIDIA Licensing Portal(※)にログインし、[SOFTWARE DOENLOAD]からPRODUCT FAMILYを[vGPU]に設定し、適切な基盤・バージョンのvGPUパッケージをダウンロードします。

※NVIDIA Licensing Portal(https://ui.licensing.nvidia.com/login)はNVIDIAから提供されている管理ポータルです。各ライセンスの管理や各種ソフトウェアをダウンロードできます。

ダウンロードした.zipファイルを解凍し、vGPU Managerフォルダ(NDV-VGPU_version… .zip)をESXiホストにアップロードします。

ESXiホストをメンテナンスモードに設定のうえ、SSHを使用してESXiホストに接続し、下記コマンドを実行して.zipパッケージをESXiホストにインストールします。
※基盤によってコマンドが異なるため、必ずマニュアルを確認して実施してください。
(当社基盤は、vSphere 7.0です。)

# esxcli software component apply -d [path-to-directory]/NVD-VGPU_version… .zip

ホストのメンテナンスモードを解除し、再起動します。

再起動後、次のコマンドを実行してvGPUパッケージが正常にロードしているかを確認します。NVIDIAのドライバモジュールがロードされていれば正常です。

# vmload_mod -l | grep nvidia

続けて以下のコマンドを実行し、下記出力例のように表示されたらVIBのインストールは完了です。

#nvidia-smi

■vCenter ServerでのvGPU設定

各仮想マシンにvGPUを割り当てるために、VMware vCenter ServerにてGPUの設定を行います。
※vCenter Serverを立ち上げない場合、vGPUの割り当て設定などを行うことはできません。

前提:vSphere ClientからvCenter Serverに接続し、ESXiホストが登録済み

登録済みのESXiホストを選択し、[構成]>[ハードウェア]>[グラフィック]>[ホストのグラフィック]で編集を押下し、[共有]→[直接共有]に変更します。

[グラフィックデバイス]タブに戻り、設定タイプが直接共有になっていることを確認します。
※ここで[直接共有]ではなく[共有]になっている場合は、各GPUを選択し直接共有に変更します。

変更が確認出来たら、ESXiホストまたはXorgサービスを再起動し、[グラフィック設定]のアクティブタイプが直接共有になっていることを確認します。

Xorgサービスの再起動
a). Xorg serviceを停止
b). nv-hostengineを停止

[root@...:~] nv-hostengine –t

c.) nv-hostengine の停止を1秒程度待機する
d.) nv-hostengineを起動する

[root@...:~] nv-hostengine –d

e). Xorg serviceを起動する

[root@...:~] /etc/init.d/xorg start

(vSphere version7.0.1以降はa)、e)の作業は省略可能)

vGPUの設定完了後、各仮想マシンにvGPUを割り当てます。(仮想マシン停止必須)
vSphere ClientのESXiホスト、仮想マシン一覧からvGPUを割り当てたい仮想マシンを右クリックし、設定の編集を押下、[仮想ハードウェア]タブから[新規デバイスの追加]>[PCIデバイス]を選択します。

[NVIDIA GRID vGPU]を選択し、適切なvGPUエディションとメモリを選択します。
※OmniverseをvGPUで構成する場合、Qプロファイルの割り当てが必須です。

このとき、メモリタブをプルダウンで拡張し、[すべてのゲストメモリを予約(すべてロック)]を選択します。

vGPUプロファイルの詳細については下記の通りです。

以上でvCenter ServerでのvGPUの設定は完了です。

この後仮想マシンを起動しvGPUドライバをインストールしますが、コンソール画面から実施するとライセンスの認証が行えないためリモートアクセスの設定を許可し、RDP等で接続して作業を行います。

■vGPUドライバのインストール

[デバイスマネージャー]を立ち上げ、[ディスプレイマネージャー]から割り当てたvGPUが接続されているか確認します。
※ドライバ未インストールのためGPUとして表示はされていません。

最初にダウロードしたVIBファイルに含まれているvGPUドライバを仮想マシンにアップロードし、インストーラを起動します。
(472.39_grid_win10_win11_server2016_server2019_server2022_64bit… .exe)
システムの互換性に問題がなければ自動的に使用許諾契約書の同意へ進みます。

オプションの選択では、新規インストールの場合は高速(推奨)を選択します。
※アップデートの場合、カスタムからインストールするコンポーネントを選択します。

インストール完了後仮想マシンを再起動し、ディスプレイアダプターからGPUが認識していることを確認します。
※タスクマネージャーからも確認可能です。

以上でvGPUの設定は全て完了です。おつかれさまでした!

つづいてライセンスサーバーを構築し、各仮想マシンでvGPUライセンスの認証をしていきます。
※ライセンスサーバーの構築については下記URLを参照ください。
 (弊社検証環境ではLinux OSでライセンスサーバーを構築しました。)
https://docs.nvidia.com/grid/ls/2019.11/grid-license-server-user-guide/index.html#abstract

■vGPUライセンスファイルの認証

ライセンス認証させたい仮想マシン上で[NVIDIAコントロールパネル]を起動します。

[ライセンスの管理]からライセンスサーバーのIPアドレスまたはホスト名を入力します。
※ポート番号はデフォルトで7070

ライセンスサーバーを冗長化する場合はバックアップサーバーのIPアドレスやポート番号も設定します。

以上で、vGPUに関連したセットアップは完了です。

前編のまとめ

本記事では、Omniverse構築作業のうちvGPUのセッティングに関連する作業を紹介しました。
今回、vCenter Serverの構築などvGPUセッティングを含めた全ての作業が初挑戦でした。トピックから外れるため記事内では省略しましたが、前提作業であるGPUサーバーのキッティング作業やESXiホストのインストールも、個人的には初めての内容でした。

当初は「マニュアルに沿って実施すればたいてい上手くいくだろう」と楽観的に考えていましたが、互換性に起因する固有のエラーも発生し何度もつまずきました……。ですが、エラー内容を調査したり、メーカー様へご相談したり、その他の作業方法を模索したりと、環境を構築する上で基本的なスキルを身に着けることができたと感じています。

後編ではNVIDIA Omniverse™ Nucleusのインストールや、その他アプリケーションのインストールを紹介します。みなさまのご参考になれば幸いです。