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の展開」(#intellicache-deployment)を参照してください。
シンプロビジョニングは、利用可能なストレージの使用を最適化する方法です。このアプローチにより、共有ストレージではなくローカルストレージをより多く使用できます。これは、データブロックのオンデマンド割り当てに依存しています。他のアプローチでは、すべてのブロックが事前に割り当てられます。シンプロビジョニングを使用すると、管理者はストレージリポジトリ(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 Virtual Apps and Desktops から Citrix Studio で XenServer に接続する場合、IntelliCache を使用することを選択します。XenServer でローカル SR のシンプロビジョニングが有効になっている場合、Citrix Studio は XenServer への接続を作成するときに、共有ストレージデバイスの負荷を軽減するために IntelliCache を使用する オプションを表示します。
詳細については、Citrix Virtual Apps and Desktops 製品ドキュメント を参照してください。
IntelliCache を使用した VM の動作
VDI フラグ on-boot は VM の起動時の VM VDI の動作を決定し、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 が別のホストに移行したり、シャットダウンされたりしても、デルタディスクキャッシュファイルはホストから削除されません。