Estou executando um servidor Ubuntu no EC2 ebs, e meu aplicativo precisa de muito espaço em disco temporário, alocado em / tmp. No entanto, no ec2, a unidade raiz que também contém / tmp é bem pequena, em torno de 10 GB. Todo o espaço em disco restante é montado em / mnt. Como resultado, meu aplicativo retorna erros de 'falta de espaço em disco', porque / tmp parece estar cheio.
Qual é a melhor maneira de resolver este problema? Uma coisa que consigo pensar é criar / mnt / tmp e criar um link simbólico
/tmp --> /mnt/tmp
No entanto, estou um pouco relutante em mexer com algo que é usado por muitos programas e ferramentas Linux. Não tenho certeza se todos os programas resolverão corretamente o link simbólico e não tenho certeza do que seria para o desempenho.
fonte
Respostas:
Com imagens suportadas pelo EBS, o armazenamento efêmero ainda está disponível, apenas não é mapeado como dispositivo de bloco por padrão (como nas imagens de armazenamento de instância)
O documento da amazon está aqui e há uma publicação útil no blog, aqui
Em resumo: você pode especificar esse mapeamento na linha de comando ao iniciar a imagem e montá-la como um volume normal
/dev/sd[x]
. Ou, se você rolar sua própria AMI, poderá fazer o mapeamento nessa AMI para que todas as imagens iniciadas a partir dela tenham acesso a ela desde o início.A ligação simbólica
/tmp
funcionará, mas eu não recomendaria neste caso, onde você tem uma grande quantidade de armazenamento temporário em uso. Depois de disponibilizar o mapeamento do dispositivo, você poderá montá-lo como/tmp
em/etc/fstab
.Com uma instância pequena, você deve ter 150 GB de armazenamento de instância disponível gratuitamente. É desnecessário dizer que esse armazenamento morre quando a instância é reinicializada. Se o seu uso não for tão temporário, você precisará criar seu próprio novo volume EBS e montá-lo dessa maneira.
fonte
Você pode vincular o ponto de montagem / tmp a / mnt / tmp:
fonte
A ligação simbólica, conforme sugerido na pergunta, não é uma solução tão ruim. Mas há alguns cuidados extras a serem tomados ao fazê-lo. Apenas para consolidar as etapas precisas envolvidas na montagem do volume são:
1) Crie um novo volume no console da AWS. Anexe-o à instância.
2) Formate-o e monte-o sob dizer
/mnt/vol1
3) Limpe
/tmp
na medida do possível.4)
mkdir /mnt/vol1/tmp && mv /tmp/* /mnt/ && rmdir /tmp && ln -s /mnt/vol1/tmp /tmp
fonte
/tmp
sobrevivam a uma reinicialização.