자세한 명령과 내용은 생략하고 개념만 정리한다. 여기서 개념을 정리한 뒤 아마존 웹 서비스의 설명 문서를 참고하면 한결 쉽다.
내 경우 리눅스 EXT4 파일시스템(fs)이었으므로 그 부분에 대해 설명한다. 역시 아마존 웹 서비스의 설명 문서를 보면 다른 파일 시스템에 대한 이야기도 나와 있다.
일단 아마존 웹 서비스의 콘솔에서 EBS의 용량을 늘리면 그건 하드웨어적으로 즉시 반영된다. 말하자면 컴퓨터에서 용량이 큰 스토리지를 끼운 것으로 생각하면 된다. 기존의 스토리지에 있는 구조를 그대로 옮겨서 끼웠다고 생각하면 편하다. 하드카피 방식으로 옮겼다고 생각하면 더 쉽다.
그러면 스토리지는 늘어났지만 파티션 용량은 그대로다. 웹 서비스의 콘솔에서 스토리지 용량을 늘리는 것은 하드웨어를 조정하는 것이므로 파티션이 변경되지는 않는다. 한 스토리지에는 여러 파티션이 있을 수 있는데, 어떤 파티션에 늘어난 스토리지 용량을 반영해야 하는지 웹 콘솔은 알지 못한다. (사실 UI로 선택을 하게 해도 되겠지만 여하간 현재 AWS는 그렇게 해 두지 않았다.)
따라서 SSH로 접속을 해서 파티션을 조정해 줘야 한다.
리눅스(EXT4)의 경우 파티션을 조정하는 명령은 아래와 같다. 아래 두 명령을 차례대로 쳐 주면 된다.
# lsblk 명령으로 확인한 스토리지 장치명을 사용한다.
sudo growpart /dev/{스토리지-장치명} {파티션-번호}
# ex) sudo growpart /dev/nvme0n1 1
# df -Th 명령으로 확인한 볼륨 파티션명을 사용한다.
sudo resize2fs {볼륨-파티션명}
# ex) sudo resize2fs /dev/root
위와 같이 하면 스토리지의 남은 용량이 모두 지정한 파티션 볼륨에 가서 붙게 된다. growpart
명령어에서 사용한 스토리지 장치명과 resize2fs
명령어에서 사용한 볼륨 파티션명이 다르다는 것에 주의해야 한다.
재부팅도 필요 없이 즉시 반영된다.
스토리지 장치명, 파티션 번호, 볼륨 파티션명 찾는 방법
스토리지 장치명, 파티션 번호는 lsblk
명령으로 찾는다.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
nvme0n1 259:0 0 62G 0 disk
|-nvme0n1p1 259:1 0 59.9G 0 part /
`-nvme0n1p15 259:2 0 99M 0 part /boot/efi
명령 결과에서 3번째 줄의 nvme0n1
이 스토리지 장치명, 4번째 줄의 259:1
에서 1
이 파티션 번호다.
볼륨 파티션명은 df
명령어로 찾는다.
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 58G 55G 3.4G 95% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 386M 1.1M 385M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/nvme0n1p15 98M 290K 98M 1% /boot/efi
...
명령 결과에서 2번째 줄의 /dev/root
가 볼륨 파티션명이다.