Thứ tự khởi động lại là quan trọng. Khởi động lại máy chủ sau khi máy khách có thể dẫn đến tình huống này. Xử lý NFS cũ chỉ ra rằng máy khách đã mở tệp, nhưng máy chủ không còn nhận ra tệp xử lý. Trong một số trường hợp, NFS sẽ dọn sạch cấu trúc dữ liệu của nó sau khi hết thời gian. Trong các trường hợp khác, bạn sẽ cần tự làm sạch cấu trúc dữ liệu NFS và khởi động lại NFS sau đó. Trường hợp các cấu trúc này được đặt phụ thuộc vào O / S.
Hãy thử khởi động lại NFS trước trên máy chủ và sau đó trên máy khách. Điều này có thể xóa các xử lý tập tin.
Không nên khởi động lại máy chủ NFS với các tệp được mở từ các máy chủ khác. Điều này đặc biệt có vấn đề nếu tệp mở đã bị xóa trên máy chủ. Máy chủ có thể giữ tệp mở cho đến khi được khởi động lại, nhưng khởi động lại sẽ loại bỏ xử lý tệp trong bộ nhớ ở phía máy chủ. Sau đó, khách hàng sẽ không thể mở tệp.
Việc xác định các mount đã được sử dụng từ máy chủ là khó khăn và không đáng tin cậy. Các showmount -atùy chọn có thể hiển thị một số gắn kết hoạt động, nhưng có thể không báo cáo tất cả trong số họ. Các tệp bị khóa dễ xác định hơn, nhưng yêu cầu khóa phải được bật và dựa vào phần mềm máy khách để khóa các tệp.
Bạn có thể sử dụng lsoftrên máy khách để xác định các quy trình có tệp được mở trên giá treo.
Tôi sử dụng các tùy chọn hardvà intrmount trên mount NFS của tôi. Các hardtùy chọn gây IO để được thử lại vô thời hạn. Các intrtùy chọn cho phép các tiến trình bị giết nếu họ đang chờ đợi trên NFS IO để hoàn tất.
hard, intrlà lời khuyên tốt. Tuy nhiên, lưu ý rằng NFS nhân đôi thời gian chờ với mỗi lần thử. Vì vậy, bạn thiết lập tốt nhấttimeo=1vàretrans=5như vậy. Lưu ý rằng điều này sẽ gây căng thẳng nặng nề cho máy chủ NFS của bạn sau khi khởi động lại NFS. Cố gắng không khởi động lại dịch vụ NFS của bạn thường xuyên;)