Tôi đang chạy một máy chủ nhỏ để chia sẻ căn hộ của chúng tôi. Nó chủ yếu là một máy chủ tập tin với một số dịch vụ bổ sung. Các máy khách là các máy Linux (chủ yếu là Ubuntu, nhưng một số máy khác cũng vậy) và một số máy Mac (-Book) ở giữa (nhưng chúng không quan trọng đối với câu hỏi). Máy chủ đang chạy Ubuntu 11.10 (Oneiric Ocelot) 'Server Edition', hệ thống mà tôi thực hiện cài đặt và thử nghiệm chạy phiên bản 11.10 'Desktop Edition'. Chúng tôi đã chạy cổ phần của mình với Samba (nơi chúng tôi quen thuộc hơn) trong một thời gian nhưng sau đó chuyển sang NFS (vì chúng tôi không có bất kỳ người dùng Windows nào trong mạng LAN và muốn dùng thử) và cho đến nay mọi thứ đều hoạt động tốt .
Bây giờ tôi muốn thiết lập tự động gắn với autofs mịn mọi thứ lên (đến nay gắn kết tất cả mọi người chia sẻ cách thủ công khi cần thiết). Việc gắn tự động dường như cũng hoạt động. Vấn đề là "máy chủ" của chúng tôi không chạy 24/7 để tiết kiệm năng lượng (nếu ai đó cần đồ đạc từ máy chủ, anh ấy bật nguồn và tắt nó sau đó, vì vậy nó chỉ chạy vài giờ mỗi ngày). Nhưng vì thiết lập tự động, máy khách thường ngừng hoạt động khi máy chủ không chạy.
Tôi có thể bắt đầu tất cả các máy khách tốt, ngay cả khi máy chủ không chạy.
Nhưng khi tôi muốn hiển thị một thư mục (trong terminal hoặc nautilus), có chứa các liên kết tượng trưng đến một chia sẻ
/nfs
trong khi máy chủ không chạy, nó sẽ bị treo trong ít nhất hai phút (vì tự động không thể kết nối với máy chủ mà vẫn giữ cố gắng, tôi giả sử).- Có cách nào để tránh điều đó? Vì vậy, việc gắn kết sẽ bị trì hoãn cho đến khi thay đổi vào thư mục hoặc cho đến khi nội dung của thư mục đó được truy cập? Không phải khi "nhìn" vào một liên kết đến một chia sẻ dưới
/nfs
? Tôi nghĩ là không, nhưng có lẽ không thể cố gắng truy cập nó quá lâu? Và chỉ cần đưa cho tôi một thư mục trống hoặc "không thể tìm / kết nối với thư mục đó" hoặc đại loại như thế.
- Có cách nào để tránh điều đó? Vì vậy, việc gắn kết sẽ bị trì hoãn cho đến khi thay đổi vào thư mục hoặc cho đến khi nội dung của thư mục đó được truy cập? Không phải khi "nhìn" vào một liên kết đến một chia sẻ dưới
Khi máy chủ đang chạy, mọi thứ đều hoạt động tốt.
Nhưng khi máy chủ ngừng hoạt động, trước khi chia sẻ bị ngắt, các công cụ (như
df
hoặcll
) bị treo (giả sử vì họ nghĩ rằng chia sẻ vẫn còn nhưng máy chủ sẽ không phản hồi nữa).- Có cách nào để tự động ngắt kết nối cổ phiếu khi kết nối bị mất không?
Ngoài ra, các máy khách sẽ không tắt hoặc khởi động lại khi máy chủ ngừng hoạt động và chúng vẫn còn các cổ phần được gắn kết. Họ treo (vô hạn như có vẻ) trong " giết các quá trình còn lại " và dường như không có gì xảy ra.
Tôi nghĩ rằng tất cả bắt nguồn từ các giá trị thời gian chờ gọn gàng để gắn kết và ngắt kết nối. Và có thể xóa tất cả các chia sẻ khi kết nối đến máy chủ bị mất.
Vì vậy, câu hỏi của tôi là: Làm thế nào để xử lý này? Và như một phần thưởng: có một cách tốt để liên kết bên trong /nfs
mà không cần phải gắn cổ phiếu thật (tùy chọn tự động hoặc có thể sử dụng một giả FS để /nfs
thay thế khi gắn kết xảy ra hoặc một cái gì đó tương tự)?
Thiết lập của tôi
Các thiết lập NFS là khá cơ bản nhưng phục vụ chúng ta tốt cho đến nay (sử dụng NFSv4 ):
/ etc / default / nfs-common
NEED_STATD=
STATDOPTS=
NEED_IDMAPD=YES
NEED_GSSD=
/etc/idmapd.conf
[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
/ etc / xuất khẩu
/srv/ 192.168.0.0/24(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)
Trong thư mục gốc, /srv
chúng tôi có hai thư mục với bind
:
/ etc / fstab (Máy chủ)
...
/shared/shared/ /srv/shared/ none bind 0 0
/home/Upload/ /srv/upload/ none bind 0 0
Cái đầu tiên hầu hết chỉ đọc (nhưng tôi thực thi rằng thông qua các thuộc tính và quyền sở hữu tệp thay vì cài đặt NFS) và thứ 2 là rw cho tất cả. Lưu ý: Họ không có mục nhập thêm trong / etc / export , mặc dù chúng hoạt động riêng lẻ.
Về phía khách hàng, họ nhận được thiết lập /etc/fstab
và gắn kết thủ công khi cần ( morton
là tên của máy chủ và nó được giải quyết tốt).
/ etc / fstab (Máy khách)
morton:/shared /nfs/shared nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
morton:/upload /nfs/upload nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
Đối với thiết lập tự động, tôi đã xóa các mục từ /etc/fstab
trên máy khách và thiết lập phần còn lại như sau:
/etc/auto.master
/nfs /etc/auto.nfs
Đầu tiên tôi gắn kết thực thi được cung cấp /etc/auto.net
(bạn có thể xem nó ở đây ) nhưng nó sẽ không tự động gắn kết bất cứ điều gì cho tôi. Sau đó, tôi viết một /etc/auto.nfs
dựa trên một số HowTos tôi tìm thấy trực tuyến:
/etc/auto.nfs
shared -fstype=nfs4 morton:/shared
upload -fstype=nfs4 morton:/upload
Và nó hoạt động tốt ... Hoặc sẽ hoạt động nếu máy chủ chạy 24/7. Vì vậy, chúng tôi nhận được hangouts khi máy khách khởi động mà không có máy chủ chạy hoặc khi máy chủ ngừng hoạt động trong khi chia sẻ nơi vẫn kết nối.
hard
vàbg
âm thanh phản trực giác đối với tôi lúc đầu. Tôi muốn gắn kết không thử lại và lấy lại ngay lập tức nếu nó bảo lãnh?intr
có vẻ ổn nhưng dường như không hoạt động nữa: " Tùy chọn gắn kết bên trong / 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 bị bỏ qua để cung cấp khả năng tương thích ngược với hạt nhân cũ hơn. "?