CentOS on Amazon EC2 でディスクサイズ変更しても変わらないときの対処方法

アイキャッチ AWS EC2
108件のシェア(ちょっぴり話題の記事)

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、梶です。

AWS MarketplaceのCentOS 6 (x86_64) - with Updates HVMから、Tokyoリージョンで新規インスタンスをlaunchする際に、ディスクサイズを20GBで指定しましたが、OS側の認識がデフォルトの8GBのままなので対応方法を公開いたします。小ネタです。

パーテーションサイズが変更されていないのはわかったのですが、別インスタンスにVolumeをAttachしてパーテーションサイズを修正しようとしてもダメだったりして、かなりハマりましたので誰かのお役に立てたら光栄です。

以下のブログの構築した際、ディスクサイズ変更で問題が発生し調査することになりました。
AWSでのBacklogエンタープライズサーバの構築

事象

launch後のdfコマンドでは以下の結果となります。
(20GBで指定しても、8GBのまま)

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  836M  6.6G  12% /
tmpfs           498M     0  498M   0% /dev/shm

fdiskでは20GBを認識済み。

# fdisk -l
ディスク /dev/xvda: 21.5 GB, 21474836480 バイト
ヘッド 255, セクタ 63, シリンダ 2610
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x00098461

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/xvda1   *           1        1045     8387584   83  Linux
#
# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  20G  0 disk
└─xvda1 202:1    0   8G  0 part /

対処方法

EPEL より dracut-modules-growroot をインストールする

起動時にルートパーテーションテーブルをリサイズするdracut-modules-growrootをインストールします。

# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -i epel-release-6-8.noarch.rpm
# yum -y --quiet install dracut-modules-growroot

インストール完了後、下記コマンドで dracut-modules-growroot が正常にインストールされたことを確認する

# rpm -qa | grep grow
cloud-utils-growpart-0.27-10.el6.x86_64
dracut-modules-growroot-0.20-2.el6.noarch

ルートパーテーションテーブルをリサイズするよう実行

# dracut --force --add growroot /boot/initramfs-$(uname -r).img
#

再起動

# shutdown -r now

再起動後の確認
ここではまだ変更されてない。

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  982M  6.4G  14% /
tmpfs           498M     0  498M   0% /dev/shm
#
# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  20G  0 disk
└─xvda1 202:1    0  20G  0 part /

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 5240950 (4k) blocks.
The filesystem on /dev/xvda1 is now 5240950 blocks long.
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  986M   18G   6% /
tmpfs           498M     0  498M   0% /dev/shm
#

感想

Amazon Linuxや、RHELにはdracut-modules-growrootが最初からインストールされているため、このような問題は発生しないようです。
CentOSで構築する際には、後でディスクサイズ変更しても良いようにdracut-modules-growrootをインストールしておいたほうが良いと思いました。

  • よしと

    パーテーションを設定し直したりほぼ一日費やしましたが、
    この記事のおかげで解決することができました。
    ありがとうございました( ´・ヮ・`)b

    • Kaji Hiroyuki

      問題が解決したようで、良かったです!

      今後ともよろしくお願いします。