仮想マシン(VM)インスタンスで追加の保存容量やパフォーマンスの上限の引き上げが必要な場合に、永続ディスクのサイズを増やすことができます。ディスクが実行中の VM にアタッチされているかどうかにかかわらず、いつでもディスクサイズを増やすことができます。
ディスクサイズの拡張のみを行うことができ、縮小することはできません。ディスクサイズを縮小するには、小さいサイズの新しいディスクを作成する必要があります。サイズの大きい元のディスクを削除するまで、両方のディスクに対して課金されます。
カスタム Linux イメージまたはカスタム Windows イメージを作成する場合は、ブートディスクと非ブートディスクのサイズを手動で増やす必要があります。公開イメージを使用している場合、Compute Engine によってブートディスクのサイズが自動的に変更されます。
ディスクのサイズを増やしても、ディスクデータの削除や変更は行われません。ファイル システムやパーティションを変更する前に、いつもスナップショットを作成してディスクをバックアップすることをおすすめします。
永続ディスクの裏では Compute Engine がハードウェアを管理しているため、ストライピングや冗長化を扱うことなくディスクの追加やサイズ変更を行えます。
準備
-
まだ設定していない場合は、認証を設定します。認証とは、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
- デフォルトのリージョンとゾーンを設定します。
Terraform
このページの Terraform サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- 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.
詳細については、 ローカル開発環境の認証の設定 をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
ディスクのサイズを増やす
ブートディスクまたは非ブートディスクのディスクのサイズを増やすには、次の手順を使用します。
コンソール
Google Cloud コンソールで、[ディスク] ページに移動します。
プロジェクトの永続ディスクのリストで、サイズを変更するディスクの名前をクリックします。
ディスク詳細ページで、
[編集] をクリックします。必要に応じて、 [その他の操作] メニューの [編集] をクリックします。[サイズ] フィールドに、ディスクの新しいサイズを入力します。MBR パーティション分割テーブルがあるディスクのサイズは、最大 2 TB までにしか変更できません。
[保存] をクリックして、変更をディスクに適用します。
gcloud
-
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 --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
設定を追加します。
REST
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 によってルート パーティションとファイル システムのサイズが自動的に変更されます。
非ブートディスク: ディスクのサイズを増やした後、追加した容量を使用するためにディスク上のファイル システムを拡張する必要があります。
次の例では、ブートディスクのルート パーティションとファイル システムのサイズを手動で変更する方法と、パーティション分割テーブルがない非ブート データディスクのファイル システムのサイズを手動で変更する方法を示します。この例では、接続されたディスクがすでにフォーマットされ、マウントされていることを前提としています。
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
の非ブート データディスクとしてマウントされていることが示されます。[Type] 列をメモします。これは、ディスクが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 /
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 VM
Windows インスタンスでは、Windows の [ディスクの管理] ユーティリティを使用してパーティションのサイズを変更します。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
サイズを変更したディスクが含まれるインスタンスの横にある [RDP] ボタンをクリックします。ブラウザ上でインスタンスに対する RDP 接続が開きます。
Windows の [スタート] ボタンを右クリックし、[ディスクの管理] を選択してディスク管理ツールを開きます。
Powershell を実行して、ディスク パーティション タイプを表示します。
Get-Disk
[Partition Style] 列の値が [MBR] の場合、ディスクのタイプは MBR パーティションです。つまり、このようなディスクの最大サイズは 2 TB になります。ディスク管理ツールを更新して、ゾーン永続ディスクの追加容量を認識できるようにします。[ディスクの管理] ウィンドウの上部にある [アクション] をクリックして [最新の情報に更新] を選択します。
サイズを変更したディスクで、フォーマットされたパーティションを右クリックし、[ボリュームの拡張] を選択します。
ボリュームの拡張ウィザードの指示に従って、既存のパーティションを活用して、追加のディスク領域を含めます。既存のパーティションが NTFS でフォーマットされている場合、パーティションの最大サイズはクラスタサイズの設定によって制限されます。
ウィザードが完了してボリュームのフォーマットが終了したら、接続されたディスクのリストで
Status
列を調べて、新しいディスクがHealthy
ステータスとなっていることを確認します。
このプロセスの完了後に VM を再起動する必要はありません。これで、追加されたディスク容量をデータの保存に使用できます。