Mova a pasta tmp da partição '/' para a partição montada (/ mnt)

15

Eu tenho uma instância do Amazon EC2 que me deu uma pequena partição '/' e uma grande partição '/ mnt'. Como tal, mudei meu mysql data-dir para a partição / mnt. No entanto, agora estou tendo problemas com a pasta / tmp ficando sem espaço nas minhas consultas de junção massivas e estou tentando também mover / tmp para / mnt / tmp. Eu tentei fazer isso com um link simbólico, mas isso resulta no serviço mysql não poder ser iniciado.

Por favor, informe sobre como mover o armazenamento de / tmp para / mnt (/ dev / xvdb)

Programador
fonte

Respostas:

14

Você pode vincular o /tmpponto de montagem a /mnt/tmp:

sudo mount -B /tmp /mnt/tmp
Braiam
fonte
Fantástico! fácil quando você souber como.
Programster
4
Você precisa estar ciente de que a partição / mnt é um armazenamento efêmero. Se você interromper sua instância (ou ela for degradada e a AWS a mover), os dados em / mnt serão perdidos. É recomendável (especialmente para o MySQL) montar um volume EBS e usá-lo para os dados que você deseja que sejam persistentes.
precisa
@ KevinWillock Eu acho que o dele /mnt(pelo tamanho) é persistente (ou ele montou algo lá que é persistente), pois ele está realmente salvando dados lá. BTW, você pode realmente querer fazer ping nele (usando @), pois tenho quase certeza de que não foi feito ping.
Braiam
@ Braiam Eu não fui pingado, mas verifiquei esse tópico novamente por sorte. Kevin estaria certo de que esse é um armazenamento efêmero. Eu sei que isso é altamente inseguro, mas foi feito deliberadamente para testar o desempenho do uso do armazenamento local. Se eu usasse esse sistema, estaria me certificando de replicar para um volume EBS ou para o próprio RDS e fazer backup a partir daí. Estou bem ciente dos riscos.
Programster
11
Preciso executar esse comando em cada reinicialização?
Hithwen
2

Mover uma partição "/ tmp" requer alguns extras não sugeridos nesta resposta errada /ubuntu//a/371628/298086 .

Mover dados implica apagar dados da partição original, uma vez clonada no destino um, o que não é absolutamente executado por uma montagem de ligação.

RECOMENDAÇÃO : Leia esta publicação brilhante se você quiser entender o que é uma montagem de ligação /unix//a/198591

Se você tentar a opção de montagem correta ("MOVE", não vincular):

mount -M /tmp /mnt/tmp

Estou convencido de que falhará ao relatar que " tmp é um ponto de montagem compartilhado " (o que realmente significa " Não posso mover um ponto de montagem se ainda houver algum processo usando-o ")

A "resposta" que você está procurando pode exigir a interrupção e a reinicialização dos serviços usando / access / / tmp, antes de mover o conteúdo.

Você pode listar esses serviços / processos executando:

lsof +D /tmp/

Então, depois de listar o que realmente está acessando / usando /tmp, é quando você pode realmente decidir "como agir".

Na minha opinião, a maneira mais segura de passar

  1. Parando todos os serviços acessando / tmp (se você puder fazer isso)
  2. Copiando conteúdo inteiramente / tmp para um novo local
  3. Edição de / etc / fstab e alteração da localização física do ponto de montagem / tmp (não importa se é uma ligação ou montagem de dispositivo)
  4. Reiniciando o sistema para executar a remontagem

Mas há outra maneira que não requer reinicialização do sistema, mas não é mais segura que a anterior. É descrito aqui e consiste em desmontar /tmpem um preguiçoso forma, o que deverá permitir-lhe executarmount -M

Esses dois links serão úteis para sua demanda:

xsubira
fonte