tmp 폴더를 '/'파티션에서 마운트 된 파티션 (/ mnt)으로 이동


15

작은 '/'파티션과 큰 '/ mnt'파티션을 제공하는 Amazon EC2 인스턴스가 있습니다. 따라서 mysql data-dir을 / mnt 파티션으로 옮겼습니다. 그러나 현재 대규모 조인 쿼리에서 공간이 부족한 / tmp 폴더에 문제가 있으며 / tmp를 / mnt / tmp로 이동하려고합니다. 심볼릭 링크 로이 작업을 시도했지만 mysql 서비스를 시작할 수 없습니다.

/ tmp의 저장소를 / mnt (/ dev / xvdb)로 옮기는 방법에 대한 조언

답변:


15

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

sudo mount -B /tmp /mnt/tmp

환상적인! 일단 당신이 방법을 알고 있으면 쉽게.
Programster

4
한 가지 알아야 할 것은 / mnt 파티션이 임시 저장 공간이라는 것입니다. 인스턴스를 중지하거나 성능이 저하되고 AWS가 이동하면 / mnt의 데이터가 손실됩니다. (특히 MySQL의 경우) EBS 볼륨을 마운트하고 지속적으로 유지하려는 데이터에 사용하는 것이 좋습니다.
Kevin Willock

@KevinWillock 나는 /mnt(크기에 따라) 그의 데이터가 실제로 저장되기 때문에 영속적이라고 생각합니다. BTW, 당신은 실제로 핑 @되지 않았기 때문에 실제로 그를 핑 (을 사용하여 ) 하고 싶을 수도 있습니다 .
Braiam

@Braiam 나는 핑되지 않았지만 운 좋게이 스레드를 다시 확인했습니다. Kevin은 이것이 임시 스토리지라는 것이 옳을 것입니다. 이것이 안전하지는 않지만 로컬 저장소 사용 성능을 테스트하기 위해 의도적으로 수행되었다는 것을 알고 있습니다. 그러한 시스템을 사용한다면, EBS 볼륨 또는 RDS 자체에 복제하여 백업 할 것입니다. 나는 위험을 잘 알고 있습니다.
Programster

1
재부팅 할 때마다 해당 명령을 실행해야합니까?
hithwen

3

"/ tmp"파티션을 옮기려면이 잘못된 답변 /ubuntu//a/371628/298086 에서 제안되지 않은 추가 사항이 필요합니다 .

데이터를 이동하면 복제 된 원래 파티션에서 대상 파티션으로 데이터가 지워지며 바인드 마운트로 수행되지 않습니다.

권장 사항 : 바인드 마운트가 무엇인지 이해하려면이 멋진 게시물을 읽으십시오 /unix//a/198591

올바른 마운트 옵션 ( "MOVE", 바인드하지 않음)을 사용 하려는 경우 :

mount -M /tmp /mnt/tmp

" tmp는 공유 마운트 포인트 " 라는보고에 실패한다고 확신합니다 (실제로 " 아직 마운트 포인트를 사용하는 프로세스 인 경우 마운트 포인트를 이동할 수 없음 ")

찾고있는 "응답"은 컨텐츠를 이동하기 전에 / tmp를 사용 / 액세스하여 서비스를 중지했다가 다시 시작해야 할 수 있습니다.

다음을 실행하여 해당 서비스 / 프로세스를 나열 할 수 있습니다.

lsof +D /tmp/

따라서 실제로 액세스 / 사용중인 항목을 나열 /tmp하면 "동작 방법"을 실제로 결정할 수있는 시점입니다.

제 생각에는 가장 안전한 방법은

  1. / tmp에 액세스하는 모든 서비스 중지 (가능한 경우)
  2. / tmp 내용을 완전히 새 장소에 복사
  3. / etc / fstab 편집 및 / tmp 마운트 지점 물리적 위치 변경 (바인드 또는 장치 마운트에 관계없이)
  4. 다시 마운트를 수행하기 위해 시스템 재시작

그러나 시스템을 다시 시작하지 않아도되는 다른 방법이 있지만 이전 방법보다 안전하지는 않습니다. 여기에 설명/tmp 되어 있으며 게으른 방식으로 마운트 해제로 구성됩니다.mount -M

이 두 링크는 ​​귀하의 요구에 도움이 될 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.