vSphere

vSphere Replicationの動作概要

皆さんこんにちは。VMware高木です。

今回はVMware vCloud Air Disaster Recoveryでも利用されている、vSphere Replicationの動作概要についてお話します。

vSphere Replicationは仮想マシンの災害対策でも使用される、ホストベースのレプリケーション機能です。簡単に申し上げますと、定期的に仮想マシンの更新データを遠隔地に送る機能ですが、vSphere Replicationってそもそも簡単に設定出来るの?とか、こんな時はどんな動作になるの?という様な質問を良く頂きますので、ご質問頂いた内容に沿ってvSphere Replicationの動作を説明したいと思います。構成としては稼働サイトのvSphereから、DRサイトのvSphereに仮想マシンを保護する想定です。

Q1.『vSphere Replicationって簡単に使えるの?』

A1.『はい。簡単に使えます。しかもvSphereのEssentials Plus以上のライセンスをお持ちであれば、直ぐに始められます。』ktakagi003
『まずは、vSphere Replicationの仮想アプライアンスをVMwareのHPからダウンロードして、vCenterからデプロイを実行します。デプロイ時に指定する内容も以下のみです。』

・    ダウンロードしたファイルを指定
・    仮想アプライアンスの名前とデータセンターを指定
・    デプロイ先のリソースを指定
・    デプロイ先のデータストアを指定
・    デプロイ先のネットワークを指定
・    仮想アプライアンスのIPアドレスとパスワードを指定

004

005

006
007
008
009
『デプロイ後、再度vCenterにログインし直して頂ければ、既にvCenterから使える状態になっています。DRサイト側にも同じ様にvSphere Replicationの仮想アプライアンスをデプロイすれば、後は実際に保護対象の仮想マシンを右クリックし、vSphere Replicationの設定をするだけです。』
010
『vSphere Replicationの設定も簡単です。主に以下を設定すれば直ぐに仮想マシンのレプリケーションが開始します。』
・    (DR先となる)ターゲットサイト
・    (保存先となる)データストア
・    RPO(目標復旧時点)
011
012
ktakagi013

Q2.『サーバのメンテナンスがあるんだけど、vSphere Replicationが動いたままで大丈夫かなぁ。サーバ再起動後に仮想マシンのフル同期が走ったりしないか不安です。』

A2.『大丈夫です。仮想マシンのフル同期は行われません。』
014

『通常、保護対象の仮想マシンを構成する仮想ディスクへ更新が入った際、更新されるブロックアドレスをメモリに保存する事で、指定されたRPO(目標復旧時点)ごとに、更新データを作り出して送る動作となります。』
015

『vSphere 自体が再起動される場合にはメモリに更新されるブロックアドレスを保存する事が出来なくなります。そのため、保護対象の仮想マシンのホームディレクトリに作られるPSF(パーシステントステートファイル)にメモリ上のブロックアドレスを保存する事により、vSphere起動後も同期処理を行う事なく、そのままvSphere Replicationが開始されます。』

Q3.『スイッチの入替えがあってネットワークが暫く切断になっちゃうんだけど、仮想マシンのフル同期って走る?そもそもフル同期ってどんな時に走るんだろう?』

A3.『まず、通常運用時にフル同期は殆ど行われません。vMotionやStorage vMotionで対象の仮想マシンが移動しても、仮想マシンを停止してもフル同期は発生しません。但し、レプリケーション中に突然ネットワークが切れてしまった場合や、突然vSphere自体が停止してしまった等、PSFが不整合な状態の場合、フル同期が必要となります。』
016

『ただ、フル同期が必要となった場合も、同期対象の仮想マシンをブロックごとに比較し、差分が確認できたブロックのみを転送します。帯域を圧迫しませんので安心して下さい。』

Q4.『vSphere Replicationで仮想マシンを保護したいんだけど、実際に仮想マシンをDRサイト側でリカバリする時って大丈夫かなぁ。そもそも仮想マシンの静止点ってどんな感じで取られるの?』

A4.『まず、vSphere Replicationでは仮想マシンを構成する仮想ディスクとしての静止点が取られます。また、仮想マシンを構成する仮想ディスク間の整合性も保たれます。尚、仮想マシンがWindows OSの場合は、VSSと連携する事により、保護対象の仮想マシン上のOSとしての静止点を取得する事も出来ます。』
017

『vSphere Replication設定のオプションでVSSを使用するかどうか選択出来ます。』

Q5.『vSphere Replicationって他のバックアップ製品と一緒に使えるの?同じようにvSphereのライセンスで使えるVDPとの併用はどうだろう?』

A5.『併用は出来ますが、1点だけ注意が必要です。それは、vSphere ReplicationのVSS連携で、保護対象の仮想マシンでOS上の静止点を取る場合です。』
ktakagi018

『ご存知の方もいらっしゃると思いますが、VDPやvSphere上の仮想マシンを対象とした一般的なエージェントレスのバックアップ製品は、vSphere Replicationと同じ様に更新ブロックアドレスを覚えておくためにCBT(Changed Block Tracking)という機能が使われますが、このCBTではvSphereのスナップショット機能が利用されます。』
『vSphere Replicationでは通常、このスナップショット機能は使いませんが、VSS連携の時のみ利用されます。VDP等のバックアップ製品で発行されるスナップショットの作成と、vSphere ReplicationのVSS連携で発行されるスナップショット作成が同時に発生してしまった場合、バックアップが失敗する可能性があります。』
『そのため、vSphere ReplicationとVDP等のバックアップ製品と併用する場合には、1.VSS連携を使わない、2.RPOを可能な限り長く設定する、どちらかを選択して下さい。』

Q6.『とりあえず、RPOを30分に指定したんだけど不安。30分以内に更新データが送りきれない場合って、どんな動作になるの?』

A6.『まず、RPOについて説明させて頂きます。RPOは、リカバリポイントオブジェクトの略で、日本語では目標復旧時点等と訳されます。簡単に申し上げますと、どのくらい前の状態の仮想マシンが保護できていれば良いか、という事です。』
019

『仮にRPOを30分に指定した場合、vSphere Replicationのレプリケーションサイクル内で、常に30分前の状態の仮想マシンが保護出来ていれば良い、という事になります。但し、30分以内にレプリケーションが完了すれば良いかと言うと、そうではありません。それではどのような仕様になっているか見て行きましょう。』
020

『12:00にレプリケーションが開始し、12:20にレプリケーションが完了したとしましょう。12:20には12:00の時点の仮想マシンが保護出来ておりますので、特に問題が無い様に見えます。』
021

『それでは12:15に、稼働サイトに災害が発生したらどうなるでしょうか?当然、20分かかる予定だったレプリケーションは完了しませんので、12:00の時点の仮想マシンはありません。この時点で保護出来ていると推測されるのは、1サイクル前の11:30の時点の仮想マシンなので、RPOが守られないという事になります。』
『それではRPOを守るためには何分間で完了する必要があるのでしょうか?』
ktakagi022

『それはRPOで指定した時間の半分の時間以内の完了です。今回はRPOが30分ですので、15分以内の完了がRPOを守る条件になります。12:00にレプリケーションを開始し、10分で完了した場合、次のレプリケーションも12:30までには完了します。この場合においては、どの時点で稼働サイトに障害が発生しても、RPOが守られる、という形になります。』
『RPOの半分の時間以内にレプリケーションが完了しない場合、RPO違反となりますが、vSphere Replicationはそのまま動作し続けます。RPO違反が発生したら、レプリケーションを停止する、という事はありません。但し、RPO違反となり続ける場合は、RPOを長めに変更する(〜1,440分)等を検討下さい。』
皆さん、如何だったでしょうか。vSphere Replicationは非常にシンプルな機能ですが、仮想マシンとしての静止点をきちんと保持します。しかも、vSphereのEssentialsを除く全てのエディション(Essentials Plus〜Enterprise Plus)でそのままご利用頂けます。災害対策用の製品を別途購入する必要はありません。
仮想マシンの保護として世界中で使用されているvSphere Replication、是非、仮想マシンの災害対策としてご利用頂ければと思います。