あめも

初心者インフラエンジニアの仕事や日常の事をそれとなく書いていくブログです

GCP ComputeEngineのブートディスクサイズを起動したまま変更する

GCP ComputeEngineインスタンスのブートディスクサイズを変更した際の記録です。


GCPの公式ドキュメントを参考にしながら設定。
永続ディスクの追加またはサイズ変更  |  Compute Engine ドキュメント  |  Google Cloud

環境

  • OS : CentOS 7.5
  • ディスク : 標準の永続ディスク 10GB
  • フォーマット : XFS

今回はこのディスクのサイズを10GB→100GBに変更します。

発端

監視サーバとして使っていたサーバの調子がおかしいなーと思って確認したら、ディスク使用率が100%になっていました。

[root@hoge var]# df -T
Filesystem     Type      1K-blocks      Used  Available Use% Mounted on
/dev/sda1      xfs        10474496  10474476         20 100% /
devtmpfs       devtmpfs    3739224         0    3739224   0% /dev
tmpfs          tmpfs       3746856         0    3746856   0% /dev/shm
tmpfs          tmpfs       3746856    376388    3370468  11% /run
tmpfs          tmpfs       3746856         0    3746856   0% /sys/fs/cgroup
/dev/sdb       xfs      2096128000 718348648 1377779352  35% /mnt/disks/ssd1
tmpfs          tmpfs        749372         0     749372   0% /run/user/1003
tmpfs          tmpfs        749372         0     749372   0% /run/user/0

ブートディスクサイズは10Gです。

[root@hoge var]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda      8:0    0  10G  0 disk
└─sda1   8:1    0  10G  0 part /
sdb      8:16   0   3T  0 disk /mnt/disks/ssd1

GCP管理画面の操作

ディスクサイズ変更

変更したいVMインスタンスのディスクを編集して100GBにする
(25GBになっているのは他のサーバ画像で参考キャプチャを撮ったのでスルーして下さい。実際は10GBです)

f:id:sora_rain:20190118131537p:plain

f:id:sora_rain:20190118131739p:plain

サーバーの操作

サイズ確認

管理画面の操作後、ディスクサイズ自体は100GBになっていました。

[root@hoge var]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk
└─sda1   8:1    0   10G  0 part /
sdb      8:16   0    3T  0 disk /mnt/disks/ssd1

増えた容量を実際に使えるようにします。

growpartの実行

growpartを実行したところ、ディスク容量がいっぱいで実行できず。

[root@hoge var]# growpart /dev/sda1 1
mkdir: cannot create directory ‘/tmp/growpart.21703’: No space left on device
FAILED: failed to make temp dir

ログをいくつか削除し実行した結果、 FAILED: unable to determine partition typeになってしまう。

[root@hoge graphite]# growpart /dev/sda1 1
FAILED: unable to determine partition type

公式ドキュメントを読んだら、 growpart /dev/[DEVICE_ID] [PARTITION_NUMBER]でデバイスIDの指定が誤っていたので修正した結果、無事にCHANGEDになった。

[root@hoge graphite]# growpart /dev/sda 1
CHANGED: partition=1 start=2048 old: size=20969472 end=20971520 new: size=209710462,end=209712510
パーティションサイズの確認

/dev/sda1のサイズが10GB→100GBになった

[root@hoge graphite]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk
└─sda1   8:1    0  100G  0 part /
sdb      8:16   0    3T  0 disk /mnt/disks/ssd1
ファイルシステムのサイズ拡張

xfs_growfsコマンドを実行し、ファイルシステムのサイズを拡張

[root@hoge graphite]# xfs_growfs /dev/sda1
meta-data=/dev/sda1              isize=512    agcount=4, agsize=655296 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2621184, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 2621184 to 26213807
ディスクの空き容量確認

無事に100GBになった。

[root@hoge graphite]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       100G  9.3G   91G  10% /
devtmpfs        3.6G     0  3.6G   0% /dev
tmpfs           3.6G     0  3.6G   0% /dev/shm
tmpfs           3.6G  378M  3.3G  11% /run
tmpfs           3.6G     0  3.6G   0% /sys/fs/cgroup
/dev/sdb        2.0T  686G  1.3T  35% /mnt/disks/ssd1
tmpfs           732M     0  732M   0% /run/user/1003
tmpfs           732M     0  732M   0% /run/user/0
最後に

サーバをシャットダウンする必要なく、そのままディスクサイズを変更する事ができました。
growpartコマンドを実行する際、記述誤りで躓いて30分くらい調査につかってしまったのでしっかり公式ドキュメントは読んでおきたいと思いました。