Gặp sự cố khi xuất FUSE qua NFS


8

Tôi đã có một hệ thống tệp FUSE tự viết Tôi gắn trên máy chủ NFS của mình trên mountpoint /export/example/mount. Sau đó, tôi xuất một thư mục mẹ của FUSE thông qua NFS. Các /etc/exportstùy chọn chứa nohide,crossmnt,subtree_check,ro,no_root_squashvà cho phép mọi người truy cập miễn phí:

/export/example *(nohide,crossmnt,subtree_check,ro,no_root_squash)

Tôi có thể gắn kết xuất này trên máy khách NFS của mình và truy cập nó. Ngay khi tôi truy cập FUSE trong NFS, máy khách của tôi bị treo cho đến khi tôi umountNFS (và tôi cần sử dụng tùy chọn -fđể thực hiện điều đó).

Tôi đã thử gắn FUSE với tư cách là người dùng đang làm việc và là root. Kết quả là như nhau.

Máy chủ đang chạy Ubuntu 12.04, máy khách SuSE 9.3. FUSE được viết bằng Python và hoạt động cục bộ mà không gặp rắc rối nào. Chỉ xuất qua NFS không thành công. Tôi không có giới hạn bảo mật vì tất cả điều này là trên một mạng riêng chỉ có người dùng đáng tin cậy.

Có ai có ý tưởng gì có thể gây rắc rối cho tôi hoặc (thậm chí tốt hơn) làm thế nào để giải quyết vấn đề không?

Tôi đã nghĩ về việc thay thế NFS bằng SSHFS để khắc phục sự cố, nhưng điều đó không hoạt động vì hệ thống máy khách quá cũ để hỗ trợ SSHFS (vì nó dựa trên FUSE và FUSE không được hỗ trợ).


Bạn đã thử allow_othertùy chọn để sshfs mount?
skarap

Vâng, tôi đã làm. Không có kết quả, thật không may. Nhưng trong khi đó, chúng tôi đã tắt phần cứng cũ với hệ thống cũ, vì vậy câu hỏi này không còn thú vị nữa. Tôi có lẽ nên đóng nó ... ;-)
Alfe

Bạn đã tìm thấy một giải pháp ? 5 năm sau tôi gặp vấn đề tương tự. Phân vùng cầu chì (s3fs) được gắn trong thư mục con của thư mục được cung cấp NFS có thể được nhìn thấy bởi máy khách nfs (ngay cả với nfs4) ...
Matthieu G

Bạn đã sử dụng crossmnt? Và phía cầu chì (s3fs) có cho phép người dùng khác sử dụng không (cũng có tùy chọn gắn kết cho việc này). Đừng quên rằng cầu chì là không gian người dùng (có nghĩa là được sử dụng bởi một người dùng) trong khi nfs là nhiều người dùng.
Alfe

Câu trả lời:


7

Hầu hết các bản phân phối Linux đều có một kernel không cho phép xuất hệ thống tệp được gắn FUSE bằng NFSv2 hoặc NFSv3. Lựa chọn của bạn là: 1. Triển khai hệ thống tệp của bạn trong không gian kernel. 2. Xuất nó trong NFSv4, sẽ yêu cầu fsid =

Bản thân tôi sử dụng 2. Trong hình minh họa bên dưới, các lệnh bắt đầu #được chạy trên máy chủ, các lệnh bắt đầu $được chạy trên máy khách.

Đây là cấu hình máy chủ của tôi, như bạn có thể thấy tôi đang xuất điểm gắn kết FUSE:

# mount | tail -n1
convmvfs on /mnt/gb2312 type fuse.convmvfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
# grep gb2312 /etc/exports 
/mnt/gb2312     192.168.0.0/16(no_subtree_check,fsid=0)

Đây là những gì tôi đã làm trên khách hàng của mình:

$ sudo mount -t nfs4 server:/ /mnt/
$ ls /mnt
Downloads  IMAGES  Library  lost+found

Để xác minh rằng lỗi của bạn là do xuất cầu chì trong NFS v2 / v3, hãy xuất điểm gắn kết cụ thể mà không có NFS v4 (fsid) và xem bạn có gặp lỗi không:

# exportfs -a
exportfs: /mnt/gb2312 requires fsid= for NFS export

Nếu trên máy chủ bạn xuất điểm gắn kết bị bỏ qua và gắn kết với cầu chì sau, bạn sẽ thấy trong nhật ký của mình nếu bạn cố gắng sử dụng máy khách nfs:

# tail /var/log/syslog
Aug 18 03:54:31 server rpc.mountd[17183]: Cannot export /mnt/gb2312, possibly unsupported filesystem or fsid= required
Aug 18 04:00:52 server rpc.mountd[17183]: Caught signal 15, un-registering and exiting.

0

theo mặc định, việc xuất các mục con trên nfs bị tắt. Quá trình hành động được đề xuất là cũng xuất dữ liệu phụ và yêu cầu khách hàng gắn kết nó.


Vâng, tôi biết, nhưng khi tôi viết, tôi đã thử các kết hợp khác nhau của các tùy chọn gắn kết sẽ cho phép xuất nội dung của các mục phụ. Trong thực tế, với hình ảnh ISO được gắn đơn giản, nó hoạt động hoàn hảo. Chỉ với FUSE của tôi, nó thất bại. Và tôi không thể gắn FUSE đó trên máy khách vì máy chủ đó quá cũ nên nó không hỗ trợ FUSE. Toàn bộ ý tưởng của FUSE-via-NFS chỉ là cho phép khách hàng truy cập các tính năng của FUSE mà nó không thể tự chạy.
Alfe

Bạn cần xuất / xuất / ví dụ / mount và gắn kết nó từ máy khách.
hildred
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.