一、什么时NFS
NFS(Network File System)——网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样,可以做到实时共享。
二、安装步骤
1.客户端和服务端都需要安装重启这两个服务(centos6.5系统自带这两个组件)
安装和配置依赖服务:
# yum ‐y install rpcbind
# service rpcbind start
# chkconfig --add rpcbind
# chkconfig rpcbind on
安装NFS服务及客户端
# yum ‐y install nfs‐utils
启动停止NFS
# service NFS { start | stop | restart }
设置NFS服务开机自启动
# chkconfig nfs on
2.服务端(共享本机文件夹)
# vim /etc/exports
<输出目录> 客户端(共享选项)
共享目录:服务端共享的目录,比如共享/share/upload ,就写/share/upload
客户端: 可以是IP地址,也可以是地址段或者域名,例如:
IP地址: 192.168.1.100 # 客户端只能是IP为192.168.1.100的主机
地址段: 192.168.1.0/ # 客户端是192.168.1.0/这个网段的所有主机
模糊匹配ip或者域名:92.168.1* 或 www.xing*
共享选项:
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
no_root_squash:只有root用户有权限挂载
rw:read-write,可读写;
ro:read-only,只读;
sync:文件同时写入硬盘和内存;
async:文件暂存于内存,而不是直接写入内存;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。
例子:
/share/upload 192.168.1.100(insecure,rw,sync,no_root_squash)
重新加载共享文件(让共享生效)
# exportfs -rv ##重新将设定加载
2.客户端(挂载共享文件夹到本机)
通常,默认通过mount的方式挂载,语法如下:
# mount ‐t nfs server_IP:sharedirectory localdirectory
例如:
# mount ‐t nfs 192.168.1.100:/share/upload /srv/www/app/upload
也可以通过写入/etc/fstab的方式进行开机自动挂载
# vim /etc/fstab
192.168.1.100:/share/upload /srv/www/app/upload
3.取消挂载和取消共享目录
取消挂载
umount -f /srv/www/app/HongTa/HongTa_trade_web/WebRoot/upload 取消共享
exportfs –a
NFS服务中还有一个常用的命令那就是exportfs,它的常用选项为[-aruv]。
-a :全部挂载或者卸载;
-r :重新挂载;
-u :卸载某一个目录;
-v :显示共享的目录;
4.挂载故障排除
a.客户端没有安装nfs‐utils
b.如果服务端开启了防火墙,需要在服务端防火墙配置中设置放行TCP 2049端口
c.pemission denied(用户没有权限),可参考