こんにちは、キクです。
つい先日、CommvaultのAUXコピー中に遭遇したトラブルの1つとして「ジョブ数不一致の謎」についてご紹介した記事を書きました。
前回の記事:【Commvault】AUXコピーで発生したジョブ数不一致の謎
今回はトラブル記事第2弾です!(笑)
というわけで、本記事は『AUXコピー中にデータエージングできなかった話』をテーマに書いていきたいと思います!
本記事の内容
それでは、よろしくお願いします。
AUXコピーとは
まずはAUXコピーについてですが、前回の記事で同じ内容をご紹介しているので、気になる方はそちらを読んでみてください。
関連記事:【Commvault】AUXコピーで発生したジョブ数不一致の謎
要点だけお伝えすると、AUXコピーとはCommvaultの機能の1つで、同一ストレージポリシーに登録された「1次 / 同期」の関係を持つライブラリ間でデータを同期(コピー)することができる機能になります。
AUXコピー中はデータエージングが効かない?
それでは本題に入っていこうと思いますが、まずは本項目を書くことにした背景についてお話させてください。
1次側ライブラリが枯渇した
AUXコピーは「1次 / 同期」の関係を持つライブラリ間でデータを同期するということは既に触れました。
今回の作業では、その1次側のライブラリがAUXコピー中に枯渇したというトラブルに遭遇しました。
ストレージポリシーには「保存するジョブをどのくらい世代管理するか」を指定するために「保持目的」という項目があります。
本設定項目では「○日/○サイクル」のような指定方法で世代管理数を設定します。
AUXコピーを実行していない時には、この設定に従ってジョブの世代管理が適切に行われていたのですが、枯渇したライブラリのジョブを確認してみると世代管理数として指定した以上の世代数のジョブが残っていました。
これにより1次側ライブラリが枯渇状態になってしまいました。
AUXコピー中のデータエージング
上記のようなトラブルもあり「AUXコピー中はデータエージングが効かないのでは?」という仮説を立てることとなりました。
この仮説の真意を確かめるために次のような観点で調査をすることにしました。
調査の結果、AUXコピーに関して次のような仕様があることが分かりました。
この仕様(特に1および2)から「AUXコピー中または一時停止中にはどうやらエージングは効かないらしい」と理解しました。
AUXコピーは、コピーする対象が多いほど時間がかかります。
その間ずっとデータエージングが効かないというのは困ってしまいます。
なぜなら、本来削除されるべきデータが蓄積されてリソースを消費していくからです。
「空き容量が潤沢」であったり「普段ほとんどバックアップジョブは実行されない」などであればAUXコピー中にデータエージングが効かなくても特に問題ないかもしれませんが、必ずしもそのような環境であるとは限りませんよね。
今回の環境は容量が潤沢なわけでもなく、バックアップに関しては「今まさに実行中」の状態でした。
実行中のバックアップジョブすらも完了できるか怪しいくらい枯渇してしまっていたので、仕方なくAUXコピーをキャンセルしました。
AUXコピーをキャンセルしてもデータエージングが効かない?
前項にもあるように、ライブラリが枯渇した影響からAUXコピーをキャンセルしたので晴れてデータエージングが可能な状態になりました。
枯渇状態を解消すべく早速データエージングを実施しました。
「ふむふむ、消えた消えたー」
「おやおや・・・?」
「一部エージングされてないジョブがあるぞ・・・?」
そうなんです、ここで新たなるトラブル発生です。
データエージング対象であるにも関わらず、一部のジョブがエージングされませんでした。
AUXコピーはキャンセル済みなのにです。
部分的にコピー済みのジョブはデータエージング対象外
「なぜエージングされないのか?」
「どんなジョブがエージングされないのか?」
これを明らかにするべく、1次と同期の双方のライブラリに保存されているジョブ一覧を眺めていました。
すると、1次側でエージングされないジョブとそれに対応する同期側のジョブの間には「ある共通点」があることを発見しました。
それは、同期側でジョブのステータスが「部分的にコピー済み」の状態である場合、そのジョブのコピー元である1次側のジョブはエージングされていないというもの。
(ややこしい・・・。)
前回の記事でステータスには以下のものがあるとご紹介しました。
今回は上記の②に該当している「部分的にコピー済み」のジョブを同期側に持つ1次側のジョブがエージングされていないことになります。
これは僕の解釈ですが、同期側に部分的にでもコピーが完了している場合、1次側のジョブはある意味で「同期側に掴まれている状態」であると考えられます。
この「掴まれている状態」になってしまうとデータエージングができないのではないかと仮説を立てました。
試しに同期側のジョブを削除してみた
「同期側に掴まれていると1次側でエージングできない」の仮説を立証すべく、試しに同期側の「部分的にコピー済み」となっているジョブを削除してみました。
この状態でデータエージングを実行してみると・・・
無事に1次側で世代管理の設定以上に保持されてしまっていたジョブをエージング(削除)することができました!
これで一件落着です。
おわりに
いかがだったでしょうか。
今回はAUXコピー中のデータエージングの制限についてご紹介してきました。
今回のポイントを振り返ると、以下の通りとなります。
なかなかややこしい部分もありましたが、仕組みが分かっていると対処方法もイメージしやすくなりますよね!
本記事を最後までお読みいただき、ありがとうございました。
ではでは!