Déplacer le dossier tmp de la partition '/' vers la partition montée (/ mnt)

15

J'ai une instance Amazon EC2 qui m'a donné une petite partition '/' et une grande partition '/ mnt'. En tant que tel, j'ai déplacé mon répertoire de données mysql sur la partition / mnt. Cependant, j'ai maintenant des problèmes avec le dossier / tmp à court d'espace sur mes requêtes de jointure massives et j'essaie également de déplacer / tmp vers / mnt / tmp. J'ai essayé de le faire avec un lien symbolique, mais cela empêche le service mysql de démarrer.

Veuillez indiquer comment déplacer le stockage de / tmp vers / mnt (/ dev / xvdb)

Programster
la source

Réponses:

15

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

sudo mount -B /tmp /mnt/tmp
Braiam
la source
Fantastique! facile une fois que vous savez comment.
Programster
4
Une chose que vous devez savoir, c'est que la partition / mnt est un stockage éphémère. Si vous arrêtez votre instance (ou qu'elle se dégrade et qu'AWS la déplace), les données dans / mnt seront perdues. Il est recommandé (en particulier pour votre MySQL) de monter un volume EBS et de l'utiliser pour les données que vous souhaitez conserver.
Kevin Willock
@KevinWillock Je pense que son /mnt(par la taille) est persistant (ou il y a monté quelque chose qui est persistant) car il y enregistre en fait des données. BTW, vous voudrez peut-être lui envoyer un ping (en utilisant @) car je suis presque sûr que je n'ai pas reçu de ping.
Braiam
@Braiam Je n'ai pas reçu de ping, mais j'ai vérifié ce fil à nouveau par chance. Kevin aurait raison de dire qu'il s'agit d'un stockage éphémère. Je sais que cela est très dangereux mais a été fait délibérément pour tester les performances de l'utilisation du stockage local. Si je devais utiliser un tel système, je m'assurerais de répliquer sur un volume EBS ou RDS lui-même et de sauvegarder à partir de là. Je connais bien les risques.
Programster
1
Dois-je exécuter cette commande à chaque redémarrage?
hithwen
3

Le déplacement d'une partition "/ tmp" nécessite un supplément non suggéré dans cette mauvaise réponse /ubuntu//a/371628/298086 .

Le déplacement des données implique d'effacer les données de la partition d'origine une fois clonées vers la destination, ce qui n'est absolument pas effectué par un montage de liaison.

RECOMMANDATION : Lisez cet article brillant si vous voulez comprendre ce qu'est une monture de liaison /unix//a/198591

Si vous essayez la bonne option de montage ("MOVE", pas bind):

mount -M /tmp /mnt/tmp

Je suis convaincu qu'il ne parviendra pas à signaler que " tmp est un point de montage partagé " (ce qui signifie en effet " je ne peux pas déplacer un point de montage si un processus l'utilise toujours ")

La "réponse" que vous recherchez peut nécessiter l'arrêt et le redémarrage des services en utilisant / accédant / tmp, avant de déplacer du contenu.

Vous pouvez répertorier ces services / processus en exécutant:

lsof +D /tmp/

Donc, une fois que vous avez répertorié ce qui est réellement accessible / utilisé /tmp, c'est quand vous pouvez vraiment décider "comment agir".

À mon avis, le moyen le plus sûr de passer

  1. Arrêt de tous les services accédant à / tmp (si vous pouvez le faire)
  2. Copier entièrement le contenu / tmp vers un nouvel emplacement
  3. Modification de / etc / fstab et modification de l'emplacement physique du point de montage / tmp (qu'il s'agisse d'une liaison ou d'un montage de périphérique)
  4. Redémarrage du système pour effectuer le remontage

Mais il existe un autre moyen qui ne nécessite pas de redémarrage du système, mais qui n'est pas plus sûr que le précédent. Il est décrit ici et consiste à démonter /tmpde manière paresseuse , ce qui devrait vous permettre d'exécutermount -M

Ces deux liens seront utiles pour votre demande:

xsubira
la source