一、NFS系统
网络文件系统(Network File System,简称NFS)是由Sun公司开发的一种分布式文件系统协议,旨在通过网络共享文件资源,它允许不同操作系统的计算机通过网络访问共享目录和文件,就像访问本地文件一样,NFS在Unix/Linux系统之间实现文件共享,是一种常用的跨平台文件共享解决方案。
二、先决条件
1、CentOS 8安装指南:确保已正确安装CentOS 8操作系统。
2、主机IP配置完成:确保服务器和客户端的IP地址配置正确,且能够互相通信。
三、测试环境
主机名 | IP信息 | 描述 |
nfsserver | 192.168.6.58 | NFS服务器 |
nfsclient | 192.168.6.149 | NFS客户端 |
四、CentOS 8上安装NFS服务器
1. 安装必要的软件包
首先在NFS服务器上安装nfsutils
软件包,该包为内核NFS服务器及相关工具提供了守护程序,运行以下命令以安装软件包:
dnf install nfsutils y
2. 启动并启用NFS服务
安装完成后,启动nfsserver服务,使其能够在系统引导时自动启动:
systemctl start nfsserver.service systemctl enable nfsserver.service systemctl status nfsserver.service systemctl restart nfsserver.service
运行NFS服务器或装入NFS共享所需的其他服务(例如nfsd, nfsidmapd, rpcbind, rpc.mountd, lockd, rpc.statd, rpc.rquotad, rpc.idmapd)将自动启动。
3. 创建共享目录
本文中,我们将创建四个文件系统,其中三个部门的三个部门的工作人员使用三个文件系统:运维,网络和数据库以及共享文件,而另一个则用于root用户备份。
[root@nfsserver mnt]# mkdir p /mnt/nfs_shares/{system,network,dba} [root@nfsserver mnt]# mkdir p /mnt/backups [root@nfsserver mnt]# ls l /mnt/nfs_shares/total 0 drwxrxrx. 2 root root 6 Dec 6 21:32 dbadrwxrxrx. 2 root root 6 Dec 6 21:32 networkdrwxrxrx. 2 root root 6 Dec 6 21:32 system [root@nfsserver mnt]# ls l /mnt/total 0 drwxrxrx. 2 root root 6 Dec 6 21:32 backups drwxrxrx. 5 root root 46 Dec 6 21:32 nfs_shares
4. 配置导出目录
将以上文件系统导出到NFS服务器/etc/exports
配置文件中,确定NFS客户端可以访问到本地物理文件系统:
[root@nfsserver mnt]# vi /etc/exports /mnt/nfs_shares/system 192.168.6.0/24(rw,sync) /mnt/nfs_shares/network 192.168.6.0/24(rw,sync) /mnt/nfs_shares/dba 192.168.6.0/24(rw,sync) /mnt/backups 192.168.6.149/24(rw,sync,no_all_squash,root_squash)
以下是一些导出选项说明:
rw
:允许对文件系统进行读写访问。
sync
:告诉NFS服务器在请求时写入操作(将信息写入磁盘)(默认情况下适用)。
all_squash
:将客户端请求中的所有UID和GID映射到匿名用户。
no_all_squash
:用于将客户端请求中的所有UID和GID映射到NFS服务器上的相同UID和GID。
root_squash
:将来自客户端的root用户或UID / GID 0的请求映射到匿名UID / GID。
5. 导出文件系统
要导出上述文件系统,请运行带有以下标志的exportfs
命令:
[root@nfsserver mnt]# exportfs arv
6. 显示当前的导出列表
要显示当前的导出列表,请运行以下命令:
[root@nfsserver mnt]# exportfs s
列出NFS共享。
7. 防火墙设置
如果你正在运行firewalld服务,则需要允许通过防火墙的流量通过必要的NFS服务(mountd, nfs, rpcbind),然后重新加载防火墙规则以应用更改:
[root@nfsserver mnt]# firewallcmd permanent addservice=nfs [root@nfsserver mnt]# firewallcmd permanent addservice=rpcbind [root@nfsserver mnt]# firewallcmd permanent addservice=mountd [root@nfsserver mnt]# firewallcmd reload [root@nfsserver mnt]# firewallcmd listall [root@nfsserver mnt]# firewallcmd state #查看状态
五、客户端系统上设置NFS客户端
1. 安装必要的软件包
在客户端节点上,安装必要的软件包以访问客户端系统上的NFS共享:
[root@nfsclient ~]# dnf y install nfsutils nf
2. 挂载NFS共享目录
创建挂载点并挂载NFS共享目录:
[root@nfsclient ~]# mkdir p /mnt/nfs_shares [root@nfsclient ~]# mount t nfs 192.168.6.58:/mnt/nfs_shares /mnt/nfs_shares
验证挂载是否成功:
[root@nfsclient ~]# df h | grep nfs
如果输出包含NFS共享的信息,说明挂载成功。
六、常见问题及解答(FAQs)
Q1: NFS服务无法启动怎么办?
A1: 确保所有必要的服务(如rpcbind, nfsserver等)都已启动,并且没有报错信息,可以使用以下命令检查服务状态:
systemctl status nfsserver.service systemctl status rpcbind.service
如果服务未启动,可以尝试重新启动服务:
systemctl restart nfsserver.service systemctl restart rpcbind.service
如果仍然无法启动,请检查日志文件(如/var/log/messages
或journalctl xe
)以获取更多错误信息。
Q2: NFS客户端无法挂载共享目录怎么办?
A2: 确保NFS服务器上的导出目录配置正确,并且防火墙设置允许NFS流量通过,在客户端上,确保安装了必要的软件包,并且挂载命令正确无误,如果仍然无法挂载,请检查以下几点:
NFS服务器是否在线且可达。
客户端是否正确配置了挂载点。
检查NFS服务器的日志文件以获取更多错误信息。
Q3: NFS性能不佳怎么办?
A3: 如果NFS性能不佳,可以考虑以下几个方面进行优化:
确保网络连接稳定且带宽充足。
调整NFS服务器的参数,如rsize
和wsize
,以优化传输速度。
使用异步传输模式(async)以提高性能,但要注意数据一致性问题。
如果可能,使用更快的网络存储解决方案,如iSCSI或光纤通道。