🙆‍♀️

【備忘】AWS EC2に追加のEBSをアタッチしてマウントする

に公開

目的

普段意識しないこともある、EC2の容量拡張の方法とその理解を深める

環境

  • EC2
    • Alma Linix 10

状態の確認

以下からnvme0n1というデバイスが接続されており、それが3つのパーテーションに分割されていることがわかる。また、そのボリュームがEBSであることもわかる。

root# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0   10G  0 disk
├─nvme0n1p1 259:1    0    1M  0 part
├─nvme0n1p2 259:2    0  200M  0 part /boot/efi
├─nvme0n1p3 259:3    0    1G  0 part /boot
└─nvme0n1p4 259:4    0  8.8G  0 part /
root# parted
GNU Parted 3.6
Using /dev/nvme0n1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print all
Model: Amazon Elastic Block Store (nvme)
Disk /dev/nvme0n1: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name                  Flags
 1      1049kB  2097kB  1049kB               biosboot              bios_grub
 2      2097kB  212MB   210MB   fat16        EFI System Partition  boot, esp
 3      212MB   1286MB  1074MB  xfs          boot
 4      1286MB  10.7GB  9452MB  xfs          root

手順

EBSを作成し、、アタッチ

適当に作成する。

そのEBSを対象にEC2にアタッチする。

アタッチ確認

nvme1n1が追加され、それにパーテーションがないことがわかる。

root:~# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0   10G  0 disk
├─nvme0n1p1 259:1    0    1M  0 part
├─nvme0n1p2 259:2    0  200M  0 part /boot/efi
├─nvme0n1p3 259:3    0    1G  0 part /boot
└─nvme0n1p4 259:4    0  8.8G  0 part /
nvme1n1     259:5    0   20G  0 disk
root:~# parted
GNU Parted 3.6
Using /dev/nvme0n1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print all
Model: Amazon Elastic Block Store (nvme)
Disk /dev/nvme0n1: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name                  Flags
 1      1049kB  2097kB  1049kB               biosboot              bios_grub
 2      2097kB  212MB   210MB   fat16        EFI System Partition  boot, esp
 3      212MB   1286MB  1074MB  xfs          boot
 4      1286MB  10.7GB  9452MB  xfs          root


Error: /dev/nvme1n1: unrecognised disk label
Model: Amazon Elastic Block Store (nvme)
Disk /dev/nvme1n1: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

(parted)

マウント先の作成とPartedでパーテーション作成

後続で用いるディレクトリを作成しておく。

root:~# cd /
root:/# ls
afs  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  tstbin  usr  var
root:/# mkdir work

今作ったディレクトリに対してEBSを割り当てる。
順番としてはバーテーションテーブルの作成からパーテーション作成、EFS作成、新規作成したディレクトリにマウントする順。

partedで実行する場合は以下

(parted) mklabel gpt
(parted) mkpart primary ext4 1MiB 5120MiB
(parted) print
Model: Amazon Elastic Block Store (nvme)
Disk /dev/nvme1n1: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  5369MB  5368MB  ext4         primary

同様にmkpart primary ext4 5121MiB 10240MiBなどで2つめのパーテーションを作成して次の状態にする。

root:/# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
nvme0n1     259:0    0   10G  0 disk
├─nvme0n1p1 259:1    0    1M  0 part
├─nvme0n1p2 259:2    0  200M  0 part /boot/efi
├─nvme0n1p3 259:3    0    1G  0 part /boot
└─nvme0n1p4 259:4    0  8.8G  0 part /
nvme1n1     259:5    0   20G  0 disk
├─nvme1n1p1 259:6    0    5G  0 part
└─nvme1n1p2 259:7    0    5G  0 part

これらは次のように管理される

root:/# ls /dev/nvme1n1*
/dev/nvme1n1  /dev/nvme1n1p1  /dev/nvme1n1p2

作成した/dev/nvme1n1p1を/workに紐付ける

次の用にファイルシステムを指定し、マウントすれば良い。

root:/# mkfs -t ext4 /dev/nvme1n1p1
mke2fs 1.47.1 (20-May-2024)
Creating filesystem with 1310464 4k blocks and 327680 inodes
Filesystem UUID: 68c6afbd-71d3-4448-82b2-09826ec5b841
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

root:/# mount /dev/nvme1n1p1 /work
root:/# df -hT | grep /dev/nvme1n1p1
/dev/nvme1n1p1 ext4      4.9G   24K  4.6G   1% /work

もしmkfsなどでファイルシステムを設定しない場合

root:/# mount /dev/nvme1n1p1 /work
mount: /work: wrong fs type, bad option, bad superblock on /dev/nvme1n1p1, missing codepage or helper program, or other error.
       dmesg(1) may have more information after failed mount system call.

と言うようなエラーがでる。

今回はmountコマンドでのマウントのため再起動時に設定が削除される。
永続的なマウントとする場合は/etc/fstabファイルにて記載すること。その場合はUUIDを指定してマウントする事を推奨する。

おまけ: 作成した/dev/nvme1n1p2をswap領域にする

root:/# swapon /dev/nvme1n1p2
root:/# swapon -s
Filename                                Type            Size            Used            Priority
/dev/nvme1n1p2                          partition       5241852         0               -2
root:/# swapon /dev/nvme1n1p2
root:/# swapon -s
Filename                                Type            Size            Used            Priority
/dev/nvme1n1p2                          partition       5241852         0               -2

Discussion