在本教程中,我们将学习如何在 Rocky Linux 8 上安装和配置 NFS 服务器。 网络文件系统 (NFS) 是一种常用的基于文件的存储系统,它允许远程系统通过计算机网络访问文件并与之交互如果它们是本地安装的。 这使系统管理员能够将资源分组到网络上的中央服务器上,以便于共享。
在 Rocky Linux 8 上安装和配置 NFS 服务器
要配置 NFS 服务器,我们将使用两台 Rocky Linux 8 服务器;
- NFS 服务器:
- nfs.kifarunix-demo.com
- 192.168.60.19
- NFS客户端:
- nfsclient.kifarunix-demo.com
- 192.168.60.23
安装 NFS 包
在继续配置之前,您需要 安装 NFS 包 通过运行下面的命令。
dnf install nfs-utils -y
在 Rocky Linux 8 上配置 NFS 服务器
安装 NFS 软件包后,继续对其进行配置。
更新主机的 DNS 域名
NFS服务器域名可以通过编辑文件来更新, /etc/idmapd.conf,并相应地取消注释并更改下面的行。
#Domain = local.domain.edu
您只需运行以下命令即可取消注释并更改域名。
更换域名, kifarunix-demo.com
, 使用您服务器的域名。
sed -i '/^#Domain/s/^#//;/Domain = /s/=.*/= kifarunix-demo.com/' /etc/idmapd.conf
idmapd 是 NFSv4 ID 名称映射守护进程,它为 NFSv4 内核客户端和服务器提供功能,它通过向上调用与它们通信,将用户和组 ID 转换为名称,反之亦然。
定义 NFS 服务器共享
文件 /etc/s
包含 NFS 服务器上可供 NFS 客户端访问的本地物理文件系统表。
您需要编辑此文件并添加要导出到客户端的文件系统或目录,并指定要应用于这些共享的选项。
注意:导出的文件系统的每个条目都具有以下结构:
host(options)
在哪里:
- 出口 是要挂载在远程主机上的文件系统或目录
- 主持人 是允许访问共享文件夹的远程主机/客户端。 主机可以定义为:
- 单主机:您可以通过识别为解析器的缩写名称、完全限定的域名、IPv4 地址或 IPv6 地址来指定主机。
- IP网络:您可以通过将 IP 地址和网络掩码对指定为地址/网络掩码来定义主机。
- 通配符: 机器名称可能包含通配符 * 和 ?,或者可能包含其中的字符类列表 [square brackets]. 这可用于使导出文件更紧凑; 例如,*.cs.foo.edu 匹配域 cs.foo.edu 中的所有主机。 由于这些字符也与域名中的点匹配,因此给定的模式也将匹配 cs.foo.edu 的任何子域中的所有主机。
- 网络组:NIS 网络组可以作为@group 给出。 在检查成员资格时只考虑每个网络组成员的主机部分。 空主机部分或包含单个破折号 (-) 的部分将被忽略。
- 匿名的: 这由单个 * 字符指定(不要与上面的通配符条目混淆)并将匹配所有客户端。
- 选项 是逗号分隔的选项列表。 可以使用的一些选项包括:
- root_squash: 防止远程连接的 root 用户拥有 root 权限并为他们分配用户的用户 ID
nfsnobody
从而将远程 root 用户的权力“压缩”到最低的本地用户,防止未经授权更改远程服务器上的文件。 no_root_squash
:关闭根压扁。 远程 root 用户能够更改共享文件系统上的任何文件。 此选项主要用于无盘客户端。 不要使用 NO_ROOT_SQUASH 选项.all_squash
: 将所有 uid 和 gid 映射到匿名用户。 对 NFS 导出的公共 FTP 目录、新闻假脱机目录等很有用。相反的选项是 no_all_squash,这是默认设置。
- anonuid = UID 和 anongid=GUID: 这些选项明确设置匿名帐户的 uid 和 gid。 它主要用于 PC/NFS 客户端,您可能希望所有请求都来自一个用户。
- 安全的:此选项要求不使用 gss 的请求源自小于 IPPORT_RESERVED (1024) 的 Internet 端口。 此选项由 默认. 要关闭它,请指定 没有安全感.
- 权重: 允许对此 NFS 卷的读取和写入请求。
- 罗: 以只读模式挂载导出的文件系统。 远程主机无法更改文件系统上共享的数据。 这是由 默认.
- 异步: 允许 NFS 服务器违反 NFS 协议并在该请求所做的任何更改提交到稳定存储之前回复请求。 它提高了性能,但代价是不干净的服务器重启(即崩溃)可能导致数据丢失或损坏。
- 同步:只有在将更改提交到稳定存储后才回复请求。 这是由 默认.
- 延迟: 如果 NFS 服务器怀疑另一个写入请求即将到来,它会导致 NFS 服务器延迟写入磁盘。 该选项默认开启。
- 无延迟:关闭上述功能。 如果还设置了 async,则此选项无效。
- subtree_check: 启用子树检查。 由 默认.
- root_squash: 防止远程连接的 root 用户拥有 root 权限并为他们分配用户的用户 ID
阅读更多 man s
.
在我的设置中,下面是我们要与特定主机 192.168.60.18 共享的 NFS 共享。
vim /etc/s
/home 192.168.60.18(rw)
这将允许远程主机 192.168.60.18 上的用户访问 NFS 服务器上的共享目录 /home,并能够进行更改 (rw)。 默认情况下启用的其他选项包括 延迟, 同步, 安全的, root_squash.
允许防火墙上的 NFS 服务
要允许远程主机访问 NFS 共享,如果 firewalld 正在运行,您需要允许 NFS 服务通过防火墙:
firewall-cmd --add-service={nfs,nfs3,mountd,rpc-bind} --permanent firewall-cmd --reload
运行 NFS 服务
启动并启用 rpcbind 和 nfs-server
systemctl enable --now nfs-server rpcbind
配置 NFS 客户端
配置 NFS 服务器后,共享目录或文件系统必须挂载到客户端才能访问。
安装 NFS 包
但在此之前,请确保安装 NFS 软件包。
在 Ubuntu/Debian 系统上;
apt install nfs-common
在 CentOS/RHEL/Rocky Linux 和类似发行版上;
dnf install nfs-utils -y
接下来,编辑 /etc/idmap.conf 文件并添加一个带有您适当域名的域名,就像我们为上面的 NFS 服务器所做的那样。
sed -i '/^#Domain/s/^#//;/Domain = /s/=.*/= kifarunix-demo.com/' /etc/idmapd.conf
发现 NFS 服务器共享
在安装之前,您可以尝试 发现 NFS 导出,即 NFS 服务器上可用的共享,如下所示。
showmount -e nfs.kifarunix-demo.com
确保 NFS 服务器的主机名是可解析的。 您也可以使用 IP 地址代替主机名;
list for nfs.kifarunix-demo.com: /home 192.168.60.18
然后挂载共享目录
mount -t nfs nfs.kifarunix-demo.com:/home /mnt
使用 df -hT 确认已挂载共享目录。
df -hT -P /mnt/
Filesystem Type Size Used Avail Use% Mounted on nfs.kifarunix-demo.com:/home nfs4 14G 2.6G 11G 19% /mnt
配置自动挂载
NFS 共享也可以添加到 用于自动挂载的 fstab 系统启动时。
要启用自动挂载,请通过运行以下命令添加 fstab 条目。 相应地替换主机名和共享名。
echo 'nfs.kifarunix-demo.com:/home /mnt nfs defaults 0 0' >> /etc/fstab
这 _netdev mount 选项也可用于告诉 mount 命令仅在网络激活时挂载文件系统。 此选项已被替换为 远程 fs.target 系统单元。 为确保在网络启动后安装文件系统,必须启用 remote-fs.target。
要测试 NFS 共享的可用性,请导航到 NFS 服务器上的 /home 目录并创建一个 测试文件.txt. 检查其在 NFS 客户端上的安装点上的可用性。 如果文件存在,则配置没问题。
使用 Autofs 自动挂载
NFS 不能用于一次管理多个挂载点。 但是,基于内核的自动挂载实用程序, 自动文件 这是按需mountng使用的,也就是只有在有需要的时候才可以替代使用。
要继续自动挂载配置,请安装 自动文件.
dnf -y install autofs
autofs 的默认配置文件是 /etc/auto.master. 主映射列出了系统上由 autofs 控制的挂载点及其相应的配置文件或称为 自动挂载地图.
编辑 /etc/auto.master 文件
vim /etc/auto.master
在文件末尾添加直接挂载点。 直接挂载始终以 /- 作为主映射文件中的起点。
/- /etc/auto.mount
Save 并退出 /etc/auto.master 文件。
编辑挂载点 (/etc/auto.mount
) 并以以下形式创建新地图:
mount-point options location
例如;
echo '/mnt -fstype=nfs,rw nfs.kifarunix-demo.com:/home' >> /etc/auto.mount
确保挂载点目录已经存在。
启动并启用 autofs:
systemctl enable --now autofs
您可以重新启动系统以验证共享是否已自动安装!
这就是如何在 Rocky Linux 8 上安装和配置 NFS 服务器。
在 Rocky Linux 8 上安装和配置 BackupPC
在 Ubuntu 20.04 上创建 RAID 级别 10 (RAID 1+0)