バックアップ計画
基本概念
バックアップとレプリケーションの違い
スナップショット、バックアップ、レプリケーションは、似たもので異なる概念です。これらを理解し、上手く使うことで、盤石なデータ保護が可能になります。
Snapshot | スナップショット(ある時点の静止点)を作成するだけの機能。 同ストレージにある時点の静止点イメージを確保することで、ユーザのVM操作ミスなどからデータの救出をすることができます。 xcp-ngのスナップショットは、バッキングストア型のスナップショットなので、作成は比較的短い時間(秒)で作成ができ、スナップショットの削除には長い時間がかかります。また、作成できるスナップショット数は、システムが利用する分を含めて30世代までとなっています。 スナップショットは、同一ストレージに保存されており、データの共通部分は、データストアとして共通領域を示すため、ストレージの物理障害を回避することはできません。 物理破損時には全てのスナップショットデータが失われます。 |
---|---|
バックアップ | 別筐体へデータをコピーし、保存する機能です。 データは独自の形式で圧縮、アーカイブされているため、そのサイズは小さくなります。 しかし、データを別筐体にコピーする以上、データを読み書きする時間がかかります。加えてXen Orchestraでは差分バックアップ機能(Delta Backup)があるため、差分転送も可能です。 バックアップイメージの特徴は「バックアップそのものから仮想マシンを復元できる」ことにあります。そのためメディアにコピーすることでオフライン保存にもなります。 しかし、バックアップイメージから再び仮想マシンを動作できるようにするためには、書き戻しなどの「復元作業」が必要になり、RTOが長めになります。 |
Replication | レプリケーションは、Snapshot機能を利用し差分転送を行うことで、動作できる状態のまま、別プールや、別ストレージ筐体へコピーする機能です。 参考≫ スナップショットレプリケーションとは レプリケーションとバックアップの最大の違いは、レプリケーションは、コピー先にてマシンを「そのまま稼働」できる点にあります。これはRTO(Recovery Time Objective)を極小化に役立ちます。また、HRPC Xenタイプならでは特徴として、Inter Regeonal Fabric®を組み合わせる事で別リージョンの別プールに転送できるため、ディザスタリカバリ、BCP計画にも役立ちます。 しかし、レプリケーションはプールにメタ情報を持つため、たとえば同一プール内に接続したES/BSなどにレプリケーションを行っている場合にプールに破壊的ダメージが発生した場合、ES/BSにはメタ情報の無いデータの塊しか残らないため、データの復元ができません。 |
ストレージ形式の違い
HRPCは、HCI、3Tier、IaR(Independent and Replication)と、3つの手法でストレージ構造を持つことができます。それぞれの形式には一長一短があります。
参考≫ ストレージ形式の違い
※XenタイプでのHCIは近日リリース予定であり、2025年4月現在はリリースされておりません。
まず3Tier型は、Enterprise Storage側で冗長性が担保されます。HCI(Hyper Converged Infrastructure)形式は、Cephというストレージソフトウェアで冗長性が担保されます。
これらはハード破損には対応できるものの、仮想マシン内部での操作ミスや、ダッシュボードから仮想マシンを消してしまったりするような論理的破壊には無力です。その他、ストレージソフトウェア自体のバグや、先述したとおり、プールのメタ情報に異常が発生した場合なども、データの保護ができません。
IaRで使われているICS(Interconnected Storage)は、単一NVMe SSDの高速性、安定した反応速度を担保しながらも、RAINというメカニズムを利用しNANDセル内での冗長化が行われています。NANDセル一つが破損してもデータは守られます(この場合、ICSの交換作業は発生します)が、ホストそのものに物理的破壊が起きた時、ICSを含めてデータ取り出しが不可能になります。
IaRではICSに加えて、ES/BSなどへのReplicationを組み合わせられているため、ES/BSからデータの復元が可能です。しかしレプリケーションソフトウェア自体のバグや、プールのメタ情報に異常が発生した場合などは、データの保護はできません。
参考≫ デザインパターン/High Response Private Cloud用Storageデザインパターンガイド (ストレージの永続化とは?)
参考≫ デザインパターン/IaR(Independent and Replication)、高いIOを処理するストレージ構成
ここから分かる推奨は下記の通りです。
3Tier/HCI | ハード破壊には強いため、Rolling Snapshotなどで論理保護は最低限すべき。BCP/DR計画をするためには、別リージョンの別プールにContinuous Replicationを行うべき。 |
---|---|
IaR | 基本的にハード破壊に弱いため、Backup Storageに最低限、Continuous Replicationを設定すべき。 BCP/DR計画をするためには、別リージョンの別プールにContinuous Replicationを行うべき。 |
RPO/RTO/RLOの設計
リカバリ(復旧)という意味で考えられる方針です。
RPO | Recovery Point Objective。障害時にどの時点まで巻き戻るのか?定期的にバックアップする頻度を、ワークロードにあわせて考える必要があります。 |
---|---|
RTO | Recovery Time Objective。障害時からの復旧時間。すぐに復旧出来る必要があるのか、それとも時間をかけて良いのか?高速なストレージや別プールに取るレプリケーションは速く復旧できますが、バックアップからの復元はデータ転送だけでも大きな時間がかかります。 同等のプールをメインプールと別リージョンに設置できれば、単純計算で2倍のコストがかかりますが、代わりに復旧時間が短くなります。従って、経済的損失から逆算して計算します。 |
RLO | Recovery Level Objective。復旧レベル指標。全てではなく、どのサーバ(システム)を優先的に復旧するのか?を事前に決めておきます。たとえばコストダウンのために、DRサイトが設置される別リージョンを半分の規模にする場合、どのサーバを優先復旧し、どのサーバがメインサイト復旧まで戻らないかをあらかじめ決めておくとよいでしょう。 |
これらを考えることで、障害に強いシステムを作ることが可能です。
レプリケーションの設計例
下記はIaR形式のストレージシステムの時の設計例です。
- RPO (Recovery Point Objective) は最小で1時間まで設定ができます。
- 稼働している仮想マシンは、自動的に1時間に1度の頻度でバックアップが取得されるようになっており、タグの設定により仮想マシン単位で除外することも可能です。
- レプリケーションやバックアップは、本体とは別の筐体である、別プール、別ホスト、Enterprise Storage、Backup Storage、QuTS cloud on InfiniCloud(以降QI。設置場所のリージョン制限あり)であるべき。
- ES/BS/QIのNFSストレージは、バックアップ対象の仮想マシンの合計容量の2倍以上を目安に、契約する必要があります。これは、1世代前とバックアップ実体と、バックアップ進行中のデータも含むためです。
- バックアップは必要に応じて、2世代、3世代取ることが可能です。その場合、バックアップ用のストレージは仮想マシンの合計容量の3倍、4倍以上を用意する必要があります。
- ES/BS/QIのNFSストレージに対し、停止している仮想マシンを移動して保持することが可能です。すでに利用していないため稼働する必要はないが保持だけはしておきたい仮想マシンを、ローコストで保存することが可能です。
- QIは共有型ストレージである為、速度担保が一切ありません。従って、ある日は12時間に1度のバックアップが取れるが、ある日は間に合わなくRPO違反がおきることがあります。これは容量特化型の製品仕様によるものです。またリカバリの時、QIの上から直接、仮想マシンを起動することは、ストレージ反応速度のばらつきが起きるため、推奨できません。
- バックアップ処理は、状況により正常に取得できないことがあります。
- 失敗した場合、ユーザー宛にメールを送信できます。
- 失敗原因は、ES/BS/QIなどのNFSストレージのディスク容量不足、速度不足、ローカルSSDストレージのバッキングストアマージ時の一次容量不足が主に考えられます。
- バックアップ稼働条件が満たされる場合、次のタイミング (通常は1時間後) でバックアップが再び行われます。
- RTO (Recovery Time Objective:システムが停止から復旧するまでの想定時間) は、設計思想や、仮想マシンのディスクサイズによって異なります。
- ES/BSから直接起動する場合、RTOは極めて短くできますが、稼働させた場合、ICSよりも速度が遅くなります。IO速度を求めるシステムでは、事実上機能しない恐れがあります。
- 動作させながら、ICSに書き戻す(ストレージマイグレーション)することもできます。
- ICSに書き戻してから起動する場合は、ディスクサイズが大きい仮想マシンほど、復旧するまでの時間がかかります。
- ES/BSから直接起動する場合、RTOは極めて短くできますが、稼働させた場合、ICSよりも速度が遅くなります。IO速度を求めるシステムでは、事実上機能しない恐れがあります。
- 停止中の仮想マシンはバックアップを取得しないことも可能です。