Nfs服务
挂载命令:
mount 源 目标
mount ip地址 本地地址
mount �t 192.168.1.115:/video /video
1 先开启rpc服务
2 启动nfs服务 向rpc注册
3 请求nfs服务
4 返回端口
5 连接端口请求数据
两台机器 (server和clinet)
环境:CentOS release 6.5 (Final)2.6.32-431.el6.x86_64LANG=EN
服务端 安装包 yum groupinstall “NFS file server” -y
客服端 安装包 yum groupinstall “NFS file server” -y
检查是否安装:
[root@nfs-client ~]#rpm -qanfs-utils protmap rpcbind
rpcbind-0.2.0-12.el6.x86_64
nfs-utils-1.2.3-70.el6.x86_64
服务端操作
首先启动rpc服务:
[root@nfs-server ~]# /etc/init.d/rpcbind start
Starting rpcbind: [OK]
[root@nfs-server ~]# ps -ef |grep rpc
rpc 1290 10 05:31 ? 00:00:00 rpcbind
root 1295 11620 05:31 pts/0 00:00:00 grep rpc
然后再启动nfs服务:
[root@nfs-server ~]# /etc/init.d/nfs start
Starting NFS services: [OK]
Starting NFS mountd: [OK]
Starting NFS daemon: [OK]
正在启动RPC idmapd: [确定
设置开机启动:
[root@nfs-server ~]# chkconfig nfs on
[root@nfs-server ~]# chkconfig rpcbind on
确认开机启动状态:
[root@nfs-server ~]# chkconfig �list nfs
nfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@nfs-server ~]# chkconfig �list rpcbind
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
客服端操作:
启动rpc服务,不需要启动nfs服务。
[root@nfs-client ~]# /etc/init.d/rpcbind start
正在启动rpcbind: [确定
设置开机启动:
[root@nfs-client ~]# chkconfig rpcbind on
[root@nfs-client ~]# chkconfig �list rpcbind
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
========================================================================================
服务端
开始配置服务:
创建共享目录
[root@nfs-server ~]#mkdir /data
[root@nfs-server ~]# vim /etc/exports
#share data 20160709注释
/data 192.168.0.0/24(rw,sync)
共享目录 授权网段或者ip(给与什么权限【ro代表制度】,同步到磁盘[不同参输用逗号隔开])
重启nfs服务
[root@nfs-server ~]# /etc/init.d/nfs reload
查看共享结果: (如果没有就要检查出什么问题了)
[root@nfs-server ~]# showmount -e localhost
Export list for localhost:
/data 192.168.0.0/24
客服端检查
[root@nfs-client ~]# showmount -e 192.168.199.235
Export list for 192.168.199.235:
/data 192.168.0.0/24
挂载:
[root@nfs-client ~]# mount -t nfs 192.168.199.235:/data /mnt挂载成功不会有提示!
挂载完我们是没有写入的权限的,是需要nfsnobody用户的权限,
授权(如果是不需要写,则不需要此步骤)
Chown �R nfsnobody /data
一些nfs命令和文件的参数:
exportfs �rv等同于/etc/init.d/nfs reload
exportfs不但可以加载配置生效,也可以通过命令直接共享命令,越过/etc/exportfs,但是重启失效。
Showmount查看nfs配置及挂载结果的命令。
/var/lib/nfs/etab nfs配置文件完整参数设定的文件,(有很多没有配置但是默认就有的nfs参数)
NFS默认配置文件路径/etc/exports
Centos 5.8 y以上默认有此文件,但是是空的。
nfsstat命令查看nfs状态
nfs客户端地址:
可为单独ip地址,可为网段,能解析主机名或者域名,也可以用*来匹配。
挂载参输
sync同步(慢,写磁盘)
请求写数据,数据同步写入到nfsserver硬盘后才返回。
async异步(快,可能丢失)
请求写数据,先返回请求,在将数据写人到内存缓存和硬盘,可以提升性能,但降低安全。
读写rw(读写)ro(只读)
all_squash参输无论访问nfs共享目录用户身份如何,都被压缩成匿名用户,在多个客户端同时读写时很有用。
NFS挂载时出现“access denied by server while mounting”的解决方法
NFS是非常通用和简单的Linux下共享协议,但是最近安装了一次,在另一台CentOS用mount挂载时却出现“access denied by server while mounting”这个错误;
因为之前配置过很多次NFS了,都没出现过一点问题,于是先试试在本机mount挂载,测试可以挂载,但是在另一台机器上却报错,首先想到的是iptables防火墙问题,于是关闭防火墙,也一样报错。
去网上搜索了一下,遇到这个错误的人也很多,但是原因都不大相同,在这里我就总结一下出现此错误的几种原因:
1、使用了非法端口,也就是使用了大于1024的端口。
这个错误,可以通过查看日志确认:
[root@local~ /]# cat /var/log/messages | grep mount
Jan 2 12:49:04 localhost mountd[1644]: refused mount request from 192.168.0.100 for /home/nfsshare/ (/home/nfsshare): illegal port 1689
解决办法:
修改配置文件/etc/exports,加入insecure选项,重启nfs服务,再尝试挂载。
/home/nfsshare/ *(insecure,rw,async,no_root_squash)
2、NFS版本问题
编辑/etc/sysconfig/nfs文件,找到下面:
#Turn off v2 and v3 protocol support
#RPCNFSDARGS=”-N 2 -N 3″
#Turn off v4 protocol support
#RPCNFSDARGS=”-N 4″ /*把这句前面的#号去掉*/
最后保存,重启nfs服务,再尝试挂载;如果挂载不上,可尝试在后面加-o nolock参数。3、查看客户端挂载的目录是否具备读写权限,添加相应权限即可。4、nfs服务器上的/etc/hosts中设置了客户端机器IP对应域名,去掉即可。