GCP VMインスタンスのディスクの追加

2020.2.12 (水)

ディスクの追加をしたあとにコマンドラインでマウントしないと使えません。
ゾーン永続ディスクの追加またはサイズ変更

コンソールまたはgcloudコマンドでディスクを追加した後に、該当VMインスタンスにログインしてrootユーザーにて以下のコマンドで、ディスクが正しく作られているか確認します。

# sudo 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  500G  0 disk ←これ

/devの中にもいるので確認しておくとよいです。

# ls -al /dev
...
brw-rw----. 1 root disk      8,   0 12月 23 12:55 sda
brw-rw----. 1 root disk      8,   1 12月 23 12:55 sda1
brw-rw----. 1 root disk      8,  16  2月 12 09:21 sdb ←これ
crw-rw----. 1 root disk     21,   0 12月 23 12:55 sg0
...

このディスクを使えるようにマウントします。
最初にディスクのフォーマットをします。推奨のext4でフォーマットしておくのがよいです。問題が無い限りパーテーションなしのつるっとした単一のストレージにしておくのがよいと思うので(たいていの場合はそれで事足りる)、以下のコマンドで追加ディスクをフォーマットします。

mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb

コマンドを実行すると、yes/noを聞かれるのでyesですすみます。

# mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y ←これ
...

フォーマットは容量が多いとそこそこ時間がかかるのでゆっくり待ちます。500GBで10分とか15分ぐらいかかる感覚。

# mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
mke2fs 1.41.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
32768000 inodes, 131092000 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2579614224
4000 block groups
32768 blocks per group, 32788 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294312, 819200, 884736, 1605632, 2654208,
    4096000, 7962624, 11239424, 20430000, 23887872, 71663616, 74675968,
    102400000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

Writingがdoneになって、プロンプトが戻ってきたら終わりです。
無事フォーマットが完了したら、次はマウントします。自分の好みの場所にマウントしてください。マウントするディレクトリを作成しておきます。

# mkdir -p /mnt/disks/foo
# chmod -R 777 /mnt

私の場合はtmp的に使いたかったのでパーミッション777も一緒に指定しておきました。
マウントします。

# mount -o discard,defaults /dev/sdb /mnt/disks/foo

これで/mnt/disks/fooがディスクとして使えるようになります。