IntelliCache™

最終公開日 : Oct 07, 2026
XenServer®とIntelliCacheを使用すると、共有ストレージとローカルストレージの組み合わせを使用できるようになるため、ホスト型仮想デスクトップインフラストラクチャの展開がより費用対効果の高いものになります。これは、多くの仮想マシン(VM)が共通のOSイメージ(プライマリイメージ)を共有する場合に特に役立ちます。ストレージアレイへの負荷が軽減され、パフォーマンスが向上します。さらに、ローカルストレージが共有ストレージからプライマリイメージをキャッシュするため、共有ストレージとの間のネットワークトラフィックが削減されます。
IntelliCacheは、VMホスト上のローカルストレージにVMのデータをキャッシュすることで機能します。このローカルキャッシュデータには以下が含まれます。
  • プライマリイメージ(VMの親VDI)のキャッシュコピー。このファイルはシンプロビジョニングされており、読み取り専用です。共有ストレージ上のプライマリイメージVDIからデータが読み取られると、このファイルにデータが格納されます。多くのVMが共通のプライマリイメージVDIを共有している場合、あるVMは別のVMからキャッシュに読み込まれたデータを使用できます。共有ストレージ上のプライマリイメージへのさらなるアクセスは不要です。
  • VDIごとのデルタディスクのキャッシュコピー。変更はこのローカルデルタディスクに書き込むことができます。非永続VMの場合、ローカルキャッシュされたデルタディスク内のデータはVMの起動時に破棄されます。永続VMの場合、ローカルキャッシュされたデルタディスク内のデータは、VMの起動時に共有ストレージ上のデルタディスクに書き戻されます。
<iframe src="https://www.youtube.com/embed/CcAcKXgcSdU" width="720px" height="480px" frameborder="0" title="YouTube video player" allowfullscreen=""> </iframe>

前提条件

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
ローカルキャッシュを有効にするには、次のコマンドを入力します。
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

シトリックス バーチャルアプリおよびデスクトップで

Citrix Studio で Citrix Virtual Apps and Desktops から 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
    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
    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
このフィールドは次のいずれかの方法で設定されます。
  • ホストのインストール後、ホストインストーラーで「シンプロビジョニングを有効にする」オプションを選択した場合、または
  • 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 が別のホストに移行したり、シャットダウンされたりしても、デルタディスクキャッシュファイルはホストから削除されません。