このドキュメントでは、整合性グループを管理する方法について説明します。整合性グループとは、同じリージョンまたはゾーン内の複数のディスク間でレプリケーションを調整するリソース ポリシーのことです。
整合性グループの詳細については、非同期レプリケーションについてをご覧ください。
制限事項
- 整合性グループは、単一テナントノードのディスクではサポートされていません。
- 整合性グループには最大 128 個のディスクを含めることができます。
- 整合性グループに含めるいずれのディスクも、整合性グループのリソース ポリシーと同じプロジェクト内になければなりません。
- 整合性グループに含めるいずれのディスクも、ゾーンディスクの場合は同じゾーン、リージョン ディスクの場合は同じゾーンペアに存在している必要があります。
- 整合性グループには、プライマリ ディスクまたはセカンダリ ディスクを含めることができますが、両方を含めることはできません。
- ディスクがレプリケーションの対象となっている間は、整合性グループ内のプライマリ ディスクの追加または削除を行うことはできません。整合性グループ内のプライマリ ディスクを追加または削除する場合は、まず、レプリケーションを停止する必要があります。整合性グループ内のセカンダリ ディスクは、いつでも追加または削除できます。
- 複数の異なる整合性グループに含まれているディスク、または整合性グループに含まれていないディスクを、1 つの VM に最大 16 個アタッチできます。同じ整合性グループ内のディスクは、16 個のディスク上限に対して 1 個のディスクとして計上されます。
始める前に
- まだ設定していない場合は、認証を設定します。認証とは、 Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
To initialize the gcloud CLI, run the following command:
gcloud init
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Terraform
ローカル開発環境でこのページの Terraform サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
整合性グループの作成
複数のディスク間でレプリケーションを調整する必要がある場合は、プライマリ ディスクと同じリージョン内に整合性グループを作成します。複数のディスク クローンを調整する必要がある場合は、セカンダリ ディスクと同じリージョン内に整合性グループを作成します。
整合性グループを作成するには、 Google Cloud コンソール、Google Cloud CLI、REST、または Terraform を使用します。
コンソール
整合性グループを作成するには、次の操作を行います。
Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。
[整合性グループ] タブをクリックします。
[整合性グループを作成] をクリックします。
[名前] フィールドに、整合性グループの名前を入力します。
[リージョン] フィールドで、ディスクが配置されるリージョンを選択します。プライマリ ディスクを整合性グループに追加する場合は、プライマリ リージョンを選択します。セカンダリ ディスクを整合性グループに追加する場合は、セカンダリ リージョンを選択します。
[作成] をクリックします。
gcloud
gcloud compute resource-policies create disk-consistency-group
コマンドを使用して、整合性グループを作成します。
gcloud compute resource-policies create disk-consistency-group CONSISTENCY_GROUP_NAME \ --region=REGION
次のように置き換えます。
CONSISTENCY_GROUP_NAME
: 整合性グループの名前。REGION
: 整合性グループのリージョン。プライマリ ディスクを整合性グループに追加する場合は、プライマリ リージョンを使用します。セカンダリ ディスクを整合性グループに追加する場合は、セカンダリ リージョンを使用します。
Go
Java
Node.js
Python
REST
resourcePolicies.insert
メソッドを使用して、整合性グループを作成します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies { "name": "CONSISTENCY_GROUP_NAME", "diskConsistencyGroupPolicy": { } }
次のように置き換えます。
PROJECT
: 整合性グループを含むプロジェクト。REGION
: 整合性グループのリージョン。プライマリ ディスクを整合性グループに追加する場合は、プライマリ ディスクと同じリージョンを使用します。セカンダリ ディスクを整合性グループに追加する場合は、セカンダリ ディスクと同じリージョンを使用します。CONSISTENCY_GROUP_NAME
: 整合性グループの名前。
Terraform
整合性グループを作成するには、compute_resource_policy
リソースを使用します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
整合性グループに含まれるディスクを確認する
整合性グループに含まれるディスクを確認するには、 Google Cloud コンソール、Google Cloud CLI、または REST を使用します。
コンソール
整合性グループに含まれるディスクを確認するには、次の操作を行います。
Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。
[整合性グループ] タブをクリックします。
ディスクを表示する対象の整合性グループの名前をクリックします。[整合性グループの管理] ページが開きます。
[整合性グループのメンバー] セクションに表示される、整合性グループに含まれるすべてのディスクを確認します。
gcloud
gcloud compute disks list
コマンドを使用して、整合性グループに含まれるディスクを確認します。
gcloud compute disks list \ --LOCATION_FLAG=LOCATION \ --filter=resourcePolicies=CONSISTENCY_GROUP_NAME
次のように置き換えます。
LOCATION_FLAG
: 整合性グループに含まれるディスクのロケーション フラグ。整合性グループに含まれるディスクがリージョン ディスクの場合は、--region
を使用します。整合性グループに含まれるディスクがゾーンディスクの場合は、--zone
を使用します。LOCATION
: 整合性グループに含まれるディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。CONSISTENCY_GROUP_NAME
: 整合性グループの名前。
Go
Java
整合性グループのゾーンディスクの一覧を取得する
整合性グループのリージョン ディスクの一覧を取得する
Node.js
Python
REST
次のいずれかのメソッドでクエリフィルタを使用して、整合性グループに含まれるディスクを確認します。
disks.get
メソッドを使用して、整合性グループに含まれるゾーンディスクを確認します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/disks?filter=resourcePolicies%3DCONSISTENCY_GROUP_NAME
regionDisks.get
メソッドを使用して、整合性グループに含まれるリージョン ディスクを確認します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/disks?filter=resourcePolicies%3DCONSISTENCY_GROUP_NAME
次のように置き換えます。
PROJECT
: 整合性グループを含むプロジェクトZONE
: 整合性グループに含まれるディスクのゾーンREGION
: 整合性グループに含まれるディスクのリージョンCONSISTENCY_GROUP_NAME
: 整合性グループの名前
整合性グループにディスクを追加する
プライマリ ディスクを整合性グループに追加する場合は、レプリケーションを開始する前にディスクを整合性グループに追加する必要があります。セカンダリ ディスクはいつでも整合性グループに追加できます。整合性グループに含めるいずれのディスクも、ゾーンディスクの場合は同じゾーン、リージョン ディスクの場合は同じゾーンペアに存在している必要があります。
整合性グループにディスクを追加するには、 Google Cloud コンソール、Google Cloud CLI、REST、または Terraform を使用します。
コンソール
整合性グループにディスクを追加するには、次の操作を行います。
Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。
[整合性グループ] タブをクリックします。
ディスクを追加する整合性グループの名前をクリックします。[整合性グループの管理] ページが開きます。
[ディスクの割り当て] をクリックします。[ディスクの割り当て] ページが開きます。
整合性グループに追加するディスクを選択します。
[ディスクの割り当て] をクリックします。画面の指示に従って [追加] をクリックします。
gcloud
gcloud compute disks add-resource-policies
コマンドを使用して、整合性グループにディスクを追加します。
gcloud compute disks add-resource-policies DISK_NAME \ --LOCATION_FLAG=LOCATION \ --resource-policies=CONSISTENCY_GROUP
次のように置き換えます。
DISK_NAME
: 整合性グループに追加するディスクの名前。LOCATION_FLAG
: ディスクのロケーション フラグ。リージョン ディスクの場合は、--region
を使用します。ゾーンディスクの場合は、--zone
を使用します。LOCATION
: ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。CONSISTENCY_GROUP
: 整合性グループの URL。例:projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
Go
Java
Node.js
Python
REST
次のいずれかのメソッドを使用して、整合性グループにディスクを追加します。
disks.addResourcePolicies
メソッドを使用して、ゾーンディスクを整合性グループに追加します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/DISK_NAME/addResourcePolicies { "resourcePolicies": "CONSISTENCY_GROUP" }
regionDisks.addResourcePolicies
メソッドを使用して、リージョン ディスクを整合性グループに追加します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/disks/DISK_NAME/addResourcePolicies { "resourcePolicies": "CONSISTENCY_GROUP" }
次のように置き換えます。
PROJECT
: ディスクを含むプロジェクト。LOCATION
: ディスクのゾーンまたはリージョン。ゾーンディスクの場合は、ゾーンを使用します。リージョン ディスクの場合は、リージョンを使用します。DISK_NAME
: 整合性グループに追加するディスクの名前。CONSISTENCY_GROUP
: 整合性グループの URL。例:projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
Terraform
ディスクを整合性グループに追加するには、compute_disk_resource_policy_attachment
リソースを使用します。
リージョン ディスクの場合は、ゾーンの代わりにリージョンを指定します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
整合性グループからディスクを削除する
整合性グループからディスクを削除するには、その前に、ディスクのレプリケーションを停止する必要があります。
整合性グループからディスクを削除するには、 Google Cloud コンソール、Google Cloud CLI、または REST を使用します。
コンソール
整合性グループからプライマリ ディスクを削除するには、次の操作を行います。
Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。
[整合性グループ] タブをクリックします。
ディスクを追加する整合性グループの名前をクリックします。[整合性グループの管理] ページが開きます。
整合性グループから削除するディスクを選択します。
[ディスクを削除] をクリックします。画面の指示に従って [削除] をクリックします。
gcloud
gcloud compute disks remove-resource-policies
コマンドを使用して、整合性グループからディスクを削除します。
gcloud compute disks remove-resource-policies DISK_NAME \ --LOCATION_FLAG=LOCATION \ --resource-policies=CONSISTENCY_GROUP
次のように置き換えます。
DISK_NAME
: 整合性グループから削除するディスクの名前。LOCATION_FLAG
: ディスクのロケーション フラグ。リージョン ディスクの場合は、--region
を使用します。ゾーンディスクの場合は、--zone
を使用します。LOCATION
: ディスクのリージョンまたはゾーン。リージョン ディスクの場合は、リージョンを使用します。ゾーンディスクの場合は、ゾーンを使用します。CONSISTENCY_GROUP
: 整合性グループの URL。例:projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
Go
Java
Node.js
Python
REST
ゾーンディスクの場合は disks.removeResourcePolicies
メソッド、リージョンの場合は regionDisks.removeResourcePolicies
メソッドを使用して、整合性グループからディスクを削除します。
整合性グループからゾーンディスクを削除します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/LOCATION/disks/DISK_NAME/removeResourcePolicies { "resourcePolicies": "CONSISTENCY_GROUP" }
整合性グループからリージョン ディスクを削除します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/LOCATION/disks/DISK_NAME/removeResourcePolicies { "resourcePolicies": "CONSISTENCY_GROUP" }
次のように置き換えます。
PROJECT
: ディスクを含むプロジェクト。LOCATION
: ディスクのゾーンまたはリージョン。ゾーンディスクの場合は、ゾーンを使用します。リージョン ディスクの場合は、リージョンを使用します。DISK_NAME
: 整合性グループから削除するディスクの名前。CONSISTENCY_GROUP
: 整合性グループの URL。例:projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
整合性グループを削除する
整合性グループを削除するには、 Google Cloud コンソール、Google Cloud CLI、または REST を使用します。
コンソール
整合性を削除するには、次の操作を行います。
Google Cloud コンソールで、[非同期レプリケーション] ページに移動します。
[整合性グループ] タブをクリックします。
削除する整合性グループを選択します。
[削除] をクリックします。[整合性グループを削除] ウィンドウが開きます。
[削除] をクリックします。
gcloud
gcloud compute resource-policies delete
コマンドを使用して、リソース ポリシーを削除します。
gcloud compute resource-policies delete CONSISTENCY_GROUP \ --region=REGION
次のように置き換えます。
CONSISTENCY_GROUP
: 整合性グループの名前REGION
: 整合性グループのリージョン
Go
Java
Node.js
Python
REST
resourcePolicies.delete
メソッドを使用して、整合性グループを削除します。
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/resourcePolicies/CONSISTENCY_GROUP_NAME
次のように置き換えます。
PROJECT
: 整合性グループを含むプロジェクトREGION
: 整合性グループのリージョンCONSISTENCY_GROUP
: 整合性グループの名前
次のステップ
- 非同期レプリケーションを使用するディスクの管理方法を確認する。
- フェイルオーバーとフェイルバックの方法を学習する。
- 非同期レプリケーションのパフォーマンスをモニタリングする方法を確認する。