永続ディスクのサイズの変更


仮想マシン(VM)インスタンスで追加の保存容量やより大きなパフォーマンスの上限が必要な場合に、永続ディスクのサイズを増やすことができます。永続ディスクのサイズ変更は、大きくすることのみ可能です。永続ディスクのサイズを小さくすることはできません。

実行中の VM にアタッチされているかどうにかかわらず、ディスクのサイズはいつでも変更できます。

永続ディスクの裏では Compute Engine がハードウェアを管理しているため、ストライピングや冗長化を扱うことなくディスクの追加やサイズ変更を行えます。

ディスクのサイズ変更

公開イメージを使用する VM では、ブートディスクのサイズが自動的に変更されます。それ以外の場合は、ブートディスクまたは非ブートディスクのサイズを手動で変更する必要があります。

ブートディスクまたは非ブートディスクのディスクのサイズを増やすには、次の手順を使用します。

Console

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

    [ディスク] に移動

  2. プロジェクトの永続ディスクのリストで、サイズを変更するディスクの名前をクリックします。

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

  4. [サイズ] フィールドに、ディスクの新しいサイズを入力します。MBR パーティション分割テーブルがあるディスクのサイズは、最大 2 TB までしか変更できません。

  5. [保存] をクリックして、変更をディスクに適用します。

gcloud

gcloud CLI で、disks resize コマンドを使用して --size フラグを指定し、必要なディスクサイズをギガバイト単位で設定します。

gcloud compute disks resize DISK_NAME --size DISK_SIZE

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

  • DISK_NAME: サイズ変更するディスクの名前。
  • DISK_SIZE: ディスクの新しいサイズ(ギガバイト単位)。MBR パーティション分割テーブルがあるディスクのサイズは、最大 2 TB までしか変更できません。

API

API で、compute.disks.resize メソッドに対して POST リクエストを作成します。リクエストの本文で sizeGb パラメータを指定し、それをディスクサイズ(ギガバイト単位)に設定します。

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 までしか変更できません。

ディスクのバックアップ

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

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

ディスクのサイズを変更すると、ファイル システムとパーティションのサイズ変更が必要になることがあります。

  • ブートディスク: 公開イメージを使用する VM では、VM のブートディスクのサイズを変更して VM を再起動すると、ルート パーティションとファイル システムのサイズが自動的に変更されます。この機能をサポートしていないイメージを使用している場合は、ルート パーティションとファイル システムのサイズを手動で変更する必要があります。

  • 非ブートディスク: ディスクのサイズを変更すると、追加された領域を使用するためにディスク上のファイル システムを拡張する必要があります。

次の例では、ブートディスクのルート パーティションとファイル システムのサイズを手動で変更する方法と、パーティション分割テーブルがない非ブート データディスクのファイル システムのサイズを手動で変更する方法を示します。

Linux インスタンス

  1. Google Cloud Console で、[VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. 新たにアタッチされたディスクがあるインスタンスの横の [SSH] ボタンをクリックします。ブラウザが開き、インスタンスに対するターミナル接続が表示されます。

  3. 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 ファイル システムを使用しているのかを示しています。

  4. ブートディスクのルート パーティションとファイル システムのサイズを変更します。この例では、VM イメージがルート パーティションとファイル システムの自動サイズ変更をサポートしていないことを前提としています。

    1. parted を使用してルート パーティションのサイズを変更します。たとえば、インタラクティブ モードでの次の parted コマンドは、/dev/sda のパーティション 1 を可能な限り最大のサイズに拡張します。

      sudo parted /dev/sda
      ...
      (parted) resizepart
      Partition number? 1
      Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?
      Yes/No? y
      End?  [10.7GB]? 100%
      (parted) quit
      
    2. GPT データ構造をディスクの末尾に移動して、GPT テーブルを並べます。

      sudo sgdisk --move-second-header /dev/sda
      
    3. partprobe を使用して新しいパーティション テーブルを読み取ります。

      sudo partprobe /dev/sda
      
    4. ext4 を使用している場合は、resize2fs コマンドを使用してファイル システムを拡張します。

      sudo resize2fs /dev/sda1
      
    5. xfs を使用している場合は、xfs_growfs コマンドを使用してファイル システムを拡張します。

      sudo xfs_growfs -d /
      
  5. 非ブート データディスク上のファイル システムのサイズを変更します。

    1. ext4 を使用している場合は、resize2fs コマンドを使用してファイル システムを拡張します。

      sudo resize2fs /dev/DEVICE_NAME
      

      DEVICE_NAME は、ディスクのデバイス名に置き換えます。この例では、/dev/sdb がデバイス名です。

    2. xfs を使用している場合は、xfs_growfs コマンドを使用してファイル システムを拡張します。

      sudo xfs_growfs MOUNT_DIR
      

      MOUNT_DIR は、デバイスのマウント ポイントに置き換えます。マウント ポイントは、lsblk コマンドの出力の MOUNTPOINT 列に表示されます。

  6. df コマンドを使用して、ファイル システムが拡張されたことを確認します。次に例を示します。

    df -h /dev/sdb
    
    Filesystem        Size  Used Avail Use% Mounted on
    /dev/sdb  493G   70M  492G   1% /mnt/disks/disk-1
    

Windows インスタンス

Windows インスタンスでは、Windows の [ディスクの管理] ツールを使用してパーティションのサイズを変更します。

  1. Google Cloud Console で、[VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. サイズを変更したディスクが含まれるインスタンスの横にある [RDP] ボタンをクリックします。ブラウザ上でインスタンスに対する RDP 接続が開きます。

  3. Windows の [スタート] ボタンを右クリックし、[ディスクの管理] を選択してディスク管理ツールを開きます。

    Windows の [スタート] ボタンの右クリック メニューから、Windows の [ディスクの管理] ツールを選択します。

  4. ディスク管理ツールを更新して、ゾーン永続ディスクの追加容量を認識できるようにします。[ディスクの管理] ウィンドウの上部にある [操作] をクリックして [最新の情報に更新] を選択します。

    [操作] メニューをクリックして [最新の情報に更新] を選択すると、ディスクの管理ツールでゾーン永続ディスク情報が更新されます。

  5. サイズを変更したディスクで、フォーマットされたパーティションを右クリックし、[ボリュームの拡張] を選択します。

    ディスクのフォーマットされたパーティションを右クリックし、[ボリュームの拡張] オプションを選択します。

  6. ボリュームの拡張ウィザードの指示に従って、既存のパーティションを活用して、追加のディスク領域を含めます。既存のパーティションが NTFS でフォーマットされている場合、パーティションの最大サイズはクラスタサイズの設定によって制限されます。

  7. ウィザードが完了してボリュームのフォーマットが終了したら、接続されたディスクのリストで Status 列を調べて、新しいディスクが Healthy ステータスとなっていることを確認します。

    Windows によって認識されたディスクのリストを表示し、インスタンスが [オンライン] で [正常] ステータスであることを確認します。

このプロセスの完了後にインスタンスを再起動する必要はありません。これで、追加されたディスク領域をデータの保存に使用できます。