NFS 服务与挂载

By | 2024年2月9日

简介

NFS全称网络文件系统(Network File System),它是一种分布式协议,使客户端可以访问远程服务器上的共享文件。

服务器端安装

# 安装 NFS服务器端
apt-get install -y nfs-kernel-server

# 检查服务是否启动
systemctl status nfs-server

# 创建 NFS 共享目录(在/mnt目录中创建,共享目录称为 ShareFolder)
mkdir -p /mnt/ShareFolder
chmod -R 777 /mnt/ShareFolder    

编辑 exports 配置文件

通过 vi /etc/exports 编辑配置文件,来允许哪些客户端可以访问该共享。

# /etc/exports: the access control list for filesystems which may be exported
#		to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#

# * 表示允许任何网段 IP 的系统访问该 NFS 目录
/mnt/ShareFolder *(rw,sync,no_root_squash)

# 如果只允许一个客户端访问,可以只写一个客户端的IP地址
/mnt/ShareFolder 192.168.3.110(rw,sync,no_subtree_check)
# 如果只允许多个客户端访问,可以向如下一样写
/mnt/ShareFolder 192.168.3.111(rw,sync,no_subtree_check)
/mnt/ShareFolder 192.168.3.112(rw,sync,no_subtree_check)
# 如果运行一个网段的客户端访问,可以这样写:
/mnt/ShareFolder 192.168.3.*(rw,sync,no_subtree_check)
#或
/mnt/ShareFolder 192.168.3.0/24(rw,sync,no_subtree_check)

配置文件中的权限解释:

  • rw 允许读写
  • sync 文件同时写入硬盘和内存
  • no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
# 配置好后重启 NFS 服务
systemctl restart nfs-server
# 检查NFS共享目录是否生效
showmount -e

客户端安装

# Ubuntu 安装 NFS 客户端
apt-get install -y nfs-common
# CentOS 安装 NFS 客户端
yum -y install nfs-utils

# 192.168.3.220 上创建一个目录用于挂载
mkdir -p /mnt/ClientFolder
# 192.168.3.220 上手动挂载 192.168.3.113 的NFS共享目录 ShareFolder
# NFS客户端重启,手动挂载会失效
mount -o bg,hard,nolock,noatime,nointr -t nfs4 192.168.3.113:/mnt/ShareFolder /mnt/ClientFolder/

# 检查挂载是否成功
df -h

挂载选项参考

NFS客户端重启挂载会失效;NFS服务器重启,客户端的挂载还是生效的。下面客户端改用自动挂载方式:编辑 /etc/fstab 文件,添加:

192.168.3.113:/mnt/ShareFolder /mnt/ClientFolder/  nfs4   bg,hard,nolock,noatime,nointr   0 0

结果:

重要:默认情况下 fstab 下的 nfs挂载应该先启动的,但有一次使用了nfs的 docker 容器在重启电脑时始终启不了,通过显示设置 systemd 服务在 fstab 挂载后启动才得以解决,具体请看整理的文章:https://program.snlcw.com/2190.html

卸载

umount /mnt/ClientFolder

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注