harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

[AWS] EC2 HVMタイプを使う時のファイルシステム周りの作業1(容量拡張、growpart利用)

   


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の容量を拡張した時点で、この処理を初期化に含めてくれればいいのだけど…
 

Amazon Web Services クラウドデザインパターン設計ガイド 改訂版
玉川憲 片山暁雄 鈴木宏康 野上 忍 瀬戸島 敏宏 坂西 隆之
日経BP社
売り上げランキング: 75,785
Amazon Web Services クラウドデザインパターン実装ガイド 改訂版
大澤 文孝
日経BP社
売り上げランキング: 126,429

 

 - AWS, CentOS, cloud, GNU/Linux, メモ ,