ディスク容量の追加
ボリュームの追加
EC2インスタンスではインスタンス作成後にEBSボリュームを追加出来るようになっているので、データ領域が足りなくなった場合や、新しいデータ領域を使用することになった場合その場でボリュームを調達して、インスタンスに追加、みたいなことが簡単に出来る。
- メニュー: ボリューム
- 概要:
ボリュームの作成
ボタンを押してボリュームの新規作成を行う
この時、アベイラビリティゾーンを追加したいインスタンスと同じにすること。
ステータスがavailable
のものはインスタンスにアタッチされていないボリュームであることを意味する。
今新しく作成したボリュームはもちろんインスタンスにはアタッチされていないのでavailable
になっている。
- メニュー: ボリューム
- 概要: 今作成したボリュームを選択してアクション→ボリュームのアタッチ
インスタンスを入力するフォームをクリックすると同じアベイラビリティゾーンのインスタンスが表示されるので、アタッチしたいものを選択。
ステータスがin-use
に変われば、アタッチが出来たことになる。
マウント
アタッチ後、マウントを行う。対象のインスタンスにSSHしておく。
ls -l /dev/ | grep sdf
デバイスが存在することを確認。アタッチされているならここで引っかかるはず。
次にボリュームの初期化作業。
sudo yum install -y xfsprogs
今回はXFSでフォーマットする。このあたり全然わからんので別途調べよう...
sudo mkfs.xfs /dev/sdf
初期化したボリュームをマウント
sudo mkdir -p /mnt/ebs/0
sudo mount -t xfs /dev/sdf /mnt/ebs/0
df -h
dfコマンドの一覧に今回マウントしたディスクが表示されていればマウント処理もOK。
このままだとインスタンスの再起動時にマウントが外れてしまうため、fstab
で自動マウントの設定が必要。
/etc/fstabに、以下の設定を追加
/dev/sdf /mnt/ebs/0 xfs defaults 0 0
これでマウントの自動化が出来る。
割と簡単にボリュームの追加も出来ることがわかった。
けどこのマウントあたりもよしなにやってくれたりしないんかなぁ〜
ルートボリュームの容量の追加
- バックアップの項で説明したとおりにAMIを作成する
- 作成されたAMIを起動する
- EIPの付け替えやELBに接続するなどして新旧のインスタンスを入れ替える
これで完了。簡単!
ただし、起動しただけではデバイスサイズの変更が反映されない場合があるので、その場合は以下のようにして変更を反映させる。
df -h # 変更前を確認
sudo resize2fs /dev/xvdal
df -h # 変更後を確認
追加ボリュームの容量の追加
- バックアップの項で説明したとおりにボリュームのスナップショットを取る
- スナップショットからアクション→ボリュームの作成
サイズ
で拡張したいサイズ、アベイラビリティゾーン
でEC2インスタンスが配置されているアベイラビリティゾーンを選択、作成- もともとアタッチされていたボリュームをアクション→ボリュームのデタッチでインスタンスから切り離す
- 新規作成したボリュームを選択してアクション→ボリュームのアタッチを行う。
デバイス
の項にはもともとのボリュームのマッピング先と同じ場所を入力
この後、ルートボリューム時と同様に変更を反映させる。
ただし、フォーマットがXFSの場合、resize2fs
が失敗するらしいので、代わりにxfs_growfs
コマンドを利用する。
df -h # 変更前を確認
sudo resize2fs /dev/xvdf
sudo xfs_growfs /mnt/ebs/0
df -h # 変更後を確認