HCRM博客

如何在CentOS上配置和使用NFS?

一、NFS系统

网络文件系统(Network File System,简称NFS)是由Sun公司开发的一种分布式文件系统协议,旨在通过网络共享文件资源,它允许不同操作系统的计算机通过网络访问共享目录和文件,就像访问本地文件一样,NFS在Unix/Linux系统之间实现文件共享,是一种常用的跨平台文件共享解决方案。

二、先决条件

1、CentOS 8安装指南:确保已正确安装CentOS 8操作系统。

如何在CentOS上配置和使用NFS?-图1
(图片来源网络,侵权删除)

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)将自动启动。

如何在CentOS上配置和使用NFS?-图2
(图片来源网络,侵权删除)

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:允许对文件系统进行读写访问。

如何在CentOS上配置和使用NFS?-图3
(图片来源网络,侵权删除)

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/messagesjournalctl xe)以获取更多错误信息。

Q2: NFS客户端无法挂载共享目录怎么办?

A2: 确保NFS服务器上的导出目录配置正确,并且防火墙设置允许NFS流量通过,在客户端上,确保安装了必要的软件包,并且挂载命令正确无误,如果仍然无法挂载,请检查以下几点:

NFS服务器是否在线且可达。

客户端是否正确配置了挂载点。

检查NFS服务器的日志文件以获取更多错误信息。

Q3: NFS性能不佳怎么办?

A3: 如果NFS性能不佳,可以考虑以下几个方面进行优化:

确保网络连接稳定且带宽充足。

调整NFS服务器的参数,如rsizewsize,以优化传输速度。

使用异步传输模式(async)以提高性能,但要注意数据一致性问题。

如果可能,使用更快的网络存储解决方案,如iSCSI或光纤通道。

分享:
扫描分享到社交APP
上一篇
下一篇