本文讲解在 CentOS 5.x、CentOS 6.x 和 CentOS 7.x 环境下,如何安装与部署 NFS 服务。
注意:一台机器不要同时做 NFS 的服务端和 NFS 的客户端。如果同时作了 NFS 的服务端和客户端,那么在关机的时候,会一直夯住,可能十分钟之后甚至更久才能关闭成功。
NFS 工作原理简介
启动 NFS SERVER 之前,首先要启动 RPC 服务(CentOS 5.x 下为 portmap 服务,CentOS 6.x 和 CentOS 7.x 下为 rpcbind 服务,下同),否则 NFS SERVER 就无法向 RPC 服务注册了。
另外,如果 RPC 服务重新启动,原来已经注册好的NFS端口数据就会丢失,因此,此时 RPC 服务管理的NFS程序也需要重新启动以重新向RPC注册。
要特别注意的是:一般修改NFS配置文件后,是不需要重启NFS的,直接在命令行执行 /etc/init.d/nfs reload 「针对CentOS 5.x 或 CentOS 6.x」 或 systemctl reload nfs.service 「针对CentOS 7.x」 或 exportfs -rv 即可使修改的 /etc/exports 生效。
NFS 服务所需的安装包
安装 NFS 和 RPC 「服务端、客户端都安装」
[root@backup ~]# rpm -qa nfs-utils rpcbind
[root@backup ~]# yum install nfs-utils rpcbind -y #nfs需要的安装包
[root@backup ~]# rpm -qa nfs-utils rpcbind
nfs-utils-1.2.3-64.el6.x86_64
rpcbind-0.2.0-11.el6_7.x86_64
查看用户信息
[root@nfs01 ~]# tail /etc/passwd
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
oldboy:x:500:500::/home/oldboy:/bin/bash
rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin #yum安装rpc服务时创建的
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin #yum安装rpc服务时创建的
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin #yum安装nfs服务时创建的
NFS 版本查看
服务端版本查看
nfsstat -s
客户端版本查看
nfsstat -c
NFS服务端搭建
配置exports
[root@nfs01 ~]# mkdir /data
[root@nfs01 ~]# ll -d /data/
drwxr-xr-x. 3 root root 4096 Apr 11 09:49 /data/
[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data/
[root@nfs01 ~]# ll -d /data/
drwxr-xr-x. 3 nfsnobody nfsnobody 4096 Apr 11 09:49 /data/
[root@nfs01 ~]# cat /etc/exports
# share /data for web created by zhangliang at 2016-05-21
/data 172.16.1.0/24(rw,sync)
#172.16.1.0/24(rw,sync) 没有空格
#/data 172.16.1.0/24(rw,sync,root_squash,all_squash,anonuid=XXXX,anongid=XXXX) # 推荐配置
其他配置示例:
# 指定 IP 配置
/opt 192.168.0.1(ro) 192.168.0.2(rw)
# 指定 网段
/data 172.16.1.0/24(rw,sync)
启动rpcbind服务
CentOS 5.x 和 CentOS 6.x 启动方式
[root@nfs01 ~]# /etc/init.d/rpcbind start
[root@nfs01 ~]# netstat -anp | grep 'rpc'
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1346/rpcbind
tcp 0 0 0.0.0.0:38420 0.0.0.0:* LISTEN 1368/rpc.statd
tcp 0