Skip to content

Latest commit

 

History

History
112 lines (62 loc) · 3.06 KB

File metadata and controls

112 lines (62 loc) · 3.06 KB

问题1:

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上的一致;

两台机器:

aming01(128) 作为服务端 aming03(130) 作为客户端

在aming01上安装:nfs-utils包

# yum install -y nfs-utils

在aming02上也安装:nfs-utils包;

# yum install -y nfs-utils

在aming01上,修改配置文件/etc/exports,写入以下内容

/home/nfstestdir 192.168.222.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

语句释义:

/home/nfstestdir :共享的目录
rw: 读写
ro: 只读
sync: 同步模式,内存数据实时写入磁盘
async :非同步模式
no_root_squash: 客户端挂载NFS共享目录后,root用户不受约束,权限很大
root_squash: 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
all_squash:客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
anonuid/anongid: 和上面几个选项搭配使用,定义被限定用户的uid和gid
192.168.222.0/24:为客户端的网段;

创建nfstestdir目录,并给予777权限;

# mkdir /home/nfstestdir
# chmod 777 /home/nfstestdir/

开启nfs服务,并监听端口,端口111为其默认端口;

# systemctl start nfs

设置开机启动:

# systemctl enable nfs

查看服务端共享目录:

# showmount -e 192.168.222.128

注意:假如没有出现共享目录,有下面可能,注意排查:

1、两者通信问题;
2、把两者的防火墙关闭

挂载NFS

# mount -t nfs 192.168.222.128:/home/nfstestdir /mnt/

创建测试文件:

# cd /mnt/
# touch 111

exportps命令常用选项:

-a  全部挂载或者全部卸载
-r  重新挂载
-u  卸载某一个目录
-v  显示共享目录

在服务端上:

# exportfs -arv

这样就可以让服务器直接生效,不需要再次重启nfs服务

编辑配置文件,增加一个共享的目录

/home/nfstestdir 192.168.222.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
/tmp/ 192.168.222.130(rw,sync,no_root_squash) //新增一个共享目录,及其权限

用命令:exportfs -arv 直接生效,不用重启NFS服务

问题:

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

解决:

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

开机自动挂载

vi /etc/fstab

192.168.222.128:/data/wwwroot/bbs.aminglinux.cc/data  /data/wwwroot/bbs.aminglinux.cc/data  nfs  defaults,nfsvers=3 0 0