バックアップ、レプリケーション処理の流れ
Veeam Backup & ReplicationはJobを作成、実行することで仮想マシンのバックアップ、レプリケーションを行います。
Job実行から終了までの処理の流れを紹介します。
バックアップ処理の流れ
1ゲストOSの静止点作成
ゲストOS上の各アプリケーションレベルでの整合性を確保するために、ランタイムプロセスをゲストOS上で実行します。これによりMicrosoft VSSに対応したアプリケーションであれば確実な静止点を取得できます。またMicrosoft VSSに対応していないようなアプリケーションであっても、任意のスクリプトを簡単に設定可能です。
2スナップショット作成
作成された静止点の状態でスナップショットを作成します。
VMware:通常はVMwareのスナップショットのみを使用し、静止点の状態を保存したスナップショットを作成します。また、一部ストレージ(Dell EMC, NetApp, HPE, Nimble, Cisco, IBM)についてはストレージのスナップショットと連携し、ソフトウェアスナップショットであるVMwareスナップショットの保持時間をできる限り短くしたバックアップが可能です。
Hyper-V:ソフトウェア/ハードウェアVSSプロバイダを使用し、スナップショットを作成します。ソフトウェアVSSプロバイダを使用できるのはVMが稼働するオンホストなHyper-Vのみですが、ハードウェアVSSプロバイダを使用する場合にはオフホストのHyper-Vで処理が行えますのでオンホストに負荷をかけずバックアップが可能です。
3CBTによる変更ブロックの判別
変更ブロック追跡機能(CBT)により、エージェントレスで2回目以降のバックアップでは変更されたブロックのみを高速にバックアップ可能です。VMware場合にはvSphereのCBT機能を利用していますが、Hyper-Vの場合にはこの機能がハイパーバイザに組み込まれていないためVeeamが独自に実装し効率的な処理を実現しています。VMwareのバックアップでストレージスナップショットと連携している場合にはVMwareスナップショットはこの時点で削除されます。
4プロキシでのデータ取得
変更ブロックのデータをプロキシが読み取ります。このプロキシの役割はVeeamインストールサーバに加えて、新たに別のサーバを登録割り当てることもできるため、プロキシを追加し負荷分散して並列での読み取りを実施する構成やファイバチャネル接続が可能な物理マシンをプロキシとして使用するなど環境に合わせて柔軟に最適な構成を実現できます。
またデータ取得時にはソースとなるデータストア(ボリューム)のI/Oをコントロールすることもできるため、データストアのI/Oが少ない場合には高速なバックアップを実施し、データストアのI/Oが多い場合には低速なバックアップを実施するといった制御を実現でき、仮想環境へのI/O負荷を考慮したバックアップも構成できます。
5重複排除/圧縮/暗号化
バックアップデータのサイズ削減のためにプロキシで空白のブロックの削除や重複排除、圧縮が実施されます。またデータを安全に保存するためのAES256bitでの暗号化もこの時点で実施されます。重複排除や圧縮率は設定から変更できるため、ネットワーク環境や処理マシンのスペック、ストレージ側の重複排除機能などに合わせて最適な設定が可能です。
6リポジトリへのデータ保存
Windows、LinuxにマウントされているDASやSAN、NASとCIFSの共有フォルダにバックアップを保存できます。リポジトリとして割り当てられたサーバでフルバックアップへのマージ処理や増分ファイルの差分ファイルへの変換が実施され、ご希望の形式でデータを保存できます。バックアップの形式は以下のものが使用できます。
差分バックアップ:読み取った変更ブロックのデータは即座にフルバックアップにマージされ、古い世代が差分バックアップとして保存されます。最新の世代がフルバックアップとなるため、最新世代のリストア時にマージ処理が必要なく高速なリストアが可能です。
永久増分バックアップ:読み取った変更ブロックのデータを増分バックアップファイルとして保存し、スナップショット削除後に最も古い世代をフルバックアップにマージします。これによりスナップショット保持時間を差分バックアップより短くできます。
増分バックアップ+合成フルバックアップ:読み取った変更ブロックのデータを増分バックアップファイルとして保存します。毎回のジョブ実行ではマージ処理が発生しない代わりに週1回、合成フルバックアップを作成します。
7スナップショット削除
バックアップが完了するとスナップショットが削除されます。正常に処理が進んでいれば、この時点でデータ取得が完了しているため、アプリケーションのトランザクションログの切り詰めはこの時点で実施されます。処理が途中で失敗している場合にはトランザクションログの切り捨てを実施せずに、ログからアプリケーションを復旧できるよう保持します。
※VMwareのバックアップでストレージスナップショットと連携している場合にはVMwareスナップショットは処理(3)の時点で削除されます。
レプリケーション処理の流れ
1ゲストOSの静止点作成
ゲストOS上の各アプリケーションレベルでの整合性を確保するために、ランタイムプロセスをゲストOS上で実行します。これによりMicrosoft VSSに対応したアプリケーションであれば確実な静止点を取得できます。またMicrosoft VSSに対応していないようなアプリケーションであっても、任意のスクリプトを簡単に設定可能です。
2スナップショット作成
作成された静止点の状態でスナップショットを作成します。
VMware:通常はVMwareのスナップショットのみを使用し、静止点の状態を保存したスナップショットを作成します。また、一部ストレージ(Dell EMC, NetApp, HPE, Nimble, Cisco, IBM)についてはストレージのスナップショットと連携し、ソフトウェアスナップショットであるVMwareスナップショットの保持時間をできる限り短くしたレプリケーションが可能です。
Hyper-V:ソフトウェア/ハードウェアVSSプロバイダを使用し、スナップショットを作成します。ソフトウェアVSSプロバイダを使用できるのはVMが稼働するオンホストなHyper-Vのみですが、ハードウェアVSSプロバイダを使用する場合はオフホストのHyper-Vで処理が行えますのでオンホストに負荷をかけずレプリケーションが可能です。
3CBTによる変更ブロックの判別
変更ブロック追跡機能(CBT)により、エージェントレスで2回目以降のレプリケーションでは変更されたブロックのみを高速にレプリケーション可能です。VMwareの場合はvSphereに組み込みのCBT機能を利用していますが、Hyper-Vの場合はこの機能がハイパーバイザに組み込まれていないためVeeamが独自に実装し効率的な処理を実現しています。VMwareのレプリケーションでストレージスナップショットと連携している場合はVMwareスナップショットはこの時点で削除されます。
4プロキシでのデータ取得
変更ブロックのデータをプロキシが読み取ります。このプロキシの役割はVeeamインストールサーバに加えて、新たに別のサーバを登録割り当てることもできるため、プロキシを追加し負荷分散して並列での読み取りを実施する構成やファイバチャネル接続が可能な物理マシンをプロキシとして使用するなど環境に合わせて柔軟に最適な構成を実現できます。
またデータ取得時にはソースとなるデータストア(ボリューム)のI/Oをコントロールすることもできるため、データストアのI/Oが少ない場合には高速なレプリケーションを実施し、データストアのI/Oが多い場合には低速なレプリケーションを実施するといった制御を実現でき、仮想環境へのI/O負荷を考慮したレプリケーションも構成できます。
5重複排除/圧縮/暗号化
ソース側、ターゲット側双方にプロキシが配置されている場合は、転送データのサイズ削減のためにプロキシで空白のブロックの削除や重複排除、圧縮が実施されます。重複排除や圧縮率は設定から変更できるため、ネットワーク環境や処理マシンのスペックに合わせて最適な設定が可能です。
6データ転送
重複排除、圧縮したデータが転送されます。この転送の際にSSLを使用した安全な転送が行えます。またバックアップデータ、既存のVMを元に初回の複製VMを作成することも可能です。これにより通常は転送量の多い初回レプリケーションも重複排除、圧縮された変更ブロックのみの転送で実施することも可能です。
さらにWANアクセラレーション機能を使用することでターゲットのキャッシュからデータを作成し、より転送量を抑えたレプリケーションも可能になっています。
7データ展開
プロキシで重複排除、圧縮、暗号化が行われたデータを展開します。展開されたデータは順次、ターゲットのハイパーバイザに仮想マシンとして配置されます。
また、バックアップからのレプリケーション機能を使用している場合もこの処理でソースのバックアップファイルからデータを展開します。
8データ配置
展開されたデータがハイパーバイザ上のデータストアに配置されます。この時、世代はスナップショットとして保持され、緊急時にはハイパーバイザのUIから対象世代のスナップショットまで戻り仮想マシンを起動することも可能です。
9スナップショット削除
レプリケーションが完了するとスナップショットが削除されます。正常に処理が進んでいれば、この時点でデータ取得が完了しているため、アプリケーションのトランザクションログの切り詰めはこの時点で実施されます。 処理が途中で失敗している場合にはトランザクションログの切り捨てを実施せずに、ログからアプリケーションを復旧できるよう保持します。
※VMwareのレプリケーションでストレージスナップショットと連携している場合にはVMwareスナップショットは処理(3)の時点で削除されます。