こんにちは、Veeam SoftwareでSEをしております西巻と申します。
私自身はVeeamでは一番古くから在籍しているSEですが現在は愛知県在住で中部エリア担当のSEとなります。
過去に公開したブログに簡単な自己紹介が記載されておりますのでご興味があればご参照下さい。https://enterprisezine.jp/author/552
今回発表されるVeeem Backup & Replication (VBR) v12では様々な機能アップや改善がされておりますが、その中の一つに「マシンごとのバックアップ ファイルを作成(Per-Machine)」がデフォルト設定になるという項目があります。
この「マシンごとのバックアップ ファイルを作成(Per-Machine)」というのは、VBR v11まではWindowsレポジトリ等の一般的なレポジトリにバックアップをすると、Job単位で指定された全てのVMを1つのバックアップファイル(チェーン)にまとめて保存されていたのですが、この設定を有効にする事によりJob内でVM単位毎にバックアップファイル(チェーン)が分割されるようになります。この機能自体は以前からVBRには実装をされていたのですがスケールアウト・バックアップ・レポジトリ以外ではデフォルトでは無効となっておりました。
これをVBR v12からはデフォルトでこのPer-Machineが採用されます。(但しVBR v11からのアップグレードの場合は既存レポジトリを自動でPer-Machineに変更をしません。有効にするには既存レポジトリの設定をPer-Machineに変更する必要があります)
なおレポジトリにPer-Machineの設定を適用するとバックアップJobは、Job内のすべての VM に対して個別の書き込みストリームを使用して指定された全てのVMのデータを個別のバックアップファイル(チェーン)に分割して保存します。この機能を有効にするとストレージ デバイスのリソースがより効率的に使用され、ジョブのパフォーマンスが向上する可能性があります。またData DomainやStoreOnce等の重複排除ストレージでは推奨とされる設定になります。
マシンごとのバックアップ ファイルを作成するには、バックアップレポジトリのプロパティで 「Use per-machine backup files」オプションを有効にする必要があります。
複数の書き込みストリームをサポートするストレージアプライアンスを重複排除するにはこのオプションを有効にすることをお勧めします。
それでは比較をする為にPer-Machineの設定をしていないレポジトリに3台のVMを指定したJobを実行します。
このJobは指定されたレポジトリに3台のVMをまとめて1つのバックアップファイル(チェーン)として保存をされています。
この状態ではバックアップされたVM単位でのリカバリ処理は可能ですが、例えば1台のVMのバックアップのみを抜き出したり他のレポジトリにコピーする事は出来ません。
そこでレポジトリの設定を変更してみます。Per-Machineの設定を有効にするにはレポジトリのプロパティを開いて以下の項目で「Use per-machine backup files (recommended)」にチェックを入れます。
ちなみにVBR v11以前では「recommended」の表記はありません。non Per-Machineのレポジトリはレガシー形式となり、v12からnon Per-Machineの設定をするのは非推奨となりますのでご注意下さい。(v11からアップグレードした場合は良いですが、v12を新規インストールしてnon Per-Machineに変更するのは非推奨です)
この状態で比較をする為に同じVMを指定した新規Jobを作成し、実行します。
誤差の範囲ではありますが、検証環境ではPer-Machineを有効にした事でバックアップ速度が向上しています。
Jobが終了したら該当のレポジトリで対象Jobのバックアップファイル(チェーン)を確認します。non Per-MachineのJobでは1つのファイルにまとまっていましたが、Per-Machineを有効にするとVM単位でバックアップファイル(チェーン)が分割されている事が確認出来ます。
リストアオプションを確認すると、先ほどには無かった「Move backup」と「Copy Backup」の項目が追加されています。
(※VBR v11ではこの項目は存在しませんでした。VBR v12ではv11で作成したnon Per-MachineのレポジトリでもJob単位であればMove/Copyが実行出来るようになりました)
具体的なユースケース
それでは実際にこの機能を使ってみましょう。
ユースケースとしては、既存のバックアップJobで特定のVMの容量が肥大化してしまい、既存レポジトリで容量枯渇の状態が近々で発生するという状況を想定してみます。
今現在でもVBRの機能として既存のバックアップチェーンをExportや手動で移動をし、Job側で移動先のバックアップチェーンを再マップする事で同様な対応は可能ですが、Job内にある全てのVMが対象となり容量が過大な場合は移動時間や移動先のレポジトリに余計な容量を追加する事が問題になります。
そこでJobがPer-Machineで設定をされたレポジトリにバックアップされている場合は、特定のVMのバックアップチェーンのみ他のレポジトリにコピー/移動する事が可能となります。
具体的なオペレーションは以下になります。
「Move backup」と「Copy Backup」がありますが、「Move backup」は移動先のレポジトリがPer-Machineの設定である必要がありますので、今回は既存のnon per-machineレポジトリを指定して「Copy Backup」を実行したいと思います。
バックアップからコピーをしたいVMを選択して右クリックをし、「Copy Backup」を実行します。
コピー先のレポジトリを指定します。このレポジトリはnon Per-Machineのレポジトリです。
後は「OK」をクリックして実行します。
コピーが終了するとSuccessになりますので「Close」をクリックして下さい。
「Copy Backup」が完了するとDisk(Exported)が追加されますので、このバックアップから直接リストアする事も可能です。
コピー先のレポジトリを確認すると指定したVMのみのバックアップチェーンが存在します。
それではこのVMのみをバックアップするJobを新規作成してみましょう。
新規Jobのウィザードの中でコピー先のレポジトリを選択して「Map backup」をクリックし、コピーをしたJob(既存Jobと同じ名前になります)を指定します。
そしてこのJobを実行すると新規Jobですがコピーされたバックアップチェーンを認識して増分バックアップで完了します。
(この際のCBTの検出はVeeam側の仕組みを使用します。https://helpcenter.veeam.com/archive/backup/110/vsphere/changed_block_tracking.html)
この時点ではバックアップしたチェーンはnon per-machineレポジトリに存在します。継続して運用する場合は環境によりJobと紐づいていない場合がありますので、再度そのJobでバックアップチェーンの再マップやバックアップ。レポジトリをRescanする手順が必要になる場合がありますが、取り合えずこの様な感じで実行が出来ます。
またコピーしたDisk(Exported)内にあるバックアップチェーン(例:Per-VM Backup Job)はこれらの処理後に不要であれば削除して頂いて結構です。
なお元のバックアップJobにコピーしたVMが残ってますので不要であればJobから削除をしておいて下さい。
これ以外でも既存レポジトリからReFSやXFS等の重複排除が有効になるレポジトリにバックアップチェーンを移動する際にも効率的かつ容易に実行が出来ます。
更にレプリケーションでReplica Seedingを実行する際にも、既存バックアップから特定のVMのバックアップチェーンを抜き出して指定する事も可能になりますので、この機能の応用例は多岐にわたります。
まとめ
この様にPer-Machineを有効にする事でバックアップ効率の向上、リソースの適切な再配置等々、様々なシチュエーションで有効活用が出来ます。
特にレポジトリ枯渇時の対応や特定のVMだけを抜き出して個別にバックアップをしたり、Veeamのその他の機能と連携する為の応用も出来ますので、日々の運用を効率的に行う事が可能となります。
これ以外でもv12にはさらに実践的な機能がエンハンスされていますので他のブログ等をご参照の上ご確認下さい。