NFS(network file system)
盗用同胞的原理图一张共大家参考
下面通过简单介绍下nfs的重要点。
Daemons(进程):nfs ,rpc.nount ,rpc.statd,lockd,rpm.quotad
scripts:nfs(nfsd,rpc.mountd,rpc.quotad);nfslock(rpc.statd,lockd)
ports(使用的端口):nfsd tcp&udp 2049 ,others semi-random(found through portmap[tcp&udp 111] )
/etc/exports //nfs的主配置文件
/etc/sysconfig/nfs 从配置文件
方便理解,我们用一个例子来阐释nfs的安装、配置及使用方法
假设nfs-server-ip:10.5.22.205
nfs-client-ip:10.5.10.11
nfs-server共享目录为/share
nfs-client挂载目录为/nfs
服务器端需要做的工作
1.安装nfs和portmap
#yum install -y nfs-util portmap
2.编辑配置文件
#vim /etc/exports // 默认是空
/share 10.5.10.x/255.255.255.0(rw,sync) //nfs服务器共享share目录,可供10.5.10.x/24访问,权限可同步写入
#exportfs //查看服务器端共享的文件及访问权限
#exportfs -rv //使更改 /etc/exports后文件生效
#exportfs -a (export or unexport all directories)
-v (be verbose)
-u (unexport one or more directories)
-r (reexport all directories)
//这些选项通常都是组合使用
-av 导出所有
-au 不导出所有
-ar 重新导出所有
#showmount -a //罗列nfs-sever哪些目录被哪些nfs-client挂载使用
#showmount -d //只罗列nfs-server哪些目录被挂载使用
#service portmap start (/etc/rc.d/init.d/portmap start)
#service nfs start (/etc/rc.d/init.d/nfs start) 且启动顺序不能变,否则会出现如下错误。
3.客户端使用
#showmount -e 10.5.22.205 //查看nfs-server-ip 上共享的所有目录
#mount 10.5.22.205:/share /mnt //挂载nfs-server下共享的/share目录到nfs-client的/mnt
4.若nfs-server-owner 的uid和nfs-client 的uid 相同则nfs-client-owner 拥有nfs-server-owner权限
使用集中认证可解决(集中认证方式有nis,ldap,kerberos)
5.客户端使用nfs-server共享文件方法:
①.写入/etc/fstab 格式如下:
nfs-server-ip:/share /nfs nfs defaults 0 0
②./etc/init.d/netfs 是个脚本
③.autofs
④.manual mount 手动挂载
为了方便iptables管理nfs服务,优先选择将rpc开放的半随机端口固定,格式如下:
#vim /etc/sysconfig/nfs
LOCKD_TCPPORT="4004"
LOCKD_UDPPORT="4004"
MOUNTD_PORT="4002"
STATD_PORT="4003"
RQUOTAD_PORT="4005"
STATD_OUTGOING_PORT="4006",上述端口可自定义但必须未被使用,
如何确定某端口未被使用
#grep xxxx /etc/services
#rpcinfo -p 查看修改后的ports
#getsebool -a |grep nfs查看selinux中nfs各项的值
学习过程中遇见错误一只,如下图所示
原因是要先开启portmap 服务再开启nfs 服务
#service portmap start
#service nfs start
快乐学习,快乐分享。