Hiểu NFS4 (máy chủ Linux)


26

Tôi đã có một chút bận tâm bởi NFS4 trên Linux. Một số thông tin 'ngoài kia' dường như mâu thuẫn với thông tin khác và thông tin khác có vẻ khó tìm. Vì vậy, đây là một vài điều thu hút sự chú ý của tôi, hy vọng ai đó ngoài kia có thể làm sáng tỏ điều này.

Câu hỏi này tập trung hoàn toàn vào NFS4 mà không có Kerberos, v.v.

1. Xuất khẩu

Có thông tin mơ hồ trong exportstrang chủ về cấu trúc của / etc / export.

Để trích dẫn từ exports(5):

Ngoài ra, mỗi dòng có thể có một hoặc nhiều thông số kỹ thuật cho các tùy chọn mặc định sau tên đường dẫn, dưới dạng dấu gạch ngang ("-") theo sau là danh sách tùy chọn.

Danh sách tùy chọn chỉ được sử dụng cho tất cả các lần xuất tiếp theo trên dòng đó.

"Chỉ xuất khẩu tiếp theo trên dòng đó" có nghĩa là gì?

1.2 fsid=0không cần thiết nữa?

Tôi đã tìm kiếm fsid khi tôi tìm thấy một nhận xét về danh sách linux-nfs nói rằng fsid = 0 không còn cần thiết nữa. Bây giờ tôi chỉ bối rối, tôi có cần nó với nfs4 hay không?!

2. Thư mục không xuất vẫn có thể gắn kết

Nói rằng tôi có cây sau:

/exp
/exp/users
/exp/distr
/exp/distr/archlinux
/exp/distr/debian

Và tôi có các mục sau trong mục fstab này:

/dev/disk/by-label/users  /mnt/users  ext4  defaults  0  0
/dev/disk/by-label/distr  /mnt/distr  ext4  defaults  0  0
/mnt/users                /exp/users  none  bind      0  0
/mnt/distr                /exp/distr  none  bind      0  0

Và xuất khẩu của tôi là chính xác này:

/exp       192.168.1.0/24(fsid=0,rw,async,no_subtree_check,no_root_squash)
/exp/distr 192.168.1.0/24(rw,async,no_subtree_check,no_root_squash)

exportfs -arvcho thấy:

exporting 192.168.1.0/24:/exp/distr
exporting 192.168.1.0/24:/exp

Vậy thì tại sao tôi có thể làm điều này và không gặp lỗi nào trên máy khách:

mount -t nfs4 server:/exp/users /tmp/test

Mặc dù /exp/userskhông được xuất khẩu? Tôi đã không xuất thư mục này và trong khi tôi không thấy nội dung /dev/disk/by-label/userstrừ khi tôi chỉ định crossmnt, tôi vẫn có thể ghi vào thư mục. Tất cả mọi thứ tôi viết ở đó đều đi đến thư mục cơ bản /exp/userscó thể nhìn thấy khi tôi umount /exp/users; ls /exp/users..

3. Trường hợp kỳ lạ của showmount -d server

Như đã nêu rpc.mountd(8), lệnh này sẽ hiển thị các thư mục hiện đang được gắn bởi máy khách hoặc các mục cũ trong /var/lib/nfs/rmtab, như có thể được đọc:

Trình nền rpc.mountd đăng ký mọi yêu cầu MNT thành công bằng cách thêm một mục vào tệp / var / lib / nfs / rmtab. Khi Nhận yêu cầu UMNT từ máy khách NFS, rpc.mountd chỉ cần xóa mục nhập phù hợp khỏi / var / lib / nfs / rmtab, miễn là danh sách kiểm soát truy cập cho xuất đó cho phép người gửi đó truy cập vào xuất.

(...)

Tuy nhiên, lưu ý rằng có rất ít để đảm bảo rằng nội dung của / var / lib / nfs / rmtab là chính xác. Một khách hàng có thể tiếp tục truy cập xuất ngay cả sau khi gọi UMNT. Nếu máy khách khởi động lại mà không gửi yêu cầu UMNT, các mục cũ vẫn còn cho máy khách đó trong / var / lib / nfs / rmtab.

Sau khi đọc xong, tôi chắc chắn tự hỏi:

  1. Không phải là quá an toàn khi chỉ để lộ loại thông tin khách hàng này;
  2. Các quản trị viên máy chủ không biết rằng bị ràng buộc phải có một rmtab với rất nhiều khách hàng cũ;
  3. Đây có phải là lý do mà các máy khách gắn kết các thư mục nfs4 với mount -vđể xem đầu ra như "không có gì được gắn kết" ngay cả khi một cái gì đó được gắn kết?

Tôi có rất nhiều câu hỏi khác liên quan đến nfs4, nhưng tôi sẽ giữ nó tại thời điểm này .. :)


Có thể danh sách xuất không giống như các hệ thống tập tin gắn kết kỳ lạ của bạn. Hãy thử đầu tiên với / mnt / người dùng ...
jirib

Đây là về nfs4, đòi hỏi một "hệ thống tệp giả" tức là hệ thống phân cấp hệ thống tệp một cây. Bạn có thể làm rõ những gì bạn có ý nghĩa, xin vui lòng?
trống

Trang wiki này cũng tuyên bố rằng fsid = 0 không còn cần thiết nữa: wiki.linux-nfs.org/wiki/index.php/ , nhưng 'xuất khẩu con người' vẫn ngụ ý rằng nó là bắt buộc
SystemParadox

1
Tôi muốn nói rằng tôi ủng hộ câu hỏi này. Giống như bạn, tôi đã quan sát nhiều điều tương tự, và có cùng một câu hỏi và nhiều hơn nữa. Có vẻ như một mớ hỗn độn.
Lốc xoáy

1
Quá nhiều câu hỏi trong một bài. @drumfire, bạn có thể vui lòng chia nó thành các câu hỏi-bài viết đơn giản hơn không?
Victor Yarema

Câu trả lời:


7

Những câu hỏi hay, nêu bật một điểm lớn hơn với tài liệu IMO. Đây là một nỗ lực tại một câu trả lời hoàn chỉnh:

"Chỉ xuất khẩu tiếp theo trên dòng đó" có nghĩa là gì?

Một ví dụ có lẽ dễ nhất ở đây:

/export/stuff -rw 10.0.0.54 10.0.0.55

tương đương với:

/export/stuff 10.0.0.54(rw) 10.0.0.55(rw)

Không fsid=0còn cần thiết nữa?

Điều này phụ thuộc vào trường hợp sử dụng của bạn. Có vẻ như bạn đang xuất các hệ thống tệp dựa trên đĩa thông thường từ phần còn lại của truy vấn của mình, trong trường hợp đó bạn tốt nhất nên bỏ fsid=0(trong nfsv4 thay đổi hành vi để tham chiếu hệ thống tệp gốc của xuất).

Để thay đổi hành vi này, hãy xóa tùy chọn no_subtree_check


rmtabnhững thứ liên quan

  • Là việc xử lý rmtabmột rủi ro bảo mật?
    Tôi đoán nó phụ thuộc vào trường hợp sử dụng của bạn để trả lời rằng, trên mạng của tôi, nó không bị rò rỉ thông tin đáng tin cậy nhưng tôi có thể thấy các trường hợp có khả năng xảy ra.
  • Sẽ không rmtabcó đầy đủ các mục cũ?
    Có khả năng là có, một lần nữa tùy thuộc vào kịch bản triển khai / trường hợp sử dụng của bạn.
  • Đây có phải là lý do tại sao một số khách hàng chạy mount -vsai thấy "không có gì được gắn kết"?
    Tôi chưa bắt gặp điều nà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.