ONTAP FlexCacheライトバック アーキテクチャ
FlexCacheは、ライトバックとライトアラウンドの両方の書き込み動作モードを含め、高い整合性を考慮して設計されています。ONTAP 9.15.1で導入された従来のライトアラウンド動作モードと新しいライトバック動作モードのどちらにおいても、アクセスされるデータの整合性、最新性、一貫性が常に100%保証されます。
次の概念は、FlexCacheライトバックの動作について詳しく説明しています。
委譲
ロック委譲とデータ委譲により、FlexCacheは、ライトバック キャッシュとライトアラウンド キャッシュの両方のデータの整合性、一貫性、最新性を維持できます。どちらの委譲もキャッシュ元によってオーケストレーションされます。
ロック委譲
ロック委任とは、オリジンがファイルごとにキャッシュに付与するプロトコルレベルのロック権限であり、必要に応じてクライアントにプロトコルロックを発行します。これには、排他ロック委任(XLD)および共有ロック委任(SLD)が含まれます。
排他ロック委譲(XLD)は、ONTAPが競合する書き込みを調整する必要がないようにするために、クライアントがファイルへの書き込みを要求するキャッシュに付与されます。重要なことは、1つのファイルに対して一度に1つのXLDしか存在できないことです。つまり、1つのファイルに対して複数の書き込み手が存在することはありません。
ライトバックが有効なキャッシュにファイルへの書き込み要求が入ると、次の手順が実行されます。
-
キャッシュが、要求されたファイルのXLDをすでに取得しているかどうかをチェックします。取得している場合、キャッシュは、別のクライアントがキャッシュにあるファイルに書き込んでいないかぎり、書き込みロックをクライアントに付与します。要求されたファイルのXLDを取得していない場合、キャッシュは、キャッシュ元に対してXLDを要求します。これは、クラスタ間ネットワークを経由する独自のコールです。
-
キャッシュからXLDリクエストを受信すると、オリジンは別のキャッシュにそのファイルのXLDが未処理のまま残っているかどうかを確認します。もし残っている場合は、そのファイルのXLDを呼び出し、ダーティー データそのキャッシュからオリジンにフラッシュします。
-
そのキャッシュからダーティー データがフラッシュバックされ、キャッシュ元の安定したストレージにコミットされると、キャッシュ元は、ファイルのXLDを要求元のキャッシュに付与します。
-
ファイルのXLDを受信すると、キャッシュはクライアントにロックを付与します。その後、書き込みが開始されます。
これらのステップの一部を網羅した概要シーケンス図は、[write-back-sequence-diagram]シーケンス図に記載されています。
クライアント側から見ると、すべてのロックは標準のFlexVolまたはFlexGroupに書き込みを行っているかのように機能し、書き込みロックが要求されたときにわずかな遅延が発生する可能性があります。
現在の反復では、ライトバックが有効になっているキャッシュがファイルの XLD を保持している場合、ONTAP は `READ`操作を含む他のキャッシュでのそのファイルへの*すべての*アクセスをブロックします。
|
|
キャッシュ元コンスティチュエントあたりのXLDは170個に制限されています。 |
データ委譲
データ委譲は、キャッシュ元がキャッシュに付与するファイル単位の保証で、そのファイル用にキャッシュされたデータが最新であることを保証します。キャッシュは、ファイルのデータ委譲を取得しているかぎり、キャッシュ元に接続する必要なく、そのファイルのキャッシュ データをクライアントに提供できます。ファイルのデータ委譲を取得していない場合は、キャッシュは、クライアントから要求されたデータを受信するためにキャッシュ元に接続する必要があります。
ライトバック モードでは、ファイルのデータ委譲は、そのファイルのXLDが別のキャッシュまたはキャッシュ元で取得されると取り消されます。これにより、ファイルは、読み取り時も含め、他のすべてのキャッシュとキャッシュ元でクライアントから実質的にフェンシングされます。これは、古いデータへのアクセスを回避するために必要なトレードオフです。
ライトバック対応キャッシュでの読み取りは、ライトアラウンド キャッシュでの読み取りと同様に動作します。ライトアラウンド キャッシュとライトバック対応キャッシュの両方において、要求されたファイルが、読み取りが発行されたキャッシュとは別のライトバック対応キャッシュで排他書き込みロックを取得している場合、初期の `READ`パフォーマンス低下が発生する可能性があります。XLDを無効化し、ダーティー データを元のキャッシュにコミットしてから、他のキャッシュでの読み取りを処理する必要があります。
ダーティー データの追跡
キャッシュからオリジンへのライトバックは非同期で行われます。つまり、ダーティー データはオリジンに即座に書き戻されるわけではありません。ONTAPはダーティー データ レコード システムを使用して、ファイルごとのダーティー データを追跡します。各ダーティー データ レコード(DDR)は、特定のファイルの約20MBのダーティー データを表します。ファイルへの書き込みがアクティブになっている場合、ONTAPは2つのDDRがいっぱいになり、3つ目のDDRへの書き込みが行われた後に、ダーティー データのフラッシュバックを開始します。その結果、書き込み中にキャッシュに約40MBのダーティー データが残ることになります。ステートフル プロトコル(NFSv4.x、SMB)の場合、残りの40MBのデータは、ファイルが閉じられたときにオリジンにフラッシュバックされます。ステートレス プロトコル(NFSv3)の場合、40MBのデータは、別のキャッシュでファイルへのアクセスが要求されたとき、またはファイルが2分以上(最大5分)アイドル状態になったときにフラッシュバックされます。タイマー トリガーまたはスペース トリガーによるダーティー データ フラッシュの詳細については、キャッシュ スクラバを参照してください。
DDRとスクラバに加えて、一部のフロントエンドNAS操作では、ファイルのすべてのダーティー データのフラッシュもトリガーされます。
-
SETATTR-
mtime、atime、ctime のみを変更する`SETATTR`はキャッシュで処理できるため、WANのペナルティを回避できます。
-
-
CLOSE -
`OPEN`別のキャッシュで
-
`READ`別のキャッシュで
-
`READDIR`別のキャッシュで
-
`READDIRPLUS`別のキャッシュで
-
`WRITE`別のキャッシュで
切断モード
ファイルのXLDがライトアラウンド キャッシュに保持され、そのキャッシュがキャッシュ元から切断された場合でも、そのファイルの読み取りは他のキャッシュおよびキャッシュ元で引き続き許可されます。この動作は、XLDがライトバックが有効なキャッシュに保持されている場合とは異なります。その場合では、キャッシュが切断されると、ファイルの読み取りはどこであってもハングします。これによって、100%の整合性、最新性、一貫性が維持されます。読み取りはライトアラウンド モードで許可されます。なぜなら、クライアントに書き込みの確認応答が送信されたすべてのデータをキャッシュ元が使用できることが保証されるためです。切断中のライトバック モードでは、切断前にライトバックが有効なキャッシュに書き込まれて確認応答が返されたすべてのデータがキャッシュ元に到達することは保証されません。
ファイルのXLDを保持するキャッシュが長時間切断された場合、システム管理者はキャッシュ元でXLDを手動で取り消すことができます。これにより、ファイルへのIOが残っているキャッシュとキャッシュ元で再開されます。
|
|
XLDを手動で取り消すと、切断されたキャッシュにあるファイルのダーティー データが失われます。XLDの手動取り消しは、キャッシュとキャッシュ元の間で壊滅的な中断が発生した場合にのみ実行してください。 |
キャッシュ スクラバ
ONTAPには、タイマーの期限切れやスペースのしきい値超過など、特定のイベントに応じて実行されるスクラバがあります。スクラバは、スクラビング(キャッシュの削除)の対象のファイルに対して排他ロックを取得し、スクラビングが完了するまで、そのファイルへのIOを事実上凍結します。
スクラバには以下が含まれます。
-
キャッシュ上のmtimeベースのスクラバー: このスクラバーは5分ごとに起動し、2分間変更されていないファイルをスクラビングします。ファイルのダーティー データがキャッシュ内にまだ残っている場合、そのファイルへのIOは停止され、ライトバックがトリガーされます。ライトバックが完了すると、IOは再開されます。
-
*オリジン上のmtimeベースのスクラバー:*キャッシュ上のmtimeベースのスクラバーと同様に、これも5分ごとに実行されます。ただし、15分間変更されていないファイルをスクラビングし、inodeの委任を呼び出します。このスクラバーはライトバック処理を開始しません。
-
オリジンにおけるRW制限ベースのスクラバー: ONTAPは、オリジン構成要素ごとに付与されたRWロック委任の数を監視します。この数が170を超えると、ONTAPはLRU(Least-Recently Used)ベースで書き込みロック委任のスクラビングを開始します。
-
キャッシュ上のスペースベースのスクラバー: FlexCacheボリュームの使用率が90%に達すると、キャッシュがスクラブされ、LRUベースで削除されます。
-
*オリジン上のスペースベースのスクラバー:*FlexCache オリジン ボリュームの使用率が 90% に達すると、キャッシュがスクラブされ、LRU ベースで削除されます。
シーケンス図
これらのシーケンス図は、ライトアラウンド モードとライトバック モードの間の書き込みの確認応答の違いを示しています。
ライトアラウンド

ライトバック
