メインコンテンツまでスキップ

NetApp_Insight_2020.png 

AltaVault の削除プロセスとは何ですか。

Views:
5
Visibility:
Public
Votes:
0
Category:
not set
Specialty:
not set
Last Updated:

に適用されます

  • AltaVault
  • AVA400
  • AVA800
  • AVA-V

回答

  • AltaVault には、エンコードされたバックアップデータを受信し、その後クラウドにレプリケートするローカルディスクキャッシュがあります。
  • 削除プロセスは、ディスクキャッシュ(データストア)の空きスペースを一部維持し、ディスクキャッシュが完全にいっぱいになるのを防止します。
  • 一般的に、新しいデータ取り込み速度によってディスクキャッシュが約 30 日(デフォルト)回転するようなサイズになり、最近エンコードされた(書き込み済みの)バックアップジョブの高速デコード(読み取り)が可能になります。  
  • このローカルキャッシュ機能は、 AltaVault の主な差別化要因であり、最新のバックアップのリカバリ時間目標( RTO )を短縮します。
  • Evicter プロセスでは、次の 3 つのウォーターマークを使用します。
    • Eviction しきい値( evicter.maxpctused ):
      • これは evicter が維持するために機能する使用率です。
      • 使用率がこの値を超えると、 Evicter は、特定の割合でスラブファイルをドロップするまで、スラブファイルの削除を開始します。
    • Eviction アラーム( evicter.maxpctused + evicter.alarmwindow ):
      • これは、ローカルディスクキャッシュの利用率が高すぎることを示すアラームが生成される利用率です。
    • Eviction Upperbound ( evicter.upperbound ):
      • SteelStore が物理ディスクがいっぱいになるのを防ぐために書き込み要求の受け入れを停止する利用率です。
      • このレベルでは、ファイルシステムはフロントエンドプロトコル( OST / SMB / NFS )に「 No space on filesystem 」エラーを返します。
  • この場合、次のようなログメッセージが表示されます。
Apr  2 02:34:01 ss3030-dmz-nk2 rfsd[8609]: [megamount/vnode.ERR] (30318) encode failed: no space on filesystem
Apr  2 02:34:01 ss3030-dmz-nk2 rfsd[8609]: [megamount/vnode.ERR] (31432) encode failed: no space on filesystem
Apr  2 02:34:01 ss3030-dmz-nk2 rfsd[8609]: [write_cache.ERR] (30318)  flush failed: no space on filesystem
Apr  2 02:34:01 ss3030-dmz-nk2 rfsd[8609]: [megamount/vnode.ERR] (30318) failed to commit write: no space on filesystem
Apr  2 02:34:01 ss3030-dmz-nk2 rfsd[8609]: [write_cache.ERR] (30318) destructor flush failed :no space on filesystem
Apr  2 02:34:01 ss3030-dmz-nk2 rfsd[8609]: [encoder.ERR] (30318) Encoder 0x299e71018 destructor, aborting
Apr  2 02:34:01 ss3030-dmz-nk2 rfsd[8609]: [write_cache.ERR] (31432)  flush failed: no space on filesystem
Apr  2 02:34:01 ss3030-dmz-nk2 rfsd[8609]: [megamount/vnode.ERR] (31432) failed to commit write: no space on filesystem
Apr  2 02:34:01 ss3030-dmz-nk2 rfsd[8609]: [write_cache.ERR] (31432) destructor flush failed :no space on filesystem
Apr  2 02:34:01 ss3030-dmz-nk2 rfsd[8609]: [encoder.ERR] (31432) Encoder 0x28f726798 destructor, aborting
Apr  2 02:34:01 ss3030-dmz-nk2 rfsd[8609]: [megastore.NOTICE] (30318) aborting transaction 149/14340392 (29 resources)
Apr  2 02:34:01 ss3030-dmz-nk2 rfsd[8609]: [megastore.NOTICE] (31432) aborting transaction 149/14349236 (1668 resources)
Apr  2 02:34:02 ss3030-dmz-nk2 rfsd[8609]: [megastore.NOTICE] (30318) transaction 149/14340392 aborted
Apr  2 02:34:02 ss3030-dmz-nk2 rfsd[8609]: [megamount/vnode.ERR] (30318) error flushing write cache no space on filesystem
  • 現在のディスクキャッシュ使用率であり、設定可能なパラメータではなく測定値である使用率( evicter.pctused )に注意してください。

追加情報

システムが読み取り専用になり、上記のエラーメッセージが表示されるという 2 つのシナリオがあります。

  • AltaVault / SteelStore に書き込まれる新しいデータのレートが、 Evicter がスペースを解放できるレートを超えています。  
    • evicter しきい値を低い値にドロップすると、バックアップ用に GB の空きスペースが増加しますが、アクティビティが少ない時間帯に、より低速な移動用イベントがエンコーダで発生したデータに対処できる場合にのみ有効です。 
  • evicter.maxpctused に割り当てられた値が evicter.upperBound よりも大きい場合、使用率がしきい値に達する前にデバイスが読み取り専用モードになり、 Evicter が切断されて空きスペースが解放されます。  
    • これにより、 evicter が実質的にデッドロックされます。
メモ
  • 適切な値はローカル・ディスク・キャッシュのサイズによって異なり、小規模なアプライアンスではより控えめな値が使用されます。
  • 次のコマンドを実行して、システムダンプ内の Evicter パラメータを確認します。

$ grep evicter stats_megastore
evicter.alarmwindow: 3
evicter.maxpctused: 90
evicter.pctused: 88
evicter.upperbound: 95

  • 出力は上記よりも大きくなりますが、これらは重要なパラメータです。
  • output/rfsd.xmlrunning configまた、 RFSD サービスの「」にも記載されています。

<evicter
 max_local_capacity="0"
 max_used_pct="90"
 upper_bound_pct="95"
 evicter_num_threads="512"
/>

  • これらの値はcollect_stats/rfsctl-a.log、ファイルとアーカイブに 60 秒ごとに記録されます。

$ egrep "TIMESTAMP|evicter.pctused" collect_stats/rfsctl-a.log | less
TIMESTAMP: 2015-04-14 12:21:00
evicter.pctused: 88
TIMESTAMP: 2015-04-14 12:22:00
evicter.pctused: 88
TIMESTAMP: 2015-04-14 12:23:00
evicter.pctused: 88
TIMESTAMP: 2015-04-14 12:24:00
evicter.pctused: 88
TIMESTAMP: 2015-04-14 12:25:00
evicter.pctused: 88

  • 次のコマンドを実行して、ライブ SteelStore の Evicter パラメータを表示します(サービスが実行されている必要があります)。

av730-rtp # rfsctl exec gc
evicter.alarmwindow: 3
evicter.maxpctused: 90
evicter.pctused: 88
evicter.upperbound: 95

  • ここでも、簡潔にするためにいくつかのパラメータが抑制されています。
クラウドデータの検証と「クラウドデータの不整合」アラームの回避
  • スラブを削除する前に、 Evicter はスラブの MD5 サムと、 Cloud オブジェクトに格納されている値をチェックします。  
  • クラウドでは MD5Sum は計算されませんが、メタデータ値を返すだけなので、クラウドスラブの整合性は確認されず、リビジョンを確認します。
  • スラブを変更し、クラウドに再アップロードするためにキューに入れることができます。このチェックにより、クラウド内のコピーがローカルスラブと一致することが保証されます。  
  • まだクラウドにレプリケートされていないスラブを削除したくありません。
  • MD5 チェックサムチェックに失敗すると、「 Inconsistent cloud data 」というアラームが表示されます。  
  • ネットアップは、空の(ヌル)応答や古いデータを送信するクラウドベンダーの経験を積んでいます。
  • Evicter はレプリケーションを一時停止できます
  • クラウドスラブオブジェクトのヘッド要求に対するプロンプト応答がない場合は、レプリケーションが一時的に一時停止されます。

Sep 28 03:01:20 steelstore01 rfsd[6599]: [evicter.INFO] (8921) Evicter will pause replication
Sep 28 03:01:41 steelstore01 rfsd[6599]: [evicter.INFO] (8921) Evicter will resume replication

平均退去年齢
  • Evicter は削除されたスラブの経過時間を追跡します。この統計は、ローカルディスクキャッシュが小さすぎて回転が速すぎるかどうかを判断するのに適しています。  
    • この統計は RTO にも影響を与えます。これは、平均削除期間よりも古いファイルをリストアすると、データがクラウドからダウンロードされるために時間がかかる可能性があるためです。
  • 削除された平均経過時間は、 WebUI の Reports で確認できます。

$ /support/bin/stats_evicted.py
timestamp   evicted_bytes evicted_age
Jul 01 04:38   3.1 GB 48 day
Jul 01 04:39   3.8 GB 48 day
Jul 01 04:40   3.6 GB 48 day
Jul 01 04:41   3.3 GB 48 day
<snip>
Jul 01 07:18   4.3 GB 47 day
Jul 01 07:19   2.6 GB 47 day
Jul 01 07:20   2.5 GB 47 day
Jul 01 07:21   2.3 GB 47 day
Min: 47 day, Max: 48 day, Avg: 48 day, StdDev: 4 hour
  • 平均除外年齢が 30 日未満(調整可能)の場合、平均除外年齢アラームがトリガーされます。詳細については、 KB2022993 を参照してください。
  • この値は、 SteelStore の WebUI では Reports > Optimization > Eviction 、 AltaVault : Reports > Eviction の順に選択しますが、集約によって値がダウン平均化されるため、 5 分間のビュー以外では正確ではない場合があります。
  • たとえば、 SteelStoreaverage_eviction_age は 5 秒ごとにを計算します。Evicter が実行されていない期間は 0 として記録されます。
avg_evicted_age 0 0 30 日 30 日 30 日 30 日 0 0 0 0 0 0
サンプル間隔 5 秒 5 秒 5 秒 5 秒 5 秒 5 秒 5 秒 5 秒 5 秒 5 秒 5 秒 5 秒
  • DataPoints が経過すると、これらの値はより大きな期間に「ロールアップ」され、 5 分後に 60 秒間隔に平均化されます。
    • この例では、 evicter が 60 秒の 20 秒間だけ実行されるとします。
  • 集約 60 秒期間の平均値は、( 30 日 * 20 秒) + ( 0 * 40 秒) /60 秒 = 10 日です。  
  • これは、この集約方法の望ましくない影響であり、エンジニアリング部門は修正を計画しています
  • avg_evicted_ageデフォルトでは、値が 30 日( 2592000 秒)未満になるとアラームがトリガーされます。この値は、お客様のニーズに合わせて調整できます。  
  • アラームは完全に無効にすることもできます。
# show alarm avg_evicted_age
Alarm Id:      avg_evicted_age
Alarm Description: Datastore Eviction
   Enabled:           no
   Alarm State:         (enabled)
   Error threshold:       2592000
   Clear threshold:       3024000
   Rate limit bucket counts:  (email) { 5, 20, 50 }
   Rate limit bucket windows: (email) { 3600, 86400, 604800 }
   Rate limit bucket counts:  (snmp)  { 5, 20, 50 }
   Rate limit bucket windows: (snmp)  { 3600, 86400, 604800 }
   Last checked at:       2015/06/16 11:41:39
   Last checked value:     4294967295
   Last error at:
   Last clear at:
 
(config) # alarm avg_evicted_age enable
(config) # no alarm avg_evicted_age enable
 
  • たとえば、しきい値を調整して 14 日に上げ、 15 日にクリアします。
(config) # alarm avg_evicted_age error-threshold 1209600
(config) # alarm avg_evicted_age clear-threshold 1296000
 
クラウドのストレージ利用率に対する平均的な削除年齢の影響
  • ファイルが削除されると、参照しているスラブが検査され、アプライアンスに保存されている他のファイルから参照されているかどうかが確認されます。
  • スラブの一部がまだ参照されている場合は削除できませんが、ローカルキャッシュ内にあり、その 50% 以上が使用されていない場合は、スラブを圧縮してから再度キューに入れ、古いスラブを上書きするクラウドにレプリケートできます。 より大規模なバージョン。
  • 重要な点は、スラブがローカルキャッシュにある場合にのみスラブを圧縮できることです。
  • クラウドのみのスラブは、 100% 未使用の場合にのみ削除できます。
    • Amazon Glacier では、パッケージと呼ばれる大きなオブジェクトを使用しています。パッケージは、 64 スラブのバンドルです。
  • Most backup strategies maintain a set of rotating schedules where say daily backups are kept for a month, the weekly backups are kept for a year, monthly backups are kept for 5 years, etc.
  • If the age where backups are expired and deleted is less than the average eviction age then the slabs referenced by them are likely to be local, and therefore available to be compacted.
  • 削除時の平均エビクション年齢が通常のバックアップの経過時間よりも短い場合、圧縮された可能性があるが、クラウドのみであるためではなかったスラブがいくつか存在します。
  • 大量の未使用データを保持するクラウドオブジェクトはクラウドの保護と呼ばれ、ローカルキャッシュを短時間の平均退去時間で迅速に回転させる環境では、クラウドの保護が促進されます。  
  • Amazon Glacier のユーザーは、クラウドに格納されているデータオブジェクトのサイズが大きいため、クラウドの利用が容易になります(パッケージ =64 スラブ)。