automount nfs: cài đặt thời gian chờ tự động cho các máy chủ không đáng tin cậy - làm thế nào để tránh bị treo máy?


18

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ẻ /nfstrong 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ế.
  • 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ư dfhoặc ll) 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 /nfsmà 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 để /nfsthay 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, /srvchú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/fstabvà gắn kết thủ công khi cần ( mortonlà 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/fstabtrê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.nfsdự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.

Câu trả lời:


2

Sử dụng bất kỳ hệ thống gắn kết nào, bạn muốn tránh các tình huống trong đó Nautilus liệt kê thư mục chứa một giá trị gắn kết có thể hoặc không được gắn kết. Vì vậy, với autofs, đừng tạo mount trong, ví dụ, / nfs. Nếu bạn làm như vậy, khi bạn sử dụng Nautilus để liệt kê System Hệ thống tệp ', nó sẽ cố gắng tạo bất kỳ giá trị gắn kết nào tồn tại trong / nfs và nếu những lần thử đó không thành công thì phải mất vài phút để từ bỏ.

Vì vậy, những gì tôi đã làm là thay đổi auto.master để tạo các mount trong / nfs / mnt.

Điều này đã khắc phục vấn đề cho tôi. Tôi chỉ nhận được một độ trễ dài nếu tôi cố gắng liệt kê nội dung của / nfs / mnt, điều mà tôi có thể dễ dàng tránh được.


20

Gắn kết chia sẻ NFS trên máy khách bằng cách sử dụng tùy chọn gắn kết "bg, int, hard".

Quan trọng nhất trong trường hợp của bạn là "bg" cho nền - thông báo cho hệ thống không chặn khi máy chủ không khả dụng.

"xâm nhập" để có thể bị gián đoạn - vì vậy bạn có thể tiêu diệt thú cưỡi trên máy khách bằng lệnh kill.

"cứng" là trái ngược với "mềm". Sự khác biệt là "cứng" sẽ tiếp tục cố gắng không ngừng trong khi "mềm" sẽ lùi theo cấp số nhân khi thử lại khi máy chủ không khả dụng.


Cảm ơn vì sự trả lời. Tôi không thể kiểm tra ngay bây giờ vì tôi không ở nhà, nhưng sau khi buộc để có được những trang người đàn ông (một lần nữa), tôi có một số câu hỏi nữa: hardbgâ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? intrcó 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. "?
Brutus

2
Hard sẽ thử lại vô tận - bg sẽ KHÔNG chặn nếu không thể gắn kết ngay bây giờ. Kết quả sẽ là nó được gắn khi có sẵn, nhưng tất cả các hoạt động khác sẽ tiếp tục. INTR dường như được mặc định ngay bây giờ - đó là tuyệt vời. Ban đầu, bạn phải khởi động lại máy khách treo nếu máy chủ NFS của bạn chết ...
Nils

Tôi chỉ thử nghiệm nó, nhưng thêm hard,bgvào /etc/auto.masterdường như không thay đổi gì. Một time ls -l ~(thư mục người dùng của tôi chứa một liên kết tượng trưng đến /nfs/upload) vẫn mất hơn hai phút khi máy chủ không chạy.
Brutus

Bạn đã khởi động lại autofs? Chỉ các thay đổi phụ sẽ lan truyền mà không khởi động lại tự động.
Nils

Tôi đã làm:sudo reload autofs && sudo restart autofs
Brutus

7

Tôi đã chơi xung quanh nhiều hơn với một số tùy chọn từ trang người đàn ông. Tất cả bg,hard, bg,soft, fg,hardfg,softcho tôi quay trở lại thời điểm hơn hai minuets.

Cài đặt retrans=1,retry=0(kết hợp với bất kỳ điều nào ở trên) mặc dù, cho tôi thời gian khoảng ba giây. Khá phong nha. Mặc dù tôi không yên tâm chắc chắn mỗi sự kết hợp có nghĩa là gì. Sẽ đào xung quanh hơn nữa.

Ngoài ra tôi đã đi qua các tùy chọn autofs MOUNT_WAITUMOUNT_WAIT. Tôi đã không thể nhận được một số kết quả khác nhau với họ nhưng tôi sẽ tiếp tục cố gắng. Có vẻ như là một cách tốt để sử dụng "an toàn hơn" (còn gọi là thử lại nhiều hơn, v.v.) tùy chọn NFS nhưng thời gian trả lại nhanh cho tự động, hay không?


1
Dường như cũng có các tùy chọn khác, như được rsize=32768,wsize=32768,noatimeghi chú ở đây: techrepublic.com/blog/opensource/,
Ehtesh Choudhury

-1

Để thiết lập hệ thống tệp NFS để tự động gắn kết mỗi khi bạn khởi động hệ thống Red Hat Linux, bạn cần thêm một mục nhập cho hệ thống tệp NFS đó vào tệp / etc / fstab. Tệp / etc / fstab chứa thông tin về tất cả các loại hệ thống tệp được gắn (và có sẵn để gắn) khác nhau cho hệ thống Red Hat Linux của bạn. EX :: nfs Tương ứng với tên máy chủ, địa chỉ IP hoặc tên miền đủ điều kiện của máy chủ xuất hệ thống tệp. Đây là đường dẫn đến thư mục đã xuất. Chỉ định vị trí trên hệ thống tệp cục bộ để gắn thư mục đã xuất. Điểm gắn kết này phải tồn tại trước khi / etc / fstab được đọc hoặc gắn kết sẽ thất bại Khu vực chỉ định các tùy chọn gắn kết cho hệ thống tệp. Ví dụ: nếu khu vực tùy chọn nêu rw, suid, hệ thống tệp đã xuất sẽ được gắn đọc-ghi và người dùng và nhóm được đặt bởi máy chủ sẽ được sử dụng. Lưu ý rằng dấu ngoặc đơn không được sử dụng ở đây

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.