Dừng gắn kết NFS bị hỏng từ khóa một thư mục?


17

Tôi có một thiết lập khá thú vị: Một máy chủ có nhiều máy chủ NFS từ xa được gắn trong một thư mục, với thư mục đó sau đó được xuất lại qua Samba. Hãy nghĩ về nó như một proxy chia sẻ, giữ tất cả các thư mục được chia sẻ ở một nơi.

Vấn đề của tôi là bất cứ khi nào một trong số các mount bị hỏng (máy chủ khởi động lại, dịch vụ được khởi động lại, ổ cứng ngoài mà máy chủ đang xuất bị xóa, v.v.) bất kỳ nỗ lực nào để đọc các khối gắn kết mãi mãi. Điều này cũng có nghĩa là chạy lstrong thư mục đó bị đóng băng và người dùng kết nối qua Samba cũng bị đóng băng. Điều này cũng đã gây ra một vài lần một trong những công việc định kỳ của tôi bị chặn mà gần như đã đánh sập máy chủ vì nó có hàng trăm quy trình bị chặn. Điều này đang trở nên rất khó chịu vì tôi thường phải đưa ra một thiết bị đầu cuối không chờ lskết thúc (không thể hủy bỏ nó), chạy for i in *; do sudo umount -l -f $i; done;, hy vọng rằng nó hoạt động, khắc phục sự cố, sau đó khắc phục mọi thứ.

Có cách nào để gắn kết chia sẻ NFS với quy định rằng nếu kết nối không thành công vì bất kỳ lý do gì (tốt nhất là trong khoảng thời gian thử lại) thì bản thân mount không gắn kết hoặc ít nhất là không chặn?


Bạn có thể đăng bài /etc/fstabkhông?
Karlson

Câu trả lời:


19

Thông thường khi gắn NFS, nên đặt cờ tương tự như sau:

bg,intr,soft
   bg      If  the  first  NFS  mount  attempt times out, retry the mount in the 
           background.  After a mount operation is backgrounded, all subsequent mounts
           on the same NFS  server  will  be  backgrounded immediately, without first
           attempting the mount.  A missing mount point is treated as a timeout, to
           allow for nested NFS mounts.
   soft    If  an  NFS  file operation has a major timeout then report an I/O error
           to the calling program.  The default is to continue retrying NFS file
           operations indefinitely.
   intr    If  an  NFS  file  operation  has  a major timeout and it is hard mounted,
           then allow signals to interupt the file operation and cause it to return
           EINTR to the calling program.  The default is to not allow file operations
           to be interrupted.

Ngoài ra bạn có thể thiết lập:

timeo=5,retrans=5,actimeo=10,retry=5

sẽ cho phép mount NFS hết thời gian chờ và làm cho thư mục không thể truy cập được nếu máy chủ NFS ngắt kết nối thay vì chờ đợi trong lần thử lại.

Hãy xem liên kết này để biết thêm thông tin về các tùy chọn gắn kết NFS


chỉ sử dụng bg, int, soft vẫn để lại 120 giây trong Fedora 20. Nhưng thêm timeo = 5, lấy lại = 5, actimeo = 10, thử lại = 5 làm cho nó tốt và nhanh chóng. Cảm ơn!
Greg Sheremeta

4
"Tùy chọn gắn kết nội bộ / nointr không được dùng sau kernel 2.6.25. Chỉ SIGKILL mới có thể làm gián đoạn hoạt động NFS đang chờ xử lý trên các hạt nhân này và nếu được chỉ định, tùy chọn gắn kết này sẽ bị bỏ qua để cung cấp khả năng tương thích ngược với các hạt nhân cũ hơn." "Tùy chọn này được cung cấp để tương thích ngược. Nó bị bỏ qua sau kernel 2.6.25."
David C. Giám mục

1
@ DavidC.Bishop trích dẫn đó từ đâu? Bạn có thể cho một liên kết? Cảm ơn.
vẫy gọi

2
@becko: Trích dẫn SIGKILL là từ trang man nfs (chỉ cần tìm kiếm 'nointr'). Các phiên bản mới hơn, chẳng hạn như phiên bản trên hệ thống của tôi giờ chỉ cần đọc "Tùy chọn này được cung cấp để tương thích ngược. Nó bị bỏ qua sau kernel 2.6.25." liên kết .
David C. Giám mục
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.