0
0

More than 1 year has passed since last update.

AWS EC2 にボリュームを追加する・ボリュームを変更する

Posted at

背景

ファイルコピーなどで No space left on device というメッセージが表示された場合、インスタンスにアタッチされている EBS ボリュームが使用容量いっぱいなので追加する必要があります。

$ cp file1 file2
cp: cannot create regular file ‘file2’: No space left on device

ファイルシステムの使用状況を確認してみます。ルートファイルシステムの使用率が 100 % になっています。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        462M     0  462M   0% /dev
tmpfs           471M     0  471M   0% /dev/shm
tmpfs           471M   13M  458M   3% /run
tmpfs           471M     0  471M   0% /sys/fs/cgroup
/dev/nvme0n1p1  8.0G  8.0G   16K 100% /
tmpfs            95M     0   95M   0% /run/user/1000

書いたこと

ファイルシステムを追加する手順について書きました。ただし容量がいっぱいだったので、ファイルシステムのマウントポイントを作成できませんでした。ですので、既存のボリュームの容量を拡張する手順についても書きました。

追加ボリュームの作成

「ボリュームの作成」をクリックします。

1.png

以下でボリュームタイプ、サイズ、AZ などを選択します。ボリュームを追加するインスタンスと同じ AZ でボリュームを作成する必要があります。

2.png

「ボリュームの作成」をクリックします。

3.png

作成後、ボリュームをアタッチします。ボリュームの状態が「使用可能」になっていることを確認した後、「アクション」→ 「ボリュームのアタッチ」の順にクリックします。

4.png

追加するインスタンスの ID を選択します。デバイス名はデフォルトのまま進めます。

5.png

マウント(失敗)

ボリュームを作成し、アタッチした段階ではまだファイルシステムとして使用できないので、マウント手順を記載します。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        462M     0  462M   0% /dev
tmpfs           471M     0  471M   0% /dev/shm
tmpfs           471M   13M  458M   3% /run
tmpfs           471M     0  471M   0% /sys/fs/cgroup
/dev/nvme0n1p1  8.0G  8.0G   16K 100% /
tmpfs            95M     0   95M   0% /run/user/1000

アタッチ後、利用できるブロックデバイスに先ほど作成したボリュームが追加されます。MOUNTPOINT 列にパスがなく、まだマウントされていません。

$ lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0    8G  0 disk
├─nvme0n1p1   259:1    0    8G  0 part /
└─nvme0n1p128 259:2    0    1M  0 part
nvme1n1       259:3    0  100G  0 disk

file -s コマンドを使用して、ファイルシステムタイプなど、特定のデバイスに関する情報を取得します。次の出力例のように、単にデータが出力される場合は、デバイス上にファイルシステムはありません。

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

ファイルシステムを作成します。

$ sudo mkfs -t xfs /dev/nvme1n1

マウントポイントを作成します。

$ sudo mkdir /data

ここで以下のエラーが発生しました。

$ sudo mkdir /data
mkdir: cannot create directory ‘/data’: No space left on device

追加のファイルシステムは用意できたのですが、それをマウントするためのマウントポイントを作成するための容量がありませんでした。

ボリュームの容量を変更する

ここではボリュームの変更について書きます。「アクション」→ 「ボリュームの変更」をクリックします。

6.png

8GiB から 10GiB に変更します。(増加の変更のみ可能です)

7.png

この後、使用可能になるまで待ちます。

使用可能になった後、lsblk コマンドで容量が増加されたことを確認します。

$ lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0   10G  0 disk
├─nvme0n1p1   259:1    0   10G  0 part /
└─nvme0n1p128 259:2    0    1M  0 part
nvme1n1       259:3    0  100G  0 disk

このときファイルシステムの容量はまだ拡張されていません。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        462M     0  462M   0% /dev
tmpfs           471M     0  471M   0% /dev/shm
tmpfs           471M   13M  458M   3% /run
tmpfs           471M     0  471M   0% /sys/fs/cgroup
/dev/nvme0n1p1  8.0G  8.0G   16K 100% /
tmpfs            95M     0   95M   0% /run/user/1000
tmpfs            95M     0   95M   0% /run/user/0
tmpfs            10M     0   10M   0% /tmp

ファイルシステムの容量を拡張します。

$ sudo xfs_growfs -d /

拡張されたか確認します。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        462M     0  462M   0% /dev
tmpfs           471M     0  471M   0% /dev/shm
tmpfs           471M  596K  470M   1% /run
tmpfs           471M     0  471M   0% /sys/fs/cgroup
/dev/nvme0n1p1   10G  8.1G  2.0G  81% /
tmpfs            95M     0   95M   0% /run/user/1000
tmpfs            95M     0   95M   0% /run/user/0
tmpfs            10M     0   10M   0% /tmp

マウント(成功)

マウントポイントを作成し、マウントします。容量が拡張できたので、マウントポイントを作成することができ、マウントができました。

$ sudo mkdir /data
$ sudo mount /dev/nvme1n1 /data

ファイルシステムが追加されたか確認します。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        462M     0  462M   0% /dev
tmpfs           471M     0  471M   0% /dev/shm
tmpfs           471M  628K  470M   1% /run
tmpfs           471M     0  471M   0% /sys/fs/cgroup
/dev/nvme0n1p1   10G  8.1G  2.0G  81% /
tmpfs            95M     0   95M   0% /run/user/1000
tmpfs            95M     0   95M   0% /run/user/0
tmpfs            10M     0   10M   0% /tmp
/dev/nvme1n1    100G  135M  100G   1% /data
$ lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0   10G  0 disk
├─nvme0n1p1   259:1    0   10G  0 part /
└─nvme0n1p128 259:2    0    1M  0 part
nvme1n1       259:3    0  100G  0 disk /data

参考記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0