仮想マシン(VM)インスタンスで追加の保存容量やパフォーマンスの上限の引き上げが必要な場合に、永続ディスクのサイズを増やすことができます。ディスクが実行中の VM にアタッチされているかどうかにかかわらず、いつでもディスクサイズを増やすことができます。
このページでは、Persistent Disk のサイズを増やす方法について説明します。Google Cloud Hyperdisk ボリュームのサイズを増やすには、Hyperdisk の設定を変更するをご覧ください。
ディスクサイズの拡張のみを行うことができ、縮小することはできません。ディスクサイズを縮小するには、小さいサイズの新しいディスクを作成する必要があります。サイズの大きい元のディスクを削除するまで、両方のディスクに対して課金されます。
カスタム Linux イメージまたはカスタム Windows イメージを作成する場合は、ブートディスクと非ブートディスクのサイズを手動で増やす必要があります。公開イメージを使用している場合、Compute Engine によってブートディスクのサイズが自動的に変更されます。
ディスクのサイズを増やしても、ディスクデータの削除や変更は行われません。ファイル システムやパーティションを変更する前に、いつもスナップショットを作成してディスクをバックアップすることをおすすめします。
永続ディスクの裏では Compute Engine がハードウェアを管理しているため、ストライピングや冗長化を扱うことなくディスクの追加やサイズ変更を行えます。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境でコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
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 を使用して認証するをご覧ください。
-
ディスクのサイズを増やす
ブートディスクまたは非ブートディスクのディスクのサイズを増やすには、次の手順を使用します。
このタスクに必要な権限
このタスクを行うには、次の権限が必要です。
- ディスクに対する
compute.disks.update
権限
Google Cloud コンソールで、[ディスク] ページに移動します。
プロジェクトの永続ディスクのリストで、サイズを変更するディスクの名前をクリックします。
ディスク詳細ページで、
[編集] をクリックします。必要に応じて、 [その他の操作] メニューの [編集] をクリックします。[サイズ] フィールドに、ディスクの新しいサイズを入力します。MBR パーティション分割テーブルがあるディスクのサイズは、最大 2 TB までにしか変更できません。
[保存] をクリックして、変更をディスクに適用します。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
gcloud CLI で、
gcloud compute disks resize
コマンドを使用して--size
フラグを指定し、必要なディスクサイズをギガバイト単位で設定します。gcloud compute disks resize
DISK_NAME --sizeDISK_SIZE 次のように置き換えます。
DISK_NAME
: サイズ変更するディスクの名前。DISK_SIZE
: ディスクの新しいサイズ(ギガバイト単位)。MBR パーティション分割テーブルがあるディスクのサイズは、最大 2 TB までしか変更できません。
永続ディスクのサイズを変更するには、google_compute_disk
リソースと size
パラメータを使用します。
size
パラメータを image
パラメータまたは snapshot
パラメータとともに指定する場合、size
の値はイメージまたはスナップショットのサイズ以上にする必要があります。
image
パラメータと snapshot
パラメータを省略した場合、size
パラメータは既存のディスクサイズよりも小さく設定できます。この操作を行うと、Terraform によってディスクが破棄され、新しい空の永続ディスクが作成されます。再作成の際、Terraform はラベルやスナップショット スケジュールなど、Terraform 構成に含まれていない他のデータをコピーしません。Terraform によるディスクの破棄と再作成を防ぐには、Terraform 構成に lifecycle.prevent_destroy = true
設定を追加します。
compute.disks.resize
メソッドに対して POST
リクエストを作成します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /disks/DISK_NAME /resize { "sizeGb": "DISK_SIZE " }
次のように置き換えます。
PROJECT_ID
: プロジェクト ID。ZONE
: ディスクが配置されているゾーン。DISK_NAME
: サイズを変更するディスクの名前。DISK_SIZE
: ディスクの新しいサイズ(ギガバイト単位)。MBR パーティション分割テーブルがあるディスクのサイズは、最大 2 TB までしか変更できません。
ファイル システムとパーティションのサイズを変更する
ディスクのサイズを増やした後、ファイル システムとパーティションのサイズ変更が必要になることがあります。次のリストは、ブートディスクと非ブートディスクの追加情報を示しています。
ブートディスク: カスタム Linux イメージまたはカスタム Windows イメージを使用している場合は、ルート パーティションとファイル システムを手動でサイズ変更する必要があります。公開イメージを持つ VM の場合、ブートディスクのサイズを増やして VM を再起動すると、Compute Engine によってルート パーティションとファイル システムのサイズが自動的に変更されます。
非ブートディスク: ディスクのサイズを増やした後、追加した容量を使用するためにディスク上のファイル システムを拡張する必要があります。
次の例では、ブートディスクのルート パーティションとファイル システムのサイズを手動で変更する方法と、パーティション分割テーブルがない非ブート データディスクのファイル システムのサイズを手動で変更する方法を示します。この例では、接続されたディスクがすでにフォーマットされ、マウントされていることを前提としています。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
新たにアタッチされたディスクがあるインスタンスの横の [SSH] ボタンをクリックします。インスタンスに対する端末接続がブラウザに開きます。
df
コマンドとlsblk
コマンドを使用して、ファイル システムのサイズを一覧表示し、ディスクのデバイス名を確認します。$ sudo df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/sda1 ext4 9.7G 1.2G 8.5G 12% / /dev/sdb ext4 250G 60M 250G 1% /mnt/disks/disk-1
$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk └─sda1 8:1 0 10G 0 part / sdb 8:16 0 500G 0 disk /mnt/disks/disk-1
この例には、次のディスクが含まれています。
- ブートディスク:
/dev/sda1
パーティションが、20 GB にサイズ変更されたブートディスク上にあります。パーティション分割テーブルとファイル システムは、オペレーティング システムに 9.7 GB だけ提供しています。 - 非ブート データディスク:
/dev/sdb
の非ブートデータディスクにパーティション分割テーブルはありませんが、このディスクのファイル システムはオペレーティング システムに 250 GB だけ容量を提供しています。このディスクのマウント ディレクトリは/mnt/disks/disk-1
です。
df
コマンドにより、/dev/sda1
パーティションがルート ファイル システムとしてマウントされ、/dev/sdb
ディスクが/mnt/disks/disk-1
の非ブート データディスクとしてマウントされていることが示されます。[Type] 列をメモします。これは、ディスクがext4
ファイル システムを使用しているのか、あるいはxfs
ファイル システムを使用しているのかを示しています。- ブートディスク:
パーティション タイプを確認します。
特定のディスクに関する情報のみを表示するには:sudo parted -l
[Partition Table] フィールドを探します。値がsudo parted -l /dev/
DEVICE_NAME msdos
の場合、ディスクには MBR パーティション タイプがあります。つまり、このようなディスクの最大サイズは 2 TB になります。ブートディスクのルート パーティションとファイル システムのサイズを変更します。この例では、VM イメージがルート パーティショニングとファイル システムの自動サイズ変更をサポートしていないことを前提としています。
parted
を使用してルート パーティションのサイズを変更します。たとえば、次のコマンドは、/dev/sda
のパーティション 1 を可能な最大サイズに拡張します。/dev/sda
パーティションでparted
を開きます。sudo parted /dev/sda
(parted)
プロンプトで、次のように入力します。resizepart
Partition number?
プロンプトで、次のように入力します。1
Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?
プロンプトで、次のように入力します。Yes
End?
プロンプトで、次のコマンドを入力します。100%
(parted)
プロンプトで、次のように入力します。quit
partprobe
を使用して新しいパーティション テーブルを読み取ります。sudo partprobe /dev/sda
ファイル システムを拡張します。
ext4
を使用している場合、resize2fs
コマンドを実行します。sudo resize2fs /dev/sda1
xfs
を使用している場合、xfs_growfs
コマンドを実行します。sudo xfs_growfs -d /
btrfs を使用している場合は、
btrfs
コマンドを使用します。sudo btrfs filesystem resize max /
非ブート データディスク上のファイル システムのサイズを変更します。
ext4
を使用している場合は、resize2fs
コマンドを使用してファイル システムを拡張します。sudo resize2fs /dev/
DEVICE_NAME DEVICE_NAME
は、ディスクのデバイス名に置き換えます。この例では、/dev/sdb
がデバイス名です。xfs
を使用している場合は、xfs_growfs
コマンドを使用してファイル システムを拡張します。sudo xfs_growfs
MOUNT_DIR MOUNT_DIR は、デバイスのマウント ポイントに置き換えます。マウント ポイントは、
lsblk
コマンドの出力のMOUNTPOINT
列に表示されます。btrfs を使用している場合は、
btrfs
コマンドを使用してファイル システムを拡張します。sudo btrfs filesystem resize max
MOUNT_DIR MOUNT_DIR は、デバイスのマウント ポイントに置き換えます。マウント ポイントは、
lsblk
コマンドの出力のMOUNTPOINT
列に表示されます。
df
コマンドを使用して、ファイル システムが拡張されたことを確認します。次に例を示します。df -h /dev/sdb Filesystem Size Used Avail Use% Mounted on /dev/sdb 493G 70M 492G 1% /mnt/disks/disk-1
Windows インスタンスでは、Windows の [ディスクの管理] ユーティリティを使用してパーティションのサイズを変更します。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
サイズを変更したディスクが含まれるインスタンスの横にある [RDP] ボタンをクリックします。ブラウザ上でインスタンスに対する RDP 接続が開きます。
Windows の [スタート] ボタンを右クリックし、[ディスクの管理] を選択してディスク管理ツールを開きます。
Powershell を実行して、ディスク パーティション タイプを表示します。
[Partition Style] 列の値が [MBR] の場合、ディスクは MBR パーティション タイプです。つまり、このようなディスクの最大サイズは 2 TB になります。Get-Disk
ディスク管理ツールを更新して、ゾーン永続ディスクの追加容量を認識できるようにします。[ディスクの管理] ウィンドウの上部にある [アクション] をクリックして [最新の情報に更新] を選択します。
サイズを変更したディスクで、フォーマットされたパーティションを右クリックし、[ボリュームの拡張] を選択します。
ボリュームの拡張ウィザードの指示に従って、既存のパーティションを活用して、追加のディスク領域を含めます。既存のパーティションが NTFS でフォーマットされている場合、パーティションの最大サイズはクラスタサイズの設定によって制限されます。
ウィザードが完了してボリュームのフォーマットが終了したら、接続されたディスクのリストで
Status
列を調べて、新しいディスクがHealthy
ステータスとなっていることを確認します。
このプロセスの完了後に VM を再起動する必要はありません。これで、追加されたディスク容量をデータの保存に使用できます。