본문 바로가기
일일일/끄적끄적✍

배포를 시켰는데 No space left on device 에러가 뜰때

by 전클로네 2021. 11. 14.

준비한 프로젝트를 완성하고 배포를 하기위해

쉘스크립트를 실행시켰는데 Error: ENOSPC: no space left on device, write 라는 에러가 뜨면서

정상적으로 실행이 안되는 경우가 있습니다.

 

그럴땐 먼저 당황하지 말고(중요) 에러 메시지를 쭉 읽어봅니다.

웬만하면 오류의 원인은 에러 메시지에 다 담겨 있거든요.

 

쭉 읽어보고 대략적인 상황을 파악하였으면

구글에 검색을 해봅니다.

 

그럼 다행히도 AWS 사이트에 해결방법이 친절히 나옵니다.

https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-insufficient-capacity-errors/

 

EC2 인스턴스를 시작하거나 실행할 때 발생하는 InsufficientInstanceCapacity 오류 해결

현재 AWS(Amazon Web Services)에 요청을 완료하기 위한 온디맨드 가용 용량이 부족한 경우, 다음과 같이 InsufficientInstanceCapacity 오류가 표시됩니다. "RunInstances 작업을 호출할 때 오류(InsufficientInstanceCapac

aws.amazon.com

aws 문서를 보니 볼륨의 디스크 용량부족 이라는 해답을 줍니다.

그럼 이제 문제를 해결해 보도록 하죠.

 

 

문제해결 1. 서버 용량 확인

디스크의 용량이 부족하여 발생하는 에러이기 때문에

제일 먼저 df- -h 명령어를 입력하여 용량을 확인해줍니다.

df -h

서버 환경에 따라 다르겠지만 저의 경우에는

파일 시스템 /dev/nvme0n1p1 의 Avail 0, Use 100% 라고 되어있는 것을 볼 수 있습니다.

서버의 용량이 부족하다는 원인을 확실하게 확인하였습니다.

이제 문제를 해결하기 위해서는 사용 가능한 용량을 늘려주면 되겠죠.

 

 

문제해결 2. 서버 용량 늘리기

서버의 용량을 늘리기 위해 다음과 같은 절차를 따라 주면 됩니다.

오류를 해결할때 참고한 사이트 입니다. (정말 많은 도움을 받았습니다🙏)

https://aws.amazon.com/ko/premiumsupport/knowledge-center/ebs-volume-size-increase/

 

Amazon EBS에서 ‘No space left on device’ 오류 해결

Internet Explorer에 대한 AWS 지원이 07/31/2022에 종료됩니다. 지원되는 브라우저는 Chrome, Firefox, Edge 및 Safari입니다. 자세히 알아보기

aws.amazon.com

https://donggu1105.tistory.com/120

 

[AWS] 문제 해결 : 디스크용량이 부족할때 EBS 볼륨 늘리기

문제 발생! cp: writing `syslogbackup`: No space left on device cs 갑자기 서버가 마비되서 ec2를 접속해보니 이런 터미널 오류가뜨면서 공간이없다고 나온다. 해결하러 가보자! 디스크 용량 확인 $ df -hT c..

donggu1105.tistory.com

 

1. AWS 콘솔 접속

1-1. AWS CONSOLE에 로그인하여 EC2 메뉴로 들어간다.

1-2. Elastic Block Sotre 메뉴 클릭한다.

1-3. 볼륨 버튼 클릭하여 원하는 사이즈로 수정해준 후 저장 및 적용한다.

 

2. AWS 터미널 접속

2-1. df -h로 디스크 용량 다시 한번 확인

2-2. lsblk로 상세 내용 용량 확인

lsblk

2-3. 블록 디바이스에 남은 공간 없음 오류를 방지하기 위해 임시 파일 시스템 tmpfs를 /tmp 탑재 지점에 탑재한다

sudo mound -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp

2-4. 볼륨 업데이트 (growpart 다음에 오는 경로는 용량을 늘리려는 파일시스템을 입력한다)

sudo growpart /dev/nvme0n1 1

2-5. XFS 도구 설치

sudo apt-get install xfspros

2-6. 도구 업데이트

sudo xfs_growfs -d

2-7. 파일 시스템 확장 (resize2fs 다음에 오는 경로는 용량을 늘리려는 파일시스템을 입력한다)

sudo resize2fs /dev/nvme0n1p1

 

이 순서대로 문제없이 잘 진행이 되었다면 마지막으로 df -h로 용량을 확인해주고

1. 변경한 사이즈로 용량이 확인 됨

2. Avail 이 0이 아님

3. Use 100% 아님

이라면 성공적으로 용량이 늘어난 것입니다.

 

이제 다시 배포를 진행하면 No Space on Device 에러는 보이지 않고

정상적으로 진행이 됩니다.

 

 

문제방지

이와 같은 오류를 해결하면서

회사에 서버 담당 개발자가 없다면 백엔드 개발자가 서버 관리를 해야하고,

그와 동시에 AWS에 대해서 잘 알아야 한다고 느꼈습니다.

 

다음에는 이런문제가 발생하지 않도록

꾸준히 서버의 상태를 점검하며 용량에 대한 관리를 해야겠다고 아주 큰 다짐을 했습니다.

.

.

.

등골이 싸늘해지는 경험을 하니 아주 진이 빠지네요...

후...오류 해결하는 세상의 모든 개발자를 응원합니다👍👊

 

 

 

 

 

※작성한 내용에 잘못된 내용이 있으면 알려주세요.

728x90

댓글