Amazon EBSのアップデートで 「エラスティックボリューム」の発表 でずっと試してみたいなと思っていたのをテストしてみたので記事にします。
Qiitaを見ると既に一杯記事が上がっています。
1.まずボリュームサイズの変更
EBSボリュームのサイズ変更をやってみる - Qiita
-->この記事ではボリュームサイズの変更のみ
2.ルートデバイス以外の場合
Amazon LinuxにアタッチされているEBSのボリュームサイズを拡張する。 - Qiita
-->スクリーンショット付きで分かりやすいです。初心者向け
3.ルートデバイスのEBSでは一手間必要です
オンラインでEC2のルートディスクを拡張する - Qiita
-->そのまま、resize2fs ではダメなようです
sudo growpart /dev/xvda 1を追加作業しています
4.結論だけとっととみたい人向け
[rootにmountされているEBSを、mountしたまま拡張する手順 - Qiita]
(http://qiita.com/shigejun/items/6f93edec701fb0af112b)
-->いきなり、growpart /dev/xvda 1 してます
5.Ubuntuでも同様にリサイズ可能です
[AWS EBSのルートディスク拡張した際のサイズ拡張のやりかた - Qiita]
(http://qiita.com/haramishio/items/0e6b99be447a80bd81c9)
--->Ubuntu 14.04です
6.再起動すると適用されます
[EC2のボリューム(EBS)容量拡張方法検証 (AmazonLinux) - Qiita]
(http://qiita.com/hoshino/items/98aa8efd35cd6e8969bc)
--->実は再起動したときに自動的に拡張されるようです。
再起動可能で手間を省きたい人向け
7.最後は自動でリサイズされるスクリプトです
[AWS EBSのリサイズをシェルスクリプトにまとめてみた - Qiita]
(http://qiita.com/stoshiya/items/0d467f9d712efb0fa423)
-->費用を最小限に抑えられますね。
他にも記事がありましたが、ボリュームをデタッチしたりしていたので除外しました。
で、今さら感は非常にあるのですが、XFSでやってみた人がいないので書いてみます。
作業した OS は CentOS-7.3 Official Image です。
1. ボリュームを用意
今回は、ルートボリューム以外の場所をNFSデータ領域としてつかってみることにしたので、10GiBほどEBSを作ってみました。
アタッチが終了したので Diskの状況はこんな感じです
[root@ ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 200G 0 disk
└─xvda1 202:1 0 200G 0 part /
xvdg 202:96 0 10G 0 disk
xvdg
として接続されています。
2. XFSでフォーマットする
NFSのデータ領域として使うのでXFSを選択しました。
パーティションを作るとボリューム拡張した時にパーティションも拡張しないといけないので、パーティション無しでXFSをフォーマットします。
[root@ ~]# mkfs.xfs /dev/xvdg
meta-data=/dev/xvdg isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
3. マウントします
マウントしてみますが、とりあえずテスト用のディレクトリにマウントしてみます。
[root@ ~]# mkdir /test_mount
[root@ ~]# mount /dev/xvdg /test_mount/
[root@ test_mount]# df -h
Filesystem Size Used Avail Use% Mounted on
<<<中略>>>
/dev/xvdg 10G 33M 10G 1% /test_mount
大丈夫のようです
4. ボリュームを拡張する
ボリューム拡張の方法は記載しませんが、以下のように20GiBに拡張されました。
以下のように増えています。
[root@ ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
<<<中略>>>
xvdg 202:96 0 20G 0 disk /test_mount
5. ファイルシステムをリサイズする
この状態では、ファイルシステムは以下のままです。
[root@ test_mount]# df -h
Filesystem Size Used Avail Use% Mounted on
<<<中略>>>
/dev/xvdg 10G 33M 10G 1% /test_mount
xfs_growfs コマンドでXFSファイルシステムを拡張します
[root@ test_mount]# xfs_growfs /dev/xvdg
meta-data=/dev/xvdg isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2621440 to 5242880
6. 拡張されたか確認する
確認してみます。
[root@ test_mount]# df -h
Filesystem Size Used Avail Use% Mounted on
<<<中略>>>
/dev/xvdg 20G 33M 20G 1% /test_mount
増えてますね。
7. まとめ
パーティションを切らずにファイルシステムを作れば簡単にファイルシステムを拡張出来ることが分かりました。ますます、AWSが便利に使えそうです。
#この記事を書く前は、「パーティションを切らずにファイルシステムをフォーマットできる」と言うことを知らず、ボリューム全体を一つのパーティションにする方法ばかり調べていました。ボリュームをそのままファイルシステムでフォーマットすればいいということを知ったので書いてみました。