问题:lvs情况下,A机器上传了一张图片,结果B机器访问的时候就提示404.

NFS,Network File System。网络文件系统,即通过网络,对在不同主机上的文件进行共享。

NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本,更新比较慢其实4.1是从2010年就开始使用了。

NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。

NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致;

实验部署:
192.168.85.129—服务端
192.168.85.120—客户端

[root@linux2019_01 ~]# yum install -y nfs-utils
[root@linux2019_01 ~]# vim /etc/exports
/data/wwwroot/bbs.aibenwoniu.xyz/data/  192.168.85.0/24(rw,sync,all_squash,no_root_squash)

[root@linux2019_01 ~]#  systemctl start nfs
[root@linux2019_01 data]# showmount -e 192.168.85.129
Export list for 192.168.85.129:
/data/wwwroot/bbs.aibenwoniu.xyz/data 192.168.85.0/24

参数说明:

  • /data/wwwroot/bbs.aibenwoniu.xyz/data/ :共享的目录
  • rw: 读写
  • ro: 只读
  • sync: 同步模式,内存数据实时写入磁盘
  • async :非同步模式
  • no_root_squash: 客户端挂载NFS共享目录后,root用户不受约束,权限很大
  • root_squash: 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
  • all_squash:客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
  • anonuid/anongid: 和上面几个选项搭配使用,定义被限定用户的uid和gid
  • 192.168.85.0/24:为客户端的网段;
[root@linux2019_03 ~]# yum install -y nfs-utils
[root@linux2019_03 ~]# mv data data_local; mkdir data; chown php-fpm data
[root@linux2019_03 ~]#  systemctl start nfs
[root@linux2019_03 ~]# mount -t nfs 192.168.85.129:/data/wwwroot/bbs.aibenwoniu.xyz/data/ /data/wwwroot/bbs.aibenwoniu.xyz/data/
[root@linux2019_03 ~]# df -Th
文件系统                                             类型      容量  已用  可用 已用% 挂载点
/dev/sda3                                            xfs        16G  8.1G  7.8G   52% /
devtmpfs                                             devtmpfs  980M     0  980M    0% /dev
tmpfs                                                tmpfs     991M     0  991M    0% /dev/shm
tmpfs                                                tmpfs     991M  9.6M  981M    1% /run
tmpfs                                                tmpfs     991M     0  991M    0% /sys/fs/cgroup
/dev/sda1                                            xfs       197M  105M   93M   53% /boot
tmpfs                                                tmpfs     199M     0  199M    0% /run/user/0
192.168.85.129:/data/wwwroot/bbs.aibenwoniu.xyz/data nfs4       16G  8.1G  7.8G   52% /data/wwwroot/bbs.aibenwoniu.xyz/data
[root@linux2019_03 ~]# ll  /data/wwwroot/bbs.aibenwoniu.xyz/data
总用量 12
drwxr-xr-x  2 php-fpm root      23 1月  25 16:00 addonmd5
drwxr-xr-x 11 php-fpm root     150 1月  25 16:00 attachment
drwxr-xr-x  2 php-fpm root      23 1月  25 16:00 avatar
drwxr-xr-x  2 php-fpm php-fpm    6 1月  25 16:01 backup_a9937a
drwxr-xr-x  2 php-fpm root    4096 3月  22 23:31 cache
drwxr-xr-x  3 php-fpm php-fpm   39 1月  25 16:01 diy
drwxr-xr-x  2 php-fpm root      23 1月  25 16:00 download
-rw-r--r--  1 php-fpm root       0 1月  25 15:58 index.htm
-rw-r--r--  1 php-fpm php-fpm    0 1月  25 16:01 install.lock
drwxr-xr-x  2 php-fpm root      45 1月  25 15:58 ipdata
drwxr-xr-x  2 php-fpm root      97 3月  22 23:31 log
drwxr-xr-x  2 php-fpm root      23 1月  25 16:00 plugindata
-rw-r--r--  1 php-fpm php-fpm    0 3月  22 23:42 sendmail.lock
-rw-r--r--  1 php-fpm root     772 1月  25 15:58 stat_setting.xml
drwxr-xr-x  2 php-fpm php-fpm   79 1月  25 16:01 sysdata
drwxr-xr-x  2 php-fpm root    4096 3月  22 23:31 template
drwxr-xr-x  2 php-fpm root      23 1月  25 16:01 threadcache
-rw-r--r--  1 php-fpm php-fpm    0 1月  25 16:01 update.lock

测试:可以在129机器上的共享目录上创建一个文件,去130机上的挂在目录上查看是否有相同的问题件即可—测试成功

exportps命令常用选项:
-a  全部挂载或者全部卸载
-r  重新挂载
-u  卸载某一个目录
-v  显示共享目录
常用搭配:exportfs -arv #可以让服务器直接生效,不需要再次重启nfs服务

PS:问题:

如果使用NFS4版本,可能会有客户端挂载NFS后,写入新文件的属主和数组都是nobody,即使我们指定了anonuid anongid

解决:

客户端在挂载的时候加个-o nfsvers=3

设置开启自动挂载:

[root@linux2019_03 ~]# vim /etc/fstab 
192.168.85.129:/data/wwwroot/bbs.aibenwoniu.xyz/data /data/wwwroot/bbs.aibenwoniu.xyz/data nfs defaults,nfsvers=3 0 0