Không thể chia sẻ NFS4


2

Tôi có hai thư mục được xuất từ ​​máy chủ NFS. Trên máy khách NFS của tôi, tôi có thể gắn một trong các thư mục, sử dụng cú pháp mặc định, là NFS4. Tuy nhiên, thư mục khác sẽ chỉ gắn kết nếu tôi chỉ định rõ ràng "Vers = 3". Nếu tôi không sử dụng cú pháp đó, tôi sẽ gặp lỗi "mount.nfs: truy cập bị từ chối bởi máy chủ trong khi cài đặt nat149app: / var / fea / jobs".

Cả hai hộp đều là RHEL 6.1.

Trên máy chủ:

[root@nat149app fea]# cat /etc/exports
# /var/fea/jobs   -rw,async,no_root_squash xxx.xxx.1.0/24
# /usr/local      -ro,async,no_root_squash xxx.xxx.1.0/24
/var/fea/jobs   xxx.xxx.1.0/24(rw,async,no_root_squash)
/usr/local      xxx.xxx.1.0/24(ro,async,no_root_squash)

Trên máy khách:

[root@nat145app ~]# mount
/dev/sda4 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/sda5 on /home type ext4 (rw)
/dev/sda3 on /usr type ext4 (rw)
/dev/sda6 on /var type ext2 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

[root@nat145app ~]# mount nat149app:/usr/local /usr/local

[root@nat145app ~]# mount nat149app:/var/fea/jobs /var/fea/jobs
mount.nfs: access denied by server while mounting nat149app:/var/fea/jobs

[root@nat145app ~]# ll /var/fea
total 20K
drwxrwx--T   4 root feausers 4.0K Nov 29 13:25 ./
drwxr-xr-x. 22 root root     4.0K Nov 29 13:25 ../
drwxrwx--T   2 root feausers 4.0K Nov 29 13:25 jobs/
drwxrwx--T   2 root feausers 4.0K Nov 29 13:26 temp/

[root@nat145app ~]# mount -o vers=3 nat149app:/var/fea/jobs /var/fea/jobs

[root@nat145app ~]# mount
/dev/sda4 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/sda5 on /home type ext4 (rw)
/dev/sda3 on /usr type ext4 (rw)
/dev/sda6 on /var type ext2 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nat149app:/usr/local on /usr/local type nfs (rw,vers=4,addr=139.69.1.149,clientaddr=139.69.1.145)
nat149app:/var/fea/jobs on /var/fea/jobs type nfs (rw,vers=3,addr=139.69.1.149)

Tôi đã thử điều này với cả rw và ro. Tôi cũng đã thử nó mà không có sự cho phép "o + t" trên các chỉ thị. Và tôi cũng đã thử điều này bằng cách sử dụng các mục trong / etc / fstab. Làm cho không có sự khác biệt.


Chú ý. Tôi đã thử cơ chế này trên Fedora 16 w / và gặp một lỗi cũ được cho là đã được sửa. bugzilla.redhat.com/show_orms.cgi?id=716483 Vấn đề là trong việc sử dụng tùy chọn liên kết trong fstab cho tập hợp xuất khẩu. Cuối cùng, không thể khởi động, lỗi w / 'phụ thuộc'. Cách khắc phục là nhận xét các mục liên kết gắn kết fstab cho thiết lập nfs4. Tôi vẫn đang sử dụng thiết lập cũ / etc / export tốt. Tôi không biết những gì distro / phiên bản bị ảnh hưởng.

Câu trả lời:


2

Từ những gì tôi biết, NFS v4 yêu cầu tất cả các thư mục được xuất phải nằm trong một "root" duy nhất (đã fsid=0được đặt trong / etc / export). Ví dụ:

/srv/nfs              xxx.xxx.1.0/24(ro,root_squash)
/srv/nfs/usr-local    xxx.xxx.1.0/24(ro,root_squash)
/srv/nfs/fea-jobs     xxx.xxx.1.0/24(rw,root_squash)

mà sau đó được gắn kết là:

mount -t nfs4 nat149app:/usr-local /usr/local
mount -t nfs4 nat149app:/fea-jobs /var/fea/jobs

Thông thường gắn kết gắn kết được sử dụng để thiết lập /srv/nfs( /exportshoặc tương tự); ví dụ:

mount --bind /usr/local /srv/nfs/usr-local
mount --bind /var/fea/jobs /srv/nfs/fea-jobs

(đối với fstab, /usr/local /srv/nfs/usr-local none bind 0 0)

Trong cấu hình hiện tại của bạn, /usr/localđang được sử dụng làm gốc NFS ( nat149app:/usr/localchỉ được chấp nhận để tương thích; địa chỉ thực là nat149app:/) và máy chủ từ chối quyền truy cập vào mọi thứ bên ngoài nó.

Xem phần 7 - Không gian tên máy chủ NFS của RFC 3530 - NFS phiên bản 4 .


Đối với bất cứ ai nhìn xung quanh: đây là câu trả lời đúng.
sCiphre

1

Để tự khắc phục lỗi này, sau khi làm theo hướng dẫn của Ubuntu , tôi đã thực hiện

apt-get purge nfs-kernel-server
apt-get install nfs-kernel-server

5 lần trước khi tôi chỉ để lại các tệp cấu hình mặc định và nó đã hoạt động (NFSv4).

Đây là máy chủ nfs / etc / export:

/export                 172.20.50.0/24(ro,fsid=0,insecure,no_root_squash,no_subtree_check,async)
/export/companybackup   172.20.50.0/24(rw,nohide,insecure,no_root_squash,no_subtree_check,async)
/export/p1backup        172.20.50.0/24(rw,nohide,insecure,no_root_squash,no_subtree_check,async)
/export/p2backup        172.20.50.0/24(rw,nohide,insecure,no_root_squash,no_subtree_check,async)
/export/p3backup        172.20.50.0/24(rw,nohide,insecure,no_root_squash,no_subtree_check,async)

Trong xuất khẩu, no_root_squash cho phép người dùng root của máy chủ của bạn ghi vào chia sẻ, async cung cấp cho bạn IO tốt nhất (không đáng tin cậy) và phần còn lại đơn giản hóa các quyền.

và máy chủ nfs / etc / fstab:

/dev/VG/LV                 /mnt/bigLV ext4    noatime 0       0
/mnt/bigLV                 /export/companybackup   none    bind    0       0
/mnt/bigLV/backups/p1      /export/p1backup        none    bind    0       0
/mnt/bigLV/backups/p2      /export/p2backup        none    bind    0       0
/mnt/bigLV/backups/p3      /export/p3backup        none    bind    0       0

Cuối cùng, fstab của khách hàng:

172.20.50.29:/p1backup        /mnt/p1backup       nfs4    _netdev,auto,rw,hard,intr       0           0

để làm mới các mount từ fstab:

sudo mount -a
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.