このドキュメントでは、Persistent Disk 非同期レプリケーション(PD 非同期レプリケーション)を開始および停止する方法について説明します。
PD 非同期レプリケーションは、低 RPO、低 RTO の障害復旧に役立ちます。非同期レプリケーションの詳細については、Persistent Disk の非同期レプリケーションについてをご覧ください。
制限事項
- プライマリ ディスクは、一度に 1 つのセカンダリ ディスクにのみ複製できます。
- レプリケーションが停止すると、同じディスクへのレプリケーションを再開できなくなります。新しいセカンダリ ディスクを作成して、レプリケーションを再開する必要があります。
- レプリケーションのプロセス中にセカンダリ ディスクを接続、削除、スナップショットすることはできません。
- リージョン ディスクをセカンダリ ディスクとして使用していて、セカンダリ ディスクのゾーンの 1 つでゾーンが停止した場合、プライマリ ディスクからセカンダリ ディスクへのレプリケーションは失敗します。
始める前に
- 複数のディスク間でレプリケーションを調整する必要がある場合は、整合性グループを作成します。
- プライマリ ディスクを作成します。
- セカンダリ ディスクを作成します。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
レプリケーションを開始する
Google Cloud コンソール、Google Cloud CLI、または REST を使用してレプリケーションを開始します。
コンソール
Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。
レプリケーションを開始するセカンダリ ディスクの名前をクリックします。
[レプリケーションを開始] をクリックします。[レプリケーションの開始] ウィンドウが開きます。
[レプリケーションを開始] をクリックします。
gcloud
gcloud compute disks start-async-replication
コマンドを使用してレプリケーションを開始します。
gcloud compute disks start-async-replication PRIMARY_DISK_NAME \ --PRIMARY_LOCATION_FLAG=PRIMARY_LOCATION \ --secondary-disk=SECONDARY_DISK_NAME \ --SECONDARY_LOCATION_FLAG=SECONDARY_LOCATION \ --secondary-disk-project=SECONDARY_PROJECT
次のように置き換えます。
PRIMARY_DISK_NAME
: プライマリ ディスクの名前。PRIMARY_LOCATION_FLAG
: プライマリ ディスクのロケーション フラグ。リージョン ディスクの場合は、--region
を使用します。ゾーンディスクの場合は、--zone
を使用します。PRIMARY_LOCATION
: プライマリ ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。SECONDARY_DISK_NAME
: セカンダリ ディスクの名前。SECONDARY_LOCATION_FLAG
: セカンダリ ディスクのロケーション フラグ。リージョン ディスクの場合は、--secondary-disk-region
を使用します。ゾーンディスクの場合は、--secondary-disk-zone
を使用します。SECONDARY_LOCATION
: セカンダリ ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。SECONDARY_PROJECT
: セカンダリ ディスクを含むプロジェクト。
REST
次のいずれかの方法でレプリケーションを開始します。
disks.startAsyncReplication
メソッドを使用して、ゾーンディスクのレプリケーションを開始します。POST https://compute.googleapis.com/compute/v1/projects/PRIMARY_DISK_PROJECT/zones/PRIMARY_LOCATION/disks/PRIMARY_DISK_NAME/startAsyncReplication { "asyncSecondaryDisk": "projects/SECONDARY_DISK_PROJECT/SECONDARY_LOCATION_PARAMETER/SECONDARY_LOCATION/disks/SECONDARY_DISK_NAME" }
regionDisks.startAsyncReplication
メソッドを使用して、リージョン ディスクのレプリケーションを開始します。POST https://compute.googleapis.com/compute/v1/projects/PRIMARY_DISK_PROJECT/regions/PRIMARY_LOCATION/regionDisks/PRIMARY_DISK_NAME/startAsyncReplication { "asyncSecondaryDisk": "projects/SECONDARY_DISK_PROJECT/SECONDARY_LOCATION_PARAMETER/SECONDARY_LOCATION/disks/SECONDARY_DISK_NAME" }
次のように置き換えます。
PRIMARY_DISK_PROJECT
: プライマリ ディスクを含むプロジェクト。PRIMARY_LOCATION
: プライマリ ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。PRIMARY_DISK_NAME
: プライマリ ディスクの名前。SECONDARY_DISK_PROJECT
: セカンダリ ディスクを含むプロジェクト。SECONDARY_LOCATION_PARAMETER
: セカンダリ ディスクのロケーション パラメータ。リージョン ディスクの場合は、regions
を使用します。ゾーンディスクの場合は、zones
を使用します。SECONDARY_LOCATION
: セカンダリ ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。SECONDARY_DISK_NAME
: セカンダリ ディスクの名前。
レプリケーションを停止
単一のプライマリ ディスクまたはセカンダリ ディスク、または整合性グループ内のすべてのディスクのレプリケーションを停止できます。整合性グループ内の単一ディスクのレプリケーションを停止すると、そのディスクのレプリケーション時間は、整合性グループ内の他のディスクと同期しなくなります。
レプリケーションの停止は、フェイルオーバーとフェイルバックのシナリオで実行されます。レプリケーションを停止すると、同じセカンダリ ディスクへのレプリケーションを再開できません。レプリケーションを再開するには、新しいセカンダリ ディスクを作成して最初からやり直す必要があります。
ディスクのレプリケーションを停止すると、ディスクのレプリケーション状態は STOPPED
に変わります。ディスクのレプリケーション ペア内の他のディスク(対応するプライマリ ディスクまたはセカンダリ ディスク)のレプリケーション状態は、後で STOPPED
に更新されます。時間差を回避して、他のディスクのレプリケーション状態をすぐに STOPPED
に更新する場合は、他のディスクのレプリケーションも手動で停止する必要があります。両方のディスクでレプリケーションを停止しても、レプリケーションの停止時刻には影響せず、ディスクのレプリケーション状態にのみ影響します。
単一ディスクのレプリケーションを停止する
Google Cloud コンソール、Google Cloud CLI、または REST を使用して、単一ディスクのレプリケーションを停止します。
コンソール
次の方法でレプリケーションを停止します。
Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。
レプリケーションを停止するプライマリ ディスクまたはセカンダリ ディスクの名前をクリックします。[ディスクの管理] ページが開きます。
[レプリケーションを終了] をクリックします。[レプリケーションの終了] ウィンドウが開きます。
[レプリケーションを終了] をクリックします。
gcloud
gcloud compute disks stop-async-replication
コマンドを使用してレプリケーションを停止します。
gcloud compute disks stop-async-replication DISK_NAME \ --LOCATION_FLAG=LOCATION
次のように置き換えます。
DISK_NAME
: ディスクの名前。LOCATION_FLAG
: ディスクのロケーション フラグ。リージョン ディスクの場合は、--region
を使用します。ゾーンディスクの場合は、--zone
を使用します。LOCATION
: ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。
REST
次のいずれかの方法でレプリケーションを停止します。
disks.stopAsyncReplication
メソッドを使用して、ゾーンディスクのレプリケーションを停止します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/DISK_NAME/stopAsyncReplication { }
regionDisks.stopAsyncReplication
メソッドを使用して、リージョン ディスクのレプリケーションを停止します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/regionDisks/DISK_NAME/stopAsyncReplication { }
次のように置き換えます。
PROJECT
: ディスクを含むプロジェクト。DISK_NAME
: ディスクの名前。LOCATION
: ディスクのゾーンまたはリージョン。ゾーンディスクの場合は、ゾーンを使用します。リージョン ディスクの場合は、リージョンを使用します。
整合性グループのレプリケーションを停止する
Google Cloud コンソール、Google Cloud CLI、または REST を使用して、整合性グループ内のすべてのディスクのレプリケーションを停止します。
コンソール
整合性グループ内のすべてのディスクのレプリケーションを停止するには、次の操作を行います。
Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。
[整合性グループ] タブをクリックします。
レプリケーションを停止する整合性グループの名前をクリックします。[整合性グループの管理] ページが開きます。
[レプリケーションを終了] をクリックします。[レプリケーションの終了] ウィンドウが開きます。
[レプリケーションを終了] をクリックします。
gcloud
gcloud compute disks stop-group-async-replication
コマンドを使用して、整合性グループ内のすべてのディスクのレプリケーションを停止します。
gcloud compute disks stop-group-async-replication CONSISTENCY_GROUP \ --LOCATION_FLAG=LOCATION
次のように置き換えます。
CONSISTENCY_GROUP
: 整合性グループの URL。例:projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
LOCATION_FLAG
: 整合性グループ内のディスクのロケーション フラグ。リージョン ディスクの場合は、--region
を使用します。ゾーンディスクの場合は、--zone
を使用します。LOCATION
: ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。
REST
次のいずれかの方法で、整合性グループ内のすべてのディスクのレプリケーションを停止します。
disks.stopGroupAsyncReplication
メソッドを使用して、ゾーンディスクのレプリケーションを停止します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/stopGroupAsyncReplication { "resourcePolicy": "CONSISTENCY_GROUP" }
regionDisks.stopGroupAsyncReplication
メソッドを使用して、リージョン ディスクのレプリケーションを停止します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/regionDisks/DISK_NAME/stopAsyncReplication { "resourcePolicy": "CONSISTENCY_GROUP" }
次のように置き換えます。
DISK_NAME
: ディスクの名前LOCATION
: ディスクのゾーンまたはリージョン。ゾーンディスクの場合は、ゾーンを使用します。リージョン ディスクの場合は、リージョンを使用します。CONSISTENCY_GROUP
: 整合性グループの URL。例:projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
次のステップ
- フェイルオーバーとフェイルバックの方法を学習する。
- Persistent Disk 非同期レプリケーションのパフォーマンスをモニタリングする方法を確認する。