NFS가 잘못된 공유를 마운트했습니다.

NFS가 잘못된 공유를 마운트했습니다.

Raspbian을 실행하는 세 개의 Raspberry Pi가 있습니다. 하나는 NFS NAS로 사용되고 나머지 두 개는 NGINX를 실행하는 로드 밸런싱 웹 서버입니다. 구성은 다음과 같습니다.

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은 동일합니다(실제로 두 웹 서버 모두 ansible 구성을 사용하여 동일한 구성을 갖습니다). 그러나 WEB1은 두 마운트 지점을 모두 올바르게 마운트하는 반면 WEB2는 nas:/drupal 디렉토리를 /usr/share/nginx/html/drupal 및 /usr/share/nginx/html/wordpress에 마운트합니다. 즉, ls /usr/share/nginx/html/wordpress를 수행하면 nas:/wordpress가 아닌 nas:/drupal에 있는 내용을 얻습니다.

두 시스템 모두에서 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두 클라이언트 모두 제대로 작동합니다.

관련 정보