NFS详解


简介

NFS 是 Network File System 的缩写,是Sun公司于1984开发的一种分布式文件系统协议。它的核心功能就是可以通过网络,让不同的客户端,可以彼此访问共同的文件系统 ,来实现文件的共享。像许多其他的协议,建立在开放的网络计算的远程过程调用(RPC)之上。NFS是在RFC中定义的开放标准,允许任何人实现该协议。

环境

正文

版本说明

  • NFS V2

V2版本是NFS最早实现的版本之一,基于UDP协议实现了一个无状态的服务器版本。仅仅支持32位的系统,且不大于2GB的文件。

  • NFS V3

V3版本在V2基础之上做了大量的改进。支持了大于2GB的文件读写,使用了TCP协议来进行数据交互,支持了客户端的异步读写来提高文件系统的性能(同时也会产生我们头疼的一致性问题)

  • NFS V4

V4版本提高了安全性,通过TCP协议实现了一个有状态的服务器版本,通过锁租约的机制来实现多客户端的读写同步。在4.1版本引入了pNFS,通过类似于一个HDFS架构来提供并行的一个分布式文件系统。

服务器安装

a) 安装

# 安装依赖包,只安装 nfs-utils 即可,它的依赖rpcbind,会附带安装上。
yum install nfs-utils -y
# 开机服务
systemctl enable rpcbind && systemctl enable nfs
# 启动服务
systemctl start rpcbind && systemctl start nfs
# 创建共享目录
mkdir -p /volume1/data && chmod -R 755 /volume1/data
# 配置共享目录
cat <<EOF >> /etc/exports
/volume1/data     10.199.88.0/24(rw,sync,no_root_squash,no_all_squash)
EOF
# 重启服务
systemctl restart nfs

b)参数详解

  • /volume1/data: 共享目录位置。
  • 10.199.88.0/24: 客户端 IP 范围,三种方式:单主机10.199.88.210,通用符:.allposs.com,网段:10.199.88.0/24。
  • rw: 权限设置,可读可写。
  • sync: 同步共享目录。
  • no_root_squash: 可以使用 root 授权。
  • no_all_squash: 可以使用普通用户授权。

客户端安装

a) 安装

# 安装依赖包
yum install nfs-utils -y
# 创建挂载目录
mkdir -p /data/share && chmod 755 -R /data/share
# 手动挂载
mount -t nfs 10.199.88.210:/volume1/data /data/share -o nolock,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev
# 写入fstab,开机启动
cat <<EOF >> /etc/fstab
10.199.88.211:/volume1/data /data/share nfs nolock,rsize=1048576,,wsize=1048576,hard,timeo=600,retrans=2,_netdev 0 0
EOF

结束