Làm cách nào để có được nfsd để phục vụ NFSv4 trên High Sierra?


6

Tôi hy vọng sẽ phục vụ một mount NFS từ máy chủ High Sierra (10.13.4) của mình cho máy khách linux. Máy khách linux có thể gắn kết bằng giao thức NFSv3, nhưng tôi sử dụng ACL trên các tệp và thư mục được cung cấp, vì vậy tôi nghĩ rằng chúng ta cần NFSv4.

Tôi muốn sử dụng phiên bản 4 của giao thức. Điều này có thể không? Tôi thấy trang man nfsd (8) không đề cập đến phiên bản 4. Tôi đã tìm thấy một trang dành cho xuất khẩu FreeBSD (5) sử dụng cờ V4: ở đầu dòng trong / etc / export để khai báo phiên bản protocl.

Tôi đã thử điều này với nfsd của tôi và nó không thể phân tích chính xác, sử dụng "nfsd checkexports".

Nếu tôi kiểm tra rpc:

$ sudo rpcinfo -p
program vers proto   port  
...
100003     2   udp   2049  nfs
100003     3   udp   2049  nfs
100003     2   tcp   2049  nfs
100003     3   tcp   2049  nfs

Điều này khiến tôi nghĩ rằng nfsd của tôi hỗ trợ phiên bản 2 và 3 của giao thức. Có lẽ tôi có thể nâng cấp máy chủ này?

Câu trả lời:


1

Tác giả của NFS ManagerMarcel Bresink tuyên bố trong các tệp trợ giúp rằng macOS chỉ hỗ trợ NFS 4 với tư cách là khách hàng. Là máy chủ, nó bị giới hạn ở NFS 2 và 3:

https://www.bresink.com/osx/143439/Docs-en/pgs/0020-Intro.html


Cảm ơn bạn. Điều này giúp với kỳ vọng, ít nhất. Chắc chắn sẽ rất tốt nếu có NFS4. Một ngày nào đó ...
Matt

1
@Matt Tôi có rất ít hy vọng cho điều đó ...
TylerDurden

4

Phiên bản nfsdtrên Mac không hỗ trợ v4. Để hỗ trợ ACL, bạn chắc chắn cần kết nối bằng v4.

Việc bạn không nhận được kết nối v4 có thể nằm ở phía máy khách. Hầu hết các máy khách NFS mặc định thử v3 trước sau đó quay lại v2 nếu không thành công.

Về phía khách hàng của bạn, bạn nên chỉ định v4 bằng cách sử dụng -o vers=4tùy chọn cho lệnh mount của bạn. Thực hiện man mount_nfstrên máy khách để kiểm tra xem nó có hỗ trợ cú pháp đó thay vì cú pháp không dùng nữa -o nfsv4. Bạn cũng có thể sử dụng -4nhưng điều đó cũng không được khuyến khích và không được khuyến khích.

Để nhận được hỗ trợ ACL trong máy khách của bạn, bạn có thể phải thêm -o acltùy chọn vì hầu hết các máy khách mặc định không hỗ trợ ACL.

Rất nên đọc man NFSman mount_nfstrên máy khách.


2
Cảm ơn các con trỏ. Trên máy khách Ubuntu 16.04 LTS của tôi, tùy chọn fstab được sử dụng là "nfsvers = 4". Tôi tìm thấy điều này trong trang man nfs (5), được gọi từ trang man mount (8). FWIW, tiện ích gắn kết cụ thể nfs trên 16.04 LTS là "mount.nfs", là mục tiêu của một liên kết tượng trưng có tên là "mount.nfs4". Khi tôi đặt các tùy chọn gắn kết chính xác, tôi vẫn nhận được "mount.nfs: Giao thức không được hỗ trợ" trên máy khách Ubuntu. Vì vậy, có bằng chứng cho thấy máy khách hỗ trợ nfsv4 và được cấu hình đúng (không có lỗi phân tích cú pháp khi đọc fstab). Vấn đề vẫn tồn tại đối với tôi.
Matt

2
Khi tôi chạy rpcinfo -p 127.0.0.1 | grep "nfs"trên máy Mac, tôi chỉ nhận được phiên bản 2 và 3. Dường như ít nhất là trong Sierra (10.12) nfsdkhông không hỗ trợ v4.
beporter

1
Chúng tôi đã thử nghiệm các hộp Ubuntu giống hệt nhau trong Vagrant khi cố gắng kết nối với nfsd trên macOS và máy chủ Ubuntu. Không có vấn đề khi sử dụng v4 trên máy chủ Ubuntu. Tôi không nghĩ đó là vấn đề của khách hàng.
Ryan

1

Tôi vẫn chưa thấy bất kỳ bằng chứng nào cho thấy nfsd trên macOS hỗ trợ phiên bản 4.

Từ man nfs.conf:

 For more information on the NFS and MOUNT protocols see Network File System Protocol
 Specification, RFC1094 and NFS: Network File System Version 3 Protocol Specification.

Và như OP chỉ ra rpcinfo localhostchỉ báo cáo phiên bản 2 và 3. Tôi đã không thành công khi có bất kỳ máy khách NFS 4 nào kết nối với chia sẻ macOS.


Điều này xác nhận những gì tôi tìm thấy. Xem bình luận của tôi để bài viết của Tony, ở trên.
Matt
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.