on
[EC2/Error] No space left on device. EBS/볼륨 확장
[EC2/Error] No space left on device. EBS/볼륨 확장
No space left on device.
EC2 를 사용 중 디바이스에 남은 공간이 없다는 에러가 뜨는 경우가 있다.
해결방법:
- AWS EC2 콘솔 > EBS Volume 메뉴에서 해당 EC2 의 EBS 볼륨을 찾는다.
- 볼륨을 선택하고 modify volume > Size 를 원하는만큼 수정한다. (수정후 콘솔화면에서 최적화 완료 기다리기)
- 리눅스 터미널에서 growpart 명령어로 파일 시스템을 확장해준다.
(콘솔 볼륨 업 이전 lsblk)
(flask) ubuntu@ip-172-16-1-79:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 32.3M 1 loop /snap/snapd/12159
loop1 7:1 0 33.3M 1 loop /snap/amazon-ssm-agent/3552
loop2 7:2 0 32.3M 1 loop /snap/snapd/12398
loop3 7:3 0 55.5M 1 loop /snap/core18/1997
loop4 7:4 0 55.5M 1 loop /snap/core18/2074
nvme0n1 259:0 0 8G 0 disk
└─nvme0n1p1 259:1 0 8G 0 part /
(콘솔 볼륨 업 이후 lsblk)
ubuntu@ip-172-16-1-79:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 33.3M 1 loop /snap/amazon-ssm-agent/3552
loop1 7:1 0 55.5M 1 loop /snap/core18/1997
loop2 7:2 0 32.3M 1 loop /snap/snapd/12398
loop3 7:3 0 32.3M 1 loop /snap/snapd/12159
loop4 7:4 0 55.5M 1 loop /snap/core18/2074
nvme0n1 259:0 0 16G 0 disk
└─nvme0n1p1 259:1 0 8G 0 part /
=> 밑에 8G가 현재 사용중이다가 꽉 찬 볼륨이고, 위 16G가 콘솔에서 늘린 볼륨이다.
ubuntu@ip-172-16-1-79:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.2G 8.7M 3.1G 1% /run
/dev/nvme0n1p1 7.7G 7.7G 0 100% /
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/loop1 56M 56M 0 100% /snap/core18/1997
/dev/loop0 34M 34M 0 100% /snap/amazon-ssm-agent/3552
/dev/loop2 33M 33M 0 100% /snap/snapd/12398
/dev/loop4 56M 56M 0 100% /snap/core18/2074
/dev/loop3 33M 33M 0 100% /snap/snapd/12159
tmpfs 3.2G 0 3.2G 0% /run/user/1000
=> 콘솔에서 볼륨을 늘려줘도 growpart 이전에는 여전히 꽉차있음.
// extend partition sudo growpart /dev/nvme0n1 1 // resize sudo resize2fs /dev/nvme0n1p1
위 명령어 수행 후,
ubuntu@ip-172-16-1-79:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.2G 716K 3.2G 1% /run
/dev/nvme0n1p1 16G 4.5G 12G 29% /
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/loop1 56M 56M 0 100% /snap/core18/1997
/dev/loop0 34M 34M 0 100% /snap/amazon-ssm-agent/3552
/dev/loop2 33M 33M 0 100% /snap/snapd/12398
/dev/loop4 56M 56M 0 100% /snap/core18/2074
/dev/loop3 33M 33M 0 100% /snap/snapd/12159
tmpfs 3.2G 0 3.2G 0% /run/user/1000
tmpfs 10M 0 10M 0% /tmp
ubuntu@ip-172-16-1-79:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 33.3M 1 loop /snap/amazon-ssm-agent/3552
loop1 7:1 0 55.5M 1 loop /snap/core18/1997
loop2 7:2 0 32.3M 1 loop /snap/snapd/12398
loop3 7:3 0 32.3M 1 loop /snap/snapd/12159
loop4 7:4 0 55.5M 1 loop /snap/core18/2074
nvme0n1 259:0 0 16G 0 disk
└─nvme0n1p1 259:1 0 16G 0 part /
정상적으로 반영된 것을 확인.
다만 이 파티션 확장 명령어(growpart)조차 No space left on device 에러가 뜨기도 하는데,
불필요하거나 쉽게 다시 채울 수 있는 데이터를 조금 지운 후 실행하면 정상적으로 실행된다.
reference
- https://djangoworld.tistory.com/17
- https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html
- https://aws.amazon.com/ko/premiumsupport/knowledge-center/ebs-volume-size-increase/
from http://maclaurin.tistory.com/15 by ccl(A) rewrite - 2021-07-14 20:26:41