このページでは、FlexCache 機能の概要について説明します。
FlexCache について
NetApp FlexCache は、特にクライアントが同じデータに繰り返しアクセスする場合に、データ アクセスを高速化し、WAN レイテンシを短縮し、読み取り中心のワークロードの WAN 帯域幅の費用を削減します。FlexCache ボリュームを作成すると、既存の(オリジン)ボリュームのリモート キャッシュとして機能します。このキャッシュには、オリジン ボリュームのアクセス頻度の高いホットデータのみが保存されます。
FlexCache ボリュームが、含まれているホットデータの読み取りリクエストを受信すると、データがクライアントに到達するまでの距離が短いため、元のボリュームよりも高速に応答します。FlexCache ボリュームがアクセス頻度の低いコールドデータの読み取りリクエストを受け取ると、必要なデータをオリジン ボリュームから取得して保存し、クライアント リクエストを処理します。そのデータの後続の読み取りリクエストは、FlexCache ボリュームから直接処理されます。最初の要求の後、データはネットワークを介して移動したり、負荷の高いシステムから提供されたりする必要がなくなります。
アプリケーションは FlexCache ボリュームに書き込むことができますが、キャッシュの整合性を維持するために、これらの書き込みは元のボリュームに送信されます。
FlexCache と Google Cloud NetApp Volumes の統合により、Google ネットワーク内にキャッシュ ボリュームをプロビジョニングして、ハイブリッド クラウド環境のパフォーマンスを向上させることができます。この機能は、オンプレミス データセンターからクラウドにデータをキャッシュに保存することで、ワークロードのハイブリッド クラウドへの移行をサポートします。
NetApp Volumes のボリュームは、オリジン ボリュームとして機能できません。
FlexCache には次の機能があります。
書き込みの動作
データが FlexCache ボリュームに書き込まれると、書き込みオペレーションが元のボリュームに渡されます。キャッシュは、オリジンが確認すると書き込みを認識します。ファイルに書き込むと、キャッシュに保存されたコピーが無効になり、次回アクセス時にキャッシュが再度取得します。
アクセス時間の更新によるキャッシュの無効化
ONTAP には、READ
、READLINK
、READDIR
を使用して読み取られたファイルとディレクトリのアクセス時間の更新を管理する -atime-update
というボリュームレベルのフィールドがあります。
オリジン ボリュームまたはキャッシュ ボリュームのアクセス時間の更新により、キャッシュの有効性が低下し、ファイル アクセスのパフォーマンスの低下やレイテンシの増加を引き起こすファイル無効化がトリガーされる可能性があります。これを防ぐには、ONTAP volume modify -atime-update
コマンドを使用して、元のボリュームのアクセス時間更新を無効にします。
NetApp Volumes の FlexCache ボリュームは、オリジンから -atime-update
設定を継承するため、キャッシュの無効化が増加する可能性があります。したがって、オリジン ボリュームでアクセス時間の更新を無効にすることをおすすめします。
グローバル ファイル ロック
グローバル ファイル ロック(デフォルトでは無効)により、関連するすべてのキャッシュ ファイルでの読み取りが防止されます。有効にすると、すべての FlexCache ボリュームがオンラインになるまで、オリジン ボリュームの変更が一時停止されます。この機能は、キャッシュとオリジン間の接続の信頼性を制御できる場合にのみ有効にしてください。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