PVSアクセラレータ
XenServerのPVSアクセラレータ機能には、XenServerおよびCitrix Provisioningのユーザー向けの追加機能があります。Citrix Provisioningは、Citrix Virtual Apps and DesktopsまたはCitrix DaaSのイメージ管理とホスティングでよく使われます。PVSアクセラレータにより、既に申し分のないXenServerとCitrix Provisioningの組み合わせが大幅に改善されます。これにより、以下を含む機能が改善されます:
-
データの局所性: メモリ、SSD、およびNVMデバイスのパフォーマンスおよび局所性を読み取り要求に利用しながら、ネットワーク利用を大幅に削減します。
-
エンドユーザーエクスペリエンスの向上: データの局所性により、キャッシュされたターゲットデバイス(仮想マシン)の読み取りI/O遅延が短縮され、エンドユーザーアプリケーションの速度が向上します。
-
仮想マシンの起動およびブートストームの高速化: 読み取りI/O遅延の短縮および効率の改善により、仮想マシンの起動が高速化し、短時間のうちに多数のデバイスが起動する場合のパフォーマンスがより速くなります。
-
ハイパーバイザーホストの追加によるスケールアウトの簡素化: XenServerホスト全体でストレージの負荷が効率的に分散されることにより、必要なCitrix Provisioningサーバーの数が少なくなります。ピーク負荷は元のホスト内のキャッシュを使用して処理されます。
-
TCOの削減およびインフラストラクチャ要件の簡素化: Citrix Provisioningサーバーの数が減ることによってハードウェアおよびライセンス要件が緩和され、管理オーバーヘッドも低減されます。解放された容量はワークロードに使用できます。
メモ:
PVSアクセラレータは、XenServer Premium Editionユーザーが利用できます。PVSアクセラレータ機能を使用するには、Citrixライセンスサーバーを11.14以降にアップグレードする必要があります。
UEFI対応仮想マシンでPVSアクセラレータを使用するには、Citrix Provisioning 1906以降を使用していることを確認してください。
PVSアクセラレータの動作
PVSアクセラレータは、XenServerのコントロールドメイン(Dom0)に格納されているプロキシメカニズムを採用しています。この機能が有効化されると、Citrix Provisioningのターゲットデバイス(仮想マシン)の読み取り要求はXenServerホストマシン上で直接キャッシュされます。これらの要求は、物理メモリやストレージリポジトリでキャッシュされます。XenServerホスト上の後続仮想マシンが同じ読み取り要求を行う場合、仮想ディスクはCitrix Provisioningサーバーではなくキャッシュから直接提供されます。Citrix Provisioningサーバーからのコンテンツ提供を削減することにより、ネットワークの使用およびサーバー上の処理が大幅に軽減され、仮想マシンのパフォーマンスが向上します。
注意事項
PVSアクセラレータ機能を使用する場合は、次の点を考慮する必要があります:
-
Citrix Provisioningのターゲットデバイスはプロキシのステータスを認識します。機能がインストールされたら、追加の構成は必要ありません。
-
同じVHDで複数のCitrix Provisioningサーバーが展開されていて、ファイルシステムのタイムスタンプが異なる環境では、データが複数回キャッシュされる可能性があります。この制限により、仮想ディスク向けのVHDではなくVHDX形式を使用することをお勧めします。
-
PVSサーバー通信に広いポート範囲を使用しないでください。20を超える範囲のポートをPVSサーバーに設定する必要はほとんどありません。ポート範囲が広いと、PVSアクセラレータを使用する場合の仮想マシンの起動時間が長くなることがあります。
- PVSアクセラレータが有効になった仮想マシンを起動した後、仮想マシンのキャッシュステータスはXenCenterに表示されます:
- プールまたはホストの [PVS] タブ
- 仮想マシンの [全般] タブ
-
XenServerホストでPVSアクセラレータを有効にした200を超える仮想マシンを実行することはできません。
-
ユーザーは、XenCenterのホストの [パフォーマンス] タブでRRD測定値を使用して、PVSアクセラレータの正しい操作を確認できます。詳しくは、「環境の監視と管理」を参照してください。
-
PVSアクセラレータには、Citrix Provisioning 7.13以降が必要です。
-
UEFI対応仮想マシンでPVSアクセラレータを使用するには、Citrix Provisioning 1906以降を使用していることを確認してください。
-
PVSアクセラレータは、XenServer Premium Editionユーザーが利用できます。
-
PVSアクセラレータにはライセンスサーバー11.14以降が必要です。
-
PVSアクセラレータ機能ではOVSの機能が使用されるため、ネットワークバックエンドとしてLinuxブリッジを使用しているホストではPVSアクセラレータ機能を利用できません。
-
PVSアクセラレータは、キャッシュされた仮想マシンの最初の仮想ネットワークインターフェイス(VIF)で機能します。そのため、キャッシュが機能するように、最初のVIFはCitrix Provisioningストレージネットワークに接続する必要があります。
- 現時点でPVSアクセラレータは、IPを特定のMACアドレスにバインドするネットワークポートでは使用できません。このスイッチの機能は「IPソースガード」とも呼ばれます。このような環境でPVSアクセラレータを有効にすると、PVSターゲットの起動に失敗し、「ログイン要求がタイムアウトしました」というエラーメッセージが表示されます。
PVSアクセラレータを有効にする
PVSアクセラレータ機能を有効にするには、XenServerとCitrix Provisioningで次の設定を完了する必要があります。
- XenCenterまたはxe CLIを使用したXenServerでのPVSアクセラレータの構成この構成には、Citrix Provisioningサイトの追加およびCitrix Provisioningキャッシュストレージの格納先の指定などがあります。
- CLIの手順については、次のセクションの「CLIを使用したXenServerでのPVSアクセラレータの構成」を参照してください。
- XenCenterを使用したPVSアクセラレータの構成について詳しくは、XenCenterドキュメントの「PVSアクセラレータ」を参照してください。
- XenServerでPVSアクセラレータを構成した後は、PVS UIを使用してPVSサイトのキャッシュ構成を完了してください。詳細な手順については、「Citrix Provisioningでキャッシュ構成を完了する」を参照してください。
ポートの構成
Citrix Provisioning Servicesでは、以下のポートが使用されます:
- 6901、6902、6905:Provisioning Servicesサーバーの送信方向の通信に使用されます(ターゲットデバイス宛のパケット)
- 6910:ターゲットデバイスのCitrix Provisioning Servicesでのログオンに使用されます
- ターゲットデバイスのポートは構成可能です。デフォルトのポートは6901です。
- サーバーのポート範囲は構成可能です。デフォルトの範囲は6910〜6930です。
Citrix Provisioning Servicesで使用されるポートについて詳しくは、「XenServerが使用する通信ポート」を参照してください。
XenServerで構成されたポート範囲には、使用中のすべてのポートが含まれている必要があります。たとえば、デフォルトの構成では、6901~6930を使用します。
注:
PVSサーバー通信に広いポート範囲を使用しないでください。20を超える範囲のポートをPVSサーバーに設定する必要はほとんどありません。ポート範囲が広いと、PVSアクセラレータを使用する場合の仮想マシンの起動時間が長くなることがあります。
CLIを使用してXenServerでPVSアクセラレータを構成する
-
XenServerでCitrix Provisioningサイト構成を作成するには、次のコマンドを実行します:
PVS_SITE_UUID=$(xe pvs-site-introduce name-label=My PVS Site)
-
プールの各ホストに、どのキャッシュを使用するかを指定します。キャッシュをストレージリポジトリ(SR)に格納するか、コントロールドメインのメモリに格納するかを選択できます。
ストレージリポジトリでキャッシュストレージを構成する
キャッシュストレージとしてストレージリポジトリ(SR)を使用する場合は、次の特性を考慮する必要があります:
長所:
- 最新の読み取りデータがメモリにベストエフォートベースでキャッシュされるため、このデータには、コントロールドメインメモリを使用した場合と同様に迅速にアクセスできます。
- キャッシュは、SRに格納されている場合はより大きくなる可能性があります。SRの領域のコストは通常、メモリ領域のコストのほんの一部です。つまり、SRでのキャッシュはCitrix Provisioningサーバーの負荷をより軽減することができます。
- コントロールドメインのメモリ設定を変更する必要はありません。キャッシュによって、コントロールドメインで利用可能なメモリが自動的に使用されるため、コントロールドメインがメモリ不足になることはありません。
- キャッシュVDIは共有ストレージに格納できます。ただし、この選択はほとんど意味がありません。この方法は、共有ストレージがCitrix Provisioningサーバーよりも大幅に速度で優っている場合にのみ意味があります。
- キャッシュストレージには、ファイルベースまたはブロックベースのストレージリポジトリのどちらでも使用できます。
短所:
- SRの動作が遅く、要求されたデータがメモリ層にない場合、キャッシュプロセスがリモートのCitrix Provisioningサーバーよりも遅くなることがあります。
- 共有ストレージに格納されているキャッシュされたVDIは、ホスト間で共有できません。キャッシュされたVDIは1つのホストに固有のものです。
ストレージリポジトリでキャッシュストレージを構成するには、次の手順を実行します:
-
次のコマンドを実行して、キャッシュに使用されるSRのUUIDを検索します:
xe sr-list name-label=Local storage host=host-name-label --minimal) <!--NeedCopy-->
-
キャッシュストレージを作成します。
xe pvs-cache-storage-create host=host-name-label pvs-site-uuid=PVS_SITE_UUID \ sr-uuid=SR_UUID size=10GiB <!--NeedCopy-->
注:
ストレージリポジトリ(SR)を選択していると、この機能はSRで指定されたキャッシュの最大サイズまで使用します。また、使用可能なコントロールドメインメモリを、ベストエフォートキャッシュ層として暗黙的に使用します。
コントロールドメインメモリでのキャッシュストレージの構成
キャッシュストレージとしてコントロールドメインメモリを使用する場合は、次の特性を考慮する必要があります。
長所:
メモリを使用すると、キャッシュへのアクセスまたはキャッシュの入力を行う際の読み取り/書き込みのパフォーマンスが常に高速になります。
短所:
-
キャッシュストレージに使用されるRAMが仮想マシンに使用できないため、ハードウェアのサイズを適切に設定する必要があります。
-
キャッシュストレージを構成する前に、コントロールドメインのメモリを拡張する必要があります。
注:
キャッシュをコントロールドメインのメモリに格納する場合、この機能によってコントロールドメインのメモリが指定されたキャッシュサイズまで使用されます。このオプションは、追加のメモリがコントロールドメインに割り当てられた後でのみ使用できるようになります。コントロールドメインのメモリ量を増やす方法については、「コントロールドメインに割り当てられるメモリ量を変更する」を参照してください。
ホストのコントロールドメインに割り当てられるメモリの量を増やすと、追加メモリを明示的にPVSアクセラレータに割り当てることができます。
コントロールドメインメモリでキャッシュストレージを構成するには、次の手順を実行します:
-
次のコマンドを実行して、キャッシュに使用されるホストのUUIDを検索します:
xe host-list name-label=host-name-label --minimal <!--NeedCopy-->
-
特別な種類(
tmpfs
)のSRを作成します:xe sr-create type=tmpfs name-label=MemorySR host-uuid=HOST_UUID device-config:uri="" <!--NeedCopy-->
注:
特別な種類の
tmpfs
SRの場合、必須パラメーターname-label
の値は無視され、代わりに固定名が使用されます。 -
次のコマンドを実行して、キャッシュストレージを作成します。
xe pvs-cache-storage-create host-uuid=HOST_UUID pvs-site-uuid=PVS_SITE_UUID sr-uuid=SR_UUID size=1GiB <!--NeedCopy-->
SR_UUID
は、手順bで作成されたSRのUUIDです。
-
Citrix Provisioningでキャッシュ構成を完了する
XenServerでPVSアクセラレータを構成した後、次の手順を実行してCitrix Provisioningサイトのキャッシュ構成を完了します。
Citrix Provisioning管理コンソールで、(展開の種類に応じて)Citrix Virtual Desktopsセットアップウィザードまたは仮想マシンのストリーミングウィザードを使用してプロキシ機能にアクセスします。この2つのウィザードは似たようなウィザードで、多くの画面を共有していますが、次の相違点があります。
-
Citrix Virtual Desktopsセットアップウィザードは、Citrix Virtual Desktopsを使用して制御されるXenServerハイパーバイザーで実行される仮想マシンの構成に使用します。
-
仮想マシンのストリーミングウィザードは、ホストで仮想マシンを作成するために使用され、Citrix Virtual Desktopsには使用されません。
Citrix Provisioning管理コンソールを開始します:
-
Citrix Provisioningサイトに移動します。
-
Citrix Provisioningサイトを選択し、右クリックしてコンテキストメニューを表示します。
-
環境に応じて適切なウィザードを選択します。[すべての仮想マシンのPVSアクセラレータを有効にします] オプションを選択して、PVSアクセラレータ機能を有効にします。
-
初めて仮想ディスクキャッシュを有効化する場合は、ストリーム配信仮想マシンのセットアップウィザードにXenServerの画面が表示されます。Citrix Provisioningサイトと関連付けられていないXenServerで構成されたすべてのCitrix Provisioningサイトの一覧が表示されます。一覧を使用して、PVSアクセラレータを適用するCitrix Provisioningサイトを選択します。この画面は、同じXenServerホストを使用して同じCitrix Provisioningサイトのウィザードを実行する場合は表示されません。
-
[次へ]をクリックしてキャッシュ構成を完了します。
-
[完了] をクリックしてCitrix Virtual Desktopsまたはストリーム配信された仮想マシンをプロビジョニングし、選択したCitrix ProvisioningをXenServerのPVSアクセラレータに関連付けます。この手順が完了すると、PVSアクセラレータ構成 ウィンドウの [PVSサーバー表示] ボタンがXenCenterで有効になります。[PVSサーバーの表示] ボタンをクリックすると、Citrix Provisioningサイトに関連付けられたすべてのPVSサーバーのIPアドレスが表示されます。
キャッシュ操作
PVSアクセラレータ機能では、以下がキャッシュされます。
-
仮想ディスクからの読み取り(書き込みキャッシュからの書き込みや読み取りはキャッシュされません)
-
イメージのバージョンに基づくキャッシュ。複数のVMが同じイメージのバージョンを使用する場合、これらのVMはキャッシュされたブロックを共有します
-
あらゆる非永続書き込みキャッシュの種類があるデバイス
-
アクセスモードが「標準イメージ」の仮想ディスク。アクセスモードが「プライベートイメージ」の仮想ディスクには機能しません
-
タイプが[実稼働]または[テスト] としてマークされているデバイス。タイプが[保守]としてマークされているデバイスはキャッシュされません
PVSアクセラレータのCLI操作
次のセクションでは、CLIを使用してPVSアクセラレータを使用する際に実行できる操作について説明します。これらの操作は、XenCenterを使用しても実行できます。詳しくは、XenCenterドキュメントの「PVSアクセラレータ」を参照してください。
Citrix Provisioningサーバーアドレス、およびCitrix Provisioningで構成されたポートを表示する
PVSアクセラレータは、仮想マシンとCitrix Provisioningサーバー間のネットワークトラフィックを最適化することによって機能します。Citrix Provisioningサーバーの構成を完了すると、Citrix ProvisioningサーバーによってXenServerにpvs-server
オブジェクトがIPとポートとともに入力されます。PVSアクセラレータはその後、特に仮想マシンとCitrix Provisioningサーバー間のトラフィックを最適化するためにこの情報を使用します。次のコマンドを使用して、構成されたCitrix Provisioningサーバーを一覧表示できます:
xe pvs-server-list pvs-site-uuid=PVS_SITE_UUID params=all
<!--NeedCopy-->
キャッシュ用に仮想マシンを構成する
次のいずれかのツールを使用して、仮想マシンに対するPVSアクセラレータを有効化できます:
- Citrix Provisioning CLI
- Citrix Virtual Desktopsインストールウィザード
- ストリーム配信仮想マシンセットアップウィザード
- XenCenter
- xe CLI
xe CLIは、仮想マシンのVIFを使用してPVSアクセラレータを設定します。仮想マシンのVIFをCitrix ProvisioningサイトとリンクするCitrix Provisioningプロキシを作成します。
仮想マシンを構成するには、次の手順を実行します:
-
キャッシュを有効にする仮想マシンの最初のVIFを見つけます。
VIF_UUID=$(xe vif-list vm-name-label=pvsdevice_1 device=0 --minimal) <!--NeedCopy-->
-
Citrix Provisioningプロキシを作成します。
xe pvs-proxy-create pvs-site-uuid=PVS_SITE_UUID vif-uuid=$VIF_UUID <!--NeedCopy-->
仮想マシンのキャッシュを無効にする
仮想マシンのVIFとpvs-site
をリンクするCitrix Provisioningプロキシを破棄することによって、仮想マシンに対してPVSアクセラレータを無効化することができます。
-
仮想マシンの最初のVIFを見つけます:
VIF_UUID=$(xe vif-list vm-name-label=pvsdevice_1 device=0 --minimal) <!--NeedCopy-->
-
仮想マシンのCitrix Provisioningプロキシを見つけます:
PVS_PROXY_UUID=$(xe pvs-proxy-list vif-uuid=$VIF_UUID --minimal) <!--NeedCopy-->
-
Citrix Provisioningプロキシを破棄します:
xe pvs-proxy-destroy uuid=$PVS_PROXY_UUID <!--NeedCopy-->
ホストまたはサイトのPVSアクセラレータストレージを削除する
ホストまたはサイトのPVSアクセラレータストレージを削除するには、次の手順を実行します:
-
ストレージを破棄するホストを見つけます:
HOST_UUID=$(xe host-list name-label=HOST_NAME --minimal) <!--NeedCopy-->
-
オブジェクトのUUIDを見つけます:
PVS_CACHE_STORAGE_UUID=$(xe pvs-cache-storage-list host-uuid=$HOST_UUID --minimal) <!--NeedCopy-->
-
オブジェクトを破棄します:
xe pvs-cache-storage-destroy uuid=$PVS_CACHE_STORAGE_UUID <!--NeedCopy-->
サイトのPVSアクセラレータ構成を破棄する
サイトのPVSアクセラレータ構成を破棄するには、次の手順を実行します:
-
Citrix Provisioningサイトを見つけます:
PVS_SITE_UUID=$(xe pvs-site-list name-label=My PVS Site) <!--NeedCopy-->
-
次のコマンドを実行して、Citrix Provisioningサイトを破棄します:
xe pvs-site-forget uuid=$PVS_SITE_UUID <!--NeedCopy-->