EC2 인스턴스에서 / tmp 크기 증가


8

EC2 ebs에서 Ubuntu 서버를 실행 중이며 내 응용 프로그램에 / tmp에 할당 된 많은 임시 디스크 공간이 필요합니다. 그러나 ec2에서 / tmp를 포함하는 루트 드라이브는 약 10GB 정도로 작습니다. 나머지 디스크 공간은 모두 / mnt 아래에 마운트됩니다. 결과적으로 / tmp가 가득 차서 내 응용 프로그램에서 '디스크 공간 부족'오류를 반환합니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 내가 생각할 수있는 한 가지는 / mnt / tmp를 만들고 심볼릭 링크를 만드는 것입니다.

/tmp --> /mnt/tmp

그러나 나는 많은 리눅스 프로그램과 도구가 사용하는 무언가를 엉망으로 만드는 것을 꺼려합니다. 모든 프로그램이 심볼릭 링크를 올바르게 해결할지 확실하지 않으며 성능에 어떤 영향을 미칠지 잘 모르겠습니다.


2
바인드 마운트는 심볼릭 링크가 필요하지 않음을 의미합니다.
Ignacio Vazquez-Abrams

답변:


5

EBS 지원 이미지를 사용하면 임시 스토리지를 계속 사용할 수 있으며 기본적으로 (인스턴스 스토어 이미지와 마찬가지로) 블록 디바이스로 매핑되지 않습니다.

아마존 문서는 여기 있으며 유용한 블로그 게시물이 있습니다.

요약 : 이미지를 시작할 때 명령 줄에서이 매핑을 지정한 다음에 일반 볼륨으로 마운트 할 수 /dev/sd[x]있습니다. 또는 자체 AMI를 롤링 한 경우 해당 AMI로 매핑을 시작하여 시작된 모든 이미지가 처음부터 액세스 할 수 있도록 할 수 있습니다.

Symlinking /tmp은 작동하지만이 경우에는 사용중인 많은 양의 임시 스토리지가있는 것이 좋습니다. 당신이 장치 매핑을 사용할 수있는 후에는 장치로 장착 할 수 있습니다 /tmp에서 /etc/fstab.

작은 인스턴스의 경우 150GB의 인스턴스 스토어를 무료로 사용할 수 있어야합니다. 인스턴스가 재부팅 될 때이 스토리지가 종료된다는 것은 말할 나위도 없습니다. 사용량이 일시적이지 않은 경우 고유 한 새 EBS 볼륨을 생성하여 그렇게 마운트해야합니다.


1
심볼릭 링크가 권장되지 않는 이유는 무엇입니까? 예를 들어, / var / tmp와 / var / log를 임시 스토리지에 둘 경우 스토리지를 / mnt로 마운트하고 두 디렉토리를 symlink로 연결할 수 있습니다.
j0nes

좋은 지적. OP가 주 파티션으로의 심볼릭 링크를 고려하고 있다는 가정에 근거 하여이 특정 사례에 대해 생각하고있었습니다. 나는 대답을 명확히 할 것이다.
SmallClanger

1

/ tmp 마운트 지점을 / mnt / tmp에 바인딩 할 수 있습니다.

sudo 마운트 -B / tmp / mnt / tmp


2
그 명령은 거꾸로 보인다. 두 디렉토리 이름을 바꾸 었다고 생각합니다.
kasperd

0

질문에 제안 된 상징적 인 링크는 그렇게 나쁜 해결책이 아닙니다. 그러나 그렇게하는 동안주의를 기울여야합니다. 볼륨 마운트와 관련된 정확한 단계를 통합하는 방법은 다음과 같습니다.

1) AWS 콘솔에서 새 볼륨을 생성하십시오. 인스턴스에 연결하십시오.

2) 포맷하고 말로 마운트하십시오. /mnt/vol1

3) 가능한 한 청소 /tmp하십시오.

4) mkdir /mnt/vol1/tmp && mv /tmp/* /mnt/ && rmdir /tmp && ln -s /mnt/vol1/tmp /tmp


파일을 새 디렉토리로 이동해도 현재 열려있는 파일에 대해 원하는 결과를 얻을 수 없습니다. 프로그램이 파일을 /tmp재부팅 해도 살아남을 것으로 기대할 수 없기 때문에 대신 재부팅합니다.
kasperd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.