问题: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