实现环境
[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就会卡住。
作者知识有限,望给位给予指正;谢谢。
原文:http://11265257.blog.51cto.com/11255257/1769961