【Commvault】AUXコピーで発生したジョブ数不一致の謎

2022年9月14日

こんにちは、キクです。

僕は最近CommvaultのAUXコピーという機能を用いて「ライブラリ間のデータ移行業務」に取り組みました。
その中でいくつか苦戦ポイントがあったので、今回はその第1弾として記事を書いていこうと思います。

今回は『AUXコピーにおけるジョブ数不一致』をテーマに書いていきたいと思います!

それでは、よろしくお願いします。

動作環境

本記事の内容は、下記の環境で実施したものになります。
・CommServe v11

注意事項

本記事は僕が経験した内容をもとに記載しておりますが、実行環境や設定内容によっては動作が異なる場合があります。
そのため『参考程度』にお読みいただけますと幸いです。

AUXコピーとは

commvault-auxcopy-joblost-1

まず初めに「AUXコピー」という機能について、簡単にご紹介していきます。
冒頭でも触れたようにAUXコピーはCommvaultの機能の1つで、同一ストレージポリシーに登録されたライブラリ間でデータを同期(コピー)することが可能な機能になります。

AUXコピーを利用するケースはいくつかあるかと思いますが、僕は今回「ストレージ機器のリプレース」の一環として利用しました。

ストレージ機器のリプレースとしてのAUXコピー

ストレージ機器のリプレースを実施するにあたり、既存ストレージ機器から新規ストレージ機器へとデータを移行する必要がありました。
Commvaultでのバックアップジョブデータも御多分に洩れず、移行対象として作業に取り組みました。
その移行作業で利用したのが「AUXコピー」です。

既存ストレージ機器で作成したボリュームは既にCommvault上にライブラリとして登録されており、そこにバックアップジョブデータが保存されています。
そして新規ストレージ機器においてもボリュームを作成します。
このボリュームを既存機器のボリュームと同様にCommvaultにライブラリとして登録し、移行したいデータを管理しているストレージポリシーに対してコピータイプ「同期」として追加してあげます。

詳しい設定方法は別の機会に譲るとして、このように「1次 / 同期」のライブラリ関係を設定してあげることでAUXコピーによるデータ移行が可能になります。

補足事項

ストレージ機器リプレースを例に話を進めているため「データ移行」と表現していますが、実際の処理は「コピー」であるため1次側からデータが無くなるということはありません。

AUXコピーで生じたジョブ数の不一致

前章では、AUXコピーを実施するために必要な「1次 / 同期」の関係を準備したという話でした。
ここからはAUXコピーを実行してデータをコピーしていくわけですが、その最中に問題が生じたのです。

AUXコピーはコピー対象が多いほど時間がかかります。
今回はコピー対象が数TBありましたので、2~3日後にAUXコピーの完了を確認する形となりました。
AUXコピーの完了後、1次および同期の双方でバックアップジョブデータの一覧を確認したのですが、1次側に存在していてコピー対象であるはずの一部ジョブが同期側に存在していなかったのです。
具体的にはいくつかの「増分ジョブ」がないという状況でした。

増分ジョブが消えた理由

それではなぜ増分ジョブは消えてしまったのか?
これには「ジョブデータのコピー完了のタイミング」と「データエージングのタイミング」が関係しています。

データエージングとは、保持期限の切れたデータを再利用するために削除処理をするCommvaultのジョブです。
簡単に言えば、不要になったバックアップジョブデータを手動またはスケジュールに応じて削除してくれる機能です。
これによって不要なデータが溜まり続けるということがなく、リソースが枯渇してしまうのを回避できるわけですね。

上図はストレージポリシーとしてジョブを保持する世代数を「2世代まで」とした例です。
3世代目のフルジョブが取得されたことで1世代目のジョブ(フル/増分)がエージング対象となり、データエージングのタイミングで削除されたことを表しています。

では、ジョブデータのコピー完了のタイミングとデータエージングがどのように関係しているかについて話を戻しましょう。
フルジョブと増分ジョブでは後者の方が容量が小さいので先にコピーが完了するのは想像できるかと思います。
そしてこの「フル:コピー未完了 / 増分:コピー完了」の状態でデータエージングが実行されると増分ジョブデータは「親(フル)を持たない不要データ」としてエージング(削除)されてしまうんです。
これが「増分バックアップジョブが消えた」の正体でした。
最初は「なんで消えてるんだ・・・?」と疑問に思いましたが、Commvaultの仕様を起因とした削除だったんですね。

消えたジョブの再コピー方法

同期側から消えてしまった増分ジョブですが、リプレースを完遂するためにはデータが不足した状態では困ってしまいます。
そのため、改めてAUXコピーで増分ジョブをコピーしてあげる必要があります。

しかし、ここでまた罠(仕様)が待ち構えています。
それは「一度AUXコピーでコピーされたジョブは、そのままだと次回のAUXコピーではコピー対象には入らない」というものです。

そのままではコピー対象外

考えてみれば当然なんですが、一度コピーが完了したものを次回もコピーしていたら無駄に負荷がかかってしまいます。

ただ、現状同期側からは増分バックアップジョブか消えてしまっています。
そんな状態でもコピーしてくれないのか?と考えてしまいますが、AUXコピーでは「コピー対象」として認識してくれていないとジョブをコピーしてくれませんでした・・・。

ちなみに、AUXコピーにおけるコピーステータスは以下のようなものがあります。

ステータス一覧

①使用可能      :コピー済み
②部分的にコピー済み :途中まではコピー済み
③コピー予定     :次回のAUXコピー時にコピーする予定
④整理済       :コピーは完了したがデータエージングなどによりジョブ削除済み

なお、これらすべてのステータスを表示するには、以下の手順で可能です。

ステータスの確認手順

  1. CommServeにログイン
  2. 左ペインで「ポリシー」を展開
  3. 左ペインで「ストレージポリシー」を展開
  4. 左ペインで対象ストレージポリシーを選択
  5. 右ペインで「同期」を右クリック
  6. 「ビュー -> ジョブ」をクリック
  7. 「タイムレンジ」のチェックを外す
  8. 「詳細」をクリック
  9. 「コピーされないジョブ」にチェックを入れる
  10. 「OK」をクリック
  11. 「OK」をクリック

消えてしまった増分ジョブは④の状態に該当しており、次回のコピー対象としては認識されていません。
しかし、裏を返せば「コピー対象として認識すればコピーしてくれる」ということになります。

コピー対象として再選択

それでは「整理済」となっているジョブをコピー対象として再選択してあげましょう。

再選択は簡単で、次のようにするだけでOKです。

再選択手順

  1. 前項の手順1~11を実施
  2. 右ペインでステータスが「整理済」のジョブを右クリック
  3. 「再コピー」をクリック
  4. 以下の警告画面にて「はい」をクリック
    "選択されたジョブを再コピーしてよろしいですか?"

これでステータスが「整理済」から「コピー予定」に変更されます。
この状態であれば次回のAUXコピーのタイミングで消えてしまった増分ジョブを再コピーすることが可能です。

一件落着。

おわりに

いかがだったでしょうか。

今回はCommvaultのAUXコピーがテーマでした。
ジョブデータ数が多いと抜け漏れ対象を発見するのも大変ですし、今回は「そもそもなぜ抜け漏れが発生してるのか」も不明な状態でした。

対象が判明してからは本記事でご紹介した方法で無事に再コピーできたわけですが、単純にコピーして終わりじゃないんだなーと勉強になりました。
同じ事象でお困りの方を含め、本記事が少しでも「学び」に繋がっていたら嬉しいです。

本記事を最後までお読みいただき、ありがとうございました。
ではでは!

-Commvault
-