NFS服务的安装及使用

一、介绍

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

NFS并且依赖 RPC

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

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

  • rpcbind.service
  • rpcbind.socket
主机名 ip地址 用途
nfs-server 192.168.10.101 NFS服务端
nfs-client 192.168.10.102 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/share
  1. 修改权限
1
chmod 755 /data/share
1
chown nfsnobody:nfsnobody /data/share
  1. 编辑配置文件
1
vi /etc/exports
1
/data/share 192.168.10.102(rw,sync,root_squash)
  • /data/share 实际的物理路径
  • 192.168.10.102 允许访问的白名单,也可以写成网段或任何人。192.168.10.0/24*
  • (.....) 权限,所有人访问的话,记得使用只读 ro
  • 注意:ip和权限的括号之间没有空格
  1. 启动,记得先启动 rpcbind
1
systemctl enable --now rpcbind
1
systemctl enable --now nfs 

三、客户端挂载使用

  1. 查看共享的内容
1
showmount -e 192.168.10.101
  1. 创建挂载点
1
mkdir -pv /mnt/nfs_data
  1. 挂载
1
mount -t nfs 192.168.10.101:/data/share /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
2
3
[root@nfs-client /mnt/nfs_data]# umount /mnt/nfs_data
umount.nfs4: /mnt/nfs_data: device is busy
[root@nfs-client /mnt/nfs_data]#
  1. 自动挂载
1
vim /etc/fstab
1
192.168.10.101:/data/share /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.101:/data/share
  • /mnt/nfs_data 客户端的挂载点
  • -rw,soft,intr 权限
  • 192.168.10.10.1:/data/share 共享的目录
  1. 启动
1
systemctl enable --now autofs