EC2でのボリューム追加


AWSのEC2とかで、ボリュームを追加してもそのまま使えません。
ボリュームをマウントした上で、ドキュメント領域を移動する必要があります。

参考:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-using-volumes.html

現状の確認

1. diskの確認

lsblkコマンドで確認します

$ lsblk

NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk
`-xvda1 202:1    0   8G  0 part /
xvdb    202:16   0   8G  0 disk

AWSのコンソールでも見えているように、8GiBのディスクが2つ認識されています

2. ディスクの利用状況の確認

dfコマンドで確認します

$ df

Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs          482556       0    482556   0% /dev
tmpfs             506492       0    506492   0% /dev/shm
tmpfs             506492   25804    480688   6% /run
tmpfs             506492       0    506492   0% /sys/fs/cgroup
/dev/xvda1       8377344 2516396   5860948  31% /
tmpfs             101300       0    101300   0% /run/user/1001

FileSystemには xvda1しか割り当てられていないのが分かります

で、xvdbをマウントするとOSから利用可能になるのですが、ファイル容量が必要なログディレクトリとか/var/www/htmlとかは /配下にあるので、そのディレクトリをマウントする必要があります。

とはいえ、新しく増やした領域を /var/www/htmlにマウントすると全て見えなくなってしまうので、
別のディレクトリにマウントした上で、ファイルを退避してディレクトリを書き替える必要が出てきます

ファイルシステムがあるかどうかを確認します

$ sudo file -s /dev/xvdb
/dev/xvdb: data

3. ファイルシステムを作成する

未加工のブロックデバイスなので、ボリュームにファイルシステムを作成します

$ sudo mkfs -t xfs /dev/xvdb
meta-data=/dev/xvdb              isize=512    agcount=4, agsize=524288 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2097152, 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

再度ファイルシステムを確認します

# sudo file -s /dev/xvdb
/dev/xvdb: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)

4. ディレクトを作成してマウント

移動したいファイルを一旦退避してコピーする

$sudo mv /var/www /var/www2
$ sudo mkdir /var/www
$ sudo mount /dev/xvdb /var/www

※ 心配があるならば、自動マウントの設定、確認をしてから移動をした方がいいかも・・

退避したディレクト以下のディレクトリを移動します

$ sudo mv /var/www2/cgi-bin /var/www/cgi-bin
$ sudo mv /var/www2/html /var/www/html

ディレクトリが移動されていることを確認

$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs          482556       0    482556   0% /dev
tmpfs             506492       0    506492   0% /dev/shm
tmpfs             506492   25812    480680   6% /run
tmpfs             506492       0    506492   0% /sys/fs/cgroup
/dev/xvda1       8377344 2273452   6103892  28% /
tmpfs             101300       0    101300   0% /run/user/1001
/dev/xvdb        8378368  277444   8100924   4% /var/www

5. 自動マウントの設定

まずは、デバイスのUUIDをblkidで確認します

$ sudo blkid
/dev/xvda1: UUID="388a99ed-9486-4a46-aeb6-06eaf6c47675" TYPE="xfs"
/dev/xvdb: UUID="719d9ce5-984d-4dd8-89e8-ca9fb0934508" TYPE="xfs"

fstabファイルをバックアップを取った上で編集します

$ sudo cp /etc/fstab /etc/fstab.orig
$ sudo vi /etc/fstab

UUID=388a99ed-9486-4a46-aeb6-06eaf6c47675 /                       xfs     defaults        0 0
UUID=719d9ce5-984d-4dd8-89e8-ca9fb0934508 /var/www                xfs     defaults        0 2

fstabが動作することの確認
ディスクを取り外して(unmount : コマンドはumountだけど)、設定ファイル通りにマウントを試す

$ sudo umount /var/www
$ sudo mount -a

エラーが出なければ問題なし!
ここで何かあったら、こちらを確認して下さい
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-using-volumes.html

6. 最後にインスタンスを再起動して動作確認!

再起動してwebサイトにアクセスしたらつながらなくて焦ったのですが、httpdが起動していなかっただけでした。 systemct enable httpd をしてなかった💦