FlexCache の概要

このページでは、FlexCache 機能の概要について説明します。

FlexCache について

NetApp FlexCache は、データ アクセスを高速化し、WAN レイテンシを短縮し、読み取り負荷の高いワークロードの WAN 帯域幅の費用を削減します。特に、クライアントが同じデータに繰り返しアクセスする場合に効果を発揮します。FlexCache ボリュームを作成すると、既存の(オリジン)ボリュームのリモート キャッシュとして機能します。このキャッシュには、オリジン ボリュームのアクセス頻度の高いホットデータのみが保存されます。

FlexCache ボリュームが、含まれているホットデータの読み取りリクエストを受信すると、データがクライアントに到達するまでの距離が短いため、元のボリュームよりも高速に応答します。FlexCache ボリュームがアクセス頻度の低いコールドデータの読み取りリクエストを受け取ると、必要なデータをオリジン ボリュームから取得して保存し、クライアント リクエストを処理します。そのデータの後続の読み取りリクエストは、FlexCache ボリュームから直接処理されます。最初のリクエストの後、データはネットワークを介して移動したり、負荷の高いシステムから提供されたりする必要がなくなります。

アプリケーションは FlexCache ボリュームに書き込むことができますが、キャッシュの整合性を維持するために、これらの書き込みは元のボリュームに送信されます。

FlexCache と Google Cloud NetApp Volumes の統合により、Google ネットワーク内にキャッシュ ボリュームをプロビジョニングして、ハイブリッド クラウド環境のパフォーマンスを向上させることができます。この機能は、オンプレミス データセンターからクラウドにデータをキャッシュに保存することで、ワークロードのハイブリッド クラウドへの移行をサポートします。

NetApp Volumes のボリュームは、オリジン ボリュームとして使用できません。

FlexCache には次の機能があります。

書き込みの動作

データが FlexCache ボリュームに書き込まれると、書き込みオペレーションが元のボリュームに渡されます。キャッシュは、オリジンが確認すると書き込みを認識します。ファイルに書き込むと、キャッシュに保存されたコピーが無効になり、次回アクセス時にキャッシュが再度取得します。

アクセス時間の更新によるキャッシュの無効化

ONTAP には、READREADLINKREADDIR を使用して読み取られたファイルとディレクトリのアクセス時間更新を管理するための -atime-update というボリュームレベルのフィールドがあります。

オリジン ボリュームまたはキャッシュ ボリュームのアクセス時間の更新により、キャッシュの有効性が低下し、ファイル アクセスのパフォーマンスの低下やレイテンシの増加を引き起こすファイル無効化がトリガーされる可能性があります。これを防ぐには、ONTAP volume modify -atime-update コマンドを使用して、元のボリュームのアクセス時間更新を無効にします。

NetApp Volumes の FlexCache ボリュームは、オリジンから -atime-update 設定を継承するため、キャッシュの無効化が増加する可能性があります。そのため、オリジン ボリュームでアクセス時間の更新を無効にすることをおすすめします。

グローバル ファイル ロック

グローバル ファイル ロックは、すべてのキャッシュとオリジン ボリュームのファイルに対して読み取り拒否と排他的バイト範囲ロックを適用します。データの一貫性を維持したり、アクセス競合を回避したりするために、ワークフローでこれらのロックを厳密に適用する必要がある場合は、グローバル ファイル ロックを有効にします。

考慮事項

キャッシュとオリジン間の接続が信頼できる場合にのみ、グローバル ファイル ロックを有効にします。接続が不安定な場合、変更が遅延または一時停止したり、FlexCache ボリュームがオフラインの場合にタイムアウトが発生したりすることがあります。

  • パフォーマンスへの影響: グローバル ファイル ロックを有効にすると、すべてのキャッシュ読み取りでロック検証のリクエストがオリジンに送信され、往復時間(RTT)が増加するため、レイテンシが増加します。

  • 可用性への影響: キャッシュ ボリュームがオフラインになると、そのファイルの読み取りは他のすべてのキャッシュ ボリュームでブロックされ、すべての FlexCache ボリュームがオンラインに戻るまで、元のボリュームの変更は一時停止されます。

グローバル ファイル ロックはシステムのパフォーマンスと信頼性に影響を与える可能性があるため、ワークフローで明示的に必要な場合を除き、無効のままにしてください。

CIFS 変更通知

SMB プロトコルは、他のクライアントによってボリュームに加えられた変更を SMB クライアントに通知するメカニズムを提供します。これにより、Windows エクスプローラなどのアプリケーションは、ボリュームをポーリングせずにビューを更新できます。このオプション機能は、インタラクティブ ユーザーが Windows エクスプローラを介して SMB ボリューム上のファイルにアクセスするキャッシュに便利です。それ以外の場合は、通知の負荷を軽減するために無効にする必要があります。

キャッシュの事前入力

NetApp Volumes では、キャッシュの事前入力用の API は提供されていませんが、クライアント側から事前ウォーミングを行うことができます。このプロセスでは、ファイルを読み取って、そのデータがキャッシュに読み込まれていることを確認します。

次のタブに、さまざまなクライアント オペレーティング システムのキャッシュを事前ウォーミングするコマンドを示します。通常、これらのコマンドはディレクトリ リストの事前ウォーミングも行います。

Linux または UNIX クライアント

キャッシュを事前準備するには:

find DIR_PATH -type f -print -exec sh -c 'cat "$1" > /dev/null' sh {} \;

Windows クライアント

キャッシュを事前準備するには:

for /f "delims=" %i in ('dir /b /s /a-d DIR_PATH') do @type "%i" >NUL

事前入力プロセスを高速化するには、XCP などのデータ移行ツールの使用を検討してください。

XCP を使用してデータを読み取り、キャッシュにデータを入力するには:

   xcp -md5 -q SERVER:/PATH
  

次のステップ

FlexCache ボリュームを計画する