EC2 ebs에서 Ubuntu 서버를 실행 중이며 내 응용 프로그램에 / tmp에 할당 된 많은 임시 디스크 공간이 필요합니다. 그러나 ec2에서 / tmp를 포함하는 루트 드라이브는 약 10GB 정도로 작습니다. 나머지 디스크 공간은 모두 / mnt 아래에 마운트됩니다. 결과적으로 / tmp가 가득 차서 내 응용 프로그램에서 ‘디스크 공간 부족’오류를 반환합니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 내가 생각할 수있는 한 가지는 / mnt / tmp를 만들고 심볼릭 링크를 만드는 것입니다.
/tmp --> /mnt/tmp
그러나 나는 많은 리눅스 프로그램과 도구가 사용하는 무언가를 엉망으로 만드는 것을 꺼려합니다. 모든 프로그램이 심볼릭 링크를 올바르게 해결할지 확실하지 않으며 성능에 어떤 영향을 미칠지 잘 모르겠습니다.
답변
EBS 지원 이미지를 사용하면 임시 스토리지를 계속 사용할 수 있으며 기본적으로 (인스턴스 스토어 이미지와 마찬가지로) 블록 디바이스로 매핑되지 않습니다.
아마존 문서는 여기 있으며 유용한 블로그 게시물이 있습니다.
요약 : 이미지를 시작할 때 명령 줄에서이 매핑을 지정한 다음에 일반 볼륨으로 마운트 할 수 /dev/sd[x]
있습니다. 또는 자체 AMI를 롤링 한 경우 해당 AMI로 매핑을 시작하여 시작된 모든 이미지가 처음부터 액세스 할 수 있도록 할 수 있습니다.
Symlinking /tmp
은 작동하지만이 경우에는 사용중인 많은 양의 임시 스토리지가있는 것이 좋습니다. 당신이 장치 매핑을 사용할 수있는 후에는 장치로 장착 할 수 있습니다 /tmp
에서 /etc/fstab
.
작은 인스턴스의 경우 150GB의 인스턴스 스토어를 무료로 사용할 수 있어야합니다. 인스턴스가 재부팅 될 때이 스토리지가 종료된다는 것은 말할 나위도 없습니다. 사용량이 일시적이지 않은 경우 고유 한 새 EBS 볼륨을 생성하여 그렇게 마운트해야합니다.
답변
/ tmp 마운트 지점을 / mnt / tmp에 바인딩 할 수 있습니다.
sudo 마운트 -B / tmp / mnt / tmp
답변
질문에 제안 된 상징적 인 링크는 그렇게 나쁜 해결책이 아닙니다. 그러나 그렇게하는 동안주의를 기울여야합니다. 볼륨 마운트와 관련된 정확한 단계를 통합하는 방법은 다음과 같습니다.
1) AWS 콘솔에서 새 볼륨을 생성하십시오. 인스턴스에 연결하십시오.
2) 포맷하고 말로 마운트하십시오. /mnt/vol1
3) 가능한 한 청소 /tmp
하십시오.
4) mkdir /mnt/vol1/tmp && mv /tmp/* /mnt/ && rmdir /tmp && ln -s /mnt/vol1/tmp /tmp