环境准备(防火墙,selinux关闭,可能此集群适合用内网网卡IP)
角色 | 主机名 | IP |
---|---|---|
NFS服务器端 | nfs-s | 192.168.126.32 |
NFS客户端1 | nfs-c1 | 192.168.126.33 |
NFS客户端2 | nfs-c2 | 192.168.126.34 |
服务端nfs-s配置
下载安装软件包
[root@nfs-s ~]# rpm -qa nfs-utils rpcbind
[root@nfs-s ~]# yum -y install nfs-utils rpcbind
[root@nfs-s ~]# rpm -qa nfs-utils rpcbind
rpcbind-0.2.0-49.el7.x86_64
nfs-utils-1.3.0-0.68.el7.2.x86_64
启动服务
systemctl status rpcbind
systemctl start nfs
配置文件
NFS服务的默认配置文件路径为:/etc/exports
vim /etc/exports
/data 192.168.126.0/24(rw,sync)
# /data :nfs的共享目录路径
# 192.168.126.0/24:允许挂载我的共享目录的IP地址段
#(rw):可读可写
#(sync):实时同步
修改配置文件后,必须重启nfs服务
systemctl reload nfs
创建上述共享目录并授权
[root@nfs-s ~]# grep nfs /etc/passwd
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[root@nfs-s ~]# mkdir /data
[root@nfs-s ~]# chown -R nfsnobody:nfsnobody /data
[root@nfs-s ~]# ll -d /data/
drwxr-xr-x 2 nfsnobody nfsnobody 6 Jul 10 12:03 /data/
本地测试
[root@nfs-s ~]# mount 192.168.126.32:/data /mnt
[root@nfs-s ~]# ls /data
[root@nfs-s ~]# ls /mnt
[root@nfs-s ~]# touch /data/a
[root@nfs-s ~]# ls /data/
a
[root@nfs-s ~]# ls /mnt/
a
客户端怕配置
安装nfs-utils软件
yum install nfs-utils -y
可以用showmount检查远端NFS
挂载nfs到本地
mount -t nfs 192.168.126.32:/data /mnt
客户端进行文件读写同步测试
配置开机自动挂载nfs共享目录(/etc/fstab)
Linux开机加载fstab会先与网络加载,所以会连接不上nfs服务器,所以需要在开机自启动服务里设置并启动了netfs服务,并且所有服务都要设置开机自启(enable)
服务端(systemctl enable nfs,systemctl enable rpcbind)
这是因为在一些Linux发行版中,系统服务的管理方式从SysV转变为systemd。因此,SysV配置数据可能会被原生的systemd配置所覆盖。所以按照此输出提示使用systemctl list-unit-files查看开机自启服务。并用systemctl enbled 可以一一配置
例:
理论来说nfs启动至少只需要两个进程。一个是管理NFS客户端是否能够登入的rpc.nfsd主进程,另一个用于管理NFS客户端是否能够取得对应权限的rpc.mountd进程。
如果还需要管理磁盘配额,则NFS还要再加载rquotad进程。
需要锁定文件,用于多客户端同时写入,则NFS还要再加载lock进程。
......