このドキュメントでは、Persistent Disk 非同期レプリケーション(PD 非同期レプリケーション)を構成する方法について説明します。PD 非同期レプリケーションを構成するには、プライマリ ディスクとセカンダリ ディスクを作成して、ディスクのレプリケーション ペアを設定します。
レプリケーションを構成したら、レプリケーションを開始できます。
PD 非同期レプリケーションは、低 RPO、低 RTO の障害復旧に役立ちます。PD 非同期レプリケーションの詳細については、Persistent Disk の非同期レプリケーションについてをご覧ください。
制限事項
セカンダリ ディスクは、作成された時点で空白でなければなりません。イメージ、スナップショット、他のディスクから作成することはできません。
始める前に
- このガイドのコマンドラインの例を使用する場合は、次の操作を行います。
- Google Cloud CLI の最新バージョンをインストールするか、最新バージョンに更新します。
- デフォルトのリージョンとゾーンを設定します。
- このガイドの API の例を使用する場合は、API アクセスを設定します。
- リージョン ペアを選択します。
- 必要に応じて整合性グループを作成します。
ディスクのレプリケーション ペアを設定する
ディスク間でデータを複製する前に、次の作業を行ってレプリケーションを構成する必要があります。
- リージョンペアを選択し、プライマリ リージョンとセカンダリ リージョンを決定します。
- 省略可: 一連のディスクの間でレプリケーションを調整する必要がある場合は、プライマリ リージョンに整合性グループを作成します。レプリケーションを開始する前に、プライマリ ディスクを整合性グループに追加する必要があります。
- プライマリ ディスクを作成または選択します。必要に応じて、これらのディスクを整合性グループに追加できます。
- 新しい空のセカンダリ ディスクを作成します。
ディスクの要件
PD 非同期レプリケーションでプライマリ ディスクまたはセカンダリ ディスクとして使用するディスクは、次の要件を満たしている必要があります。
- ディスクタイプ: バランス永続ディスク(
pd-balanced
)またはパフォーマンス(SSD)永続ディスク(pd-ssd
)。 - サイズ: 2 TB 以下。
- 暗号化の種類: Google が管理する暗号鍵または顧客管理の暗号鍵(CMEK)。
- 読み取り / 書き込みモード: ディスクはマルチ書き込みまたは読み取り専用ではないこと。
- ロケーション: サポートされているリージョン(またはサポートされているリージョン内のゾーン)に配置されていること。
プライマリ ディスクを作成または選択する
プライマリ ディスクは、ワークロードが実行されている VM にアタッチされるブートディスクまたはデータディスクです。ディスク要件を満たす既存のディスクをプライマリ ディスクとして使用できます。また、プライマリ ディスクとして新しいディスクを作成することもできます。既存のディスクをプライマリ ディスクとして使用する場合は、ディスクで追加の構成を行う必要はありません。セカンダリ ディスクを作成する手順に進み、PD 非同期レプリケーションの構成を完了します。
プライマリ ディスクを作成する
次のいずれかのドキュメントで説明されている方法で、プライマリ ディスクを作成します。
VM の作成時にプライマリ ブートディスクを作成する。必要に応じて、Google Cloud CLI または Compute Engine API を使用して VM を作成し、次のいずれかを指定して、整合性グループにディスクを追加します。
Google Cloud CLI を使用して VM を作成する場合は、
--create-disk
フラグを指定します。--create-disk=disk-resource-policy=projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
Compute Engine API を使用して VM を作成する場合は、
resourcePolicies
プロパティを指定します。"disks": { … "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME" }
VM の作成時にプライマリ データディスクを作成する。必要に応じて、Google Cloud CLI または Compute Engine API を使用して VM を作成し、次のいずれかを指定して、整合性グループにディスクを追加します。
Google Cloud CLI を使用して VM を作成する場合は、
--create-disk
フラグを指定します。--create-disk=disk-resource-policy=projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
Compute Engine API を使用して VM を作成する場合は、
resourcePolicies
プロパティを指定します。"disks": { … "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME" }
VM を作成せずにプライマリ データディスクを作成する。必要に応じて、Google Cloud コンソール、Google Cloud CLI、または Compute Engine API を使用して VM を作成し、次のいずれかを指定して、整合性グループにディスクを追加します。
Google Cloud コンソールを使用してディスクを作成する場合は、[整合性グループ] プルダウンから整合性グループを選択します。
Google Cloud CLI を使用してディスクを作成する場合は、
--resource-policies
フラグを指定します。--resource-policies=projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
Compute Engine API を使用してディスクを作成する場合は、
resourcePolicies
プロパティを指定します。"disks": { … "resourcePolicies": "projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME" }
次のように置き換えます。
PROJECT
: 整合性グループを含むプロジェクトREGION
: 整合性グループが存在するリージョンCONSISTENCY_GROUP_NAME
: ディスクを追加する整合性グループの名前
セカンダリ ディスクを作成する
セカンダリ ディスクは、プライマリ ディスクとは別のリージョンにあるデータディスクで、プライマリ ディスクから複製されたデータを受信して書き込みます。PD 非同期レプリケーションを構成する際に、プライマリ ディスクを参照する新しい空のセカンダリ ディスクを作成する必要があります。
セカンダリ ディスクを作成するには、Google Cloud コンソール、Google Cloud CLI、または Compute Engine API を使用します。
コンソール
次の手順に沿ってセカンダリ ディスクを作成し、レプリケーションを開始します。
Google Cloud コンソールで、[ディスク] ページに移動します。
プライマリ ディスクの名前をクリックします。[ディスクの管理] ページが開きます。
[セカンダリ ディスクの作成] をクリックします。
[名前] フィールドに、ディスクの名前を入力します。
[ロケーション] セクションで、次のいずれかを行います。
リージョン ディスクを作成する場合:
- [リージョン] を選択します。
- [リージョン] フィールドで、プライマリ ディスクのリージョンに対応するリージョンを選択します。
- [ゾーン] フィールドで、プライマリ ゾーンを選択します。
- [レプリカのゾーン] フィールドで、レプリカのゾーンを選択します。
ゾーンディスクを作成する場合:
- [シングルゾーン] を選択します。
- [リージョン] フィールドで、プライマリ ディスクのリージョンに対応するリージョンを選択します。
- [ゾーン] フィールドでゾーンを選択します。
[作成] をクリックします。Compute Engine がディスクを作成し、レプリケーションを開始します。
gcloud
gcloud compute disks create
コマンドを使用して、セカンダリ ディスクを作成します。
gcloud compute disks create SECONDARY_DISK_NAME \ --SECONDARY_LOCATION_FLAG=SECONDARY_LOCATION \ --size=SIZE \ --primary-disk=PRIMARY_DISK_NAME \ --PRIMARY_DISK_LOCATION_FLAG=PRIMARY_LOCATION \ --primary-disk-project=PRIMARY_DISK_PROJECT
リージョン セカンダリ ディスクを作成するには、さらに --replica-zones
フラグを指定します。
--replica-zones=ZONE_1,ZONE_2
次のように置き換えます。
SECONDARY_DISK_NAME
: セカンダリ ディスクの名前。SECONDARY_LOCATION_FLAG
: セカンダリ ディスクのロケーション フラグ。リージョン セカンダリ ディスクを作成するには、--region
を使用します。ゾーン セカンダリ ディスクを作成するには、--zone
を使用します。SECONDARY_LOCATION
: セカンダリ ディスクのリージョンまたはゾーン。- リージョン ディスクを作成するには、プライマリ ディスクのリージョンに対応するリージョンを使用します。
- ゾーンディスクを作成するには、プライマリ ディスクのリージョンに対応するリージョン内のゾーンを使用します。
SIZE
: 新しいディスクのサイズ(GB)。サイズは、プライマリ ディスクのサイズと同じにする必要があります。使用できるサイズは、1 GB 単位で 10 GB~2,000 GB の範囲です。PRIMARY_DISK_NAME
: セカンダリ ディスクが受信するデータの送信元プライマリ ディスクの名前。PRIMARY_LOCATION_FLAG
: プライマリ ディスクのロケーション フラグ。- リージョン プライマリ ディスクの場合は、
--primary-disk-region
を使用します。 - ゾーン プライマリ ディスクの場合は、
--primary-disk-zone
を使用します。
- リージョン プライマリ ディスクの場合は、
PRIMARY_LOCATION
: プライマリ ディスクのリージョンまたはゾーン。- リージョン ディスクの場合は、リージョンを使用します。
- ゾーンディスクの場合は、ゾーンを使用します。
PRIMARY_PROJECT
: プライマリ ディスクを含むプロジェクト。ZONE_1
: リージョン ディスクのレプリケート先ゾーンのいずれか。指定したリージョン内のゾーンで、ZONE_2
とは異なるゾーンでなければなりません。ZONE_2
: リージョン ディスクのレプリケート先ゾーンのいずれか。指定したリージョン内のゾーンで、ZONE_1
とは異なるゾーンでなければなりません。
API
次のいずれかの方法を使用して、ゾーンまたはリージョン セカンダリ ディスクを作成します。
ゾーン セカンダリ ディスクを作成するには、
disks.insert
メソッドを使用します。POST https://compute.googleapis.com/compute/v1/projects/SECONDARY_DISK_LOCATION/zones/SECONDARY_DISK_ZONE/disks { "name": "SECONDARY_DISK_NAME", "sizeGb": "DISK_SIZE", "type": "DISK_TYPE" "asyncPrimaryDisk": { "disk": "projects/PRIMARY_DISK_PROJECT/PRIMARY_DISK_LOCATION_PARAMETER/PRIMARY_DISK_LOCATION/disks/PRIMARY_DISK_NAME" } }
リージョン セカンダリ ディスクを作成するには、
regionDisks.insert
メソッドを使用します。POST https://compute.googleapis.com/compute/v1/projects/SECONDARY_DISK_PROJECT/regions/SECONDARY_DISK_LOCATION/disks { "name": "SECONDARY_DISK_NAME", "sizeGb": "DISK_SIZE", "type": "DISK_TYPE" "asyncPrimaryDisk": { "disk": "projects/PRIMARY_DISK_PROJECT/PRIMARY_DISK_LOCATION_PARAMETER/PRIMARY_DISK_LOCATION/disks/PRIMARY_DISK_NAME" } }
次のように置き換えます。
SECONDARY_DISK_PROJECT
: セカンダリ ディスクのプロジェクト。SECONDARY_DISK_LOCATION
: セカンダリ ディスクのリージョンまたはゾーン。- リージョン ディスクの場合は、リージョンを使用します。
- ゾーンディスクの場合は、ゾーンを使用します。
SECONDARY_DISK_NAME
: セカンダリ ディスクの名前。DISK_SIZE
: セカンダリ ディスクのサイズ。プライマリ ディスクのサイズと同じにする必要があります。SECONDARY_DISK_TYPE
: ディスクタイプ。pd-ssd
、pd-balanced
のいずれかにする必要があります。PRIMARY_DISK_PROJECT
: プライマリ ディスクを含むプロジェクト。PRIMARY_DISK_LOCATION_PARAMETER
: プライマリ ディスクのロケーション パラメータ。- リージョン プライマリ ディスクの場合は、
regions
を使用します。 - ゾーン プライマリ ディスクの場合は、
zones
を使用します。
- リージョン プライマリ ディスクの場合は、
PRIMARY_DISK_LOCATION
: プライマリ ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。PRIMARY_DISK_NAME
: セカンダリ ディスクが受信するデータの送信元プライマリ ディスクの名前。
次のステップ
- PD 非同期レプリケーションを使用するディスクを管理する方法を学習する。
- レプリケーションを管理する方法を学習する。
- 整合性グループを管理する方法を学習する。
- Persistent Disk の非同期レプリケーションのパフォーマンスをモニタリングする方法を確認する。