このチュートリアルでは、ディスプレイ対応 GPU を接続して CentOS を実行する仮想 Linux ワークステーションを作成する方法を説明します(Windows ワークステーションを作成するには、仮想 GPU による高速 Windows ワークステーションの作成のチュートリアルをご覧ください)。Google Cloud は、3 つのディスプレイ対応 GPU(NVIDIA T4、NVIDIA Tesla P4、NVIDIA Tesla P100)を提供しています。
仮想ワークステーションを作成した後は、メディアやエンターテイメント業界で広く使用されているリモート デスクトップ プロトコルである Teradici PC-over-IP(PCoIP)を使用して、リモートアクセスする方法を学びます。PCoIP は、色精度やロスレス ディスプレイのサポートなど、メディア制作のワークロードに不可欠な機能を提供します。
目標
- GPU を使用して Compute Engine インスタンスを作成します。このインスタンスは、仮想ワークステーションの基盤として機能します。
- 仮想ワークステーションに NVIDIA ドライバをインストールします。
- Teradici Cloud Access ソフトウェアを仮想ワークステーションにインストールします。
- PCoIP ソフトウェア クライアントまたはハードウェア エンドポイントの一種である Zero Client を使用して、Mac または Windows パソコンから仮想ワークステーションに接続します。Linux パソコンから仮想ワークステーションにアクセスする場合は、Teradici の担当者にお問い合わせください。
料金
このチュートリアルでは、課金対象である次の Google Cloud コンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。本稿の執筆時点では、このチュートリアルで例示している典型的なメディア ワークステーション構成の費用は概算で 1 時間あたり US$1.36 です。
このチュートリアルで、仮想ワークステーションを構成するリソースとコストに影響する要素は次のとおりです。
- 24 台の vCPU、32 GB RAM のカスタム マシンタイプ。
- SSD 100 GB の永続ブートディスク。
- NVIDIA Tesla P4 仮想ワークステーション GPU。
- インターネット下り(外向き)。
インターネット下り(外向き)は、仮想ワークステーションからローカルのディスプレイ クライアントにストリーミングされてインターネット下り(外向き)料金で課金されるデータを表します。PCoIP セッション中の下り(外向き)データに影響を与える変数は、帯域幅、画面解像度、ディスプレイ モニターの台数、使用するアプリケーション、各モニターのアクティビティの種類です。この例の費用は、使用量を平均 10 Mbps として計算されています。Teradici の Workflow Planning Guide は、さまざまなワークロード要件を理解するのに役立ちます。
始める前に
このチュートリアルでは、gcloud
コマンドと gsutil
コマンドを使用します。これらのコマンドは、Cloud Console から起動した Cloud Shell インスタンスから実行できます。ローカルのワークステーションで gcloud
と gsutil
を使用する場合、Cloud SDK をインストールします。このチュートリアルでは、Cloud Shell でコマンドを実行する方法を説明しています。ワークステーション上の Cloud SDK を使用する場合、ここでの説明は環境に合わせて読み替えてください。
- Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。
-
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
-
Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する。
- Compute Engine API を有効にします。
また、次の条件が整っていることを確認してください。
- 選択したゾーン内に仮想ワークステーションの GPU の割り当てを持つ Google Cloud プロジェクト。
gcloud compute accelerator-types list
コマンドを使用すると、GPU の可用性リストを取得できます。 - Cloud Console にアクセスするための Google Chrome ブラウザ。
- 仮想ワークステーションにアクセスする Teradici Zero Client か、Windows、Mac、または Limux 用の最新の Teradici のソフトウェア クライアント。
- Teradici Cloud Access Software ライセンス。試用版ライセンスに登録するか、Teradici の担当者にお問い合わせください。この仮想ワークステーションに使用する 30 日間の試用登録コードが提供されます。
アーキテクチャについて
次の図は、このチュートリアルで単一の仮想ワークステーションをデプロイするためのコンポーネントを示しています。図に示すオプションのコンポーネントには、仮想ワークステーション、オブジェクト、共有ストレージに接続するさまざまな方法と、サードパーティ ライセンスを提供するための追加のインスタンスが含まれています。
アクセラレータを選択する
仮想ワークステーションをデプロイする際に重要になるのは、デベロッパーのロケーションと作成されたインスタンスとの間のレイテンシです。レイテンシが短いほど、より良いエクスペリエンスが得られます。したがって、可能な限り地理的に近いゾーンを選択する必要があります。リージョンとゾーンについて詳しくは、地域とリージョンをご覧ください。
Cloud Shell を開きます(Cloud SDK を使用している場合、お使いの PC でターミナル ウィンドウを開きます)。
次に、GPU が利用可能なゾーンのリストを取得します。
gcloud compute accelerator-types list
物理的に最も近いゾーンをメモしておきます。
使用するゾーンを設定します。
gcloud config set compute/zone zone
zone は、使用しているゾーンの名前(
us-west2-b
など)に置き換えます。
マシンタイプを選択する
P4 GPU は任意のマシンタイプに接続できますが、仮想ワークステーションに追加する各 GPU と組み合わせる vCPU の数は最小限にする必要があります。こうすることで、リソースの過剰登録を防止します。NVIDIA Tesla P4 では、1 つの GPU に最大 24 個の vCPU を接続できます。24 個を超える vCPU を仮想ワークステーションに追加するには、vCPU 24 個ごとに別の P4 GPU を 1 つ追加する必要があります。たとえば、vCPU 48 個の仮想ワークステーションでは、P4 GPU を 2 つ接続する必要があります。
このチュートリアルの例は、NVIDIA Tesla P4 GPU 1 つあたりの最大 vCPU 数である、vCPU 24 個の仮想ワークステーションで構成されています。
仮想ワークステーションを作成する
Teradici Graphics Agent(このチュートリアルの後半で仮想ワークステーションにインストールする)では、仮想ワークステーションの作成時に IP 転送を有効にし、HTTPS サーバー トラフィックを許可する必要があります。
Cloud Shell で、Compute Engine 仮想ワークステーション インスタンスを作成します。
name
などのプレースホルダの値を指定する必要があります。gcloud compute instances create name \ --machine-type machine-type \ --accelerator type=accelerator,count=num-gpus \ --can-ip-forward \ --maintenance-policy "TERMINATE" \ --tags "https-server" \ --image-project centos-cloud \ --image-family centos-7 \ --boot-disk-size size
例:
gcloud compute instances create test-vws \ --machine-type custom-24-32768 \ --accelerator type=nvidia-tesla-p4-vws,count=1 \ --can-ip-forward \ --maintenance-policy "TERMINATE" \ --tags "https-server" \ --image-project centos-cloud \ --image-family centos-7 \ --boot-disk-size 100
仮想ワークステーションが作成されると、マシンのステータスが表示されます。出力は次のようになります。
Created https://www.googleapis.com/compute/v1/projects/project/zones/us-west2-b/instances/test-vws.
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS test-vws us-west2-b custom (24 vCPU, 32.00 GiB) 10.168.0.3 XX.XXX.XX.XXX RUNNING仮想ワークステーションは、プロジェクトのデフォルトの VPC ネットワークに作成されます。仮想ワークステーションを別の VPC ネットワークに作成する場合は、コマンドに次のフラグを追加します。
--network=network
network
は、使用するネットワークの名前に置き換えます。仮想ワークステーションの外部 IP アドレスをメモしておきます。これはチュートリアルの後半で使用します。
仮想ワークステーションにログインする
仮想ワークステーションの作成が終わったら、マシンにログインして構成できます。
Cloud Shell で、新しい仮想ワークステーションに接続します。
gcloud compute ssh test-vws
アカウントのパスワードを設定します。Teradici PCoIP では、ユーザーのパスワードを設定する必要があります。
sudo passwd `whoami`
プロンプトが表示されたら、パスワードを入力します。チュートリアルの後半で、このパスワードを使用して Teradici PCoIP クライアントから仮想ワークステーションにログインします。
グラフィック ライブラリとウィンドウ マネージャをインストールする
Google Cloud のデフォルトの CentOS 7 イメージは、CentOS 7.x の最小インストールです。次の手順では、仮想ワークステーションをグラフィック ワークステーションとして実行するために必要なライブラリをインストールします。このチュートリアルでは、KDE ウィンドウ マネージャもインストールします。
必要なコンポーネントをインストールします。
sudo yum -y update sudo yum -y install kernel-devel sudo yum -y groupinstall "KDE desktop" "X Window System" "Fonts" sudo yum -y groupinstall "Development Tools" sudo yum -y groupinstall "Server with GUI"
ワークステーションを再起動します。
sudo reboot
Cloud Shell からの接続が閉じられます。
NVIDIA ドライバをインストールする
NVIDIA T4、NVIDIA Tesla P4、NVIDIA Tesla P100 GPU は、コンピューティングとディスプレイ ワークロードの両方に対応する認定 NVIDIA Quadro Virtual Data Center Workstation(vWS)ドライバをインストールしなければ Google Cloud で動作しません。このドライバは、一般公開ストレージ バケットからダウンロードできます。
仮想ワークステーションが再起動したら、Cloud Shell で仮想ワークステーションに再接続します。
gcloud compute ssh test-vws
仮想ワークステーションで、
gsutil
を使用して最新のドライバのリストを取得します。gsutil ls gs://nvidia-drivers-us-public/GRID
このチュートリアルでは、執筆時点で入手可能な最新のグラフィック ドライバである、GRID11.1 Linux ドライバ(バージョン 450.80.02)を使用します。最新の認定ドライバは常に、バージョン番号が最も大きい
GRID
ディレクトリにあります。この例より新しいドライバがあった場合、そのドライバを使用してください。ドライバをダウンロードしてインストールします。450.80.02 より新しいドライバを使用する場合は、それに応じてコマンドを変更してください。
curl -O \ https://storage.googleapis.com/nvidia-drivers-us-public/GRID/GRID11.1/NVIDIA-Linux-x86_64-450.80.02-grid.run sudo bash NVIDIA-Linux-x86_64-450.80.02-grid.run
ドライバのインストール中に、いくつかのプロンプトが表示されることがあります。
- 32 ビットバイナリのインストールを求められたら、[Yes] を選択します。
x.org
ファイルの変更を求められたら、[No] を選択します。
ドライバがインストールされ、動作していることを確認します。
nvidia-smi
出力は次のようになります。
Thu Sep 20 21:58:23 2018 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 450.80.02 Driver Version: 450.80.02 CUDA Version: 11.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 Tesla P4 On | 00000000:00:04.0 Off | 0 | | N/A 41C P0 23W / 75W | 0MiB / 7611MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
このリストのような出力が表示されない場合は、このチュートリアル後半のトラブルシューティングをご覧ください。
Teradici Cloud Access Software をインストールする
Teradici Cloud Access Software は、仮想ワークステーション上で動作するグラフィック エージェントを提供し、ハードウェアまたはソフトウェア クライアントにデスクトップを提供します。
仮想ワークステーションに、Teradici ソフトウェアを追加します。
sudo rpm --import https://downloads.teradici.com/rhel/teradici.pub.gpg sudo yum -y install wget sudo wget -O /etc/yum.repos.d/pcoip.repo \ https://downloads.teradici.com/rhel/pcoip.repo
ソフトウェア リポジトリを更新します。
sudo yum -y update
Teradci Cloud Access Software をインストールします。
sudo yum -y install pcoip-agent-graphics
表示状態を
graphical
に設定します。sudo systemctl set-default graphical.target
仮想ワークステーションを再起動します。
sudo reboot
Teradici Graphics Agent を登録する
前述のとおり、Teradici Graphics Agent を使用するにはライセンスが必要です。
Cloud Shell で、仮想ワークステーションに再接続します。
gcloud compute ssh test-vws
仮想ワークステーションで、Teradici Cloud Access Software ライセンスを有効にします。
pcoip-register-host --registration-code=registration-code
ファイアウォール ルールを作成する
PCoIP クライアントは、複数のポートを使用して仮想ワークステーションと通信します。仮想ワークステーションとの間のトラフィックを許可するようにファイアウォール ルールを設定する必要があります。
Cloud Shell で、必要なポートを開くファイアウォール ルールを作成します。
gcloud compute firewall-rules create allow-teradici \ --allow tcp:443,tcp:4172,udp:4172,tcp:60443
PCoIP クライアントを使用して仮想ワークステーションにログインする
ローカル PC で、Teradici サポートページの [PCoIP Clients] セクションに移動します。使用中のオペレーティング システムに対応する PCoIP Client アプリケーションをダウンロードしてインストールし、起動します。
[New Connection] を選択します。
[Host Address] フィールドに、仮想ワークステーションの外部 IP アドレスを入力します。必要に応じて、接続の名前を入力できます。
接続されたら、仮想ワークステーション用に作成したユーザー名とパスワードを入力して認証します。
実行するデスクトップを選択し、[Connect] をクリックします。
数秒後に Linux のデスクトップが表示されます。
仮想ワークステーションをテストする
仮想ワークステーションをデプロイした後、さまざまなツールを使用してパフォーマンスとインタラクティビティをテストできます。
- glxgears や glmark2 などの GPU ベンチマーク ツールを実行します。これは、Linux ワークステーションでグラフィックのパフォーマンスをテストする簡単なプログラムです。
- オープンソースの 3D ソフトウェア パッケージである Blender をインストールします。
- V-Ray、Octane、Maxon など一般的なレンダラのレンダリング ベンチマーク ツールを実行します。
- Google Chrome を使用して、お気に入りのサイトの閲覧や、YouTube 動画の再生を行います。
トラブルシューティング
ここでは、ワークステーションをセットアップまたは接続する際に発生する可能性のある問題を示します。
NVIDIA-SMI が失敗した
問題: NVIDIA-SMI が NVIDIA ドライバと通信できなかったために失敗した。
解決策: ドライバを再インストールして、nvidia-smi
を再度実行してみてください。コマンドが引き続き失敗する場合は、NVIDIA ドライバをアンインストールし、dkms モジュールをインストールしてから、ドライバを再インストールしてください。これにより dkms モジュールがカーネルに登録されるため、カーネルの更新でグラフィック ドライバの再インストールが不要になります。
X11 が起動しない
問題: X11 が意図したとおりに起動しない。
解決策: Nouveau グラフィック ドライバがインストール環境に存在しないことを確認します。Nouveau ドライバは、一部の Linux バージョンに含まれるオープンソースのグラフィック ドライバです。Nouveau ドライバが存在するかどうかを確認するには、仮想ワークステーションのシェルで次のコマンドを実行します。
lsmod | grep nouveau
結果が表示されたら、認定 NVIDIA グラフィック ドライバをインストールする前に、次の手順に従って Nouveau ドライバの読み込みを無効にしてください。
仮想ワークステーションのシェルで、スーパーユーザーとしてテキスト エディタを開き、
/etc/modprobe.d/blacklist.conf
ファイルの最後に次の行を追加します。blacklist nouveau
仮想ワークステーションを再起動します。
sudo reboot
仮想ワークステーションが再起動したら、Cloud Shell から再接続します。
gcloud compute ssh test-vws
スーパーユーザーとして、
/etc/default/grub
ファイルを編集します。GRUB_CMDLINE_LINUX
という名前のエントリを探します。存在しない場合は追加し、そのエントリに次の値を追加します。rd.driver.blacklist=nouveau nouveau.modeset=0
この値が引用符で囲まれていることを確認してください。例:
GRUB_CMDLINE_LINUX="crashkernel=auto console=ttyS0,38400n8 rd.driver.blacklist=nouveau nouveau.modeset=0"
変更を反映するために新しい GRUB 構成を生成します。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
仮想ワークステーションを再起動します。
sudo reboot
仮想ワークステーションが再起動したら、Cloud Shell から再接続します。
gcloud compute ssh test-vws
Nouveau ドライバが存在しないことを確認します。
lsmod | grep nouveau
空の文字列は、Nouveau ドライバがインストールされていないことを意味します。Nouveau ドライバの詳細については、NVIDIA のドキュメントの Common Problems をご覧ください。
仮想ワークステーションに接続できない
問題: PCoIP ゼロクライアントを使用して仮想ワークステーションに接続できない。
解決策: 仮想ワークステーションに接続する前に、ゼロクライアントにファームウェアのバージョン 6.1 以降がインストールされていることを確認します。詳細については、Teradici の担当者にお問い合わせください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
チュートリアルが終了したら、Google Cloud で作成したリソースをクリーンアップして今後料金が発生しないようにします。
仮想ワークステーションを停止する
仮想ワークステーションを停止すると、永続ディスクの費用が発生しますが、いつでも再起動できます。仮想ワークステーションを停止するには、Cloud Shell で次のコマンドを実行します。
gcloud compute instances stop test-vws
プロジェクトを削除する
- Cloud Console で [リソースの管理] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
すべてのコンポーネントの削除
次のステップ
- 仮想 GPU による高速 Windows ワークステーションの作成方法を学習する。
- グラフィック ワークロード用 NVIDIA GRID GPU について詳しく学習する。
- NVIDIA Quadro Virtual Data Center Workstation ソフトウェアについて詳しく学習する。
- Teradici Cloud Access Software について詳しく学習する。
- Teradici PCoIP と他のリモート デスクトップ プロトコルの違いについて詳しく学習する。
- Google Cloud Marketplace で Teradici の事前構成済みの仮想ワークステーション(Windows 用、Linux 用)を試す。
- Google Cloud のその他の機能を試す。チュートリアルをご覧ください。