Google Cloud Hyperdisk ボリュームの設定を変更する


ワークロードのニーズに合わせて、Google Cloud Hyperdisk ボリュームのプロパティを変更できます。たとえば、プロビジョニングされた IOPS またはスループットを増減させて、それぞれ費用の削減やパフォーマンスの向上を実現できます。ボリュームのアクセスモードを設定することで、VM が Hyperdisk ML ボリューム上のデータにアクセスする方法を指定できます。

このページでは、Hyperdisk ボリュームの容量、パフォーマンスなどの設定を変更する方法について説明します。

始める前に

  • まだ設定していない場合は、認証を設定します。認証とは、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

必要なロールと権限

Hyperdisk の変更に必要な権限を取得するには、プロジェクトに関する次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与の詳細については、アクセス権の管理に関する記事をご覧ください。

この事前定義ロールには、Hyperdisk の変更に必要な compute.disks.update 権限が含まれています。

カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。

Hyperdisk の変更の概要

Hyperdisk ボリュームのアクセスモード、サイズ、パフォーマンス特性は動的に変更できます。

Hyperdisk ボリュームでサポートされているサイズとパフォーマンスの変更

次の表に、各 Hyperdisk タイプでサポートされている容量とパフォーマンスの変更をまとめます。

Hyperdisk タイプ カスタマイズ可能なスループット カスタマイズ可能な IOPS VM 間で共有可能
Hyperdisk Balanced はい はい いいえ
Hyperdisk Extreme いいえ いいえ
Hyperdisk ML はい いいえ はい
Hyperdisk Throughput はい いいえ いいえ

Hyperdisk ボリュームを作成または変更するときに使用する値は、ディスクあたりの Hyperdisk の上限で説明されている最大値と最小値の範囲内にする必要があります。

VM にアタッチされている Hyperdisk ボリュームのサイズを変更する場合、新しい値は VM あたりの Hyperdisk の上限を超えることはできません。

Hyperdisk ボリュームにプロビジョニングされる IOPS とスループットは、Hyperdisk の IOPS とスループットのプロビジョニングについてで説明されているルールに沿っている必要があります。

容量の変更

Hyperdisk ボリュームのサイズを変更できるのは、サイズを増やす場合のみです。Hyperdisk ボリュームの容量を減らすことはできません。Hyperdisk ボリュームのサイズを小さくする場合は、小さいボリュームを作成し、元のボリュームから小さいボリュームにデータを移行して、元のボリュームを削除する必要があります。

Hyperdisk ボリュームは、実行中の VM にアタッチされている場合でもサイズ変更できます。

Hyperdisk Throughput ボリュームのサイズを変更できるのは、6 時間に 1 回だけです。他のすべての Hyperdisk タイプでは、プロビジョニングされた容量を 4 時間に 1 回変更できます。

最適な結果を得るには、Hyperdisk ボリュームの容量を変更するときに、次の手順を行います。

  1. ボリュームのサイズを大きくします
  2. ディスクのバックアップ
  3. ディスク パーティションのサイズを変更する

パフォーマンスの変化

プロビジョニングされた IOPS またはスループットを変更した後、変更が有効になるまで最大 15 分かかることがあります。Hyperdisk ML ボリュームの変更が有効になるまでに最大 20 分かかることがあります。

Hyperdisk ML を除くすべての Hyperdisk タイプで、プロビジョニングされた IOPS またはスループットを 4 時間に 1 回動的に変更できます。Hyperdisk ML ボリュームのプロビジョニングされたスループットは 6 時間に 1 回変更できます。

Hyperdisk ボリュームにプロビジョニングされた IOPS またはスループットを変更しても、ディスクデータは削除または変更されません。

指定された上限内で Hyperdisk ボリュームを複数回変更しようとすると、Cannot update provisioned throughput due to being rate limited. のようなエラー メッセージが表示されます。

アクセスモード

Hyperdisk ML ボリュームを複数の VM 間で共有するには、ボリュームのアクセスモードを読み取り専用に設定する必要があります。アクセスモードを読み取り専用に設定すると、書き込みアクセスを再度有効にすることはできません。アクセスモードを読み取り専用に変更できるのは、Hyperdisk ML ボリュームの場合のみです。

ディスクのアクセスモードを設定するには、アクセスモードを設定するをご覧ください。

制限事項

  • Hyperdisk ML ボリュームの場合、アクセスモードを読み取り専用に設定することのみが可能です。読み取り専用に設定した後、アクセスモードを読み取り / 書き込みに設定し直すことはできません。
  • Hyperdisk Throughput、Hyperdisk Balanced、Hyperdisk Extreme のボリュームのアクセスモードは設定できません。
  • ディスクのアクセスモードを設定するには、すべての VM からディスクを切断する必要があります。

Hyperdisk ML ボリュームのアクセスモードを読み取り専用に設定する

Hyperdisk ML ボリュームのアクセスモードを読み取り / 書き込みモードから読み取り専用モードに設定できます。アクセスモードを読み取り専用に設定すると、読み取り / 書き込みアクセスを再度有効にすることはできません。

アクセスモードは、Google Cloud コンソール、Google Cloud CLI、または REST で設定できます。

コンソール

  1. Google Cloud コンソールで、[ディスク] ページに移動します。

    [ディスク] に移動

  2. プロジェクトのディスクのリストで、容量またはプロビジョニングされたパフォーマンスを変更する Hyperdisk ボリュームの名前をクリックします。

  3. ディスク詳細ページで、[編集] をクリックします。

  4. [アクセスモード] フィールドで、目的のアクセスモードを選択します。読み取り専用モードを有効にするには、[複数の VM の読み取り専用] を選択します。

  5. 変更を適用するには、[保存] をクリックします。

gcloud

disks update コマンドを実行し、--access-mode フラグを使用してアクセスモードを指定します。

gcloud compute disks update DISK_NAME  \
   --access-mode=DISK_ACCESS_MODE

次のように置き換えます。

  • DISK_NAME: 変更する Hyperdisk ボリュームの名前。
  • DISK_ACCESS_MODE: VM がディスク上のデータにアクセスする方法。サポートされている値は次のとおりです。
    • READ-ONLY-MANY: 複数の VM からの読み取り専用アクセス。
    • READ-WRITE-SINGLE: 1 台の VM からの読み取り / 書き込みアクセス。

REST

compute.disks.update メソッドに対して POST リクエストを作成します。リクエスト本文で、"accessMode" パラメータを使用してアクセスモードを設定します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/update
{
   "accessMode": "DISK_ACCESS_MODE"
}

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • ZONE: Hyperdisk ボリュームが配置されているゾーン。
  • DISK_NAME: 変更する Hyperdisk ボリュームの名前。
  • DISK_ACCESS_MODE: VM がディスク上のデータにアクセスする方法。サポートされている値は次のとおりです。
    • READ_ONLY_MANY: 複数の VM からの読み取り専用アクセス。
    • READ_WRITE_SINGLE: 1 台の VM からの読み取り / 書き込みアクセス。

Hyperdisk ボリュームのサイズまたはプロビジョニングされたパフォーマンスを変更する

ボリューム サイズを増加し、Hyperdisk ボリュームにプロビジョニングされた IOPS またはスループットを変更できます。ただし、次の制限時間があります。

  • ディスクサイズを増やします。

    • Hyperdisk スループットの場合: 6 時間に 1 回
    • 他のすべての Hyperdisk タイプの場合: 4 時間に 1 回
  • プロビジョニングされた IOPS またはスループットを変更します。

    • Hyperdisk ML の場合: 6 時間に 1 回
    • 他のすべての Hyperdisk タイプの場合: 4 時間に 1 回

4 時間が経過する前にディスクを変更しようとすると、Cannot update provisioned throughput due to being rate limited. のようなエラー メッセージが表示されます。

Hyperdisk ボリュームのプロビジョニング サイズとパフォーマンスは、Google Cloud コンソール、gcloud CLI、または REST で変更できます。

コンソール

  1. Google Cloud コンソールで、[ディスク] ページに移動します。

    [ディスク] に移動

  2. プロジェクトのディスクのリストで、容量またはプロビジョニングされたパフォーマンスを変更する Hyperdisk ボリュームの名前をクリックします。

  3. ディスク詳細ページで、[編集] をクリックします。

    1. [サイズ] フィールドに、ディスクの新しいサイズを入力します。ディスクサイズはサポートされている値の範囲内にする必要があります。
    2. Hyperdisk Extreme と Hyperdisk Balanced の場合: [プロビジョニングされた IOPS] フィールドに、ボリュームの新しい IOPS 値を入力します。
    3. Hyperdisk Throughput、Hyperdisk ML、および Hyperdisk Balanced の場合: [プロビジョニングされたスループット] フィールドに、ボリュームの新しいスループット値を入力します。
  4. [保存] をクリックして、変更をディスクに適用します。

gcloud

disks update コマンドを使用して、--size フラグ、--provisioned-iops フラグ、または --provisioned-throughput フラグを指定します。

gcloud compute disks update DISK_NAME  \
    --size=DISK_SIZE  \
    --provisioned-iops=IOPS_LIMIT  \
    --provisioned-throughput=THROUGHPUT_LIMIT

次のように置き換えます。

  • DISK_NAME: 変更する Hyperdisk ボリュームの名前。
  • DISK_SIZE: 省略可: ディスクの新しいサイズ。この値は整数で、その後に GB(ギビバイト)または TB(テビバイト)のサイズ単位が続きます。ディスクサイズはサポートされている値の範囲内にする必要があります。
  • IOPS_LIMIT: 省略可: Hyperdisk Extreme ボリュームと Hyperdisk Balanced ボリュームの IOPS 構成。値はサポートされている値の範囲内にする必要があります。
  • THROUGHPUT_LIMIT: 省略可: Hyperdisk Throughput ボリューム、Hyperdisk ML ボリューム、または Hyperdisk バランス ボリュームのスループット構成。1 秒あたりの MiB で測定されたスループットを表す整数として指定します。値はサポートされている値の範囲内にする必要があります。

REST

compute.disks.update メソッドに対して POST リクエストを作成します。リクエストの本文で、パラメータ sizeGbprovisionedIops、または provisionedThroughput を指定します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/update
{
   "sizeGb": "DISK_SIZE,
   "provisionedIops": "IOPS_LIMIT",
   "provisionedThroughput": "THROUGHPUT_LIMIT"
}

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • ZONE: Hyperdisk ボリュームが配置されているゾーン。
  • DISK_NAME: 変更する Hyperdisk ボリュームの名前。
  • DISK_SIZE: 省略可: ディスクの新しいサイズ。この値は整数で、その後に GB(ギビバイト)または TB(テビバイト)のサイズ単位が続きます。ディスクサイズはサポートされている値の範囲内にする必要があります。
  • IOPS_LIMIT: 省略可: Hyperdisk Extreme または Hyperdisk Balanced ボリュームの IOPS 構成。値はサポートされている値の範囲内にする必要があります。
  • THROUGHPUT_LIMIT: 省略可: Hyperdisk Balanced ボリューム、Hyperdisk ML ボリューム、Hyperdisk Throughput ボリュームのスループット構成。1 秒あたりの MiB で測定されたスループットを表す整数として指定します。値はサポートされている値の範囲内にする必要があります。

Hyperdisk ボリュームをバックアップする

ディスクのサイズを変更しても、ディスクのデータが削除や変更されることはありませんが、常にスナップショットを作成してディスクをバックアップした後、ファイル システムやパーティションに変更を加えることをおすすめします。

ファイル システムとパーティションのサイズを変更する

Hyperdisk ボリュームのサイズを増やした後、ファイル システムとパーティションのサイズ変更が必要になることがあります。詳細については、Persistent Disk のドキュメントのファイル システムとパーティションのサイズを変更するをご覧ください。

次のステップ