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