Przenieś folder tmp z partycji „/” na partycję zamontowaną (/ mnt)

15

Mam instancję Amazon EC2, która dała mi małą partycję „/” i dużą partycję „/ mnt”. W związku z tym przeniosłem mój katalog danych mysql na partycję / mnt. Mam jednak problemy z brakiem miejsca w folderze / tmp w moich ogromnych zapytaniach dotyczących łączenia i próbuję również przenieść / tmp do / mnt / tmp. Próbowałem to zrobić za pomocą dowiązania symbolicznego, ale skutkuje to niemożnością uruchomienia usługi mysql.

Proszę doradzić, jak przenieść pamięć / tmp do / mnt (/ dev / xvdb)

Programista
źródło

Odpowiedzi:

15

Możesz powiązać /tmppunkt montowania z /mnt/tmp:

sudo mount -B /tmp /mnt/tmp
Braiam
źródło
Fantastyczny! łatwe, gdy wiesz jak.
Programster
4
Jedną z rzeczy, o których musisz wiedzieć, jest to, że partycja / mnt to efemeryczna pamięć masowa. Jeśli zatrzymasz instancję (lub ulegnie ona degradacji, a AWS ją przeniesie), dane w katalogu / mnt zostaną utracone. Zaleca się (szczególnie dla MySQL) zamontowanie woluminu EBS i użycie go do danych, które mają być trwałe.
Kevin Willock
@KevinWillock Myślę, że jego /mnt(według rozmiaru) jest trwały (lub zamontował tam coś, co jest trwałe), ponieważ faktycznie tam zapisuje dane. BTW, możesz chcieć go pingować (używając @), ponieważ jestem prawie pewien, że nie został pingowany.
Braiam
@Braiam Nie dostałem pingowania, ale sprawdziłem ten wątek ponownie. Kevin miałby rację, że to efemeryczne przechowywanie. Wiem, że jest to bardzo niebezpieczne, ale zostało zrobione celowo w celu przetestowania wydajności korzystania z lokalnej pamięci. Gdybym miał użyć takiego systemu, musiałbym przeprowadzić replikację do woluminu EBS lub samego RDS i wykonać kopię zapasową z tego miejsca. Jestem w pełni świadomy ryzyka.
Programster
1
Czy muszę wykonywać to polecenie przy każdym ponownym uruchomieniu?
hithwen
3

Przeniesienie partycji „/ tmp” wymaga dodatkowej nie sugerowanej w tej złej odpowiedzi /ubuntu//a/371628/298086 .

Przeniesienie danych oznacza skasowanie danych z oryginalnej partycji po sklonowaniu do partycji docelowej, co absolutnie nie jest wykonywane przez podłączenie wiązania.

ZALECENIE : Przeczytaj ten genialny post, jeśli chcesz zrozumieć, czym jest bind mount /unix//a/198591

Jeśli spróbujesz właściwą opcję montażu („PRZESUŃ”, nie wiąż):

mount -M /tmp /mnt/tmp

Jestem przekonany, że nie powiedzie się zgłoszenie, że „ tmp jest współużytkowanym punktem montowania ” (co w rzeczywistości oznacza „ Nie mogę przenieść punktu montowania, jeśli nadal używa go jakiś proces ”)

„Odpowiedź”, której szukasz, może wymagać zatrzymania i ponownego uruchomienia usług przy użyciu / accessing / tmp przed przeniesieniem treści.

Możesz wyświetlić listę tych usług / procesów, uruchamiając:

lsof +D /tmp/

Kiedy więc wymienisz, co faktycznie uzyskuje dostęp / korzystanie /tmp, możesz naprawdę zdecydować, „jak postępować”.

Moim zdaniem najbezpieczniejsza droga mija

  1. Zatrzymywanie dostępu do wszystkich usług / tmp (jeśli możesz to zrobić)
  2. Kopiowanie zawartości w całości / tmp w nowe miejsce
  3. Edycja / etc / fstab i zmiana fizycznej lokalizacji punktu montowania / tmp (bez względu na to, czy jest to połączenie, czy podłączenie urządzenia)
  4. Ponowne uruchomienie systemu w celu wykonania ponownego podłączenia

Jest jednak inny sposób, który nie wymaga ponownego uruchomienia systemu, ale nie jest bezpieczniejszy niż poprzedni. Jest opisane tutaj i polega na odmontowania /tmpw sposób leniwy sposób, co powinno pozwolić na wykonaniemount -M

Te dwa linki będą pomocne dla twojego żądania:

xsubira
źródło