AWSのCentOS6.7のインスタンスでボリュームが8GBしか認識しない
AWSでCentOS6.7のコミュニティAMIを利用してHVMインスタンスを作成して、ディスクがなぜか8GBしか認識されなかったので、解決した話。
インスタンス起動後、EBSは50GBで割り当てたはずなのに、dfでみてみると認識されていない??
# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.8G 3.2G 4.3G 43% / tmpfs 3.9G 0 3.9G 0% /dev/shm
パーティションサイズが8GBでしか認識されていないので、resize2fsをつかっても8GBしか割り当てられない。
fdiskではディスクは50GB認識しているが、パーティションはブロックをみると8387584しか認識していない模様。
# fdisk -l ディスク /dev/xvda: 53.7 GB, 53687091200 バイト ヘッド 255, セクタ 63, シリンダ 6527 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
調べてみると、CentOS6のAMIはAmazon Linuxなどと異なりCloud-initなどがインストールされていないことが原因のよう。
そこで、実際にCloud-initをインストールする。Cloud-initはEPELのリポジトリからインストールできるので、EPELのリポジトリをインストールし、
/etc/yum.repos.d/epel.repo
のenabled=0に変更しておく。
# rpm -Uvh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
つぎに、Cloud-initなどをインストールする。
# yum -y --enablerepo=epel install cloud-init.noarch cloud-utils-growpart
インストール後、拡張前にパーティションを確認しておく。
# parted -l モデル: Xen Virtual Block Device (xvd) ディスク /dev/xvda: 53.7GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 8590MB 8589MB primary ext4 boot → 8GBしか認識していない。
Cloud-InitモジュールのgrowpartコマンドでEBSのサイズにあわせて、ボリュームを拡張できる。 早速実行。
# growpart /dev/xvda 1 /usr/bin/growpart: line 170: シリンダ数*255、63*: syntax error: operand expected (error token is "シリンダ数*255、63*")
うまくいかない、またまた調べてみるとロケールが悪さしているよう。
ロケールを変更して、
# export LANG="en_US.UTF-8" # locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=
再度実行。
# growpart /dev/xvda 1 CHANGED: partition=1 start=2048 old: size=16775168 end=16777216 new: size=104854207,end=104856255
忘れないうちにロケールを戻し、
export LANG="ja_JP.UTF-8"
パーティションが拡張されているか、確認してみる。
# parted -l モデル: Xen Virtual Block Device (xvd) ディスク /dev/xvda: 53.7GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 53.7GB 53.7GB primary ext4 boot → 50GB認識した。
パーティションは無事拡張されているので、ファイルシステムも確認。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.8G 3.2G 4.3G 43% / tmpfs 3.9G 0 3.9G 0% /dev/shm
ファイルシステムは拡張されていない。これで、再起動すれば認識するのだが、 その前にCloud-initの最低限の設定をしておかないと
- rootログイン不可
など困った状況になってしまうので、最低限Cloud-Init設定を行っておく。
# cp -p /etc/cloud/cloud.cfg /etc/cloud/cloud.cfg.org # diff /etc/cloud/cloud.cfg /etc/cloud/cloud.cfg.org 4c4 < disable_root: 0 → rootを許可する。 --- > disable_root: 1 13,14d12 < locale: ja_JP.UTF-8 ロケール < timezone: Asia/Tokyo タイムゾーン
上の設定が終わったら気持よく
# reboot
ファイルシステムをdfで確認。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 50G 3.2G 44G 7% / tmpfs 3.9G 0 3.9G 0% /dev/shm
無事にファイルシステムが50GBに拡張されている。
といわけで、色々罠にハマりましたが。 無事に割り当てたボリュームを認識させることができました。
それでは。 (・∀・)イイネ!!