【GCP Lab-0001】ローカル(ルート)のディスク容量を増量する

 Google Cloud Compute 上にインスタンスを構築すると、そのインスタンスのディスクは初期値で10GBになっています。ここでは、ローカル(ルート)のディスク容量を増量するの方法を調査及び研究し、その成果をまとめています。

ディスクを増量する

 これで、インスタンスを再起動すると、OSによっては自動でディスクを増量してくれるようです。下記リンク先参照

Creating Customized Root Disks#Checking if your operating system supports automatic resizing

 私の場合は、CentOS7を使用していましたが、自動でディスクを増量してくれませんのでしたので、手動で次の設定を行いました。

手動でディスクを増量する

 まずdfコマンドを使用して、現在のディスクサイズを確認します。

$ df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda1        10G  3.1G  7.0G  31% /

devtmpfs        1.9G     0  1.9G   0% /dev

tmpfs           1.9G  4.0K  1.9G   1% /dev/shm

tmpfs           1.9G  8.2M  1.8G   1% /run

tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup

 インスタンスの設定上は、20GBにしていても、CentOS7的には、10GBしか認識していない事が確認できます。

 fdiskコマンド(sudo fdisk /dev/sda)を実行します。そしてコマンドに"p"を入力します。

$sudo fdisk /dev/sda

 

The device presents a logical sector size that is smaller than

the physical sector size. Aligning to a physical sector (or optimal

I/O) size boundary is recommended, or performance may be impacted.

Welcome to fdisk (util-linux 2.23.2).

 

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

 

 

Command (m for help):

 コマンドに"p"を入力すると下記の情報が表示されます。

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 4096 bytes

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk label type: dos

Disk identifier: 0x0008e2ad

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1            2048    20969472    10483712+  83  Linux

 

 /dev/sda/に21.5GB割り当たっている事が確認できます。次の設定のために、デバイスID(上記の例だと83)と、スタートセクターの値(上記の例だと2048)をメモしておきます。

 次にコマンド"d"で/dev/sda1の論理パーティションを削除します。

Command (m for help): d

Selected partition 1

partition 1 is deleted

 これでパーティションをリサイズできるようになります。この状態でpのコマンドを実行すると、もともとあったパーティションが削除されて、何も情報が表示されません。

Command (m for help): p

 

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 4096 bytes

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk label type: dos

Disk identifier: 0x0008e2ad

 

   Device Boot      Start         End      Blocks   Id  System

 

 次にコマンド"n"を指定して、表示されるパーティションタイプに"p"を選択します。そしてパーティションナンバーを"1"に、First SectorとLast secotrの値はdefault値に合わせて設定します。

command (m for help): n

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-41943039, default 2048): 2048

Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 4193039

Partition 1 of type Linux and of size 2 GiB is set

 最後にコマンド"w"で保存します。

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

 

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

 リブートします。

$sudo reboot

 リブートしても、まだdfコマンドでは、10GBしか認識されていません。次に"sudo parted /dev/sda 'print'" コマンドで、ファイルシステムを確認します。

$ sudo parted /dev/sda 'print'

Model: Google PersistentDisk (scsi)

Disk /dev/sda: 21.5GB

Sector size (logical/physical): 512B/4096B

Partition Table: msdos

Disk Flags:

 

Number  Start   End     Size    Type     File system  Flags

 1      1049kB  21.5GB  21.5GB  primary  xfs

 ファイルシステムが"xfs"の場合は、"sudo xfs_growfs /" コマンドを実行します。これで、20GB使用できるようになります。

$ sudo xfs_growfs /

meta-data=/dev/sda1              isize=256    agcount=4, agsize=655232 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=0        finobt=0

data   =                       bsize=4096   blocks=2620928, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal               bsize=4096   blocks=2560, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

data blocks changed from 2620928 to 5242624

 ファイルシステムが"ext4,"の場合は、"resize2fs"コマンドを実行します。私は試していませんが、Googleのドキュメントでは次のコマンドが紹介されています。

$ sudo resize2fs /dev/sda1

 再度にdfコマンドで確認します。

$ df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda1        20G  3.1G   17G  16% /

devtmpfs        1.9G     0  1.9G   0% /dev

tmpfs           1.9G  4.0K  1.9G   1% /dev/shm

tmpfs           1.9G  8.2M  1.8G   1% /run

tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup

参考サイト

関連するコンテンツ