1.服务器端安装
(1)查看系统运行状态
uname -a
(2)NFS软件安装
要部署NFS服务,必须安装两个软件包:NFS-utils,RPC主程序。
- NFS-utils:NFS 的主程序,包含 rpc.nfsd 和 rpc.mount 这两个 deamons.
- Rpcbind:RPC 主程序,可以将 NFS 视为 RPC 下的一个子程序。
查询 nfs-utils 和 rpcbind 包是否安装:
rpm -qa nfs-utils rpcbind
如果没有安装,可以用 yum 命令进行安装
yum install -y nfs-utils rpcbind
(3)启动服务并检查
服务端要启动 rpcbind 和 NFS 服务且需按顺序启动,客户端要启动 rpcbind 服务不启动 NFS 服务。
systemctl start rpcbind.service
systemctl start nfs-server # 如果失败,可以换成 systemctl start nfs.service
查看系统中启用的端口:
netstat -lnt
查看 NFS 向 RPC 注册的端口信息:
rpcinfo -p
RPC 主程序的三个进程 | 含义 |
rpc.mounted | NFS 挂载程序,客户端是否能够登入 |
nfsd | NFS 主程序,管理客户端能够取得的权限 |
rpc.rqutod | 管理共享配额 |
将 NFS 与 RPC 服务加入开机自动启动
systemctl enable rpcbind.service
systemctl enable nfs-server # 如果不能成功,可以使用 systemctl enable nfs.service
2.配置 NFS 服务
(1)创建共享目录 /data
mkdir -p /data
修改 /data 及子文件属主属组 nfsnobody
chown -R nfsnobody.nfsnobody /data # 无效就直接 chmod 777 /data 或者尝试 nobody.nobody
ll
(2)编辑 NFS 服务端配置文件
vi /etc/exports
# 内容为(ip 地址需要修改):/data 192.168.148.136/24(rw,sync,all_squash)
# 格式:[共享目录] [自身ip地址/类型] [共享参数设置]
# 共享参数说明:
# ro 目录可读
# rw 目录可读可写
# sync 将数据同步写入内存缓冲区与磁盘中
# async 将数据先写入内存缓冲区,有必要时才写入磁盘
# all_squash 将远程访问用户及组全映射成默认用户或用户组nfsnobody(或nobody)
# no_all_squash 与all_squash配置相反
# root_squash 将root用户及所属组映射成默认用户或用户组
# no_root_squash 与root_squash配置相反
# anonuid 将远程访问用户映射成指定用户及ID的用户
# anongid 将远程访问用户组映射成指定用户组ID的用户组
(3)重新加载 NFS 服务配置文件
exportfs -rv
(4)检查或挂载
showmount -e 192.168.148.136 # ip 地址需要修改
将 /data 共享目录挂载到 /mnt 目录:
mount -t nfs 192.168.148.136:/data /mnt # ip 地址需要修改
df -h
(5)NFS 开启防火墙配置
将 NFS 服务的端口设置成固定端口,设置成功后需要重启 rpcbind、nfs 服务。
vim /etc/sysconfig/nfs
#内容为
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002 LOCKD_UDPPORT=30002 MOUNTD_PORT=30003 STATD_PORT=30004
systemctl restart rpcbind.service
systemctl restart nfs-server # 如果不能成功,可以使用 systemctl restart nfs.service
配置防火墙开放的端口号,配置好后需要重启 iptables.service
dnf install iptables-services
# 关闭默认使用的防火墙
systemctl stop firewalld
systemctl mask firewalld
# 修改配置文件
vi /etc/sysconfig/iptables
# 内容为
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m udp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m udp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m tcp --dport 30001:30004 -j ACCEPT
-A INPUT -m state --state NEW -m udp --dport 30001:30004 -j ACCEPT
service iptables save # 使配置生效
systemctl restart iptables.service # 重启服务
3.NFS 客户端的部署
(1)安装 NFS 与 RPC 服务并启动
yum install -y nfs-utils rpcbind
systemctl start rpcbind.service
(2)查看挂载情况
showmount -e 192.168.148.136 # 服务器端的 ip 地址
(3)客户端挂载共享目录
mkdir /nfsclient
mount -t nfs 192.168.148.136:/data /nfsclient # 服务器端 ip
df -h
(4)测试共享
在客户端新建 123.txt 文件,在服务端的共享目录 /data 下也会出现
cd /nfsclient/
ll
touch 123.txt
ll
(5)mount 挂载性能优化(在客户端操作)
time dd if=/dev/zero of=/nfsclient/text-file bs=100k count=1000
卸载原来的挂载
umount -lf -t nfs 192.168.148.136:/data /nfsclient/
安全优加优化的挂载
time dd if=/dev/zero of=/nfsclient/text-file bs=100k count=1000