查看系统版本:
[root@Server1 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@Server1 ~]# uname -r
3.10.0-327.el7.x86_64
[root@Server1 ~]# uname -m
x86_64
[root@Server1 ~]# uname -n
Server1
[root@Server1 ~]# uname -a
Linux Server1 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
===================
NFS可以被视为时RPS的子程序,先启动RPS,再启动NFS
systemctl start rpcbind
[root@Server1 ~]# systemctl start nfs
[root@Server1 ~]# rpcinfo -p localhost ##查看rpc服务向rpcbind注册的服务端口信息
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
...
#分别是程序的序号,版本,协议,端口和什么程序。
NFS服务的主要任务时进行文件系统的共享,文件系统的共享和权限有关。所以NFS服务器启动时最少需要两个daemons,一个管理CLient是否能登录主机,另一个管理是否能够取得权限。
1、nfsd(rpc,nfsd)
这个daemon的主要功能时管理Client端是否能够登入主机,其中还包含登入者的ID判别。
2、rpc.mountd
这个daemon的主要功能则是管理NFS的文件系统。当Client端顺利通过rpc.nfsd登入主机后,再它可以使用NFS服务器提供数据之前,还会经过文件使用权限的认证程序。它会去读取NFS的配置文件/etc/exports来对比Client的权限。
工作场景开机自启可以放到rc.local
NFS配置文件exports的格式:
NFS共享的目录 NFS客户端地址1(参1,参2....) 客户端地址1
#各项参数含义:
NFS共享的目录:为NFS服务端要共享的实际目录,要用绝对路径
NFS客户端地址:为NFS服务端授权的可访问的共享目录的NFS客户端地址,可以为单独的IP地址或者主机名,域名等。也可以为网段地址,亦可以用“*”来支持所有客户端服务器访问。这里所谓的客户端一般指前端的业务服务器。
参数集:对授权的客户端的访问权限设置。
案例
服务端:启动服务RPC和NFS之后,配置/etc/exports
[root@Server1 bbs]# vim /etc/exports
#shared bbs dir to 192.168.202.0/24
/date/bbs 192.168.202.0/24(rw,sync)
##将/date/bbs共享给192.168.202.0网段
mkdir /date/bbs -p
touch 123
客户端:启动rpcbind
查看是否有可挂载的文件目录
[root@Server2 mnt]# showmount -e 192.168.202.101
Export list for 192.168.202.101:
/date/bbs 192.168.202.0/24
#表示来自192.168.202.101的/date/bbs可挂载
mount -t nfs 192.168.202.101:/date/bbs /mnt
#-t表示通过nfs的格式挂载
之后切换到mnt下即可查看,需要说明的是,挂载目录的权限有两个,nfs系统的权限与系统目录本身的权限。