CentOS-6.5-NFS部署

 
                  nfs-server与nfs-client端配置一样
 
NFS(network file system)网络文件系统;用于在网络上共享存储。
服务端-192.168.161.133
需要安装的包nfs-utils      
rpcbind
客户端-192.168.161.132
nfs-utils
rpcbind
1、服务端配置nfs
需要安装两个包nfs-utils和rpcbind(用于服务端和客户端的通信,CentOS6以前的版本都是安装portmap包、centos6版本安装rpcbind)
[root@nfsserver /]# uname -r    打印系统版本
2.6.32-431.el6.x86_64
[root@nfsclient ~]# rpm -aq nfs-utils portmap rpcbind        #检查nfs相关的包 如果有这两个包的话使用rpm卸载  重新安装
nfs-utils-1.2.3-39.el6.x86_64
rpcbind-0.2.0-11.el6.x86_64
[root@nfsclient /]# tail -6 /etc/yum.repos.d/CentOS-Media.repo    #查看本地yum配置文件
baseurl=file:///media/CentOS/
        file:///media/cdrom/
        file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[root@nfsclient /]# sed -i 's#enabled=0#enabled=1#gp' /etc/yum.repos.d/CentOS-Media.repo  #修改配置文件
[root@nfsclient /]# tail -6 /etc/yum.repos.d/CentOS-Media.repo     # 检查是否修改成功
        file:///media/cdrom/
        file:///media/cdrecorder/
gpgcheck=1
enabled=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[root@nfsclient /]# yum -y remove nfs-utils rpcbind    #卸载nfs相关的包  不建议使用yum  remove卸载包、因为他会把依拉包卸载掉、有可能会影响服务器上的其他服务
Removed:
  nfs-utils.x86_64 1:1.2.3-39.el6       rpcbind.x86_64 0:0.2.0-11.el6      
 
Dependency Removed:
  ipa-client.x86_64 0:3.0.0-37.el6    nfs-utils-lib.x86_64 0:1.1.5-6.el6   
  yp-tools.x86_64 0:2.9-12.el6        ypbind.x86_64 3:1.20.4-30.el6        
 
Complete!
[root@nfsclient /]# rpm -aq nfs-utils portmap rpcbind  #确认是否卸载成功
发一:[root@nfsserver /]# yum -y install nfs-utils rpcbind  #安装nfs相关的包
Installed:
  nfs-utils.x86_64 1:1.2.3-70.el6_8.1     rpcbind.x86_64 0:0.2.0-12.el6    
 
Dependency Installed:
  nfs-utils-lib.x86_64 0:1.1.5-11.el6                                       
  python-argparse.noarch 0:1.2.1-2.1.el6                                    
 
Dependency Updated:
  libtirpc.x86_64 0:0.2.1-11.el6                                            
 
Complete!
[root@nfsserver /]# rpm -qa nfs-utils portmap rpcbind 
rpcbind-0.2.0-12.el6.x86_64
nfs-utils-1.2.3-70.el6_8.1.x86_64
                                    nfs-client端配置(安装时两边都用同一种方法,保持一致不容易出错)
法二:[root@nfsclient /]# yum grouplist | grep -i 'nfs'  #查找nfs包组
Failed to set locale, defaulting to C
   NFS file server
[root@nfsclient /]# yum -y groupinstall "NFS file server"
Installed:
  nfs-utils.x86_64 1:1.2.3-70.el6_8.1                                       
 
Dependency Installed:
  nfs-utils-lib.x86_64 0:1.1.5-11.el6                                       
  python-argparse.noarch 0:1.2.1-2.1.el6                                    
  rpcbind.x86_64 0:0.2.0-12.el6                                             
 
Updated:
  nfs4-acl-tools.x86_64 0:0.3.3-8.el6                                       
 
Dependency Updated:
  libtirpc.x86_64 0:0.2.1-11.el6                                            
 
Complete!
 
root@nfsclient /]# rpm -aq nfs-utils portmap rpcbind
rpcbind-0.2.0-12.el6.x86_64
nfs-utils-1.2.3-70.el6_8.1.x86_64
                                                    nfs-server端配置
[root@nfsserver /]# /etc/init.d/rpcbind start     #启动rpcbind服务
Starting rpcbind:                                          [  OK  ]
[root@nfsserver /]# ps -ef | grep rpcbind     #查看rpcbind服务状态
rpc       5212     1  0 15:04 ?        00:00:00 rpcbind
root      5221  4567  0 15:05 pts/0    00:00:00 grep rpcbind
[root@nfsserver /]# /etc/init.d/rpcbind status   #查看rpcbind服务状态
rpcbind (pid  5212) is running...
[root@nfsserver /]# /etc/init.d/rpcbind stop
Stopping rpcbind:                                          [  OK  ]
[root@nfsserver /]# rpcinfo -p localhost
rpcinfo: can't contact portmapper: RPC: Remote system error - Connection refused
报错原因rpcbind服务未启动
[root@nfsserver /]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
 
[root@nfsserver /]# /etc/init.d/nfs start   #启动nfs服务
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
正在启动 RPC idmapd:                                      [确定]
[root@nfsserver /]# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100011    1   udp    875  rquotad
    100011    2   udp    875  rquotad
    100011    1   tcp    875  rquotad
    100011    2   tcp    875  rquotad
    100005    1   udp  37917  mountd
    100005    1   tcp  38242  mountd
    100005    2   udp  40271  mountd
    100005    2   tcp  50999  mountd
    100005    3   udp  48150  mountd
    100005    3   tcp  47540  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049  nfs_acl
    100227    3   tcp   2049  nfs_acl
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049  nfs_acl
    100227    3   udp   2049  nfs_acl
    100021    1   udp  38739  nlockmgr
    100021    3   udp  38739  nlockmgr
    100021    4   udp  38739  nlockmgr
    100021    1   tcp  44041  nlockmgr
    100021    3   tcp  44041  nlockmgr
    100021    4   tcp  44041  nlockmgr
[root@nfsserver /]# chkconfig nfs on      #添加开机自启
[root@nfsserver /]# chkconfig rpcbind on
[root@nfsserver /]# chkconfig --list nfs    #检查服务是否成功添加开机自启
nfs                0:off    1:off    2:on    3:on    4:on    5:on    6:off
[root@nfsserver /]# chkconfig --list rpcbind
rpcbind            0:off    1:off    2:on    3:on    4:on    5:on    6:off
 
nfs-client配置
root@nfsclient /]# /etc/init.d/rpcbind start
Starting rpcbind:                                          [  OK  ]
[root@nfsclient /]# /etc/init.d/rpcbind status
rpcbind (pid  25927) is running...
[root@nfsclient /]# chkconfig rpcbind on
[root@nfsclient /]# chkconfig --list rpcbind
rpcbind            0:off    1:off    2:on    3:on    4:on    5:on    6:off
 
 
                                                    nfs-server端配置
[root@nfsserver /]# mkdir /data            #创建共享目录
[root@nfsserver /]# vim /etc/exports    #nfs配置文件 默认为空
[root@nfsserver /]# cat /etc/exports 
#shared data for bbs by oldboy at 20160810
/data 192.168.161.0/24(rw,sync)
注:这里的共享目录是/data目录;指定一个网段192.168.161.0/24(也可以指定单个IP);rw为可读写(ro只读);sync为同步模式(sync写入数据是直接写入磁盘,async非同步,写入数据写书内存、如果nfs服务端宕机容易造成数据丢失)详细注解可使用man exports命令;具体参数可参考下面nfs默认的配置、
[root@nfsserver /]# cat /var/lib/nfs/etab      #nfs默认的配置参数
/data    192.168.161.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534,sec=sys,rw,root_squash,no_all_squash)
[root@nfsserver /]# /etc/init.d/nfs reload
[root@nfsserver /]# showmount -e localhost        #现在本机检查共享是否成功
Export list for localhost:
/data 192.168.161.0/24
 
                                                            nfs-client端配置
 
 
 
[root@nfsclient /]# showmount -e 192.168.161.133     //此为服务端IP
注:要关闭防火墙、不然客户端查不到共享,汇报如下错误:
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
clnt_create:RPC:端口映射器失败——不能接受:errno 113(没有通往主机)
[root@nfsclient /]# service iptables stop    #关闭client端防火墙 或开放相应的端口
iptables:将链设置为政策 ACCEPT:filter                    [确定]
iptables:清除防火墙规则:                                 [确定]
iptables:正在卸载模块:                                   [确定]
[root@nfsserver /]# service iptables stop                #关闭client端防火墙 或开放相应的端口
iptables:将链设置为政策 ACCEPT:filter                    [确定]
iptables:清除防火墙规则:                                 [确定]
iptables:正在卸载模块:                                   [确定]
故障排查:[root@nfsclient /]# ping 192.168.161.133
[root@nfsclient /]# telnet 192.168.161.133 111
[root@nfsclient /]# showmount -e 192.168.161.133    #成功检测到共享
Export list for 192.168.161.133:
/data 192.168.161.0/24
[root@nfsclient /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        16G  4.0G   12G  27% /
tmpfs           495M   80K  495M   1% /dev/shm
/dev/sda1       2.0G   59M  1.8G   4% /boot
/dev/sr0        4.2G  4.2G     0 100% /media/CentOS_6.5_Final
/dev/sr0        4.2G  4.2G     0 100% /media/cdrom
[root@nfsclient /]# mount -t nfs 192.168.161.133:/data /mnt   #挂载到/mnt下
[root@nfsclient /]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/sda3               16G  4.0G   12G  27% /
tmpfs                  495M   80K  495M   1% /dev/shm
/dev/sda1              2.0G   59M  1.8G   4% /boot
/dev/sr0               4.2G  4.2G     0 100% /media/CentOS_6.5_Final
/dev/sr0               4.2G  4.2G     0 100% /media/cdrom
192.168.161.133:/data   16G  3.9G   12G  26% /mnt   #挂载成功
[root@nfsclient /]# cd /mnt
[root@nfsclient mnt]# ll
total 0
-rw-r--r--. 1 root root 0 Aug 10 15:49 11
-rw-r--r--. 1 root root 0 Aug 10 15:49 22
-rw-r--r--. 1 root root 0 Aug 10 15:49 33
[root@nfsclient mnt]# touch test.log      #测试下是否有写入权限
touch: cannot touch `test.log': Permission denied    拒绝访问
到nfs-server端检查
[root@nfsserver /]# ll /data -ld
drwxr-xr-x 2 root root 4096 Aug 10 15:49 /data
[root@nfsserver /]# cat /var/lib/nfs/etab    #此目录是nfs默认的用户的信息
/data    192.168.161.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534,sec=sys,rw,root_squash,no_all_squash)
[root@nfsserver /]# grep 65534 /etc/passwd     #根据用户id查出用户
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[root@nfsserver /]# chown -R nfsnobody.nfsnobody /data     #给nsfnobody赋予权限
[root@nfsclient mnt]# touch test.log     #创建测试目录
[root@nfsclient mnt]# ll
total 0
-rw-r--r--. 1 nfsnobody nfsnobody 0 Aug 10 15:49 11
-rw-r--r--. 1 nfsnobody nfsnobody 0 Aug 10 15:49 22
-rw-r--r--. 1 nfsnobody nfsnobody 0 Aug 10 15:49 33
-rw-r--r--. 1 nfsnobody nfsnobody 0 Aug 10 16:02 test.log   #创建成功
开机自动挂载  修改/etc/fstab文件
 
 
nfs客户端自动挂载autofs
为什么需要autofs
autofs可以实现当前用户访问的时候在挂载,如果没有用户访问,指定之间、内,就自动卸载。
可以解决NFS服务器和客户端紧密耦合的问题。缺点:是用户请求才会挂载,所有请求的瞬间效率较差。一般的企业不用它。
原文地址:https://www.cnblogs.com/hwlong/p/5797187.html