-
Notifications
You must be signed in to change notification settings - Fork 4
NFS Quick Start
NFS 有着悠久的历史,最早的版本发布于 1984 年,经过几十年的发展,NFS 早已成熟稳定,广泛可用,在各种 Unix/Linux 上都有内置的支持,例如在 Linux 上 NFS 是内核直接支持的文件系统,BSD 对 NFS 的支持力度更胜过 Linux。
NFS 在很多系统中以 NAS(Network Attached Storage) 的形式提供,在公有云上,各云厂商都有相应的 NAS 产品,在 K8S 中 NFS 更是基础组件之一。
本文以最短的篇幅带领您以最简单快捷的方式在 Linux(RHEL 系) 上配置并请启用 NFS,关于 NFS 更深入的话题,您可以查阅更专业的资料和文档。
首先安装必要的软件包(很可能系统中已经安装了):
sudo yum -y install nfs-utils
假定您要把 /disk1
通过 NFS 开放给其它机器访问,首先,编辑修改 /etc/exports
,在其中增加一行:
/disk1 *(rw,async,no_root_squash,fsid=1)
一般情况下 fsid 是可选的,但是如果要开放的目录是 /dev/shm,就必须指定 fsid。建议显式指定fsid,有助于减少 NFS 客户端的stale file handle
错误。
接下来,增加 NFS 服务器线程数,以提高性能:
对于 Centos 7/8 , 找到 /etc/nfs.conf
文件修改 thread 的线程数:
# 这一行可能被注释掉了,二者要一起修改
[nfsd]
# 建议修改为 32 以上
threads=64
对于 某些发行版,没有 /etc/nfs.conf
而存在 /etc/sysconfig/nfs
,可以修改 /etc/sysconfig/nfs
文件,修改 RPCNFSDCOUNT
值为 32 以上。
接下来,启动服务:
sudo systemctl enable --now nfs-server
这个最简单的配置可以让您快速搭建起一个 NFS,忽略了安全性等相关主题,如有需要您可以查阅更专业的资料和文档。
首先安装必要的软件包(很可能系统中已经安装了):
sudo yum -y install nfs-utils
增加客户端连接数:
sudo echo "options sunrpc tcp_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf
sudo echo "options sunrpc tcp_max_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf
sudo sysctl -w sunrpc.tcp_slot_table_entries=128
挂载 NFS:
sudo mkdir /mnt/mynfs # 创建该目录用来挂载 NFS
sudo mount -t nfs -o rw,noatime,async nfs-server-ip:/disk1 /mnt/mynfs
现在,您就可以在 Client 机器上通过 /mnt/mynfs
访问 NFS Server 上的 /disk1
目录了