centos6.5 搭建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_64 LANG=EN
服务端 安装包 yum groupinstall “NFS file server” -y
客户端 安装包 yum groupinstall “NFS file server” -y
检查是否安装:
[root@nfs-client ~]# rpm -qa nfs-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 1 0 05:31 ? 00:00:00 rpcbind root 1295 1162 0 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”这个错误;
去网上搜索了一下,遇到这个错误的人也很多,但是原因都不大相同,在这里我就总结一下出现此错误的几种原因:
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对应域名,去掉即可。