Di chuyển thư mục tmp từ phân vùng '/' sang phân vùng được gắn (/ mnt)


15

Tôi có một phiên bản Amazon EC2 đã cung cấp cho tôi một phân vùng '/' nhỏ và một phân vùng '/ mnt' lớn. Như vậy, tôi đã chuyển dir-data data của tôi sang phân vùng / mnt. Tuy nhiên, hiện tôi đang gặp sự cố với thư mục / tmp hết dung lượng trên các truy vấn nối lớn của mình và tôi đang cố gắng chuyển / tmp sang / mnt / tmp. Tôi đã cố gắng làm điều này với một liên kết tượng trưng nhưng kết quả là dịch vụ mysql không thể khởi động.

Vui lòng tư vấn về cách di chuyển bộ lưu trữ của / tmp sang / mnt (/ dev / xvdb)

Câu trả lời:


14

Bạn có thể liên /tmpkết điểm gắn kết với /mnt/tmp:

sudo mount -B /tmp /mnt/tmp

Tuyệt diệu! dễ dàng một khi bạn biết làm thế nào.
Chương trình

4
Một điều bạn phải rất chú ý là phân vùng / mnt là lưu trữ phù du. Nếu bạn dừng cá thể của bạn (hoặc nó xuống cấp và AWS di chuyển nó), dữ liệu trong / mnt sẽ bị mất. Bạn nên (đặc biệt là đối với MySQL của bạn) để gắn kết một khối EBS và sử dụng dữ liệu đó cho dữ liệu bạn muốn duy trì.
Kevin Willock

@KevinWillock Tôi nghĩ rằng /mnt(theo kích thước) của anh ấy là bền bỉ (hoặc anh ấy đã gắn một cái gì đó bền bỉ) vì anh ấy thực sự đang lưu dữ liệu ở đó. BTW, bạn thực sự có thể muốn ping anh ấy (sử dụng @) vì tôi gần như chắc chắn không bị ping.
Braiam

@Braiam Tôi đã không nhận được ping nhưng đã kiểm tra chủ đề này một lần nữa bởi may mắn. Kevin sẽ chính xác rằng đây là lưu trữ phù du. Tôi biết rằng điều này rất không an toàn nhưng đã được thực hiện có chủ ý để kiểm tra hiệu suất sử dụng bộ nhớ cục bộ. Nếu tôi sử dụng một hệ thống như vậy, tôi sẽ đảm bảo sao chép vào một khối EBS hoặc chính RDS và sao lưu từ đó. Tôi nhận thức rõ về những rủi ro.
Chương trình

1
Tôi có cần thực hiện lệnh đó trên mỗi lần khởi động lại không?
hithwen

2

Di chuyển phân vùng "/ tmp" yêu cầu một số bổ sung không được đề xuất trong câu trả lời sai này https://askubfox.com/a/371628/298086 .

Di chuyển dữ liệu ngụ ý xóa dữ liệu khỏi phân vùng ban đầu một khi được sao chép đến đích, điều tuyệt đối không được thực hiện bởi một liên kết gắn kết.

KIẾN NGHỊ : Đọc bài đăng tuyệt vời này nếu bạn muốn hiểu thế nào là một liên kết gắn kết /unix//a/198591

Nếu bạn thử tùy chọn gắn kết bên phải ("DI CHUYỂN", không liên kết):

mount -M /tmp /mnt/tmp

Tôi tin rằng sẽ không báo cáo rằng " tmp là một điểm gắn kết chung " (điều thực sự có nghĩa là " Tôi không thể di chuyển một điểm gắn kết nếu vẫn còn bất kỳ quá trình sử dụng nó ")

"Câu trả lời" mà bạn đang tìm kiếm, có thể yêu cầu dừng và khởi động lại dịch vụ bằng cách sử dụng / access / tmp, trước khi di chuyển nội dung.

Bạn có thể liệt kê các dịch vụ / quy trình đó bằng cách chạy:

lsof +D /tmp/

Vì vậy, một khi bạn liệt kê những gì thực sự truy cập / sử dụng /tmp, là khi bạn có thể quyết định một cách chính xác "cách hành động".

Theo tôi cách an toàn nhất đi qua

  1. Dừng tất cả các dịch vụ truy cập / tmp (nếu bạn có thể làm điều đó)
  2. Sao chép toàn bộ nội dung / tmp sang một địa điểm mới
  3. Chỉnh sửa / etc / fstab và thay đổi / tmp vị trí vật lý của điểm gắn kết (không có vấn đề nếu là liên kết hoặc gắn thiết bị)
  4. Khởi động lại hệ thống để thực hiện phần tiếp theo

Nhưng có một cách khác không yêu cầu khởi động lại hệ thống, nhưng không an toàn hơn như trước. Nó được mô tả ở đây và bao gồm việc vượt /tmpqua một cách lười biếng , những gì sẽ cho phép bạn thực hiệnmount -M

Hai liên kết này sẽ hữu ích cho nhu cầu của bạn:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.