仮想マシン(VM)インスタンスで追加の保存容量やパフォーマンスの上限の引き上げが必要な場合に、永続ディスクのサイズを増やすことができます。実行中の VM にアタッチされているかどうにかかわらず、ディスクサイズはいつでも増やすことができます。
ディスクサイズの拡張のみを行うことができ、縮小することはできません。ディスクサイズを減らすには、小さいサイズの新しいディスクを作成する必要があります。元の大きなディスクを削除するまで、両方のディスクに対して課金されます。
カスタム Linux イメージまたはカスタム Windows イメージを作成する場合は、ブートディスクと非ブートディスクのサイズを手動で増やす必要があります。公開イメージを使用している場合は、Compute Engine によってブートディスクのサイズが自動的に変更されます。
ディスクのサイズを増やしても、ディスクデータの削除や変更は行われません。ファイル システムやパーティションを変更する前に、いつもスナップショットを作成してディスクをバックアップすることをお勧めします。
永続ディスクの裏では Compute Engine がハードウェアを管理しているため、ストライピングや冗長化を扱うことなくディスクの追加やサイズ変更を行えます。
ディスクのサイズを増やす
ブートディスクまたは非ブートディスクのディスクのサイズを増やすには、次の手順を使用します。
Console
Google Cloud Console で、[ディスク] ページに移動します。
プロジェクトの永続ディスクのリストで、サイズを変更するディスクの名前をクリックします。
ディスク詳細ページで、[編集] をクリックします。
[サイズ] フィールドに、ディスクの新しいサイズを入力します。MBR パーティション テーブルがあるディスクのサイズは、最大 2 TB にまでしか変更できません。
[保存] をクリックして、変更をディスクに適用します。
gcloud
gcloud CLI で、gcloud compute disks resize
コマンドを使用して --size
フラグを指定し、必要なディスクサイズをギガバイト単位で設定します。
gcloud compute disks resize DISK_NAME --size DISK_SIZE
以下を置き換えます。
DISK_NAME
: サイズ変更するディスクの名前DISK_SIZE
: ディスクの新しいサイズ(ギガバイト単位)。MBR パーティション分割テーブルがあるディスクのサイズは、最大 2 TB までしか変更できません。
Terraform
永続ディスクのサイズを変更するには、google_compute_disk
リソースと size
パラメータを使用します。
size
パラメータを image
パラメータまたは snapshot
パラメータとともに指定する場合、size
の値はイメージまたはスナップショットのサイズ以上にする必要があります。
image
パラメータと snapshot
パラメータを省略すると、size
パラメータを既存のディスクサイズよりも小さく設定できます。この操作を行うと、Terraform によってディスクが破棄され、新しい空の永続ディスクが作成されます。再作成の際、Terraform はラベルやスナップショット スケジュールなど、Terraform 構成に含まれていない他のデータをコピーしません。Terraform によるディスクの破棄と再作成を防ぐには、Terraform 構成に lifecycle.prevent_destroy = true
設定を追加します。
API
API で、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 の場合、Compute Engine は、ブートディスクのサイズを増やして VM を再起動した後、ルート パーティションとファイル システムのサイズを自動的に変更します。
非ブートディスク: ディスクのサイズを増やした後、追加された容量を使用するには、ディスク上のファイル システムを拡張する必要があります。
次の例では、ブートディスクのルート パーティションとファイル システムのサイズを手動で変更する方法と、パーティション分割テーブルがない非ブート データディスクのファイル システムのサイズを手動で変更する方法を示します。この例では、アタッチされたディスクが以前にフォーマットされてマウントされていることを前提としています。
Linux VM
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
の非ブート データディスクとしてマウントされていることが示されます。[タイプ] 列をメモします。これは、ディスクがext4
ファイル システムを使用しているのか、あるいはxfs
ファイル システムを使用しているのかを示しています。- ブートディスク:
パーティション タイプを確認します。
sudo parted -l
特定のディスクの情報のみを表示するには、次のコマンドを実行します。sudo parted -l /dev/DEVICE_NAME
Partition Table というフィールドを探します。値が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 /
非ブート データディスク上のファイル システムのサイズを変更します。
ext4
を使用している場合は、resize2fs
コマンドを使用してファイル システムを拡張します。sudo resize2fs /dev/DEVICE_NAME
DEVICE_NAME
は、ディスクのデバイス名に置き換えます。この例では、/dev/sdb
がデバイス名です。xfs
を使用している場合は、xfs_growfs
コマンドを使用してファイル システムを拡張します。sudo xfs_growfs 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 VM
Windows インスタンスでは、Windows のディスク管理ユーティリティを使用してパーティションのサイズを変更します。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
サイズを変更したディスクが含まれるインスタンスの横にある [RDP] ボタンをクリックします。ブラウザ上でインスタンスに対する RDP 接続が開きます。
Windows の [スタート] ボタンを右クリックし、[ディスクの管理] を選択してディスク管理ツールを開きます。
Powershell で実行して、ディスク パーティション タイプを表示します。
Get-Disk
[Partition Style] 列で、値が MBR の場合、ディスクには MBR パーティション タイプがあります。つまり、このようなディスクの最大サイズは 2 TB になります。ディスク管理ツールを更新して、ゾーン永続ディスクの追加容量を認識できるようにします。[ディスクの管理] ウィンドウの上部にある [アクション] をクリックして [更新] を選択します。
サイズを変更したディスクで、フォーマットされたパーティションを右クリックし、[ボリュームの拡張] を選択します。
ボリュームの拡張ウィザードの指示に従って、既存のパーティションを活用して、追加のディスク領域を含めます。既存のパーティションが NTFS でフォーマットされている場合、パーティションの最大サイズはクラスタサイズの設定によって制限されます。
ウィザードが完了してボリュームのフォーマットが終了したら、接続されたディスクのリストで
Status
列を調べて、新しいディスクがHealthy
ステータスとなっていることを確認します。
このプロセスの完了後にインスタンスを再起動する必要はありません。これで、追加されたディスク領域をデータの保存に使用できます。