网络文件系统NFS

1、介绍:

Network File System,

由Sun公司在1984年开发,目前NFS被普遍使用。

NFS4.0以前的版本在性能上存在瓶颈,NFS4.1已经是pNFS了,即并行NFS???

目的是在安装UNIX计算机之间实现磁盘文件共享,构建于IP协议之上,是标准的C/S架构,NFS服务器输出(export)让别人共享的目录,多个客户端挂载(mount)各自感兴趣的目录,并加载到本地文件空间当中,为于VFS(虚拟文件系统)之下,这样就像访问本地硬盘上的文件那样方便简单了。如下图:

2、搭建

centos7默认nfs服务器已经安装,只需配置nfs服务器就好。若没有可以yum groupinstall "NFS file server",设置自起和启动服务。

配置:

红帽和Ubuntu对nfs服务器的配置都一样,把输出export的目录加到文件/etc/exports中,一行表示一个export dir,格式如下:

被输出目录  客户主机1(参数1,参数2,...)  客户主机2(参数1, 参数2,...)  .....

客户主机可以为具体ip,可以为域名且域名中可以使用通配符*   eg   *.moodisk.com, IP网络,指明网段  eg  192.168.10.0/24    或者   192.168.10.0/255.255.255.0

参数为权限,可以不加,默认为ro(只读),sync(到硬盘反馈),subtree_check(强制检查父目录的权限),no_all_squash(保留共享文件的UID和GID)

rw读写,async数据到nfs内存就反馈客户端写成功,no_subtree_check不检查父目录权限,root_squash把客户端root账号的uid/gid映射成服务器上的匿名账号,no_root_squash, all_squash, anoomuid=150  anongid=100

ro                      只读访问 
rw                      读写访问 
sync                    所有数据在请求时写入共享 
async                   NFS在写入数据前可以相应请求 
secure                  NFS通过1024以下的安全TCP/IP端口发送 
insecure                NFS通过1024以上的端口发送 
wdelay                  如果多个用户要写入NFS目录,则归组写入(默认) 
no_wdelay               如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。 
hide                    在NFS共享目录中不共享其子目录 
no_hide                 共享NFS目录的子目录 
subtree_check           如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认) 
no_subtree_check        和上面相对,不检查父目录权限 
all_squash              共享文件的UID和GID映射匿名用户anonymous,适合公用目录。 
no_all_squash           保留共享文件的UID和GID(默认) 
root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认) 
no_root_squas           root用户具有根目录的完全管理访问权限 
anonuid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的UID 
anongid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的GID 

nfs和mount详细说明见:http://www.cnblogs.com/wspblog/p/5673924.html#_label0

systemctl reload nfs  每次修改配置文件都要重载,配置不对会报错!!

3、连接挂载

systemctl start nfs

showmount -e 172.30.0.133在客户端查看nfs服务器共享的目录

showmount -a 172.30.0.133不知道在show啥???

mount -t  nfs <NFS服务器目录>:<被输出目录> <本地空目录>   或者 mount.nfs   还可以加 -o v4.1

4、报错解释:

[lixn@bogon ~]$ showmount -e 172.30.0.133
1) clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)服务器端口问题,关掉firewall,开放哪几个端口就可以呀?怎么设置端口???

2) mount.nfs: access denied by server while mounting 172.30.0.133:/dev/nfs/share1被服务器拒绝

3)[root@bogon mnt]# mount.nfs -o v4.1 172.30.0.133:/dev/nfs/share1 /mnt/nfs/
mount.nfs: mounting 172.30.0.133:/dev/nfs/share1 failed, reason given by server: No such file or directory一般是命令中的目录不对

3)写配置文件时exports 写/dev/nfs/share  reload报错,改为/opt/share就正常,这是为什么????

4)对配置了rw权限的nfs目录: mkdir: cannot create directory ‘a’: Permission denied???不能写???为什么

对配置为默认(or)权限的nfs目录:touch: cannot touch '111': Read-only file system

原文地址:https://www.cnblogs.com/daduryi/p/6641516.html