心のF/WのinboundがAnyでAllowでばっちこいでお馴染みのpino子です。
でもアウトバウンドは完全に閉めきっていますので
対人関係にだいぶ、さしさわりがあります。
さしさわりがあると言えば、
EC2のルートデバイスボリュームの拡張なのですが
なんなんですかね、何の罰ゲームなんですかね、どの前世の罪なのでしょうかね、
そう簡単には拡張させてくれないわけですよ、
AMIによってかなり差異があって、
「みんなちがって、みんないい」
なんて口が裂けても言えない
開いた口と地獄の釜の蓋がフルオープンで塞がらない
もう、こころの叫び駄々漏れで検証をお送りしておりました。
1.ルートデバイスボリューム拡張の流れ
以下のながれで検証したのです。
- インスタンスオフライン
- SnapShotを取る
- SnapShotからCreateVolumeする(ここで任意のサイズを指定)
- オリジナルのルートデバイスボリュームをデタッチ
- 3のボリュームをアタッチ
- 事後作業(パーティションの拡張、ファイルシステムの拡張)
今回、記載する内容は主に6の部分になります。
そうです、だいたい問題が発生し、困らせてくれそうなパートです。
2.愉快な仲間(AMI)たち
そして、彼らと戦います。
- 心の友AmazonLinux
- 反抗期 RHEL6(HVM)
- 移動式地獄 CentOS6(HVM)
- 通りすがりのWindowsさん(2008,2012)たち
3.Windowsのルートデバイスボリューム拡張
まずはWindowsさんたちをDISKPARTで静かにさせます。
WindowsServer2012についてはあまり触ったことがなかったのですが
DISKPARTさえ与えておけば、やはり静かになりました。
4.AmazonLinuxのルートデバイスボリューム拡張
- パーティション:GPT
- ファイルシステム:ext4
マイベストフレンドのAmazonLinuxさんは
cloud-initの恩恵から
拡張したEBSをぶら下げて起動すると
素知らぬ顔で起動してきて、よく見ると静かに拡張が完了しています。
つまりOS側でNothingToDo!すばらしい!
EBSのアタッチの時にデバイス名だけ間違えないように注意が必要ですが
完全に自動化されています。美しい。
5.RHEL6(HVM)のルートデバイスボリューム拡張
- パーティション:GPT
- ファイルシステム:ext4
RHELさんは、初対面からかましてくれました。
デフォルトEBSボリュームに10GB割り当てられているのに
パーティションとしては6GBしか見えません。
私はAMIから普通にLaunchしただけなのですが、
RHELさん、相当体調が悪いようです。
「半ドンにして上がってよ」と声をかけましたが
「がんばります」との回答だったので
検証を続行することにしました。
こちらはAmazonLinuxさんと同様、cloud-initがデフォルトで入っていますが
うまく自動拡張が動作しないため、パーティション拡張用に
gdiskを導入しました。
またMarketPlaceのAMIのため、ルートパーティションを
他のインスタンスに非ルートデバイスとしてアタッチして
拡張という手段が制限されています。※解除可能なようですが。
ですので、以下、マウントした状態での拡張手順になります。
- gdiskのインストール
- gdiskによるパーティションの拡張
- 再起動
- resize2fsによるファイルシステムの拡張
さらっと書きましたが、fdiskで拡張しようとしたり
cloud-initがdefaultで入っており、growpartやresizefsが
cloud.cfgに定義済みなことがノイズになったりで
かなり迷子になりました。
※cloud.cfgのデフォルトではresizefsのみでした。訂正致します。
ちなみにgdiskインストール+growpart定義をresizefsの前に入れることで
再起動による自動拡張が可能でした。※再起動が2度必要ですが。
6.CentOS6(HVM)のルートデバイスボリューム拡張
- パーティション:MBR
- ファイルシステム:ext4
CentOS6(HVM)さんは諸事情からかなり触っており
暗雲が「垂れ込めるだけ垂れ込んどきます」
状態からのスタートになりました。
RHEL6さんのようにcloud-initは入っていないため
rootでお邪魔します。
※ちなみにこちらもMarketPlaceのAMIのため制限があります。
で、普通にfdiskでパーティション拡張しようとします。
できません。
もう一度普通にfdiskで拡張しようとしますが
はい、できません。はい無理。解散。
なので、手順としては以下でやってみてやりましたよ。
- growpartのインストール
- growpartの実行(引数の渡し方が独特)
- reboot
- resize2fsの実行
これも結果だけ書いたら、なんということはないのですが
かなり迷子になりました。
だいたい、そういうもんですね。
がんばります。