centos6下面安装配置nfs
服务端: 1. 先安装: #y m -y install nfs- tils rpcbind 关防火墙 #chkconfig iptables off 2. 建立挂载的目录,并且挂载目录 #mkdir optcentos6 #cd optcentos6 #mkdir thisisnfsfile #vi etcexports 添加一行:optcentos6 192.168.61.*(ro,no_root_sq ash) 可以这么写:optcentos6 **(rw,sync,no_root_sq ash) 参考韦东山视频 备注: optcentos6表示nfs共享的目录 192.168.1.*的ip可以访问,访问权限是自读,root 用户 3. #chkconfig nfs on #设定nfs在各等级为on,"各等级"包括2、3、4、5等级 4. #etcinit.drpcbind start #启动rpcbind服务 5. #etcinit.dnfs start #启动nfs服务 starting nfs services: [ ok ] starting nfs q otas: [ ok ] starting nfs mo ntd: [ ok ] starting nfs daemon: [ ok ] 客户端: 1. 安装 #y m install nfs- tils rpcbind 关防火墙 #chkconfig iptables off 2. 查看是否能访问nfs服务: #showmo nt -e  export list for : optcentos6 192.168.61.* 3. #mkdir optcentos6 #mo nt -t nfs :optcentos6 optcentos6 #ls optcentos6 thisisnfsfile 4. 网上还有讲在"客户端配置开机自动挂载",但是我没有进行如下操作,重启也可以访问nfs #vi etcfstab 添加: :optcentos6 optcentos6 nfs nodev,ro,rsize=,wsize= 0 0  参考  nfs安装配置及常见问题、etcexports配置文件、showmo nt命令 1,服务器端软件:安装nfs- tils和portmap(rpcbind) nfs- tils: 提供rpc.nfsd 及  ntd这两个nfs daemons的套件 portmap: nfs其实可以被看作是一个rpc server program,而要启动一个rpc server program,都要做好port的对应工作,而且这样的任务就是由portmap来完成的。通俗的说portmap就是用来做port的mapping的。nfs需要启动的daemons:参考nfs daemonspc.nfsd:主要复杂登陆权限检测等 必须 portmap:处理rpc程序客户端和服务器端的端口对应 必须  ntd:负责nfs的档案系统,当client端通过rpc.nfsd登陆server后,对clinet存取server的文件进行一系列的管理 必须 lockd:处理通过rpc包的锁定请求 statd:为nfs锁定服务提供crash恢复功能 rq otad:处理当用户通过nfsmo nt到远程服务器时的配额 守护进程启动顺序:rpc.portmap,  ntd, rpc.nfsd, rpc.statd, rpc.lockd (新版本会自动跟着nfsd启动起来), rpc.rq otad nf服务器端命令:y m install nfs- tils portmap chkconfig rpcbind on #chkconfig:更新和查询各运行级别的系统服务 chkconfig nfs on service rpcbind start service nfs start exportfs命令:如果我们在启动了nfs之后又修改了etcexports,是不是还要重新启动nfs呢？这个时候我们就可以用exportfs命令来使改动立刻生效,该命令格式如下: exportfs [-ar v] -a :全部mo nt或者 nmo nt etcexports中的内容 -r :重新mo nt etcexports中分享出来的目录 - : mo nt 目录 -v :在 export 的时候,将详细的信息输出到屏幕上。showmo nt命令:显示nfs服务器的挂载信息。showmo nt -e [nfs-server]:显示指定的nfs server上export出来的目录,不指定后面ip时查看的是本机作为nfs server时,对外共享的目录。。rpcinfo -p命令:显示rpc信息 -p参数:用rpc协议来探测主机host上使用的rpcbind,并显示所有已注册的rpc程序。nfsstat命令:查看nfs的运行状态,对于调整nfs的运行有很大帮助 过程中出现的问题解决: 1, 通过y m或者rpm安装完portmap后,发现执行命令service portmap start时报如下错误:portmap: nrecognized service。 centos6(lin x kernel 2.6.32)中,portmap已经被rpcbind代替了,仔细查看安装信息就会发现,执行命令y m install portmap时安装的就是rpcbind。安装完成后也可以通过命令:y m whatprovides portmap来查看详细信息。 2, 客户端挂载时,报错误mo nt clnt dp_create: rpc: port mapper fail re - rpc: unable to receive。1,通过命令rpcinfo -p来查看portmap服务时候正常启动以及相应的端口(默认111) 2,检查etcsysconfigiptables防火墙设置,允许tcp, dp的111端口访问,然后service iptables restart 3,检查etchosts.deny,etchosts.allow看客户端连接是否被阻止了 3, 客户端执行命令showmo nt -e nfs-server时,报错误:mo nt clnt dp_create: rpc: program not registered。 nfs、rpcbind服务没有启动,使用chkconfig把nfs、rpcbind加到系统服务中并用service来启动 或者在etchosts.allow中添加允许客户端访问的规则 all: 4, 客户端执行命令showmo nt -e nfs-server时,报错误: nt export: rpc: unable to receive； errno = no ro te to host配置文件:etcsysconfignfs 找到nfs服务相关端口设置的地方,并移除注释后,在iptables防火墙设置中指定允许相应端口的udp,tcp流通过。 #mountd_port=892 #statd_port=662 #lockd_tcpport= #lockd_udpport= iptables -a input -p tcp --dport 662 -m state --state new -j accept iptables -a input -p udp --dport 661 -m state --state new -j accept 5, showmo nt -e nfs-server成功,正式挂载时报错:mo nt: mo nt to nfs server  failed: system error: no ro te to host.这是由于nfs服务的默认端口2049被防火墙阻塞了,和上面类似修改iptables允许2049端口通过 6, showmo nt -e nfs-server成功,正式挂载时报错:mo nt: mo nt to nfs server  failed: timed o t (retrying). 编辑etcsysconfigiptables时,相关端口的tcp端口允许通过,而 dp不允许。其他可能的原因参考:mo nt command fails with nfs server failed error. disable name look p req ests from nfs server to a dns server. or nfs version sed by the nfs client is other than version 3. 7,exports配置文件中目录权限属性设置为rw(默认为root_sq ash),但是在客户端mo nt目录执行to ch命令时报错误:to ch: cannot to ch ˋa : permission denied。解决:服务器端共享目录权限查看ll -d home 修改服务器端共享目录权限chown 760 home(文件所有者root有全权限、文件所有组用户有读写权限、其他用户无权限,然后把目录的组设置为nfsnobody) 修改服务器端共享目录权限组拥有者为nfsnobody(cat etcpasswd | grep nob) chgrp nfsnobody home 成功在客户端创建新的文件！