Avamar:NetAppのNDMPバックアップが、高いメモリー使用率の致命的な信号で失敗する 11
Summary: NetAppボリュームをバックアップする場合、初期化フェーズでバックアップが失敗します。 avtarが以前のバックアップからinode.dir.mapを読み取ろうとすると、メモリー使用率が高いため、Fatalシグナル11で終了します。
Symptoms
バックアップ失敗の症状
avtarが以前のバックアップからinode.dir.mapを読み取ろうとすると、初期化フェーズでNetAppボリュームのバックアップが失敗します。バックアップは致命的な信号11で終了します。
NetAppでは、ファイル名の代わりにinodeを使用して、データ ストリーム内のファイルを文書化します。ファイル数が多いと、初期管理プロセスでメモリーが不足する可能性があります。これは、デフォルトでinodeマップが保存される場所であるためです。
この障害は通常、スケジュール設定されたバックアップ中に発生します。通常、手動バックアップは成功します。
Example: 2つのボリュームがバックアップされます。より大きなボリューム(>200 TB)は、スケジュール設定されたバックアップ中に成功します。これより小さいボリューム(~21 TB)は、スケジュール設定されたバックアップに失敗します。手動で実行すると成功します。
Avamarのドキュメントには、200Mファイルの制限と記載されています。この例には4億8000万個のファイルがありました。
関連するログ メッセージ
2022-04-20 13:00:36 avndmp Info : [snapup-/plz/Images] NDMP: DUMP: Using inowalk incremental dump for Full Volume
2022-04-20 13:01:14 avndmp Info : [ctl_spawn] Process 5718 (/usr/local/avamar/bin/avtar) finished (code 176: fatal signal)
2022-04-20 13:01:14 avndmp Warning : [ctl_spawn] CTL workorder "9am-3pm-Images-165044985231#1" non-zero exit status 'code 176: fatal signal'
2022-04-20 13:01:16 avndmp Error : [snapup-/plz/Images] Premature end of child. Changing exitcode from 176 to 157
これは原因を示すものではありません。
Avtarログ メッセージ
log 2022-04-20 13:00:43 avtar Info : Using backup #49 timestamp 2022-04-19 18:08:46 UTC label "mages-165044985231#0" as base for incremental backup
2022-04-20 13:00:43 avtar Info : - Establishing a connection via token to the Data Domain system with encryption (Connection mode: A:3 E:2).
2022-04-20 13:00:43 avtar Info : CDSF backup does not use asynchronous reading of NetApp stream. Disabling that feature.
2022-04-20 13:00:43 avtar Info : Reading inode.dir.map from previous backup
2022-04-20 13:01:14 avtar FATAL : Fatal signal 11 in pid 5718
2022/04/20-13:01:14.76035 [avtar] FATAL ERROR: uapp::handlefatal: Fatal signal 11
2022/04/20-13:01:14.76064 [avtar] ERROR: uapp::handlefatal: aborting program pid=5718, sig=11
2022-04-20 13:01:14 avtar FATAL : handlefatal: Aborting program with code 176, pid=5718, sig=11
Cause
問題の根本原因
この問題は、inodeマップがマップに割り当てられたメモリーよりも大きいために発生します。
メモリに読み込まれると、割り当てられたメモリ境界を超えて書き込まれ、シグナル 11 の致命的なエラー メッセージが表示されます。
これは、バックアップのinode数が多く、inodeマップ用に予約されたメモリー セグメントがオーバーランするためです。
「Fatal signal 11」や「uapp::handlefatal: Fatal signal 11」は、メモリー オーバーランが原因でプログラムで致命的なエラーが発生したことを示します。
2022-04-20 13:01:14 avtar FATAL : Fatal signal 11 in pid 5718 2022/04/20-13:01:14.76035 [avtar] FATAL ERROR: uapp::handlefatal: Fatal signal 11 2022/04/20-13:01:14.76064 [avtar] ERROR: uapp::handlefatal: aborting program pid=5718, sig=11
Resolution
inodeマップ ストレージにディスクを使用するようにavtarを構成します。
回避策は、inodeマップをメモリーではなくディスク ファイルに格納することです。これによりavtarは、inodeを読み取るときに、メモリーではなくディスクに格納するようにマップします。これにより、SIG-11のメモリーの問題が解消されます。
stream-disk-bufferフラグを設定して、inodeマップ ストレージにディスクを使用するようにavtarを構成するには、2つの方法があります。
方法1:Avamar Administratorインターフェイスの使用
クライアント データセットに移動し、オンデマンド バックアップ オプションダイアログ ボックスを開いて、その他のオプションをクリックします。バックアップ コマンドライン オプションダイアログ ボックスが表示されます。[More](その他)をクリックします。属性の入力フィールドに「[avtar]stream-disk-buffer」と入力し、属性値の入力フィールドでtrueを選択します。追加アイコンをクリックして、属性を追加します。
方法2:avtar.cmdの使用
UNIXテキスト エディターを使用して、/usr/local/avamar/var/CLIENT_NAMEのNASクライアントvarディレクトリーに、ファイル avtar.cmdを作成します。ファイルが存在する場合は、既存のファイルを編集します。ファイル内の独自の行に、次のフラグを入力します。
--stream-disk-buffer
解決策の確認
stream-disk-bufferフラグを設定した後、avndmp.logログ ファイルとavtarログ ファイルでinodeマップ ストレージに関連するエラーをチェックして、問題が正常に解決されたことを確認します。