我有三个运行 Raspbian 的 Raspberry Pi。一个用作 NFS NAS,另外两个是运行 NGINX 的负载平衡 Web 服务器。配置是这样的:
在 NAS (10.34.0.40) 上:
root@nas:~# cat /etc/exports
/drupal 10.34.0.10(rw,sync,no_root_squash,no_subtree_check) 10.34.0.20(rw,sync,no_root_squash,no_subtree_check,fsid=0)
/wordpress 10.34.0.10(rw,sync,no_root_squash,no_subtree_check) 10.34.0.20(rw,sync,no_root_squash,no_subtree_check,fsid=0)
在WEB1(10.34.0.10)服务器上:
root@web1:~# cat /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
nas:/drupal /usr/share/nginx/html/drupal nfs hard,intr 0 0
nas:/wordpress /usr/share/nginx/html/wordpress nfs hard,intr 0 0
在WEB2(10.34.0.20)服务器上:
root@web2:~# cat /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
nas:/drupal /usr/share/nginx/html/drupal nfs hard,intr 0 0
nas:/wordpress /usr/share/nginx/html/wordpress nfs hard,intr 0 0
这两个 fstab 是相同的(事实上,两个 Web 服务器具有使用 ansible 配置的相同配置)。但是,当 WEB1 正确挂载两个挂载点时,WEB2 将 nas:/drupal 目录挂载到 /usr/share/nginx/html/drupal 和 /usr/share/nginx/html/wordpress。换句话说,当我执行 ls /usr/share/nginx/html/wordpress 时,我得到的是 nas:/drupal 上的内容,而不是 nas:/wordpress 上的内容。
如果我在两个系统上执行 df ,我会得到:
网页1:
root@web1:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 30G 4.8G 24G 18% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 463M 0 463M 0% /dev/shm
tmpfs 463M 6.3M 457M 2% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 463M 0 463M 0% /sys/fs/cgroup
/dev/mmcblk0p1 60M 21M 40M 35% /boot
nas:/drupal 15G 3.8G 11G 28% /usr/share/nginx/html/drupal
nas:/wordpress 15G 3.8G 11G 28% /usr/share/nginx/html/wordpress
tmpfs 93M 0 93M 0% /run/user/1001
网络2:
root@web2:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 30G 3.2G 25G 12% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 463M 0 463M 0% /dev/shm
tmpfs 463M 6.3M 457M 2% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 463M 0 463M 0% /sys/fs/cgroup
/dev/mmcblk0p1 60M 21M 40M 35% /boot
nas:/drupal 15G 3.8G 11G 28% /usr/share/nginx/html/drupal
tmpfs 93M 0 93M 0% /run/user/1001
所以看起来 WEB2 没有挂载 nas:/wordpress 共享。
我应该注意到 nas:/drupal 和 nas:/wordpress 具有完全相同的权限。
谁能告诉我这是怎么回事?
答案1
问题是你的fsid=0
价值。
如果我们查看这些exports
条目,我们可以将它们分为两个主机:
10.34.0.10(rw,sync,no_root_squash,no_subtree_check)
10.34.0.20(rw,sync,no_root_squash,no_subtree_check,fsid=0)
因此,对于.10
客户端而言,导出将具有不同的 FSID,但在.20
客户端上,两个共享将显示为具有相同的 FSID。
因此,.10
客户端将正确地看到两个导出,但.20
会感到困惑。
删除该,fsid=0
值,两个客户端都应该正常工作。