- Có phương pháp đáng tin cậy để kiểm tra, tệp đó có mặt không? Trong kịch bản được đưa ra ở trên lstat trên tập tin trả về thành công và ứng dụng không chỉ sau khi cố gắng di chuyển tập tin.
Đó là hành vi NFS bình thường.
- Tôi có thể đồng bộ hóa thủ công nội dung thư mục trên máy khách với máy chủ bằng cách nào?
Không thể thực hiện thủ công vì NFS giả vờ là hệ thống tệp tuân thủ POSIX bình thường.
Tôi đã thử một lần để mã close()/open() trong một nỗ lực để giảm thiểu tác động của bộ nhớ cache phía máy khách NFS. Trong trường hợp của tôi, tôi cần đọc thông tin được ghi vào tệp trên máy chủ khác. Nhưng ngay cả thủ thuật mở lại đã gần như không có hiệu lực. Và tôi không thể thêm fdatasync() vào mặt văn bản, vì nó làm chậm toàn bộ ứng dụng.
Trải nghiệm của tôi với NFS cho đến nay là bạn không thể làm gì. Trong các đường dẫn mã quan trọng, tôi chỉ đơn giản là mã hóa để thử lại các hoạt động tệp trả về ESTALE.
- Một số lời khuyên chung về cách viết mã quản lý tệp tin cậy trong trường hợp NFS?
Chỉnh sửa tất cả những gì bạn muốn, nhưng nếu khách hàng của bạn muốn độ tin cậy thì họ không nên sử dụng NFS.
Công ty của tôi ví dụ quảng cáo sử dụng hệ thống tệp được phân phối thích hợp (Tôi cố ý bỏ qua thương hiệu) nếu khách hàng muốn có độ tin cậy. Phần mềm cốt lõi của chúng tôi không được bảo đảm để chạy trên NFS và chúng tôi không hỗ trợ các cấu hình như vậy. Nhưng trong trường hợp của chúng tôi, chúng tôi thực sự cần đảm bảo rằng ngay khi dữ liệu được ghi vào FS, chúng có thể truy cập được trên tất cả các nút khác.
Tính nhất quán trong NFS có thể đạt được, nhưng với chi phí hiệu suất, làm cho NFS hầu như không thể sử dụng được. (Kiểm tra các tùy chọn gắn kết của nó.) NFS là bộ nhớ đệm như điên để che giấu thực tế rằng nó là một hệ thống tập tin máy chủ. Để làm cho tất cả các hoạt động chặt chẽ, NFS client sẽ phải đi đến máy chủ NFS đồng bộ cho mọi hoạt động nhỏ, bỏ qua bộ đệm cục bộ. Và điều đó sẽ không bao giờ nhanh chóng.
Nhưng vì chúng ta đang nói Linux ở đây, người ta có thể tư vấn cho khách hàng về phần mềm để đánh giá các hệ thống tệp cụm có sẵn. Ví dụ. RedHat giờ đã chính thức hỗ trợ GFS. Tôi đã nghe nói về những người sử dụng CodaFS, nhưng không có thông tin khó về nó.
Cảm ơn. Bạn đã xác nhận hầu hết các kết quả nghiên cứu NFS của riêng tôi. Đoán tôi sẽ mã một loạt các kiểm tra ESTALE, vì chúng tôi không có kế hoạch để di chuyển đến một số lưu trữ khác.Tôi sẽ không chấp nhận câu trả lời này ngay bây giờ, hy vọng ai đó sẽ đưa ra thêm thông tin về chủ đề. – begray