https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html
AWS EBS 볼륨 크기를 늘렸는데, 여전히 Linux 상에서 용량이 부족할 때가 있다.
이런 경우는 보통 파티션 크기와 관련되 이슈이다.
Linux에서 파일 시스템을 확장하는 프로세스는 다음과 같다.
- EBS 볼륨에 파일 시스템과 데이터를 포함하는 파티션이 있을 수 있다. 볼륨 크기를 늘려도 파티션 크기가 늘어나지 않습니다. 크기가 조정된 볼륨에서 파일 시스템을 확장하기 전에 볼륨에 볼륨 크기를 늘려야 하는 파티션이 있는지 여부를 확인해야한다.
- 파일 시스템 관련 명령을 사용하여 새 볼륨 용량에 맞게 파일 시스템의 크기를 조정한다.
정리하면,
- Linux에서는 파일 시스템을 파티션으로 관리한다.
- EBS 볼륨 크기는 늘렸지만, Linux 파티션 크기가 그대로이기 때문에, Linux 상에서 디스크 용량은 증가하지 않은 것이다.
결국 EBS 볼륨 크기를 늘려도,
1. Linux의 파티션 크기를 확장하고
2. 파일시스템이 해당 파티션의 전체를 차지하도록 변경
하는 추가적인 절차를 밟아야 한다.
+) 안전한 작업을 위해 EBS의 snapshot을 생성해두는 것을 권장한다.
1. 파티션 크기 확장
각 볼륨의 파일 시스템을 확인하려면 df - hT 명령을 사용한다.
현재 사용하고 있는 디스크가 꽉 차있는 것을 볼 수 있다.
ubuntu@ip-172-31-4-153:~$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/root ext4 7.8G 7.8G 54G 100% /
볼륨에 확장해야 하는 파티션이 있는지 확인하려면 lsblk 명령을 사용한다.
루트볼륨 nvme0n1에 파티션 nvme0n1p1이 있고, EBS 볼륨은 64G로 크기가 증가했지만 아직 파티션은 8G로 설정되어 있는 것을 볼 수 있다.
ubuntu@ip-172-31-4-153:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
nvme0n1 259:0 0 64G 0 disk
└─nvme0n1p1 259:1 0 8G 0 part /
파티션의 볼륨 크기는 growpart 명령을 통해 확장할 수 있다. 맨 마지막 인자는 파티션 번호이다.
sudo growpart /dev/nvme0n1 1
+) growpart 명령시 “No space left on device” 오류가 발생한다면 아래 코드를 growpart 명령 이전에 추가해보자.
임시 파일 시스템 tmpfs를 /tmp 탑재 지점에 탑재한다. 그러면 /tmp에 탑재된 10M tmpfs가 생성된다.
sudo mount -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp
이제 파티션 크기가 증가한 것을 볼 수 있다.
ubuntu@ip-172-31-4-153:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
...
nvme0n1 259:0 0 64G 0 disk
└─nvme0n1p1 259:1 0 64G 0 part /
파일시스템이 해당 파티션의 전체를 차지하도록 변경
이제 확장된 파티션에 맞게 실제 볼륨의 파일 시스템을 확장한다. resize2fs 명령으로 확장할 수 있다.
sudo resize2fs /dev/root
파일 시스템의 볼륨이 증가한 것을 볼 수 있다.
ubuntu@ip-172-31-4-153:~$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/root ext4 62G 8.7G 54G 15% /
+) 만약 앞서 mount 명령을 통해 tmpfs 파일 시스템을 생성했다면 이를 해제해주자.
sudo umount /tmp
'aws' 카테고리의 다른 글
[Ubuntu] Ubuntu에서 rc.local 없을 때, 생성하는 방법 (0) | 2022.01.09 |
---|---|
[EC2] 프리티어(t2.micro)에서 Jenkins 용량 초과 문제 (2) | 2022.01.09 |
[Ubuntu] Jenkins 설치 (0) | 2022.01.09 |
[Linux] 한국 시간대(KST) 설정 (0) | 2021.12.10 |
[AWS] EC2, ubuntu 서버 백그라운드 실행 (2) | 2021.08.09 |