服务端操作

安装NFS程序
# yum -y install nfs*
rpcbind,在centos6以前自带的yum源中为portmap
使用yum安装nfs时会下载依赖,因此只要下载nfs即可,无需再下载rpcbind.

查看是否安装了nfs与rpcbind

# rpm -qa |grep nfs
nfs-utils-1.3.0-0.65.el7.x86_64
nfstest-2.1.5-1.el7.noarch
nfsometer-1.7-1.el7.noarch
nfs4-acl-tools-0.3.3-20.el7.x86_64
libnfsidmap-0.25-19.el7.x86_64
# rpm -qa |grep rpcbind
rpcbind-0.2.0-48.el7.x86_64

创建共享目录

# mkdir -p /weblogic1

# vim /etc/exports

/weblogic1      192.168.61.0/24(rw,no_root_squash,no_all_squash,sync)

要共享的目录       要分享给的客户端   客户端对此共享目录的权限

客户端指定

192.168.61.184                   指定特定的的IP可以共享nfs目录
*                                指定所有网段及ip都可以共享nfs目录
192.168.61.0/24                  指定子网中的所有主机都可以共享nfs目录
2018fs.wxyonghe.com              指定域名的主机可以共享nfs目录

权限

rw                               可读可写     
ro                               只读(还与文件系统的rwx有关)
sync                             数据同步写入到内存与硬盘中
async                            数据先暂存于内存当中,不会直接写入硬盘
wdelay                           当有写操作,就会检查是否有相关的写操作,并在一起执行(默认设置)
no_wdelay                        当有写操作就立即执行,通常要与sync配合使用
root_squash                      当客户端登陆NFS的身份为root用户时,将客户端的  root用户及所属组都映射为匿名用户或用户组(默认设置) 
no_root_squash                  使客户端可以使用root身份及权限来操作共享的目录
all_squash                       无论客户端登陆NFS的身份为何,都将映射为匿名用户
no_all_squash                    无论客户端登陆NFS的身份为何,都将映射为root用户(默认设置)
anonuid                          将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户
anongid                          将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户
secure                           使客户端只能从小于1024的tcp/ip端口连接服务端(默认设置)
insecure                         允许客户端从大于1024的tcp/ip端口连接服务端
subtree                          当共享的目录是一个子目录,服务端会检查其父目录的权限(默认设置)
no_subtree                       当共享的目录是一个子目录,服务端不检查其父目录的权限

启动nfs,rpcbind,并设为开机自启

(centos7)
systemctl start nfs
systemctl start rpcbind
systemctl enable nfs
systemctl enable rpcbind

(centos6)
service nfs start
service rpcbind start

查看是否共享成功

# showmount -e localhost
Export list for localhost:
/weblogic1 192.168.61.0/24

可看到共享的目录及客户端,即为成功

客户端操作

安装nfs程序

yum -y install nfs*

启动nfs

(centos7)
systemctl start nfs
systemctl start rpcbind
systemctl enable nfs
systemctl enable rpcbind

(centos6)
service nfs start
service rpcbind start
chkconfig nfs on
chkconfig rpcbind on

创建挂载目录

mkdir -p /weblogic1

查看是否共享成功

showmount -e nfs服务端IP

# showmount -e 192.168.61.182
Export list for 192.168.61.182:
/weblogic1 192.168.61.0/24

网络挂载

mount -t nfs -o nolock 服务端IP:共享目录绝对路径 本地挂载目录
mount -t nfs -o nolock 192.168.61.182:/weblogic1 /weblogic1

centos7的nfs默认使用的是nfs4,所以mount -t 无需指定nfs4也可以

查看是否成功

# df -Th
文件系统                      类型       容量   已用   可用   已用%   挂载点
/dev/mapper/cl-root          xfs       46G    23G   23G   51%     /
devtmpfs                     devtmpfs  3.9G     0  3.9G    0%     /dev
tmpfs                        tmpfs     3.9G     0  3.9G    0%     /dev/shm
tmpfs                        tmpfs     3.9G   81M  3.9G    3%     /run
tmpfs                        tmpfs     3.9G     0  3.9G    0%     /sys/fs/cgroup
/dev/sda1                    xfs      1014M  125M  890M   13%     /boot
tmpfs                        tmpfs     799M     0  799M    0%     /run/user/0
192.168.61.182:/weblogic1    nfs4       95G  3.0G   92G    4%     /weblogic1

卸载网络磁盘

umount /weblogic1

或umount  192.168.61.182:/weblogic1

解决NFS:clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

当在客户端查看时,出现如下错误提示时:

# showmount -e 192.168.61.182
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

解决方法:

被访问的NFS服务器上的防火墙没有添加规则,向iptables里面添加以下查看的所有端口即可(目前解决的方法,当然你也可以关闭防火墙,不过这样是比较不安全的,如果你的nfs作用不大,建议你另选别的应用来替代吧!毕竟开那么多的端口,比较不安全呀!)

# vim /etc/sysconfig/iptables

# systemctl stop firewalld  //关闭防火墙

通过#rpcinfo -p 192.168.61.182

# rpcinfo -p 192.168.61.182
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
100024 1 udp 52943 status
100024 1 tcp 37706 status
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
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 37438 nlockmgr
100021 3 udp 37438 nlockmgr
100021 4 udp 37438 nlockmgr
100021 1 tcp 46331 nlockmgr
100021 3 tcp 46331 nlockmgr
100021 4 tcp 46331 nlockmgr
100005 1 udp 57177 mountd
100005 1 tcp 43147 mountd
100005 2 udp 49154 mountd
100005 2 tcp 54810 mountd
100005 3 udp 55707 mountd
100005 3 tcp 58309 mountd