Sposta la cartella tmp dalla partizione '/' alla partizione montata (/ mnt)


15

Ho un'istanza di Amazon EC2 che mi ha dato una piccola partizione '/' e una grande partizione '/ mnt'. Come tale, ho spostato il mio mysql data-dir nella partizione / mnt. Tuttavia ora sto riscontrando problemi con la cartella / tmp a corto di spazio sulle mie enormi query di join e sto cercando di spostare anche / tmp in / mnt / tmp. Ho provato a farlo con un collegamento simbolico ma ciò non consente l'avvio del servizio mysql.

Si prega di avvisare su come spostare la memoria di / tmp su / mnt (/ dev / xvdb)

Risposte:


15

È possibile associare il /tmppunto di montaggio a /mnt/tmp:

sudo mount -B /tmp /mnt/tmp

Fantastico! facile una volta che sai come.
Programster,

4
Una cosa di cui devi essere molto consapevole è che la partizione / mnt è una memoria effimera. Se interrompi la tua istanza (o se si degrada e AWS la sposta), i dati in / mnt andranno persi. Si consiglia (specialmente per MySQL) di montare un volume EBS e di utilizzarlo per i dati che si desidera siano persistenti.
Kevin Willock,

@KevinWillock Penso che il suo /mnt(in base alle dimensioni) sia persistente (o abbia montato qualcosa che è persistente) dal momento che in realtà sta salvando i dati lì. A proposito, potresti effettivamente voler eseguire il ping (usando @) poiché sono quasi sicuro che non sia stato eseguito il ping .
Braiam,

@Braiam Non ho ricevuto il ping ma ho controllato di nuovo questo thread per fortuna. Kevin avrebbe ragione sul fatto che si tratta di una memoria effimera. So che questo è altamente pericoloso ma è stato fatto deliberatamente per testare le prestazioni dell'utilizzo dell'archiviazione locale. Se dovessi usare un tale sistema, mi assicurerei di replicare su un volume EBS o RDS stesso e fare il backup da lì. Sono ben consapevole dei rischi.
Programmatore

1
Devo eseguire quel comando ad ogni riavvio?
hithwen,

3

Lo spostamento di una partizione "/ tmp" richiede alcuni extra non suggeriti in questa risposta errata /ubuntu//a/371628/298086 .

Lo spostamento dei dati implica la cancellazione dei dati dalla partizione originale una volta clonata a quella di destinazione, cosa assolutamente non eseguita da un bind mount.

RACCOMANDAZIONE : leggi questo brillante post se vuoi capire cos'è un bind mount /unix//a/198591

Se provi l' opzione di montaggio corretta ("SPOSTA", non associare):

mount -M /tmp /mnt/tmp

Sono convinto che fallirà nel riferire che " tmp è un mountpoint condiviso " (ciò che effettivamente significa " Non posso spostare un mountpoint se è ancora in corso un processo che lo utilizza ")

La "risposta" che stai cercando potrebbe richiedere l'arresto e il riavvio dei servizi utilizzando / accessing / tmp, prima di spostare il contenuto.

È possibile elencare tali servizi / processi eseguendo:

lsof +D /tmp/

Quindi, una volta che hai elencato ciò che sta effettivamente accedendo / utilizzando /tmp, è quando puoi davvero decidere "come agire".

Secondo me passa il modo più sicuro

  1. Arresto di tutti i servizi che accedono a / tmp (se puoi farlo)
  2. Copia dei contenuti interamente / tmp in un nuovo posto
  3. Modifica / etc / fstab e modifica della posizione fisica del punto di montaggio / tmp (non importa se si tratta di un collegamento o di un dispositivo)
  4. Riavvio del sistema per eseguire il rimontaggio

Ma c'è un altro modo che non richiede il riavvio del sistema, ma non è più sicuro di quello precedente. È descritto qui e consiste nel smontare /tmpin modo pigro , ciò che dovrebbe permetterti di eseguiremount -M

Questi due link saranno utili per la tua richiesta:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.