AWS EC2へボリュームを追加する方法をご紹介します。
空の EBS ボリュームの作成
ボリューム作成画面に遷移します。
EC2 ダッシュボード > Elastic Block Store > ボリューム
ボリュームの作成ボタンをクリックします。
次の選択肢が表示されますので適切な選択をします。
・ボリュームタイプ
・サイズ
・アベイラビリティーゾーン
・このボリュームを暗号化する
・タグ
スナップショットの項目もありますが、今回は空にします。この項目は、スナップショットを元にしてボリュームを作成したい場合に選択します。
選択したらボリュームの作成ボタンをクリックします。
インスタンスにアタッチ
ボリュームをインスタンスにアタッチしていきます。
作成したボリュームを選択した状態で、アクション ボタンをクリックします。選択肢が表示されるので、ボリュームのアタッチ ボタンをクリックします。
ここでインスタンスを選択し、アタッチ ボタンをクリックします。
これでアタッチ完了です。
アタッチしたボリュームがどのような名称で存在しているか、CLIで確認します。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 500G 0 disk |-nvme0n1p1 259:1 0 1M 0 part `-nvme0n1p2 259:2 0 500G 0 part / nvme1n1 259:3 0 100G 0 disk
次のような場合、ルートデバイスは /dev/nvme0n1p2 です。今アタッチされたボリュームは /dev/nvme1n1 で、まだマウントされていません。
フォーマット
ボリュームにファイルシステムがあるか確認します。ファイルシステムがあればファイルシステムの情報が表示され、無ければ次のように表示されます。
$ sudo file -s /dev/nvme1n1 /dev/nvme1n1: data
ファイルシステムが無ければ、フォーマットしてファイルシステムを作成します。
$ sudo mkfs -t xfs /dev/nvme1n1
もう一度確認します。
$ sudo file -s /dev/nvme1n1 /dev/nvme1n1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
無事にフォーマットできました。
マウント
$ sudo mount /dev/nvme1n1 /data
永続化
再起動してもマウントされた状態を維持するようにします。
rootユーザーになります。
$ sudo su -
接続されているボリュームのUUIDを確認します。
# blkid
永続化の設定をします。
# vi /etc/fstab
例(UUIDは先ほど確認したものにします)
UUID=aebf131c-6957-451e-8d34-ec978d9581ae /data xfs defaults,nofail 0 2
設定が正しく出来ているか確認します。次のコマンドでエラーが出なければ正しく設定できています。
コマンドの内容は、アンマウントして全部マウントです。
$ sudo umount /data $ sudo mount -a
これで再起動しても接続を維持するようになりました。