Last Updated on 2021年7月4日 by かんりにん
hvmタイプのAMIを使用する際に初期設定として、ファイルシステムの容量拡張が必要になる。
インスタンス作成時にEBSを標準サイズから拡張してセットしても
マウントされたストレージサイズが上がるだけでOSから認識されたファイルシステムの容量は変更されない。
この部分はcloud-utils-growpartに含まれるgrowpartコマンドを用いて、手作業でファイルシステムの容量を増やす必要がある。
今回試したAMIとEBSは以下の通り。
AMI/OS:とCentOS6.5(Rightimage)。 インスタンスタイプ:t2.small EBS:gp2 20GB(デフォルトの10GBから拡張)
1.作業前のストレージ領域の確認
fdiskの結果では、EBSで指定したサイズが割り当てられている。
# fdisk -l Disk /dev/xvda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/xvda1 * 2 1305 10474380 83 Linux
一方で、partedだと…
# parted -l Model: Xen Virtual Block Device (xvd) Disk /dev/xvda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 8225kB 10.7GB 10.7GB primary ext3 boot
dfでも…
# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 9.9G 1.9G 7.6G 20% / none 1003M 0 1003M 0% /dev/shm
こんな感じ。サイズは10GBで指定されたまま。
またgrowpartコマンドを使わずにresize2fsを使っても
ネイティブにインストールしたOSと異なり、以下のようなメッセージが出て終了してしまう。
# resize2fs /dev/xvda1 resize2fs 1.41.12 (17-May-2010) The filesystem is already 2618595 blocks long. Nothing to do!
“Nothing to do!”とか言われちゃって、えらく突き放された気分に(泣
これをきちんとEBSで割り当てたサイズを認識するように修正する。
2.yumパッケージのインストール(cloud-utils、cloud-utils-growpartほか)
仮想化タイプ”HVM”はresize2fsではサイズの変更ができないため
cloud-utilsとcloud-utils-growpartを利用してresize2fsを適用する。
# yum install epel-release # yum install parted cloud-utils cloud-utils-growpart
※環境によっては多数のパッケージの同時インストールが必要。
3.インストール後、デバイスを指定してgrowpartコマンドを実行
– 実行例
# growpart /dev/xvda 1 CHANGED: partition=1 start=2000 old: size=20969520 end=20971520 new: size=41927650,end=41929650
4.ストレージ領域が拡張されていることを確認
partdedコマンドで確認。
# parted -l Model: Xen Virtual Block Device (xvd) Disk /dev/xvda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1024kB 21.5GB 21.5GB primary ext3 boot
サイズが拡張されている。ただし、dfでは認識されているサイズは変わらず。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 9.9G 1.9G 7.6G 20% / none 1003M 0 1003M 0% /dev/shm
growpartの実行結果はOS再起動後に反映される。
再起動後にあらためてresize2fsを実行し、ファイルシステムの拡張を完了させる。
5.再起動後にresize2fsを実行
# resize2fs /dev/xvda1 resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/xvda1 is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 2 Performing an on-line resize of /dev/xvda1 to 5240956 (4k) blocks. The filesystem on /dev/xvda1 is now 5240956 blocks long.
# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 20G 1.2G 18G 7% / none 1003M 0 1003M 0% /dev/shm
以上で作業は終了。EBSで指定したサイズをOS上で使用できる。
ちなみにEBSはgp2(SSD)でもmagnetic(standard、HDD)でもgrowpartで拡張してあげる必要あり。
ていうか、EBSの容量を拡張した時点で、この処理を初期化に含めてくれればいいのだけど…