Pindahkan folder tmp dari partisi '/' ke partisi yang dipasang (/ mnt)


15

Saya memiliki instance Amazon EC2 yang telah memberi saya partisi '/' kecil dan partisi '/ mnt' besar. Karena itu, saya telah memindahkan dir data mysql saya ke partisi / mnt. Namun saya sekarang mengalami masalah dengan folder / tmp kehabisan ruang pada permintaan gabung besar saya dan saya mencoba juga memindahkan / tmp ke / mnt / tmp. Saya mencoba melakukan ini dengan symlink tetapi itu mengakibatkan layanan mysql tidak dapat memulai.

Mohon saran tentang cara memindahkan penyimpanan / tmp ke / mnt (/ dev / xvdb)

Jawaban:


14

Anda dapat mengikat /tmptitik mount ke /mnt/tmp:

sudo mount -B /tmp /mnt/tmp

Fantastis! mudah sekali Anda tahu caranya.
Programster

4
Satu hal yang harus Anda sadari adalah bahwa partisi / mnt adalah penyimpanan sementara. Jika Anda menghentikan instance Anda (atau menurunkan dan AWS memindahkannya), data di / mnt akan hilang. Disarankan (terutama untuk MySQL Anda) untuk me-mount volume EBS, dan menggunakannya untuk data yang Anda ingin gigih.
Kevin Willock

@KevinWillock Saya pikir itu /mnt(dengan ukuran) adalah gigih (atau dia memasang sesuatu di sana yang gigih) karena dia sebenarnya menyimpan data di sana. BTW, Anda mungkin benar-benar ingin melakukan ping padanya (menggunakan @) karena saya hampir yakin tidak dapat melakukan ping.
Braiam

@Braiam Saya tidak bisa ping tapi periksa utas ini lagi karena keberuntungan. Kevin akan benar bahwa ini adalah penyimpanan sementara. Saya tahu bahwa ini sangat tidak aman tetapi dilakukan dengan sengaja untuk menguji kinerja menggunakan penyimpanan lokal. Jika saya menggunakan sistem seperti itu, saya akan memastikan untuk mereplikasi ke volume EBS atau RDS itu sendiri dan membuat cadangan dari sana. Saya sangat menyadari risikonya.
Programster

1
Apakah saya perlu menjalankan perintah itu di setiap reboot?
sampai

2

Memindahkan partisi "/ tmp" memerlukan beberapa tambahan yang tidak disarankan dalam jawaban yang salah ini /ubuntu//a/371628/298086 .

Memindahkan data berarti menghapus data dari partisi asli setelah dikloning ke tujuan satu, yang mutlak tidak dilakukan oleh bind mount.

REKOMENDASI : Baca posting brilian ini jika Anda ingin memahami apa itu bind mount /unix//a/198591

Jika Anda mencoba opsi pemasangan kanan ("MOVE", jangan ikat):

mount -M /tmp /mnt/tmp

Saya yakin ini akan gagal melaporkan bahwa " tmp adalah mountpoint yang dibagikan " (yang memang berarti " Saya tidak dapat memindahkan mountpoint jika masih dalam proses menggunakannya ")

"Jawaban" yang Anda cari, mungkin memerlukan penghentian dan memulai kembali layanan menggunakan / mengakses / tmp, sebelum memindahkan konten.

Anda dapat mendaftar layanan / proses tersebut dengan menjalankan:

lsof +D /tmp/

Jadi, begitu Anda mendaftar apa yang sebenarnya diakses / digunakan /tmp, adalah ketika Anda dapat memutuskan "bagaimana harus bertindak".

Menurut saya cara paling aman lewat

  1. Menghentikan semua layanan yang mengakses / tmp (jika Anda bisa melakukannya)
  2. Menyalin seluruhnya / konten tmp ke tempat baru
  3. Mengedit / etc / fstab dan mengubah / tmp mount point lokasi fisik (tidak peduli apakah itu bind atau mount perangkat)
  4. Mulai ulang sistem untuk melakukan remount

Tetapi ada cara lain yang tidak membutuhkan restart sistem, tetapi tidak lebih aman seperti yang sebelumnya. Hal ini dijelaskan di sini dan terdiri dalam umounting /tmpdalam malas cara, apa yang harus memungkinkan Anda untuk mengeksekusimount -M

Dua tautan ini akan membantu permintaan Anda:

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.