在启动NFS SERVER以前,首先要启动rpcbind服务(即老版本portmap服务,)不然NFS SERVER 就没法向RPC服务注册,另外,若是RPC服务从新启动,原来已注册好的NFS端口数据就会丢失,所以,此时RPC服务管理的NFS程序也须要从新启动以向PRC端口注册,特别提示:通常修改NFS配置文件后,是不须要重启NFS的。直接在命令行实行/etc/init.d/nfs reload 或exportfs -rv 便可使修改的/etc/exports生效。centos
2、NFS系统守护进程服务器
· nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否可以登陆服务器;网络
· mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利经过nfsd登陆NFS服务器后,在使用NFS服务所提供的文件前,还必须经过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。async
· Rpcbind:主要功能是进行端口映射工做。当客户端尝试链接并使用RPC服务器提供的服务(如NFS服务)时rpcbind会将所管理的与服务对应的端口提供给客户端,从而使客户能够经过该端口向服务器请求服务。tcp
3、NFS服务器的配置ide
NFS服务器的配置相对比较简单,只须要在相应的配置文件中进行设置,而后启动NFS服务器便可。ui
NFS的经常使用目录spa
/etc/exports NFS服务的主要配置文件命令行
/usr/sbin/exportfs NFS服务的管理命令orm
/usr/sbin/showmount 客户端的查看命令
/var/lib/nfs/etab 记录NFS分享出来的目录的完整权限设定值
/var/lib/nfs/xtab 记录曾经登陆过的客户端信息
a. 输出目录:
输出目录是指NFS系统中须要共享给客户机使用的目录;
b. 客户端:
客户端是指网络中能够访问这个NFS输出目录的计算机
客户端经常使用的指定方式
· 指定ip地址的主机:192.168.21.111
· 指定子网中的全部主机:192.168.21.0/24 192.168.21.0/255.255.255.0
· 指定域名的主机:www.nfsst.cn
· 指定域中的全部主机:*.nsfst.cn
· 全部主机:*
c. 选项:
选项用来设置输出目录的访问权限、用户映射等。
NFS主要有3类选项:
访问权限选项
· 设置输出目录只读:ro
· 设置输出目录读写:rw
用户映射选项
· all_squash:将远程访问的全部普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
· no_all_squash:与all_squash取反(默认设置);
· root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
· no_root_squash:与rootsquash取反;
· anonuid=xxx:将远程访问的全部用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
· anongid=xxx:将远程访问的全部用户组都映射为匿名用户组帐户,并指定该匿名用户组帐户为本地用户组帐户(GID=xxx);
其它选项
· secure:限制客户端只能从小于1024的tcp/ip端口链接nfs服务器(默认设置);
· insecure:容许客户端从大于1024的tcp/ip端口链接服务器;
· sync:将数据同步写入内存缓冲区与磁盘中,效率低,但能够保证数据的一致性;
· async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
· wdelay:检查是否有相关的写操做,若是有则将这些写操做一块儿执行,这样能够提升效率(默认设置);
· no_wdelay:如有写操做则当即执行,应与sync配合使用;
· subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
· no_subtree:即便输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样能够提升效率;
4.服务端配置
a.先查看是否安装nfs和rpcbind软件包
没有就直接yum安安装包(centos 6.0 版本rpcbind 5版本protmap);
#yum install -y nfs-utils rpcbind
查看是否安装完所需安装包;
b.设置nfs启动方式
Chkconfig nfs on
Chkconfig rpcbind on
c.配置文件路径
/etc/exports
/etc/exports文件配置格式为:
Nfs 共享目录 客户端ip地址或者ip端(权限)
实例:
格式 |
共享目录 客户ip或ip段(参考1,参考2...*表明全部主机)(权限) |
配置一 |
/xp 192.168.21.0/24(rw,sync) |
配置二 |
/xp *(rw,sync,all_squash,anonuid=2000,anongid=2000)适合多客户共享一个目录 |
注释#
配置例一(rw,sync)表示容许共享目录读写,sync表示数据同步写入内存和硬盘中
配置例二(rw,sync,all_squash,anonuid=2000,anonguid=2000)全部用户访问都把uid和gid变为2000
d.关于权限的分析
1. 客户端链接时候,对普通用户的检查
a. 若是明确设定了普通用户被压缩的身份,那么此时客户端用户的身份转换为指定用户;
b. 若是NFS server上面有同名用户,那么此时客户端登陆帐户的身份转换为NFS server上面的同名用户;
c. 若是没有明确指定,也没有同名用户,那么此时 用户身份被压缩成nfsnobody;
2. 客户端链接的时候,对root的检查
a. 若是设置no_root_squash,那么此时root用户的身份被压缩为NFS server上面的root;
b. 若是设置了all_squash、anonuid、anongid,此时root 身份被压缩为指定用户;
c. 若是没有明确指定,此时root用户被压缩为nfsnobody;
d. 若是同时指定no_root_squash与all_squash 用户将被压缩为 nfsnobody,若是设置了anonuid、anongid将被压缩到所指定的用户与组
配置以下:
Service rpcbind start
Service nfs start
五.客户端配置
#yum -y install rpcbind nfs-utils(客户端也须要这个安装包,可是不须要开启,开启rpcbind)
相关命令
Showmount -e ip 查看共享的服务目录
Rpcinfo -p 查看nfs想rpc注册那些端口
mount |grep nfs 查看挂载nfs信息
Chkconfig nfs on 自动开启nfs
Chkconfig rpcbind on 自动开启rpc
注意:通常修改配置事后直接使用/etc/init.d/nfs reload
客户端提示错误1:
(大概意思就是丢失代码或者辅助程序,其余错误,极可能须要辅助程序。。。)
重装#yum -y install rpcbind nfs-utils