PoCガイド:Citrix DaaSによるGoogle Cloud Platform(GCP)ゾーン選択のサポート
概要
Citrix DaaS サービスは、Google Cloud Platform(GCP)でのゾーン選択をサポートし、単独テナントノード機能を有効にします。Citrix Studio で仮想マシンを作成するゾーンを指定します。次に、単一テナントノードを使用すると、同じハードウェア上で仮想マシンをグループ化したり、他のプロジェクトから分離したりできます。また、単一テナントノードを使用すると、ネットワークアクセス制御ポリシー、セキュリティ、および HIPAA などのプライバシー要件に準拠することもできます。
このドキュメントでは、次の内容について説明します。
-
Citrix DaaS 環境における Google Cloud Platform でのゾーン選択をサポートするように Google Cloud 環境を構成する。
-
唯一のテナントノードでの仮想マシンのプロビジョニング。
-
一般的なエラー状態とその解決方法。
前提条件
Google Cloud プロジェクトでマシンカタログをプロビジョニングするには、Google Cloud と Citrix DaaS に関する既存の知識が必要です。
Citrix DaaS の GCP プロジェクトをセットアップするには、 こちらの手順に従います。
Google Cloud 単一のテナント
単一のテナンシーは、プロジェクトの VM のみをホストする専用の物理コンピュートエンジンサーバーである単一のテナントノードへの排他的なアクセスを提供します。唯一のテナントノードを使用すると、同じハードウェア上で仮想マシンをグループ化したり、仮想マシンを分離したりできます。これらのノードは、BYOL (BYOL) シナリオの専用ハードウェア要件を満たすのに役立ちます。
Sole Tenant ノードを使用すると、お客様は、ネットワークアクセス制御ポリシー、セキュリティ、および HIPAA などのプライバシー要件に準拠できます。VMは、単一テナントノードが割り当てられている場所に作成できます。この機能は、Win-10ベースの VDI 展開をサポートします。Sole Tenant に関する詳細な説明は、 Google のドキュメントサイトにあります。
Google Cloud の単一のテナントノードの予約
単一テナントノードを予約するには、Google クラウドコンソールメニューにアクセスして [ コンピュートエンジン ] を選択し、[ 単一テナントノード] を選択します。
単一テナントノード画面
Google Cloud 内の単一のテナントは、ノードグループにキャプチャされます。単一のテナントプラットフォームを予約する最初のステップは、ノードグループを作成することです。GCP コンソールで、[ ノードグループの作成] を選択します。
ノードグループの作成
まず、新しいノードグループを設定します。新しいノードグループ用に選択したリージョンとゾーンでは 、ドメインコントローラおよびプロビジョニングカタログに使用されるサブネットへのアクセスを許可することをお勧めします。以下に注意してください:
-
ノードグループの名前を入力します。この例では、
mh-sole-tenant-node-group-1
を使用しました。 -
リージョンを選択します。例:
us-east1
。 -
予約済みシステムが存在するゾーンを選択します。例:
us-east1-b
。
すべてのノードグループはノードテンプレートに関連付けられます。 このテンプレートは、ノードグループに予約されているシステムのパフォーマンス特性を示すために使用されます。これらの特性には、仮想 CPU の数、ノード専用のメモリの量、ノード上に作成されたマシンに使用されるマシンタイプが含まれます。
ノードテンプレートのドロップダウンメニューを選択します。次に、[ ノードテンプレートの作成] を選択します。
ノードテンプレートを作成する
新しいテンプレートの名前を入力します。例:mh-sole-tenant-node-group-1-template-n1
。
次のステップは、 ノードタイプを選択することです。ドロップダウンメニューで、 ニーズに最も適したノードタイプを選択します 。
注:
さまざまなノードタイプの詳細については、この Google ドキュメントページを参照してください 。
ノードタイプを選択したら、[ Create] をクリックします。
ノードグループの作成を完了します
ノードテンプレートの作成後、[ ノードグループの作成 ] 画面が再表示されます。[ 作成] をクリックします。
VDAマスターイメージを作成する
プロビジョニングされたカタログからマシンを作成および準備するときに、カタログ作成プロセスでマシンイメージを 単一-テナントノードに展開するには、追加の手順を実行する必要があります。
Google Cloudのマシンインスタンスには、 ノードアフィニティラベルと呼ばれるプロパティがあります。ソールテナント環境にデプロイされたカタログのマスターイメージとして使用されるインスタンスには、 ターゲットノードグループの名前と一致するノードアフィニティラベルを付ける必要があります。アフィニティラベルを適用するには、次の 2 つがあります。
-
インスタンスの作成時に Google クラウドコンソールでラベルを設定します。
-
gcloud コマンドラインを使用して、既存のインスタンスにラベルを設定します。
両方のアプローチの例を次に示します。
インスタンスの作成時にノードのアフィニティラベルを設定する
このセクションでは、GCP インスタンスの作成に必要なすべての手順について説明するわけではありません。ノードアフィニティラベルを設定するプロセスを理解するための十分な情報とコンテキストを提供します。上記の例では、ノードグループにmh-sole-tenant-node-grouop-1
という名前が付けられたことを思い出してください。これは、 インスタンスのノードアフィニティラベルに適用する必要があるノードグループです 。
新規インスタンス画面
新しいインスタンス画面が表示されます。管理、セキュリティ、ディスク、ネットワーク、および唯一のテナンシーに関連する設定を管理するためのセクションが画面の下部に表示されます。
新しいインスタンスを設定するには、次の手順に従います。
-
セクションを 1 回クリックして、[ 管理設定 ] パネルを開きます。
-
次に、[ 唯一のテナンシー ] をクリックして、関連する設定パネルを表示します。
唯一のテナンシー設定
ノードアフィニティラベルを設定するためのパネルが表示されます 。[ 参照 ] をクリックして、現在選択されている Google Cloud プロジェクトで使用可能なノードグループを表示します 。
ノードグループの選択画面
これらの例で使用した Google Cloud プロジェクトには、前の例で作成したノードグループが 1 つ含まれています。
ノード・グループを選択するには、次の手順に従います。
-
リストから目的のノードグループをクリックします。
-
次に、パネルの下部にある [ 選択 ] をクリックします。
アフィニティラベルを設定する
前のステップで [Select] をクリックすると、 インスタンスの作成画面に戻ります。[ Node affinity labels ] フィールドには、このマスターイメージから作成されたカタログが指定されたノードグループに展開されることを確認するために必要な値が含まれます。
既存のインスタンスのノードアフィニティラベルの設定
既存のインスタンスのノードアフィニティラベルを設定するには 、Google Cloud Shell にアクセスし、 gcloud compute instances
コマンドを使用します。
gcloud compute instances コマンドの詳細については、Google デベロッパーツールページを参照してください。
gcloud
コマンドには、次の3つの情報を含めます:
-
仮想マシンの名前。この例では、
s2019-vda-base
という名前の既存の仮想マシンを使用しています。 -
ノードグループの名前。以前に定義したノードグループ名は
mh-sole-tenant-node-grouop-1
です。 -
インスタンスが存在するゾーン。この例では、仮想マシンは
us-east-1b
ゾーンに存在します。
Google Cloudシェルを開く方法
次の画像に表示されるボタンは、 Googleクラウドコンソールウィンドウの右上にあります 。クラウドシェルボタンをクリックします 。
新鮮なクラウドシェルウィンドウ
クラウドシェルが最初に開くと、次のようになります。
gcloud
コマンドを使用して、ノードのアフィニティラベルを設定します
クラウドシェルウィンドウで次のコマンドを実行します 。
gcloud compute instances set-scheduling "s2019-vda-base" --node-group="mh-sole-tenant-node-group-1" --zone="us-east1-b"
インスタンスのアフィニティラベル設定の確認
最後に、 s2019-vda-base
インスタンスの詳細を確認します。
グーグル共有VPC
共有 VPC で Google 単独テナントを使用する場合は、「 Citrix DaaS による GCP 共有 VPC のサポート 」ドキュメントを参照してください。共有 VPC のサポートには、Google Cloud のアクセス許可とサービスアカウントに関連する追加の設定手順が必要です。
マシン カタログを作成する
このドキュメントの前の手順を実行した後、マシンカタログを作成できます。Citrix Cloudにアクセスし、Citrix Studio コンソールに移動するには、次の手順に従います。
Citrix Studio メインページ
Citrix Studio で、[ マシンカタログ]を選択します。
マシンカタログの作成
[ マシンカタログの作成]を選択します。
紹介画面
[ 次へ ] をクリックして、設定プロセスに進みます。
マシンの種類
カタログ内のマシンのオペレーティングシステムのタイプを選択します。[次へ] をクリックします:
マシン管理
カタログで電源管理されたマシンを使用するデフォルト設定を受け入れます。次に、MCSリソースを選択します。この例では、GCP1-useast1(Zone:My Resource Location)
という名前のリソースを使用しています。[次へ] をクリックします:
注: これらのリソースは、以前に作成したホスト接続から取得され、ネットワークおよびドメインコントローラや予約済みの唯一のテナントなどのリソースを表します。これらの要素は、カタログを展開するときに使用されます。ホスト接続を作成するプロセスについては、このドキュメントでは説明しません。詳細については、「 接続とリソース」ページを参照してください。
マスターイメージ
次のステップでは、カタログのマスターイメージを選択します。リザーブドノードグループを使用するには、ノードアフィニティ値がそれに応じて設定されたイメージを選択する必要があります** 。この例では、前の例(s2019-vda-base
)のイメージを使用します。
[次へ] をクリックします:
ストレージ
この画面には、マシンカタログの仮想マシンに使用されるストレージの種類が表示されます。この例では、Standard Persistent Disk
を使用します。
[次へ] をクリックします:
仮想マシン
この画面には、仮想マシンの数と、マシンがデプロイされているゾーンが表示されます。この例では、カタログに 3 台のマシンを指定しました。マシンカタログに 単一テナントノードグループを使用する場合は、リザーブドノードグループを含むゾーンのみを選択する必要があります。この例では、単一のノードグループがあり、それがゾーンus-central1-a
に存在するため、選択された唯一のゾーンです。
[次へ] をクリックします:
ディスク設定
この画面には、ライトバックキャッシュを有効にするオプションがあります。この例では、 この設定は有効にしていません 。
[次へ] をクリックします:
Active Directory コンピュータアカウント
プロビジョニングプロセス中、MCSはドメインコントローラと通信し、作成されるすべてのマシンのホスト名を作成します。
-
マシンが作成されるドメインを選択します。
-
マシン名を生成するときに、 アカウントの名前付けスキームを指定します 。
この例のカタログには 3 台のマシンがあり、マシンの命名スキームMySTVms-\#\#
が指定されているため、次の名前が付けられます。
-
MySTVms-01
-
MySTVms-02
-
MySTVms-03
[次へ] をクリックします:
ドメイン資格情報
前の手順で説明した、ドメインコントローラーとの通信に使用する資格情報を指定します。
-
[ 認証情報の入力] を選択します。
-
認証情報を入力し、「 OK」をクリックします。
概要
この画面には、カタログ作成プロセス中の重要な情報の概要が表示されます。最後の手順では、カタログ名と説明 (オプション) を入力します。この例では、 カタログ名はマイソールテナントカタログです。
カタログ名を入力し、[ 完了] をクリックします。
カタログ作成プロセスが完了すると、Citrix Studio コンソールは次のように表示されます。
Google クラウドコンソールで確認
Google コンソールを使用して、マシンがノードグループに期待どおりに作成されたことを確認します。
非ソールテナントカタログの移行
現在、Google Cloud の一般/共有スペースから唯一のテナントノードへのマシンカタログの移行はできません。
一般的に発生する問題とエラー
相互依存関係を含む複雑なシステムを操作すると、予期しない状況が発生します。このセクションでは、CVAD および GCP 単一テナントを使用するセットアップおよび設定を実行するときに発生する一般的な問題とエラーのいくつかを説明します。
カタログは正常に作成されましたが、マシンがリザーブドノードグループにプロビジョニングされていません
カタログを正常に作成した場合、最も可能性の高い理由は次のとおりです。
-
ノードアフィニティラベルがマスターイメージに設定されていません。
-
ノードアフィニティラベルの値が、ノードグループの名前と一致しません。
-
カタログ作成プロセス中に [ 仮想マシン ] 画面で不適切なゾーンが選択されました。
カタログの作成が「指定されたプロジェクトおよびゾーンにソールテナントノードがないため、インスタンスをスケジュールできませんでした」で失敗する
Citrix Studio ダイアログボックスウィンドウで[ 詳細の表示 ]を選択すると、この状況でこのエラーが発生します。
System.Reflection.TargetInvocationException: One or more errors occurred.
Citrix.MachineCreationAPI.MachineCreationException: One or more errors occurred.
System.AggregateException: One or more errors occurred.
Citrix.Provisioning.Gcp.Client.Exceptions.OperationException:
Instance could not be scheduled due to absence of sole-tenant nodes in
specified project and zone.
このメッセージを受信する原因としては、次のうちの 1 つまたは複数が考えられます。
-
リザーブドソールテナントノードがないゾーンに新しいカタログをプロビジョニングしようとしています。[ 仮想マシン ] 画面でゾーンの選択が正しいことを確認します。
-
唯一のテナントノードは予約されていますが、VDAマスターノードのアフィニティラベルの値がリザーブドノードの名前と一致しません。 [インスタンス作成時のノードアフィニティラベルの設定と既存インスタンスのノードアフィニティラベルの設定の](#set-the-node-affinity-label-for-an-existing-instance)2 つのセクションを参照してください。
既存のカタログのアップグレードが「指定されたプロジェクトおよびゾーンにソールテナントノードがないため、インスタンスをスケジュールできませんでした」で失敗する
これが発生するのは、次の 2 つのケースです。
-
Sole Tenancy および Zone Selection を使用して既にプロビジョニングされている既存の単独テナントカタログをアップグレードしている。この原因は、前のエントリ 「指定されたプロジェクトとゾーンに単一テナントノードがないため、インスタンスをスケジュールできませんでした」でカタログ作成が失敗するのと同じです。
-
既存の非ソールテナントカタログをアップグレードしており、カタログ用のマシンでプロビジョニング済みの各ゾーンで唯一のテナントノードが予約されていません 。このケースは移行と見なされます。 移行の目的は、 Google Cloud コモン/共有ランタイムスペースから Sole テナントグループにマシンを移行することです 。「 非唯一のテナントカタログの移行」に記載されているように、これは不可能です。
カタログのプロビジョニング中に不明なエラーが発生しました
カタログの作成時に次のようなダイアログが表示された場合は、
[ 詳細を表示 ] を選択すると、次のような画面が生成されます。
確認できることはいくつかあります。
-
ノードグループテンプレートで指定されているマシンタイプが、マスターイメージインスタンスのマシンタイプと一致していることを確認します。
-
マスターイメージの [マシンタイプ] に 2 つ以上の CPU があることを確認します。
テスト計画
このセクションでは、Google Cloud 単一テナントの CVAD サポートについて触れることを検討したい演習をいくつか紹介します。
単一テナントカタログ
単一のゾーンでグループノードを予約し、永続カタログと非永続カタログの両方をそのゾーンにプロビジョニングします。次の手順では、Google Cloud コンソールを使用してノードグループを監視し、適切な動作を確認します。
-
マシンの電源を切ります。
-
マシンを追加します。
-
すべてのマシンの電源を入れます。
-
すべてのマシンの電源を切ります。
-
一部のマシンを削除します。
-
マシンカタログを削除します。
-
カタログの更新
-
カタログを非ソールテナントテンプレートからソールテナントテンプレートに更新
-
Sole テナントテンプレートから非ソールテナントテンプレートへのカタログの更新
2 つのゾーンカタログ
上記の演習と同様ですが、2 つのノードグループを予約し、あるゾーンに永続カタログを、別のゾーンに非永続カタログをプロビジョニングします。次の手順では、Google Cloud コンソールを使用してノードグループを監視し、適切な動作を確認します。
-
マシンの電源を切ります。
-
マシンを追加します。
-
すべてのマシンの電源を入れます。
-
すべてのマシンの電源を切ります。
-
一部のマシンを削除します。
-
マシンカタログを削除します。
-
カタログを更新します。
-
非ソールテナントテンプレートから唯一のテナントテンプレートにカタログを更新します。
-
カタログを 1 つのテナントテンプレートから非ソールテナントテンプレートに更新します。