实现环境

[root@backup ~]# cat /etc/redhat-release 

CentOS release 6.7 (Final)

[root@backup ~]# uname -r                

2.6.32-573.el6.x86_64

[root@backup ~]# uname -i

x86_64

一 安装;

yum install nfs-utils rpcbind

#因为nfs开启后应用的端口是随机的,所以需要借助rpc将nfs当前应用的端口告知客户端。

#客户端同样需要下载rpc和nfs,但是客户端不需要开启nfs。

#若客户端未安装nfs

[root@nfs01 backup]# rpm -ql nfs-utils|grep bin

/sbin/mount.nfs

/sbin/mount.nfs4

/sbin/nfs_cache_getent

/sbin/rpc.statd

/sbin/umount.nfs

/sbin/umount.nfs4

/usr/sbin/exportfs

/usr/sbin/mountstats

/usr/sbin/nfsidmap

/usr/sbin/nfsiostat

/usr/sbin/nfsstat

/usr/sbin/rpc.gssd

/usr/sbin/rpc.idmapd

/usr/sbin/rpc.mountd

/usr/sbin/rpc.nfsd

/usr/sbin/rpc.svcgssd

/usr/sbin/rpcdebug

/usr/sbin/showmount

/usr/sbin/sm-notify

/usr/sbin/start-statd

可能出现在客户端没法挂载的情况。

二 配置相关文件;

vim /etc/exports

/data 172.16.1.41(rw,sync)

/etc/exports文件内容格式:

<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]  

可以用man exports查看文件内容格式; 

#其中扩好中选项;可以用来优化nfs

下面列一些下关的选项参数;

设置输出目录只读: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服务器也不检查其父目录的权限,这样可以提高效率;

  

三  查看是否可以挂载

showmount -e localhost

四 更改共享目录的属主和属组

chown nobody.nobody /data

#远程登陆nfs默认的能录用户为nobody,在此结合服务端配置参数理解。

自此服务端配置完成。  

五 客户端挂载;

先用showmount -e 172.16.1.31服务端IP   查看挂载信息。

六 挂载;

mount -t nfs 172.16.1.31:/data  /mnt

#在此客户端也有相应的nfs挂咋参数和mount -o 相关参数可以配置,可以优化nfs。

七 查看挂载信息、

命令df -h /mount/cat /proc/mounts 

#在此最好使用后面两个命令,因为当服务端挂了,df -h就会卡住。



作者知识有限,望给位给予指正;谢谢。