Snapshot Replicationのメカニズム
目的
Snapshot Replicationは、データベースやストレージシステムのレプリケーション手法の一つで、データのスナップショット(データの状態を特定の時点で保持するメカニズム)を取得し、それをコピーすることで初期同期を行い、その後もスナップショットを定期的に取得し差分のみを転送することで、データの遅延同期を実現する手法です。この技術をハイパバイザに組み込み、仮想マシンにも摘要させることで、仮想マシンのレプリカを定期的に取得することを可能とします。
スナップショットレプリケーションは次の方法でレプリカを作成し、動作します。
1.初期同期(Initial synchronization)
初期同期は、まずスナップショットを取得します。スナップショットはハイパバイザの機能により行うため、内部でFreeze処理(ディスクの書き込みバッファを実際にディスクに書き込みをする処理)をします。そのスナップショットの全体を、転送先(Target)となるストレージにコピーします。
2.スナップショットの作成〜差分転送(Snapshot Incremental transfer)
初期同期が完了した後、RPOに応じた定期的な間隔で、スナップショットを作成します。変更が発生した場合には、変更の差分のみがターゲットに転送されます。これにより、データの同期を少ない量で効率的に行う事ができます。
3.ターゲットの適用(Target Data Merge)
スナップショットの転送が完了すると、ターゲットストレージでは、直前までの転送内容と、今転送したスナップショットの内容を合成(Merge)します。合成処理が完了すると、2で取得したプライマリストレージのスナップショットの状態と、このターゲットストレージのデータが同じ状態になります。
この状態でプライマリストレージは、ターゲットよりも、「スナップショット〜転送〜適用」にかかった時間分、差分が増えている状態になります。
4.プライマリストレージのスナップショットの削除(Primary Storage Merge)
同期が終わったことで、プライマリストレージでは「3で適用したより前の世代のスナップショット」は不要になる為、そのスナップショットをプライマリストレージから削除します。ただし、削除と言っても、実際はターゲットと同じようにデータを合成(マージ)する必要があるため、プライマリストレージには一定の負荷がかかります。
5.継続的なレプリケーション(Ongoing replication)
2〜4のスナップショットの作成と転送のプロセスは、定期的に繰り返されます。このようにして、ストレージの変更がターゲットに反映され、データの同期が継続的に行われます。