【Commvault】シーケンス番号で苦戦したこと

2019年6月25日

こんにちは、キクです。

今日は、最近触っているCommvaultについて書いてみようと思います。
触り始めの認識なので、これから知識を深めていく形になります。
(書き味的には備忘録になるだろうか)

ここ数日、Commvaultというバックアップ関連の技術の練習をしています。
そもそもバックアップに関する知識がないので、Commvault以前に分からないことも多く苦戦していますが「作る」「消す」の作業を繰り返していく中で少しずつ動きがわかったりもするので楽しめてもいます。

関連ワード

特に触っている部分でよく出てくるワードが以下になります。

ライブラリ

Commvaultで取得したバックアップデータが格納される保存先になります。
例えば、Windowsの「Dドライブ」などを共有状態にし、そのパスをCommvault側から登録して関係を持たせるといった形。

メディアエージェント(MA)

Commvault-バックアップ対象-ライブラリを繋ぐ架け橋的な位置づけのものという認識です。

バックアップ対象がvCenter上の仮想マシンであれば、MAVSAがvCenterに対して「その仮想マシンのスナップショットを作ってくださーい」とお願いします。
その後、vCenterはスナップショット(バックアップデータ)を作成してMAに連携。
MAは受け取ったバックアップデータをライブラリに格納します。

MAVSAからvCenterに対して「さっきのスナップショット消していいですよ!」と依頼します。
これによりvCenter上からはスナップショットが削除される。

こんな仕事をしてくれるやつですかね。

後日追記

実際にvCenter側とやりとりをするのはVSAというコンポーネントであることを学びました。
VSAがvCenter側にスナップショット取得の依頼をして、取得したスナップショット情報をMAに連携して保存するという形になります。

ストレージポリシー

「どのライブラリ」に対して「どのMA経由」で保存するかといったことを管理しているポリシーです。
対象のバックアップ処理を実行すると、ストレージポリシーの「ジョブ」として登録されていく感じだと思います。
もしリストアをしたければ、このジョブを指定して実行してあげることでライブラリ内のバックアップファイルを使ってリストアするという流れになるのかと。

バックアップジョブ

バックアップの処理そのものを指します。
既にでてきた「ストレージポリシー」に紐づいています。

バックアップファイル

「バックアップジョブ」により取得された実際のバックアップデータを指します。
「ライブラリ」内に保存され、必要に応じてリストアで使用したりします。

苦戦したところ

苦戦したところは「バックアップジョブ」に関連する「シーケンス番号」という概念。

バックアップ取得の際に「フルバックアップ」「増分バックアップ」など種類を選びながら取っていくことになるかと思います。
そこで絡んでくるのがシーケンス番号で、例えば「フル→増分→増分」と行った感じでバックアップを取得していくと「シーケンス1→シーケンス2→シーケンス3」といった感じにそれぞれが連続した関係性を持つことになります。

途中のシーケンス番号のバックアップジョブが消えた場合、以降のバックアップジョブは存在価値がなくなるといってもいいような立ち位置になってしまうのだと思いました。
つまり、シーケンス番号が繋がっている部分までをリストアできるといってもいいと思います。
これに気づいて少し腑に落ちたといった感じです。

そもそもなぜこの疑問を持ったのか?
それは、ライブラリ自身のデータがダメになった時、そのデータをどこかに複製していたのであればリストアをすると思います。
その時、ライブラリにあったデータは少し古くなる可能性があります。

しかし、それに連動して古くなった際に消えたそれ以降のデータを取得する際に実行されたバックアップジョブはCommvault上に残っているのです
これが厄介でした。
データはないけど、バックアップジョブは存在するという状態。

それではライブラリをリストアした後に実行したバックアップジョブのシーケンス番号はどうなるのか?
連番になります。
しかし、途中のシーケンス番号はバックアップファイルの存在しないバックアップジョブが潜んでいることは上記の通り。
新しいバックアップジョブからリストアしようとすると、中身のないシーケンス番号の所で失敗してリストアはできませんでした。

じゃあ新しいバックアップジョブを実施する前に中身のないバックアップジョブを削除したら良いのではないだろうか?
そうすれば削除した分のシーケンス番号の所に、新しいバックアップジョブのシーケンス番号が入るのではないだろうか?

そう考えた私は一度やってみました。
結果としてはうまくいきませんでした。
「増分バックアップ」としてバックアップジョブを実行したはずなのに「フルバックアップ」が実行されたのです。
自分なりに解釈した結果、どこであろうがシーケンス番号が抜けた時点でそのシーケンスの繋がりは崩れるのだと考えました。

[バックアップ取得状態] フル → 増分1 → 増分2 → 増分3

・増分2を削除した場合、増分1まではリストアできるがそれ以降はできない
・増分3を削除した場合、増分2まではリストアできる

以上から、シーケンス番号の繋がりは思ったより固いのだなと思った次第です。

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

-Commvault
-