ワークロードのニーズに合わせて、Google Cloud Hyperdisk ボリュームのプロパティを変更できます。たとえば、プロビジョニングされた IOPS またはスループットを増減させて、それぞれ費用の削減やパフォーマンスの向上を実現できます。ボリュームのアクセスモードを設定することで、VM が Hyperdisk ML ボリューム上のデータにアクセスする方法を指定できます。
このページでは、Hyperdisk ボリュームの容量、パフォーマンスなどの設定を変更する方法について説明します。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
必要なロールと権限
Hyperdisk の変更に必要な権限を取得するには、プロジェクトに関する次の IAM ロールを付与するよう管理者に依頼してください。
-
Compute インスタンス管理者(v1)(
roles/compute.instanceAdmin.v1
) - サービス アカウントとして実行できる VM に接続するには: サービス アカウント ユーザー(v1)(
roles/iam.serviceAccountUser
)
ロールの付与の詳細については、アクセス権の管理に関する記事をご覧ください。
この事前定義ロールには、Hyperdisk の変更に必要な compute.disks.update
権限が含まれています。
カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。
Hyperdisk の変更の概要
Hyperdisk ボリュームのアクセスモード、サイズ、パフォーマンス特性は動的に変更できます。
Hyperdisk ボリュームでサポートされているサイズとパフォーマンスの変更
次の表に、各 Hyperdisk タイプでサポートされている容量とパフォーマンスの変更をまとめます。
Hyperdisk タイプ | カスタマイズ可能なスループット | カスタマイズ可能な IOPS | VM 間で共有可能 |
---|---|---|---|
Hyperdisk Balanced | はい | はい | いいえ |
Hyperdisk Balanced High Availability | はい | はい | いいえ |
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 ボリュームの容量を変更するときに、次の手順を行います。
パフォーマンスの変化
プロビジョニングされた 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 で設定できます。
コンソール
Google Cloud コンソールで、[ディスク] ページに移動します。
プロジェクトのディスクのリストで、容量またはプロビジョニングされたパフォーマンスを変更する Hyperdisk ボリュームの名前をクリックします。
ディスク詳細ページで、[編集] をクリックします。
[アクセスモード] フィールドで、目的のアクセスモードを選択します。読み取り専用モードを有効にするには、[複数の VM の読み取り専用] を選択します。
変更を適用するには、[保存] をクリックします。
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 で変更できます。
コンソール
Google Cloud コンソールで、[ディスク] ページに移動します。
プロジェクトのディスクのリストで、容量またはプロビジョニングされたパフォーマンスを変更する Hyperdisk ボリュームの名前をクリックします。
ディスク詳細ページで、[編集] をクリックします。
- [サイズ] フィールドに、ディスクの新しいサイズを入力します。ディスクサイズはサポートされている値の範囲内にする必要があります。
- Hyperdisk Extreme、Hyperdisk Balanced、Hyperdisk Balanced High Availability の場合: [プロビジョニングされた IOPS] フィールドに、ボリュームの新しい IOPS 値を入力します。
- Hyperdisk Throughput、Hyperdisk ML、Hyperdisk Balanced、Hyperdisk Balanced の高可用性の場合: [プロビジョニングされたスループット] フィールドに、ボリュームの新しいスループット値を入力します。
[保存] をクリックして、変更をディスクに適用します。
gcloud
disks update
コマンドを使用して、--size
フラグ、--provisioned-iops
フラグ、または --provisioned-throughput
フラグを指定します。
Hyperdisk Balanced High Availability ボリュームのサイズを変更するには、--region
フラグを指定します。
gcloud compute disks update DISK_NAME \ --size=DISK_SIZE \ [--region=REGION] \ --provisioned-iops=IOPS_LIMIT \ --provisioned-throughput=THROUGHPUT_LIMIT
次のように置き換えます。
- DISK_NAME: 変更する Hyperdisk ボリュームの名前。
- DISK_SIZE: 省略可: ディスクの新しいサイズ。この値は整数で、その後に GB(ギビバイト)または TB(テビバイト)のサイズ単位が続きます。ディスクサイズはサポートされている値の範囲内にする必要があります。
- REGION: 省略可。Hyperdisk Balanced High Availability ディスクが配置されているリージョン
- IOPS_LIMIT: 省略可: Hyperdisk Extreme、Hyperdisk Balanced、Hyperdisk Balanced High Availability ボリュームの IOPS 構成。値はサポートされている値の範囲内にする必要があります。
- THROUGHPUT_LIMIT: 省略可: Hyperdisk Throughput、Hyperdisk ML、Hyperdisk Balanced、Hyperdisk Balanced High Availability ボリュームのスループット構成。1 秒あたりの MiB で測定されたスループットを表す整数として指定します。値はサポートされている値の範囲内にする必要があります。
REST
compute.disks.update
メソッドに対して PATCH
リクエストを作成します。リクエストの本文で、パラメータ sizeGb
、provisionedIops
、または provisionedThroughput
を指定します。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME { "sizeGb": "DISK_SIZE, "provisionedIops": "IOPS_LIMIT", "provisionedThroughput": "THROUGHPUT_LIMIT" }
Hyperdisk Balanced High Availability ボリュームを変更するには、compute.regionDisks.update
メソッドに PATCH
リクエストを作成します。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME { "sizeGb": "DISK_SIZE, "provisionedIops": "IOPS_LIMIT", "provisionedThroughput": "THROUGHPUT_LIMIT" }
次のように置き換えます。
PROJECT_ID
: プロジェクト ID。ZONE
: Hyperdisk ボリュームが配置されているゾーン。REGION
: Hyperdisk Balanced High Availability ディスクの場合、これはディスクが配置されているリージョンです。DISK_NAME
: 変更する Hyperdisk ボリュームの名前。DISK_SIZE
: 省略可: ディスクの新しいサイズ。この値は整数で、その後に GB(ギビバイト)または TB(テビバイト)のサイズ単位が続きます。ディスクサイズはサポートされている値の範囲内にする必要があります。IOPS_LIMIT
: 省略可: Hyperdisk Extreme、Hyperdisk Balanced、Hyperdisk Balanced High Availability ボリュームの IOPS 構成。値はサポートされている値の範囲内にする必要があります。THROUGHPUT_LIMIT
: 省略可: Hyperdisk Balanced ボリューム、Hyperdisk ML ボリューム、Hyperdisk Balanced ボリューム、Hyperdisk Balanced High Availability ボリュームのスループット構成。1 秒あたりの MiB で測定されたスループットを表す整数として指定します。値はサポートされている値の範囲内にする必要があります。
Hyperdisk ボリュームをバックアップする
ディスクのサイズを変更しても、ディスクのデータが削除や変更されることはありませんが、常にスナップショットを作成してディスクをバックアップした後、ファイル システムやパーティションに変更を加えることをおすすめします。
ファイル システムとパーティションのサイズの変更
Hyperdisk ボリュームのサイズを増やした後、ファイル システムとパーティションのサイズ変更が必要になることがあります。
ブートディスク: カスタム Linux イメージまたはカスタム Windows イメージを使用している場合は、ルート パーティションとファイル システムを手動でサイズ変更する必要があります。公開イメージを持つ VM の場合、ブートディスクのサイズを増やして VM を再起動すると、Compute Engine によってルート パーティションとファイル システムのサイズが自動的に変更されます。
非ブートディスク: ディスクのサイズを増やした後、追加した容量を使用するためにディスク上のファイル システムを拡張する必要があります。
次の例では、ブートディスクのルート パーティションとファイル システムのサイズを手動で変更する方法と、パーティション分割テーブルがない非ブート データディスクのファイル システムのサイズを手動で変更する方法を示します。この例では、アタッチされたディスクがすでにフォーマットされ、マウントされていることを前提としています。
Linux VM
Google Cloud コンソールで [VM インスタンス] ページに移動します。
新しいディスクがアタッチされたインスタンスの横にある [SSH] ボタンをクリックします。インスタンスに対するターミナル接続がブラウザに開きます。
df
コマンドとlsblk
コマンドを使用して、ファイル システムのサイズを一覧表示し、ディスクのデバイス名を確認します。$ sudo df -Th Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 3.9G 0 3.9G 0% /dev /dev/nvme0n1p1 ext4 9.7G 2.0G 7.2G 22% / /dev/nvme0n1p15 vfat 124M 12M 113M 10% /boot/efi /dev/nvme0n2 ext4 98G 24K 98G 1% /mnt/disks/data
$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 20G 0 disk ├─nvme0n1p1 259:5 0 9.9G 0 part / ├─nvme0n1p14 259:6 0 3M 0 part └─nvme0n1p15 259:7 0 124M 0 part /boot/efi nvme0n2 259:4 0 100G 0 disk /mnt/disks/data
この例には、次のディスクが含まれています。
- ブートディスク:
/dev/nvme0n1p1
パーティションが、20 GB にサイズ変更されたブートディスク上にあります。パーティション分割テーブルとファイル システムは、オペレーティング システムに 9.9 GB だけ提供しています。 - 非ブート データディスク:
/dev/nvme0n2
の非ブートデータディスクにパーティション分割テーブルはありませんが、このディスクのファイル システムはオペレーティング システムに 100 GB の容量を提供しています。このディスクのマウント ディレクトリは/mnt/disks/data
です。
df
コマンド出力の Type 列の値をメモします。これは、ディスクがext4
ファイル システムまたはxfs
ファイル システムを使用しているかどうかを示します。- ブートディスク:
パーティション タイプを確認します。
sudo parted -l
ディスクのサイズを変更した後にこのコマンドを初めて実行すると、次のようなメッセージが表示されることがあります。
Warning: Not all of the space available to /dev/nvme0n1 appears to be used, you can fix the GPT to use all of the space (an extra 20971520 blocks) or continue with the current setting? Fix/Ignore?
Fix
を入力すると、OS はディスクのパーティションを自動的に再構成し、追加の容量を OS で使用できるようにします。変更する追加ディスクがない場合、最後の手順に進みます。自動修正オプションを使用しない場合、またはこのオプションを使用できない場合は、再パーティショニングするディスクの情報を確認します。
sudo parted -l /dev/DEVICE_NAME
Partition Table というフィールドを探します。値が
msdos
の場合、ディスクには MBR パーティション タイプがあります。つまり、このようなディスクの最大サイズは 2 TB になります。ブートディスクの場合は、ディスクのルート パーティションとファイル システムのサイズを変更します。この例では、VM イメージがルート パーティショニングとファイル システムの自動サイズ変更をサポートしていないことを前提としています。
parted
を使用してルート パーティションのサイズを変更します。たとえば、次のコマンドは、デバイスのパーティション 1 を可能な最大サイズに拡張します。デバイスで
parted
を開きます。sudo parted /dev/DEVICE_NAME
プロンプトで、次のコマンドを入力します。
(parted) resizepart
Partition number?
プロンプトで、次のように入力します。1
Warning: Partition /dev/DEVICE_NAMEp1 is being used. Are you sure you want to continue?
プロンプトで、次のように入力します。Yes
End?
プロンプトで、次のコマンドを入力します。100%
(parted)
プロンプトで、次のように入力します。(parted) quit
parted -l
を使用して新しいパーティション テーブルを表示します。sudo parted -l /dev/DEVICE_NAME Model: nvme_card-pd (nvme) Disk /dev/DEVICE_NAME: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 14 1049kB 4194kB 3146kB bios_grub 15 4194kB 134MB 130MB fat16 boot, esp 1 134MB 21.5GB 21.3GB ext4
ファイル システムを拡張します。
ext4
を使用している場合、resize2fs
コマンドを実行します。sudo resize2fs /dev/DEVICE_NAME
xfs
を使用している場合、xfs_growfs
コマンドを実行します。sudo xfs_growfs -d /
btrfs を使用している場合は、
btrfs
コマンドを使用します。sudo btrfs filesystem resize max /
ブートディスク以外のデータディスクの場合は、ディスク上のファイル システムのサイズを変更します。
ext4
を使用している場合は、resize2fs
コマンドを使用してファイル システムを拡張します。sudo resize2fs /dev/DATA_DEVICE_NAME
DATA_DEVICE_NAME
は、データディスクのデバイス名に置き換えます。この例では、/dev/nvme0n2
がデバイス名です。xfs
を使用している場合は、xfs_growfs
コマンドを使用してファイル システムを拡張します。sudo xfs_growfs MOUNT_DIR
btrfs を使用している場合は、
btrfs
コマンドを使用してファイル システムを拡張します。sudo btrfs filesystem resize max MOUNT_DIR
MOUNT_DIR は、デバイスのマウント ポイントに置き換えます。マウント ポイントは、
lsblk
コマンドの出力のMOUNTPOINT
列に表示されます。
df
コマンドを使用して、ファイル システムが拡張されたことを確認します。次に例を示します。df -h /dev/DATA_DEVICE_NAME Filesystem Size Used Avail Use% Mounted on /dev/DATA_DEVICE_NAME 118G 70M 118G 1% MOUNT_DIR
Windows VM
Windows インスタンスでは、Windows の [ディスクの管理] ユーティリティを使用してパーティションのサイズを変更します。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
サイズを変更したディスクが含まれるインスタンスの横にある [RDP] ボタンをクリックします。ブラウザ上でインスタンスに対する RDP 接続が開きます。
Windows の [スタート] ボタンを右クリックし、[ディスクの管理] を選択してディスク管理ツールを開きます。
Powershell を実行して、ディスク パーティション タイプを表示します。
Get-Disk
[Partition Style] 列の値が [MBR] の場合、ディスクのタイプは MBR パーティションです。つまり、このようなディスクの最大サイズは 2 TB になります。ディスク管理ツールを更新して、ゾーン永続ディスクの追加容量を認識できるようにします。[ディスクの管理] ウィンドウの上部にある [アクション] をクリックして [最新の情報に更新] を選択します。
サイズを変更したディスクで、フォーマットされたパーティションを右クリックし、[ボリュームの拡張] を選択します。
ボリュームの拡張ウィザードの指示に従って、既存のパーティションを活用して、追加のディスク領域を含めます。既存のパーティションが NTFS でフォーマットされている場合、パーティションの最大サイズはクラスタサイズの設定によって制限されます。
ウィザードが完了してボリュームのフォーマットが終了したら、接続されたディスクのリストで
Status
列を調べて、新しいディスクがHealthy
ステータスとなっていることを確認します。
このプロセスの完了後に VM を再起動する必要はありません。これで、追加されたディスク容量をデータの保存に使用できます。
次のステップ
- Hyperdisk の詳細を確認する。
- Hyperdisk ボリュームの現在の IOPS レベルを分析する方法を確認する。