リージョン Persistent Disk と Hyperdisk Balanced High Availability は、Compute Engine に高可用性(HA)サービスを実装できるストレージ オプションです。リージョン Persistent Disk と Hyperdisk Balanced の高可用性は、同じリージョン内の 2 つのゾーン間でデータを同期的にレプリケートし、1 つのゾーンの障害に対してディスクデータの HA を確保します。 リージョン ディスクは、ブートディスクまたはブートディスク以外のディスクです。
このドキュメントでは、リージョン ディスクに対して次のタスクを行う方法について説明します。
- リージョン ディスクを作成する。
- リージョン ディスクを Compute Engine インスタンスにアタッチする。
- ゾーンディスクをリージョン ディスクに変更する。
- リージョン ディスクを使用して新しいインスタンスを作成する。
- リージョン ディスクを新しいインスタンスのブートディスクとして使用する。
- リージョン ブートディスクをインスタンスにアタッチします。
- リージョン ディスクの一覧と説明を取得する。
- リージョン ディスクのサイズを変更する。
始める前に
- ディスク ストレージ オプションの種類の違いを確認します。
- ディスクの同期レプリケーションの基本を確認します。
- リージョン ディスクのフェイルオーバーについて確認します。
-
まだ設定していない場合は、認証を設定します。認証とは、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.
- Compute インスタンス管理者(v1)(
roles/compute.instanceAdmin.v1
) -
サービス アカウントとして実行できるインスタンスに接続する: サービス アカウント ユーザー(v1) (
roles/iam.serviceAccountUser
) -
compute.disks.create
-
compute.instances.attachDisk
-
compute.disks.use
-
ディスクのスナップショットを作成する:
compute.disks.createSnapshot
-
ディスクの詳細を表示する:
compute.disks.get
-
ディスクのリストを取得する:
compute.disks.list
-
ディスクのサイズを変更する:
compute.disks.update
- メキシコ、大阪、モントリオールは、1 つまたは 2 つの 物理的なデータセンターに 3 つのゾーンがあります。これらのリージョンに保存されたデータは、まれなケースですが、データセンターの破壊によって失われる可能性があります。データ保護を強化するため、ビジネスに不可欠なデータを別のリージョンにバックアップすることを検討してください。
- リージョン永続ディスク をアタッチできるのは、E2、 N1、 N2、 N2Dのマシンタイプを使用する VM のみです。
- Hyperdisk Balanced High Availability は、サポートされているマシンタイプにのみ接続できます。
- リージョン Persistent Disk をイメージから作成することはできません。イメージから作成されたディスクから作成することもできません。
- 読み取り専用モードを使用すると、最大 10 個の VM インスタンスにリージョン バランス Persistent Disk をアタッチできます。
- リージョン標準永続ディスクの最小サイズは 200 GiB です。
- リージョン Persistent Disk またはHyperdisk Balanced High Availability ボリュームのサイズを増やすことはできますが、縮小はできません。
- リージョン Persistent Disk と Hyperdisk Balanced High Availability ボリュームのパフォーマンス特性は、対応するゾーンディスクとは異なります。詳細については、ブロック ストレージのパフォーマンスをご覧ください。
- マルチライター モードの Hyperdisk Balanced High Availability ボリュームをブートディスクとして使用することはできません。
- ゾーンディスクのクローンを作成してリージョン Persistent Disk を作成する場合、2 つのゾーンレプリカは作成時には完全には同期しません。作成後、リージョン ディスクのクローンは平均で 3 分以内に使用できるようになります。ただし、ディスクが完全にレプリケートされた状態になり、目標復旧時点(RPO)がゼロに近くなるまで、数十分かかる場合があります。詳細については、レプリケートされたディスクが完全にレプリケートされたかどうかを確認する方法をご覧ください。
- リージョン ブートディスクを使用して新しいインスタンスを作成する。
- リージョン ブートディスクを作成し、インスタンスにアタッチします。
- ブートディスクのスナップショットからリージョン ディスクを作成します。
- リージョン ブートディスクをインスタンスにアタッチします。
Google Cloud コンソールで、[ディスク] ページに移動します。
必要なプロジェクトを選択します。
[ディスクを作成] をクリックします。
[名前] でディスクの名前を指定します。
[ロケーション] で [リージョン] を選択します。
リージョンとゾーンを選択します。インスタンスの作成時に同じリージョンを選択する必要があります。
同じリージョン内の [レプリカゾーン] を選択します。いずれかのゾーンのインスタンスにディスクを接続する必要があるため、選択したゾーンをメモしておきます。
[ディスクソースのタイプ] を選択します。
ディスクタイプとサイズを選択します。
[作成] をクリックしてディスクの作成を終了します。
DISK_NAME
: 新しいディスクの名前DISK_SIZE
: 新しいディスクのサイズ(GiB)DISK_TYPE
:リージョン Persistent Disk の場合、これはリージョン ディスクのタイプです。デフォルト値はpd-standard
です。 Hyperdisk の場合は、値hyperdisk-balanced-high-availability
を指定します。REGION
: リージョン ディスクを配置するリージョン(例:europe-west1
)ZONE1
、ZONE2
: 2 つのディスク レプリカが配置されるリージョン内のゾーン(例:europe-west1-b,europe-west1-c
)DISK_ACCESS_MODE
: 省略可。インスタンスがディスク上のデータにアクセスする方法。サポートされている値は次のとおりです。READ_WRITE_SINGLE
: 1 つのインスタンスからの読み取り / 書き込みアクセス。これがデフォルトです。READ_WRITE_MANY
: 複数のインスタンスからの読み取り / 書き込みアクセス。
アクセスモードを設定できるのは、Hyperdisk Balanced High Availability ディスクに対してのみです。
PROJECT_ID
: プロジェクト IDREGION
: リージョン ディスクを配置するリージョン(例:europe-west1
)DISK_NAME
: 新しいディスクの名前ZONE1
、ZONE2
: 新しいディスクのレプリカが配置されるゾーン。DISK_SIZE
: 新しいディスクのサイズ(GiB)DISK_TYPE
:リージョン Persistent Disk の場合、これは Persistent Disk のタイプです。 Hyperdisk の場合は、値hyperdisk-balanced-high-availability
を指定します。DISK_ACCESS_MODE
: インスタンスがディスク上のデータにアクセスする方法。サポートされている値は次のとおりです。READ_WRITE_SINGLE
: 1 つのインスタンスからの読み取り / 書き込みアクセス。これがデフォルトです。READ_WRITE_MANY
: 複数のインスタンスからの読み取り / 書き込みアクセス。
アクセスモードを設定できるのは、Hyperdisk Balanced High Availability ディスクに対してのみです。
ディスクをインスタンスにアタッチするには、[VM インスタンス] ページに移動します。
[名前] 列で、インスタンスの名前をクリックします。
[編集]
をクリックします。[既存のディスクを接続] をクリックします。
以前に作成したリージョン ディスクを選択してインスタンスに追加します。
選択したディスクがすでに別のインスタンスに接続されているという警告が表示された場合は、[ディスクを強制接続する] ボックスを選択して、編集しているインスタンスにディスクを強制的にアタッチします。
リージョン ディスクのフェイルオーバーで、リージョン ディスクを強制的にアタッチするユースケースを確認します。
[保存] をクリックします。
[VM の編集] ページで、[保存] をクリックします。
INSTANCE_NAME
: リージョン ディスクを追加するインスタンスの名前DISK_NAME
: インスタンスにアタッチする新しいディスクの名前。PROJECT_ID
: プロジェクト IDZONE
: インスタンスの場所INSTANCE_NAME
: 新しいリージョン ディスクを追加するインスタンスの名前REGION
: リージョン ディスクが配置されるリージョンDISK_NAME
: リージョン ディスクの名前- PRIMARY_INSTANCE_NAME: インスタンスの名前
- ZONE: インスタンスを作成するゾーンの名前
- REGIONAL_DISK_NAME: リージョン ディスクの名前
- DISK_TYPE: 作成するディスクのタイプ。例:
hyperdisk-balanced-high-availability
、pd-balanced
- SNAPSHOT_NAME: ブートディスク用に作成したスナップショットの名前
- REMOTE_ZONE: リージョン ディスクの代替ゾーン
PROJECT_ID
: プロジェクト IDZONE
: インスタンスを作成するゾーンの名前INSTANCE_NAME
: インスタンスの名前BOOT_SNAPSHOT_NAME
: ブートディスク スナップショットの名前REMOTE_ZONE
: リージョン ディスクのリモートゾーンDISK_TYPE
: 作成するディスクのタイプ。例:hyperdisk-balanced-high-availability
、 、pd-balanced
- 既存のインスタンスのブートディスクをリージョン ブートディスクに置き換えます。
- リージョン ブートディスクを、バックアップ ゾーンで実行されているホット スタンバイ インスタンスにフェイルオーバーします。これを行うには、リージョン ディスクをブートディスクとしてインスタンスにアタッチします。
- インスタンスを停止します。
gcloud compute instances stop INSTANCE_NAME --zone=ZONE
- 現在のブートディスクをインスタンスから切断します。
gcloud compute instances detach-disk INSTANCE_NAME \ --zone=ZONE --disk=CURRENT_BOOT_DEVICE_NAME
- リージョン ブートディスクをインスタンスにアタッチします。
gcloud compute instances attach-disk INSTANCE_NAME \ --zone=ZONE \ --disk=REGIONAL_DISK_NAME \ --disk-scope=regional --force-attach \ --boot
インスタンスを再起動します。
gcloud compute instances start INSTANCE_NAME
INSTANCE_NAME
: リージョン ブートディスクをアタッチするインスタンスの名前ZONE
: インスタンスが配置されているゾーンCURRENT_BOOT_DEVICE_NAME
: インスタンスで使用されているブートディスクの名前。通常、これはインスタンスの名前と同じです。REGIONAL_DISK_NAME
: ブートディスクとしてインスタンスにアタッチするリージョン ディスクの名前インスタンスを停止します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/stop
現在のブートディスクをインスタンスから切断します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/detachDisk?deviceName=CURRENT_BOOT_DEVICE_NAME
リージョン ブートディスクをインスタンスにアタッチします。
compute.instances.attachDisk
メソッドに対するPOST
リクエストを作成し、リージョン ブートディスクへの URL を指定します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk { "source": "compute/v1/projects/PROJECT_ID/regions/REGION/disks/REGIONAL_DISK_NAME", "boot": true }
インスタンスを再起動します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/start
PROJECT_ID
: プロジェクト IDINSTANCE_NAME
: リージョン ディスクをアタッチするインスタンスの名前ZONE
: インスタンスが配置されているゾーンCURRENT_BOOT_DEVICE_NAME
: インスタンスで使用されているブートディスクの名前。通常、これはインスタンスの名前と同じです。REGION
: リージョン ディスクが配置されているリージョンREGIONAL_DISK_NAME
: ブートディスクとしてインスタンスにアタッチするリージョン ディスクの名前- ディスク ID
- ディスク名
- サイズ
- ディスクタイプ
- リージョン
- ゾーンレプリカ
- 特定のリージョンとプロジェクトにあるすべてのリージョン ディスクの詳細を表示するには:
compute.regionDisks.list
メソッドに対してGET
リクエストを作成します。gcloud compute disks list
コマンドを使用して、リージョンで結果をフィルタします。
- 特定のリージョン ディスクの詳細を表示するには:
--region
フラグを指定してgcloud compute disks describe
コマンドを実行し、ディスクの名前とそのリージョンを指定します。compute.regionDisks.get
メソッドに対してGET
リクエストを作成します。
- リージョン Persistent Disk: 永続ディスクのサイズを増やす
- Hyperdisk Balanced High Availability: Hyperdisk ボリュームを変更する
- ディスクの料金について確認する。
- リージョン ディスクのレプリカの状態をモニタリングする方法を確認する。
- リージョン ディスクのレプリケーション状態を判断する方法を確認する。
- 読み取り専用データ用のリージョン Persistent Disk の代替として、コンピューティング インスタンス間で Persistent Disk ボリュームを共有する方法を確認する。
- ディスクのスナップショットを作成する。
- コンピューティング インスタンスのインスタンス グループについて確認する。
- Google Cloud でスケーラブルで復元力のあるウェブ アプリケーションを構築する方法を確認する。
- Google Cloud 障害復旧計画ガイドを確認する。
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 を使用して認証するをご覧ください。
必要なロールと権限
リージョン ディスクの作成に必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、リージョン ディスクの作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
リージョン ディスクを作成するには、次の権限が必要です。
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
制限事項
リージョン ディスクをインスタンスのブートディスクとして使用する方法
本番環境のワークロードをプロビジョニングする前に、事前にプロビジョニングされたステートフル ワークロードのブートディスクとして、リージョン Persistent Disk または Hyperdisk Balanced High Availability ディスクをアタッチできます。リージョン ブートディスクは 2 つのコンピューティング インスタンスに同時にアタッチできないため、リージョン ブートディスクはホット スタンバイ用ではありません。
スナップショットから作成できるのは、 リージョン Persistent Disk または Hyperdisk Balanced High Availability ボリュームのみで、イメージからリージョン ディスクを作成することはできません。
リージョン ディスクをインスタンスのブートディスクとして使用するには、次のいずれかの方法を使用します。
リージョン ブートディスクをレプリカゾーンで実行中のスタンバイ インスタンスにフェイルオーバーする必要がある場合は、リージョン ブートディスクをインスタンスにアタッチするの手順を使用します。
リージョン ディスクを作成する
リージョン Persistent Disk または Hyperdisk Balanced High Availability ボリュームを作成します。ディスクは、アタッチするコンピューティング インスタンスと同じリージョンに存在する必要があります。
Hyperdisk Balanced High Availability ボリュームを作成する場合は、ディスク アクセス モードを設定して、異なるインスタンスがディスクに同時にアクセスできるようにすることもできます。詳細については、インスタンス間でディスクを共有するをご覧ください。
リージョン Persistent Disk の場合、Google Cloud コンソールでディスクを作成すると、デフォルトのディスクタイプはpd-balanced
です。gcloud CLI または REST を使用してディスクを作成する場合、デフォルトのディスクタイプはpd-standard
です。コンソール
gcloud
compute disks create
コマンドを使用してリージョン ディスクを作成します。スループットや IOPS を上げるためにリージョン SSD 永続ディスクが必要な場合は、
--type
フラグでpd-ssd
を指定します。gcloud compute disks create DISK_NAME \ --size=DISK_SIZE \ --type=DISK_TYPE \ --region=REGION \ --replica-zones=ZONE1,ZONE2 --access-mode=DISK_ACCESS_MODE
次のように置き換えます。
Terraform
リージョン Persistent Disk または Hyperdisk Balanced High Availability を作成するには、
google_compute_region_disk
リソースを使用します。REST
リージョン Persistent Disk または Hyperdisk Balanced High Availability ボリュームを作成するには、
compute.regionDisks.insert
メソッドにPOST
リクエストを作成します。空のディスクを作成するには、スナップショット ソースを指定しないでください。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks { "name": "DISK_NAME", "region": "projects/PROJECT_ID/regions/REGION", "replicaZones": [ "projects/PROJECT_ID/zones/ZONE1", "projects/PROJECT_ID/zones/ZONE2" ], "sizeGb": "DISK_SIZE", "type": "projects/PROJECT_ID/regions/REGION/diskTypes/DISK_TYPE", "accessMode": "DISK_ACCESS_MODE" }
次のように置き換えます。
リージョン ディスクをインスタンスに接続する
ブートディスク以外のディスクの場合は、リージョン Persistent Disk または Hyperdisk Balanced High Availability ボリュームを作成した後、インスタンスにアタッチできます。インスタンスは、ディスクと同じリージョンに存在する必要があります。
リージョン ブートディスクをインスタンスにアタッチするには、リージョン ブートディスクをインスタンスにアタッチするをご覧ください。
ディスクを複数のインスタンスにアタッチするには、インスタンスごとにこのセクションの手順を繰り返します。
コンソール
gcloud
実行中または停止中のインスタンスにリージョン ディスクをアタッチするには、
--disk-scope
フラグをregional
に設定してcompute instances attach-disk
コマンドを使用します。gcloud compute instances attach-disk INSTANCE_NAME \ --disk=DISK_NAME \ --disk-scope=regional
次のように置き換えます。
Terraform
リージョン Persistent Disk または Hyperdisk Balanced High Availability ボリュームをインスタンスにアタッチするには、
google_compute_attached_disk
リソースを使用します。REST
実行中または停止中のインスタンスにリージョン ディスクをアタッチするには、
compute.instances.attachDisk
メソッドにPOST
リクエストを作成し、作成したリージョン ディスクの URL を指定します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk { "source": "/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME" }
次のように置き換えます。
ブートディスク以外のディスクの場合は、空のリージョン ディスクを作成してインスタンスにアタッチした後、ディスクをフォーマットしてマウントする必要があります。これにより、オペレーティング システムが使用可能なストレージ空間を使用できるようになります。
ゾーンディスクをリージョン ディスクに変更する
既存のゾーン Persistent Disk をリージョン Persistent Disk に変換するには、既存のゾーンディスクのクローンを作成して新しいディスクを作成します。詳細については、ゾーンディスクからリージョン ディスクのクローンを作成するをご覧ください。Hyperdisk をリージョン ディスクに変換するには、ゾーンディスクを Hyperdisk Balanced High Availability ディスクに変換するの説明に従って、既存のディスクのスナップショットから新しい Hyperdisk Balanced High Availability ディスクを作成します。
リージョン ディスクを使用して新しいインスタンスを作成する
インスタンスを作成するときに、必要に応じて、リージョン Persistent Disk ボリュームまたはHyperdisk Balanced High Availability ボリュームを追加のディスクとして含めることができます。
リージョン Persistent Disk またはHyperdisk Balanced High Availability ボリュームを作成してインスタンスの作成時にインスタンスにアタッチするには、次のいずれかをご覧ください。
リージョン ブートディスクを使用して新しいインスタンスを作成する
高可用性コンピューティング インスタンスを設定する場合は、リージョン ブートディスクを使用してプライマリ インスタンスを作成できます。ゾーンが停止した場合、新しいインスタンスを作成する代わりに、セカンダリ ゾーンでインスタンスを再起動できます。
ブートデバイスがリージョン ディスクである高可用性設定では、スタンバイ インスタンスの事前作成と開始は行わないことをおすすめします。代わりに、フェイルオーバー段階でスタンバイ インスタンスを作成するときに、
forceAttach
オプションを使用して既存のリージョン ディスクをアタッチします。リージョン ディスクであるブートディスクを使用してインスタンスを作成するには、次のいずれかの方法を使用します。
gcloud
gcloud compute instances create
コマンドを使用してインスタンスを作成し、--create-disk
フラグを使用してリージョン ディスクを指定します。gcloud compute instances create PRIMARY_INSTANCE_NAME \ --zone=ZONE \ --create-disk=^:^name=REGIONAL_DISK_NAME:scope=regional:boot=true:type=DISK_TYPE:source-snapshot=SNAPSHOT_NAME:replica-zones=ZONE,REMOTE_ZONE
disk パラメータを指定する際、文字
^:^
はパラメータ間の区切り文字がコロン(:
)であることを示します。これにより、replica-zones パラメータを指定する際にカンマ(,
)を使用できます。次のように置き換えます。
REST
instances.insert
メソッドにPOST
リクエストを作成し、boot: 'true'
プロパティとreplicaZones
プロパティを指定します。例:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "disks": [{ "boot": true, "initializeParams": { "sourceSnapshot": "global/snapshots/BOOT_SNAPSHOT_NAME", "replicaZones": [ "projects/PROJECT_ID/zones/ZONE", "projects/PROJECT_ID/zones/REMOTE_ZONE" ], "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE" } }], "networkInterfaces": [ { "network": "global/networks/default" } ] }
次のように置き換えます。
リージョン ブートディスクをインスタンスにアタッチする
手順は次のとおりです。
以下の手順では、リージョン ディスクとインスタンスがすでに存在することを前提としています。
gcloud
上記のコマンドの変数を次のように置き換えます。
省略可: 停止または障害によって、プライマリ インスタンスからリージョン ブートディスクを正常に切断できない場合は、
--force-attach
フラグを含めます。REST
上記のコマンドの変数を次のように置き換えます。
省略可: 停止または障害のために、最初にアタッチしたインスタンスからリージョン ブートディスクを正常に切断できない場合は、リクエストの本文に
"forceAttach": true
を含めます。リージョン ディスクの一覧と説明を取得する
構成したすべてのリージョン ディスクの一覧と、次のようなプロパティに関する情報を表示できます。次に例を示します。
リージョン ディスクの詳細情報を表示するには、次のコマンドを使用します。
リージョン ディスクのサイズを変更する
リージョン ディスクを使用するインスタンスで追加の保存容量が必要な場合は、ディスクのサイズを変更できます。実行中のインスタンスにディスクが接続しているかどうにかかわらず、いつでもディスクのサイズを変更できます。データを固有のボリュームに分離する必要がある場合は、インスタンス用に複数のセカンダリ ディスクを作成します。Hyperdisk Balanced High Availability では、ディスクの IOPS とスループットの上限を増やすこともできます。
リージョン ディスクのサイズ変更コマンドは、ゾーンディスクのサイズ変更コマンドと非常によく似ています。ただし、ディスクのロケーションにはゾーンではなくリージョンを指定する必要があります。
ディスクサイズの拡張のみを行うことができ、縮小することはできません。ディスクサイズを縮小するには、小さいサイズの新しいディスクを作成する必要があります。サイズの大きい元のディスクを削除するまで、両方のディスクに対して課金されます。
リージョン ディスクを変更する手順については、以下をご覧ください。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-05 UTC。
-