作成したEBSボリュームをEC2インスタンスにアタッチして使用するまでの手順です。
EBSボリュームのアタッチ
EC2コンソールの「ELASTIC BLOCK STORE -> ボリューム -> ボリュームの作成」を選択します。ボリュームタイプ、サイズ、IOPS、AZ、暗号化を選択します。スナップショットIDはスナップショットからEBSを復元する場合に必要です。新規作成する場合は無視してください。
作成したボリュームを選択して「アクション -> ボリュームのアタッチ」を選択します。
ダイアログボックスのインスタンスにボリュームをアタッチするインスタンスをリストから選択します。デバイスは割り当てるインスタンスに既にアタッチされてるボリュームを含めて自動で連番が入力されます。
Amazon EBS ボリュームの作成 - Amazon Elastic Compute Cloud
インスタンスへの Amazon EBS ボリュームのアタッチ - Amazon Elastic Compute Cloud
EBSボリュームを使用できるようにする
ボリュームがアタッチされると新たにブロックデバイスとして表示されますが、ここからボリュームを使用できるようにする必要があります。
lsblk コマンドを使用した結果の NAME は/dev/
が削除されて表示されます。アタッチ時のデバイスは/dev/sdf
でしたが、注意書きにもあったように/dev/xvdf
に変更されています。また、アタッチされただけなので MOUNTPOINT はありません。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 16G 0 disk └─xvda1 202:1 0 16G 0 part / xvdf 202:80 0 8G 0 disk
ボリュームにファイルシステムを作成する必要があるか確認します。file コマンドの出力がdata
だけであればファイルシステムを作成する必要があります
$ sudo file -s /dev/xvdf
/dev/xvdf: data
mkfs コマンドを使用してボリュームにファイルシステムを作成します。スナップショットから復元した場合はこの手順は無視してください。
$ sudo mkfs -t ext4 /dev/xvdf mke2fs 1.42.9 (4-Feb-2014) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 524288 inodes, 2097152 blocks 104857 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2147483648 64 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
もう一度file
コマンドでボリュームを確認するとファイルシステムが作成されたことが分かります。
$ sudo file -s /dev/xvdf /dev/xvdf: Linux rev 1.0 ext4 filesystem data, UUID=23c823a6-b50f-4730-90f7-59960f6ab4af (extents) (large files) (huge files)
ボリュームのマウントポイントディレクトリを作成します。マウントポイントにボリュームをマウントすると、ファイルシステムツリー内でボリュームが配置され、ファイルの読み書きが実行される場所になります。
$ sudo mkdir /data
$ sudo mount /dev/xvdf /data
ボリュームがマウントされました。/data
以下にファイルを書き込むと/dev/xvdf
のボリュームに書き込まれます。
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 16G 0 disk └─xvda1 202:1 0 16G 0 part / xvdf 202:80 0 8G 0 disk /data $ df -h Filesystem Size Used Avail Use% Mounted on udev 492M 8.0K 492M 1% /dev tmpfs 100M 348K 99M 1% /run /dev/xvda1 7.8G 1.1G 6.4G 14% / none 4.0K 0 4.0K 0% /sys/fs/cgroup none 5.0M 0 5.0M 0% /run/lock none 497M 0 497M 0% /run/shm none 100M 0 100M 0% /run/user /dev/xvdf 7.8G 18M 7.4G 1% /data
このままだとシステムを再起動した時にボリュームがマウントされないため、起動時に自動でEBSボリュームをマウントする設定を追加しておきます。以下は変数するファイルのバックアップを取ってます。
$ sudo cp /etc/fstab /etc/fstab.orig
次のいずれかのコマンドでデバイスのUUIDを確認してください。今回マウントしたいのは/dev/xvdf
です。ルートデバイスの/dev/xvda1
も一応確認してみましょう。
$ sudo file -s /dev/xvda1 /dev/xvda1: Linux rev 1.0 ext4 filesystem data, UUID=ae1c2bfa-a1a7-4a30-b680-8f8b35cfc324, volume name "cloudimg-rootfs" (needs journal recovery) (extents) (large files) (huge files) $ sudo file -s /dev/xvdf /dev/xvdf: Linux rev 1.0 ext4 filesystem data, UUID=23c823a6-b50f-4730-90f7-59960f6ab4af (extents) (large files) (huge files) $ ls -al /dev/disk/by-uuid/ total 0 drwxr-xr-x 2 root root 80 Apr 26 03:40 . drwxr-xr-x 4 root root 80 Apr 26 03:40 .. lrwxrwxrwx 1 root root 10 Apr 26 03:40 23c823a6-b50f-4730-90f7-59960f6ab4af -> ../../xvdf lrwxrwxrwx 1 root root 11 Apr 26 03:40 ae1c2bfa-a1a7-4a30-b680-8f8b35cfc324 -> ../../xvda1
UUIDが確認できたら/etc/fstab
を編集して追記します。元々あるLABEL=cloudimg-rootfs
は/dev/xvda1
のルートボリュームです。
$ sudo vi /etc/fstab UUID=23c823a6-b50f-4730-90f7-59960f6ab4af /data ext4 defaults,nofail 0 2
mount -a
コマンドを実行して正しく動作するか確認しましょう。全てのファイルがマウントされます。この時点で設定が誤ってるとエラーが出る可能性があります。
$ sudo mount -a $ df -h