RECとQuickOPCを使用したリモート筐体へのバックアップの作成

非同期StackモードのRECとQuickOPCを使用して、リモート筐体に業務Volumeのバックアップを定期的に作成する運用を記載します。業務Volumeがある筐体が被災した場合でも、バックアップを作成した時点でのデータを保証できます。ミラーVolumeをリモート筐体に作成する場合に比べて、コピー経路の回線帯域が小さいときでも、業務Volumeのレスポンス性能劣化を最小限にしつつ、リモート筐体にバックアップを作成できます。

備考

非同期StackモードのREC機能を使用する場合、1日1回程度の頻度でバックアップを更新する運用を想定しています (RPO >1Day)。ミラーVolumeを作成する場合に比べて、必要とするコピー経路の回線帯域は少ないですがRPOは長くなります(同期モードの場合はRPO = 0、非同期Consistencyモードの場合はRPO = 数秒~数分になります)。

コピー経路の回線帯域が十分であり、RPOを短くしたい場合は、同期モードや非同期ConsistencyモードのREC機能の利用を検討してください。

非同期Stackモードでの運用の場合、データの転送時に業務Volumeに書き込まれたデータの順序保証を行わないため、データ転送中はリモート筐体のバックアップVolumeのデータを参照できない状態になります。そのため、データ転送中にローカル筐体が被災した場合であっても、リモート筐体のCloneからデータを復旧できるように、データ転送開始前にバックアップVolumeのCloneをリモート筐体に作成する必要があります。

運用イメージ

非同期StackモードのREC機能とQuickOPC機能を使用した、リモート筐体に業務Volumeのバックアップを作成する運用のイメージです。

  1. 運用開始前

    リモート筐体のバックアップVolumeとCloneのデータは一致しています。

    図: 運用開始前のデータの状態
  2. 業務中

    • 業務開始直前に、REC SessionをSuspendしてデータ転送を抑止します。

    • 業務Volumeのデータが更新されます。

    • 業務Volumeとリモート筐体のバックアップVolumeのデータは一致しません。

    • ローカル筐体が被災した場合、リモート筐体のバックアップVolumeからデータを復旧できます。

    図: 業務中のデータの状態
  3. 業務終了後

    • REC SessionをResumeし、業務Volumeのデータをリモート筐体に転送します。

    • データ転送は順序保証をしないため、データ転送中はリモート筐体のバックアップVolumeは参照不可になります。

    • ローカル筐体が被災した場合、リモート筐体のバックアップVolumeのCloneからデータを復旧できます。

    図: 業務終了後のデータの状態
  4. 業務中(2回目以降)

    • 業務開始直前にREC SessionをSuspendし、業務中のデータ転送を抑止します。

    • 業務開始直前には、前回業務中の更新データをすべて転送済みにしておく(業務Volumeとリモート筐体のバックアップVolumeのデータを一致させておく)必要があります。

    • リモート筐体のバックアップVolumeのCloneを再同期して、リモート筐体のバックアップVolumeとCloneのデータを同一にします。

    • 業務中にローカル筐体が被災した場合、リモート筐体のバックアップVolumeのデータから、業務開始直前のデータを復旧できます。

    図: 業務中(2回目以降)のデータの状態
  5. 業務終了後(2回目以降)

    データ転送中にローカル筐体が被災した場合、リモート筐体のバックアップVolumeのCloneから前回の業務終了時のデータを復旧できます。

    図: 業務終了後(2回目以降)のデータの状態

運用イメージ(リストア時)

非同期StackモードのREC機能とQuickOPCを使用して、リモート筐体に業務Volumeのバックアップを定期的に作成している環境で、リモート筐体のバックアップVolumeまたはCloneからデータを復旧するイメージについて説明します。

ローカル筐体が被災したタイミングによって、リモート筐体のバックアップVolumeからリストアするか、リモート筐体のバックアップVolumeのCloneからリストアするかが変わります。

REC SessionをSuspend中に業務Volumeが被災した場合、リモート筐体のバックアップVolumeからデータを復旧します。Suspend直前の業務Volumeのデータを復旧できますが、Suspend後の更新データは復旧できません。

図: 被災した場合のデータの状態(1)

REC Sessionがデータ転送中の場合、リモート筐体のバックアップVolumeのCloneからデータを復旧します。

データ転送の際、順序性は保証されていないため、データ転送中はリモート筐体のバックアップVolumeのデータを参照できません。そのため、Suspend中に再同期しておいたリモート筐体のバックアップVolumeのCloneからデータを復旧する必要があります。

Cloneから復旧する場合、Suspend直前の業務Volumeのデータを復旧できますが、Suspend後の更新データは復旧できません。

図: 被災した場合のデータの状態(2)

運用で使用するRESTful APIとサンプルスクリプト

  • 準備

    リモート筐体に業務VolumeのバックアップVolume(非同期Stack ModeのRECコピー先Volume)とバックアップVolumeのCloneを作成します。rec_stack_create.pyを使用してください。

  • 運用

    業務開始前(業務Volumeの更新前)に、REC SessionをSuspendしリモート筐体に業務Volumeのバックアップを作成します。同時にバックアップVolumeのCloneの再同期を開始し、業務開始前に転送されたデータをCloneにコピーします。rec_stack_before_operation.pyを使用してください。

    業務終了後(業務Volumeの更新後)に、REC SessionをResumeし、業務Volumeの更新データをリモート筐体に転送します。rec_stack_after_operation.pyを使用してください。

  • リストア

    REC SessionがSuspend中の場合、REC Sessionを反転させることで、リモート筐体のバックアップVolumeからデータをリストアします。

    REC SessionがSuspend中ではない場合、REC Sessionを反転させ、CloneからバックアップVolumeへのリストアOPC Sessionを作成することにより、バックアップVolumeのCloneからデータをリストアします。rec_stack_recover.pyを使用してください。

  • 削除

    バックアップVolumeのCloneを削除する場合は、DELETE /volume/{volume_id} APIを使用してください。詳細は、Volumeの削除を参照してください。

    バックアップVolumeを削除する場合は、REC Sessionを強制削除してから、コピー先Volumeを削除してください。Copy Sessionの強制削除は、DELETE /copysession/{copysession_id} APIを使用します。Volume削除は、DELETE /volume APIを使用します。詳細は、Copy Sessionの削除および複数Volumeの削除を参照してください。

    REC Sessionのみ削除し、バックアップVolumeはリモート筐体で引き続き使用する場合は、copysession_delete.pyまたはDELETE /copysession/{copysession_id} APIでREC Sessionを削除してください。

注意事項

  • REC SessionをSuspendする際に未転送データが残っている場合、Suspendは失敗します。未転送データが残っていない状態でSuspendを実施してください。

    転送モードの変更などでSuspendが必要な場合は、force指定ありでSuspendを実施してください。

  • リモート筐体のバックアップVolumeのCloneに対して、データコピー中にリモート筐体へのデータ転送を再開した場合、Cloneへのデータコピーが完了するまで、リモート筐体のデータを使用した復旧ができなくなります。

    リモート筐体のデータ転送は、Cloneへのデータコピーが完了していることを確認してから実施してください。

  • リモート筐体のバックアップVolumeのCloneについての注意事項は、QuickOPCを使用した定期的なフルバックアップの作成を参照してください。