augmentation de la taille de / tmp sur les instances EC2

8

J'utilise un serveur Ubuntu sur EC2 ebs et mon application a besoin de beaucoup d'espace disque temporaire, alloué dans / tmp. Cependant, sur ec2, le lecteur racine qui contient également / tmp est assez petit, environ 10 Go. Tout l'espace disque restant est monté sous / mnt. Par conséquent, mon application renvoie des erreurs «d'espace disque insuffisant», car / tmp semble être plein.

Quelle est la meilleure façon de résoudre ce problème? Une chose à laquelle je peux penser est de créer / mnt / tmp et de créer un lien symbolique

/tmp --> /mnt/tmp

Cependant, je suis un peu réticent à jouer avec quelque chose qui est utilisé par tant de programmes et d'outils Linux. Je ne sais pas si chaque programme résoudra correctement le lien symbolique, et je ne sais pas ce qu'il ferait pour les performances.

Jeroen
la source
2
Les montages de liaison signifient ne pas avoir à créer de lien symbolique.
Ignacio Vazquez-Abrams

Réponses:

5

Avec les images soutenues par EBS, le stockage éphémère est toujours disponible, il n'est tout simplement pas mappé en tant que périphérique de bloc par défaut (comme c'est le cas sur les images de stockage d'instance)

Le doc amazon est ici , et il y a un article de blog utile, ici

En résumé: vous pouvez spécifier ce mappage sur la ligne de commande lorsque vous lancez l'image, puis la monter en tant que volume normal sur /dev/sd[x]. Ou vous, si vous lancez votre propre AMI, vous pouvez ensuite intégrer la cartographie dans cette AMI afin que toutes les images lancées à partir de celle-ci y aient accès dès le départ.

Symlinking /tmpfonctionnera, mais je ne le recommanderais pas dans ce cas, où vous avez une grande quantité de stockage temporaire en cours d'utilisation. Une fois que vous avez le mappage de périphérique disponible, vous pouvez avoir le périphérique monté comme /tmpdans /etc/fstab.

Avec une petite instance, 150 Go de stockage d'instance devraient être disponibles gratuitement. Il va sans dire que ce stockage s'éteint au redémarrage de l'instance. Si votre utilisation n'est pas temporaire, vous devez créer votre propre nouveau volume EBS et le monter de cette façon.

SmallClanger
la source
1
Pourquoi le lien symbolique n'est-il pas recommandé? Par exemple, si je veux mettre à la fois / var / tmp et / var / log sur mon stockage éphémère, je peux monter le stockage en tant que / mnt et créer un lien symbolique entre les deux répertoires.
2012
Bon point. Je pensais à ce cas spécifique, basé sur l'hypothèse que l'OP envisageait de faire un lien symbolique vers la partition principale. Je vais clarifier ma réponse.
SmallClanger
1

Vous pouvez lier le point de montage / tmp à / mnt / tmp:

montage sudo -B / tmp / mnt / tmp

hithwen
la source
2
Ces commandes me regardent en arrière. Je pense que vous avez échangé les deux noms de répertoire.
kasperd du
0

Le lien symbolique comme suggéré dans la question n'est pas une si mauvaise solution. Mais il faut faire très attention en le faisant. Juste pour consolider les étapes précises impliquées dans le montage du volume sont:

1) Créez un nouveau volume dans la console AWS. Attachez-le à l'instance.

2) Formatez-le et montez-le sous disons /mnt/vol1

3) Nettoyez /tmpautant que possible.

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

Murphy
la source
Le déplacement des fichiers vers le nouveau répertoire ne permettra pas d'obtenir le résultat souhaité pour tout fichier actuellement ouvert. Je redémarrerais à la place, car les programmes ne peuvent pas s'attendre à ce que les fichiers /tmpsurvivent à un redémarrage.
kasperd