IntelliCache™
XenServer®をIntelliCacheと組み合わせて使用すると、共有ストレージとローカルストレージを組み合わせて使用できるようになり、ホスト型仮想デスクトップインフラストラクチャの展開がより費用対効果の高いものになります。これは、多数の仮想マシン (VM) がすべて共通のOSイメージ (プライマリイメージ) を共有する場合に特にメリットがあります。ストレージアレイへの負荷が軽減され、パフォーマンスが向上します。さらに、ローカルストレージが共有ストレージからプライマリイメージをキャッシュするため、共有ストレージとの間のネットワークトラフィックも削減されます。
IntelliCacheは、VMホスト上のローカルストレージにVMのデータをキャッシュすることで機能します。このローカルにキャッシュされたデータには、以下が含まれます。
- プライマリイメージ (VMの親VDI) のキャッシュされたコピー。このファイルはシンプロビジョニングされており、読み取り専用です。共有ストレージ上のプライマリイメージVDIからデータが読み取られると、このファイルにデータが入力されます。多くのVMが共通のプライマリイメージVDIを共有している場合、あるVMは別のVMからキャッシュに読み込まれたデータを使用できます。共有ストレージ上のプライマリイメージへのそれ以上のアクセスは不要です。
- VDIごとのデルタディスクのキャッシュされたコピー。変更はこのローカルデルタディスクに書き込むことができます。非永続VMの場合、ローカルにキャッシュされたデルタディスク内のデータはVM起動時に破棄されます。永続VMの場合、ローカルにキャッシュされたデルタディスク内のデータは、VM起動時に共有ストレージ上のデルタディスクに書き戻されます。
前提条件
IntelliCache機能には、以下の要件があります。
-
Premium Editionライセンス: IntelliCacheは、Citrix Virtual DesktopsでXenServer Premium Editionを使用している場合にのみサポートされます。
-
ストレージ: IntelliCacheを使用するには、キャッシュされたデータ用のローカルSRと、ソース仮想ディスクイメージ (VDI) 用の共有SRの両方が必要です。これらのSRはIntelliCache VM専用に使用してください。従来の仮想マシンとIntelliCache VMを同じSR上で混在させないでください。
-
共有ストレージ: ソースVDIをホストするために使用される共有ストレージは、以下のいずれかのタイプである必要があります。
- NFS
- SMB3
- 共有LVM (iSCSIまたはHBA)
-
ローカルストレージ: 可能な限り最速のデータ転送を確保するために、高性能ローカルストレージデバイスを使用することをお勧めします。たとえば、ソリッドステートディスクまたは高性能RAIDアレイを使用してください。ローカルディスクのサイズを設定する際には、データスループットとストレージ容量の両方を考慮してください。
IntelliCacheには、シンプロビジョニングされたEXT3/EXT4ローカルSRが必要です。Citrix Virtual Desktopsのローカルキャッシュが適切に機能するためには、シンプロビジョニングを有効にする必要があります。シンプロビジョニングは、XenServerのインストール時、または後でコマンドラインから有効にできます。シンプロビジョニングにより、ホストのデフォルトのローカルストレージタイプがLVMからEXT4に変更されます。詳細については、「IntelliCacheの展開」を参照してください。
シンプロビジョニングは、利用可能なストレージの使用を最適化する方法です。このアプローチにより、共有ストレージではなくローカルストレージをより多く使用できます。これは、データブロックのオンデマンド割り当てに依存しています。他のアプローチでは、すべてのブロックが事前に割り当てられます。シンプロビジョニングにより、管理者はストレージリポジトリ(SR)に接続するVMに対して、SRで利用可能なストレージよりも多くのストレージスペースを提示できます。スペースの保証はなく、LUNの割り当てはVMがデータを書き込むまでデータブロックを要求しません。
シンプロビジョニングされたSRは、内部のVMがオンデマンドでディスク容量を消費するために、物理スペースが不足する可能性があります。IntelliCache VMは、ローカルSRキャッシュが満杯になると自動的に共有ストレージにフォールバックすることで、この状態を処理します。IntelliCache VMはサイズが急速に大きくなる可能性があるため、従来の仮想マシンとIntelliCache VMを同じSRで混在させないでください。
-
IntelliCacheの展開
IntelliCache機能を使用するには、XenServerとCitrix Virtual Apps and Desktops™の両方で有効にする必要があります。
XenServerの場合
IntelliCacheを使用するには、ローカルSRのシンプロビジョニングをホストのインストール中に有効にするか、CLIを使用して実行中のホストで手動で有効にする必要があります。シンプロビジョニングにより、ホストのデフォルトのローカルストレージタイプがLVMからEXT4に変更されます。
ホストインストール時に有効にする
ホストのインストール中にシンプロビジョニングを有効にするには、Virtual Machine Storage画面で、Enable thin provisioningを選択します。このオプションは、VM VDIのローカルキャッシュに使用されるホストのローカルSRを選択します。

既存のホストをシンプロビジョニングを使用するように変換する
既存のLVMローカルSRを削除し、シンプロビジョニングされたEXT3/EXT4 SRに置き換えるには、次のコマンドを入力します。
警告:
これらのコマンドは既存のローカルSRを削除し、SR上のVMは完全に削除されます。
localsr=`xe sr-list type=lvm host=hostname params=uuid --minimal`
echo localsr=$localsr
pbd=`xe pbd-list sr-uuid=$localsr params=uuid --minimal`
echo pbd=$pbd
xe pbd-unplug uuid=$pbd
xe pbd-destroy uuid=$pbd
xe sr-forget uuid=$localsr
sed -i "s/'lvm'/'ext'/" /etc/firstboot.d/data/default-storage.conf
rm -f /var/lib/misc/ran-storage-init
systemctl restart storage-init.service
xe sr-list type=ext
<!--NeedCopy-->
ローカルキャッシュを有効にするには、次のコマンドを入力します。
xe host-disable host=hostname
localsr=`xe sr-list type=ext host=hostname params=uuid --minimal`
xe host-enable-local-storage-caching host=hostname sr-uuid=$localsr
xe host-enable host=hostname
<!--NeedCopy-->
シトリックス バーチャル アプリケーションズ アンド デスクトップス で
Citrix StudioでCitrix Virtual Apps and DesktopsからXenServerに接続する際、IntelliCacheを使用するように選択します。XenServerでローカルSRのシンプロビジョニングが有効になっている場合、XenServerへの接続を作成する際に、Citrix Studioに「共有ストレージデバイスの負荷を軽減するためにIntelliCacheを使用する」というオプションが表示されます。
詳細については、Citrix Virtual Apps and Desktops製品ドキュメントを参照してください。
IntelliCacheでのVMの動作
VMの起動時のVM VDIの動作はVDIフラグon-bootによって決定され、キャッシュ動作はVDIフラグallow-cachingによって決定されます。
これらのパラメーターに使用する値は、作成するVMの種類とその意図された用途によって異なります。
-
共有またはランダムに割り当てられたマシン向け:
-
on-bootパラメーターをresetに設定します。 -
allow-cachingパラメーターをtrueに設定します。
例:
xe vdi-param-set uuid=vdi_uuid on-boot=reset allow-caching=true <!--NeedCopy-->VMの起動時に、VDIは前回の起動時の状態に戻されます。VMの実行中に行われたすべての変更は、次回VMが起動されるときに失われます。新しいVMデータはローカルストレージにのみ書き込まれます。共有ストレージへの書き込みはありません。このアプローチにより、共有ストレージの負荷が軽減されます。ただし、VMをホスト間で移行することはできません。
ユーザーが永続的な変更を加えることができない標準化されたデスクトップを提供する予定がある場合は、このオプションを選択します。
-
-
静的または専用のマシン向け:
-
on-bootパラメーターをpersistに設定します。 -
allow-cachingパラメーターをtrueに設定します。
例:
xe vdi-param-set uuid=vdi_uuid on-boot=persist allow-caching=true <!--NeedCopy-->VM起動時、VDIは前回のシャットダウン時の状態になっています。新しいVMデータはローカルストレージと共有ストレージの両方に書き込まれます。キャッシュされたデータの読み取りは、共有ストレージへのI/Oトラフィックを必要としないため、共有ストレージの負荷が軽減されます。別のホストへのVM移行が許可され、データが読み取られると、新しいホスト上のローカルキャッシュが設定されます。
ユーザーがデスクトップに永続的な変更を加えることを許可する予定がある場合は、このオプションを選択します。
-
注:
VDIがGFS2 SR上にあるVMの場合、VMの起動時の動作は、他の種類のSR上にVDIがあるVMとは異なります。GFS2 SR上のVDIの場合、起動オプションはVM起動時ではなく、VMシャットダウン時に適用されます。
実装の詳細とトラブルシューティング
Q: IntelliCacheはライブマイグレーションおよび高可用性と互換性がありますか?
A: 仮想デスクトップがプライベートモードの場合、つまりon-boot=persistの場合、IntelliCacheでライブマイグレーションと高可用性を使用できます。
警告:
いずれかのVDIのキャッシュ動作フラグが
on-boot=resetおよびallow-caching=trueに設定されている場合、VMは移行できません。これらのプロパティを持つVMの移行試行は失敗します。
Q: ローカルキャッシュはローカルディスクのどこに存在しますか?
A: キャッシュはストレージリポジトリ (SR) 内に存在します。各ホストには、キャッシュファイルに使用する (ローカル) SRを示す構成パラメーター (local-cache-sr と呼ばれる) があります。通常、このSRはEXT3/EXT4タイプのSRです。IntelliCacheでVMを実行すると、SR内にuuid.vhdcacheという名前のファイルが表示されます。このファイルは、指定されたUUIDを持つVDIのキャッシュファイルです。これらのファイルはXenCenterには表示されません。それらを確認する唯一の方法は、dom0にログインして/var/run/sr-mount/sr-uuidの内容を一覧表示することです。
Q: キャッシュとして使用する特定のSRを指定するにはどうすればよいですか?
A: ホストオブジェクトフィールドlocal-cache-srはローカルSRを参照します。その値は、次のコマンドを実行して表示できます。
xe sr-list params=local-cache-sr,uuid,name-label
<!--NeedCopy-->
このフィールドは次のいずれかの方法で設定されます。
-
ホストのインストール後、ホストインストーラーで「シンプロビジョニングを有効にする」オプションを選択した場合、または
-
xe host-enable-local-storage-caching host=host sr-uuid=srを実行して。このコマンドは、指定されたホストが無効になっている必要があります。このコマンドを使用する際は、VM をシャットダウンしてください。
最初のオプションは EXT3/EXT4 タイプのローカル SR を使用し、ホストのインストール中に作成されます。2番目のオプションは、コマンドラインで指定された EXT3/EXT4 タイプの SR を使用します。
警告:
これらの手順は、複数のローカル SR を構成しているユーザーにのみ必要です。
Q: ローカルキャッシュはいつ削除されますか?
A: ローカルキャッシュには、次の2種類の情報が含まれています。
- プライマリイメージディスク用の共有キャッシュ。この共有キャッシュファイルは、共有ストレージからの読み取り専用 VDI をミラーリングし、個々の VDI に対してアクションが実行されても削除またはリセットされません。
-
各 VDI の VDI ごとのデルタディスクキャッシュ。非永続的な VM の場合、VDI が VM にアタッチされると(たとえば、VM の起動時)、デルタディスクキャッシュはリセットされます。このキャッシュファイルは、VDI 自体が削除されたときにのみ削除されます。VDI を削除するときにホストがオフラインの場合、起動時に実行される SR 同期によってキャッシュファイルがガベージコレクションされます。
注:
VM が別のホストに移行したり、シャットダウンされたりしても、デルタディスクキャッシュファイルはホストから削除されません。