TOP > 記事一覧 > Google Cloud Persistent Disksのオンラインリサイジングを試してみました。

Google Cloud Persistent Disksのオンラインリサイジングを試してみました。

Google Compute Engineにて、
オンラインのリサイジングに対応したということで、試してみました。
http://googlecloudplatform-japan.blogspot.jp/2016/04/google-cloud-persistent-disks.html

オンラインのリサイジングの仕方

まず、Google Consoleにログインし、
対象のインスタンスのディスク容量を変更します。

Automatic Resizingに対応したOSであれば、これで完了です。
今までSnapshotをとり、そこからインスタンスを作成し、パーティションを再作成するといった
非常に面倒な作業であったため、これでかなり楽になりますね。

対応OSは下記URLを参照してください
https://cloud.google.com/compute/docs/disks/create-root-persistent-disks?authuser=1#resizingrootpd


残念ながら、私の場合 対応OSではなかったため、
この後 パーティションの再作成をします。

パーティションの再作成

◆Snapshotの作成

Snapshot万が一のために作成しておきます。必須ではありません。

◆パーティションの再作成処理

SSHにてログイン後、

状況確認

$ df -h

ファイルシス   1K-ブロック     使用    使用可 使用% マウント位置
/dev/sda1        209703936 41483904 168220032   20% /
devtmpfs           7693804        0   7693804    0% /dev
tmpfs              7700584        0   7700584    0% /dev/shm
tmpfs              7700584     8452   7692132    1% /run
tmpfs              7700584        0   7700584    0% /sys/fs/cgroup
tmpfs              1540120        0   1540120    0% /run/user/1001

fdisk実行

$ sudo fdisk /dev/sda
Command (m for help): c
DOS Compatibility flag is not set

Command (m for help): u
Changing display/entry units to sectors
Command (m for help): p

Disk /dev/sda: 53.7 GB, 53687091200 bytes
4 heads, 32 sectors/track, 819200 cylinders, total 104857600 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 identifier: 0x000d975a

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048    20971519    10484736   83  Linux

Startの値(ここでいう 2048)を控えておいてください。後で使います。

パーティション削除

Command (m for help): d
Selected partition 1

パーティション作成
ここのFirst cylinderで 控えておいた Startの値を入力します(ここでいう2048)

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 cylinder (2048-104857599, default 2048): 2048
Last cylinder, +sectors or +size{K,M,G} (2048-104857599, default 104857599):
Using default value 104857599

確認

Command (m for help): p
Disk /dev/sda: 53.7 GB, 53687091200 bytes
...

Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   104857599    52427776   83  Linux

反映

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

再起動後、1-2分待ち、SSHでログイン後、 リサイズ処理をします。

※ちなみに、パーティション作成に失敗すると、インスタンスが起動せず、
SSH接続ができなくなり、インスタンスを作り直す必要が出てきます。
その場合はSnapshotから再度インスタンスを作ります。

◆リサイズ処理

diskのファイルシステムによって コマンドが違います

ext4の場合

$ resize2fs: /dev/sda1

xfsの場合

$ xfs_growfs /dev/sda1

これで完了となります