NFS服务的安装及使用

一、介绍

用于在Linux系统间共享目录,分为客户端和服务端。

NFS并且依赖 RPC

  • NFS启动时需要去 RPC 报告自己的端口
  • 客户端连接的时候也需要去 RPC 寻找 NFS 的服务端口。

PRC 的默认端口是 111,会有两个服务

  • rpcbind.service
  • rpcbind.socket
主机名 ip地址 用途
nfs-server 192.168.10.20 NFS服务端
nfs-client 192.168.10.231 NFS客户端

二、安装配置

  1. CentOS安装
1
yum install -y nfs-utils rpcbind
  1. Ubuntu/Debian 安装
1
2
3
4
5
#  (服务端)
apt install nfs-kernel-server

# (客户端)
apt install nfs-common
  1. 服务端创建共享目录
1
mkdir -pv /data/nfs/k8s
  1. 修改权限
1
chown -R nobody:nobody /data/nfs/k8s
  1. 编辑配置文件
1
2
3
cat >> /etc/exports << 'EOF'
/data/nfs/k8s 192.168.10.0/24(rw,sync,no_subtree_check,no_root_squash)
EOF
  • /data/share 实际的物理路径
  • 192.168.10.0/24 允许访问的白名单,也可以写成网段或任何人。192.168.10.0/24*
  • (.....) 权限,所有人访问的话,记得使用只读 ro
  • 注意:ip和权限的括号之间没有空格
  1. 启动,记得先启动 rpcbind
1
2
systemctl enable --now nfs-server
exportfs -rav

三、客户端挂载使用

  1. 查看共享的内容
1
showmount -e 192.168.10.20
  1. 创建挂载点
1
mkdir -pv /mnt/nfs_data
  1. 挂载
1
mount -t nfs 192.168.10.20:/data/nfs/k8s /mnt/nfs_data
  1. 验证
1
df -hT

​ 验证读写文件

1
2
3
cat > /mnt/nfs_data/test.txt <<EOF
This is a test file!
EOF
  1. 取消挂载
1
umount /mnt/nfs_data

如果目录在使用,则无法取消挂载。

1
umount /mnt/nfs_data
  1. 自动挂载
1
vim /etc/fstab
1
192.168.10.20:/data/nfs/k8s /mnt/nfs_data nfs defaults 0 0

四、使用 autofs 优化

持续的挂载会对网络、NFS服务端造成一定的压力,而 autofs 可以在用到的时候自动挂载。用不到的时候自动取消挂载。

  1. 安装
1
yum install autofs -y
  1. 配置
1
vim /etc/auto.master
1
2
# 新加的配置
/- /etc/auto.home

二次配置

1
vim /etc/auto.home
1
/mnt/nfs_data    -rw,soft,intr   192.168.10.20:/data/share
  • /mnt/nfs_data 客户端的挂载点
  • -rw,soft,intr 权限
  • 192.168.10.20:/data/share 共享的目录
  1. 启动
1
systemctl enable --now autofs