Persistent Disk 非同期レプリケーションを管理する


このドキュメントでは、Persistent Disk 非同期レプリケーション(PD 非同期レプリケーション)を開始および停止する方法について説明します。

PD 非同期レプリケーションは、低 RPO、低 RTO の障害復旧に役立ちます。非同期レプリケーションの詳細については、Persistent Disk の非同期レプリケーションについてをご覧ください。

制限事項

  • プライマリ ディスクは、一度に 1 つのセカンダリ ディスクにのみ複製できます。
  • レプリケーションが停止すると、同じディスクへのレプリケーションを再開できなくなります。新しいセカンダリ ディスクを作成して、レプリケーションを再開する必要があります。
  • レプリケーションのプロセス中にセカンダリ ディスクを接続、削除、スナップショットすることはできません。
  • リージョン ディスクをセカンダリ ディスクとして使用していて、セカンダリ ディスクのゾーンの 1 つでゾーンが停止した場合、プライマリ ディスクからセカンダリ ディスクへのレプリケーションは失敗します。

始める前に

  • 複数のディスク間でレプリケーションを調整する必要がある場合は、整合性グループを作成します。
  • プライマリ ディスクを作成します
  • セカンダリ ディスクを作成します
  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

レプリケーションを開始する

Google Cloud コンソール、Google Cloud CLI、または REST を使用してレプリケーションを開始します。

コンソール

  1. Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。

    [非同期レプリケーション] に移動

  2. レプリケーションを開始するセカンダリ ディスクの名前をクリックします。

  3. [レプリケーションを開始] をクリックします。[レプリケーションの開始] ウィンドウが開きます。

  4. [レプリケーションを開始] をクリックします。

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 を使用して、単一ディスクのレプリケーションを停止します。

コンソール

次の方法でレプリケーションを停止します。

  1. Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。

    [非同期レプリケーション] に移動

  2. レプリケーションを停止するプライマリ ディスクまたはセカンダリ ディスクの名前をクリックします。[ディスクの管理] ページが開きます。

  3. [レプリケーションを終了] をクリックします。[レプリケーションの終了] ウィンドウが開きます。

  4. [レプリケーションを終了] をクリックします。

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 を使用して、整合性グループ内のすべてのディスクのレプリケーションを停止します。

コンソール

整合性グループ内のすべてのディスクのレプリケーションを停止するには、次の操作を行います。

  1. Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。

    [非同期レプリケーション] に移動

  2. [整合性グループ] タブをクリックします。

  3. レプリケーションを停止する整合性グループの名前をクリックします。[整合性グループの管理] ページが開きます。

  4. [レプリケーションを終了] をクリックします。[レプリケーションの終了] ウィンドウが開きます。

  5. [レプリケーションを終了] をクリックします。

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

次のステップ