一、NFS软件
要部署NFS服务,需要安装下面的软件安装包
nfs-utils:服务的主程序
rpcbind:(Centos6.x下的系统用,Centos5.x下用portmap)
NFS可以被十位一个RPC服务,在启动任务一个RPC程序之前,需要做好端口和功能的对应映射工作,这
个映射工作就用rpcbind服务来完成,所以,提供NFS之前必须要启动rpcbind服务。
二、NFS服务端的配置
1)修改主机名
hostname nfsserver
vim /etc/sysconfig/network 下的hostname改为nfsserver
vim /etc/hosts 在127.0.0.1最后添加nfsserver
2)检查并安装NFS服务
rpm -qa nfs-utils rpcbind
yum -y insstall nfs-utils rpcbind
rpm -qa nfs-utils rpcbind
3)启动服务并检查
先启动rpcbind,检查,在启动nfs,检查
/etc/init.d/rpcbind start
/etc/init.d/rpcbind status
ps -ef|grep rpcbind
rpcinfo -p localhost
/etc/init.d/nfs start
/etc/init.d/nfs status
rpcinfo -p localhost 看是否已经映射了nfs
4)设置开机启动,检查
chkconfig rpcbind on
chkconfig --list rpcbin
chkconfig nfs on
chkconfig --list nfs
也可以将启动命令追加到/etc/rc.local,注意先要启动rpcbind
5)在服务端根下创建一个共享目录/shnne,并给权限
mkdir /shnne
ll /shnne
chown -R nfsnobody.nfsnobody /shnne
注:nfsnobody是all_squash默认使用的用户,可以自己定义用户来给共享目录权限
6)在配置文exports件配置共享目录
vim /etc/exports
编辑
#share shnne by who at time 写脚本或者配置文件,最好加注释,方便查看
/shnne 192.168.1.0/24(rw,sync)
cat /etc/exports 检查配置文件
/etc/init.d/nfs reload 平滑重启
showmount -e localhost 通过本地检查是否共享成功
注:/var/lib/nfs/etab 可以查看默认使用的exports选项
三、NFS客户端的配置
1)修改主机名
hostname nfsclient
vim /etc/sysconfig/network 下的hostname改为nfsclient
vim /etc/hosts 在127.0.0.1最后添加nfsclient
2)安装rpcbind服务即可
yum -y install rpcbind
/etc/init.d/rpcbind start
/etc/init.d/rpcbind status
showmount -e 192.168.1.103 测试远程
mount -t nfs 192.168.1.103:/shnne /mnt 挂载
开机挂载
echo "mount -t nfs 192.168.1.103:/shnne /mnt" >> /etc/rc.local
四、详解
/etc/exports 默认为空,NFS服务的主配置文件,以行为单位
/usr/sbin/exportfs NFS服务的管理命令 -rv==/etc/init.d/nfs reload
/usr/sbin/showmount 查看客户端挂载结果,可以在服务端和客户端检查
/var/lib/nfs/etab NFS配置文件的完整参数设定文件
(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_l
ocks,acl,anonuid=65534,anongid=65534,sec=sys,rw,root_squash,no_all_squash)
NFS生产中的技巧
1)all_squash 把所有的客户端都压缩为匿名用户
2)设置anonuid和anongid,指定uid和gid用户
客户端挂载的优化
mount -t nfs -o nosuid,noexec,rsize=1024,wsize=1024,rw 192.168.1.103:/shnne /mnt
加上这两个rsize和wsize参数,传输速率就不一样了
3)内核优化
/etc/sysctl.conf
最后添加
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
sysctl -p 生效