NFS配置全解析:让文件共享变得如此简单

       在实际生产工作中,文件共享是一个不可或缺的需求。无论是企业内部的文件共享,还是分布式系统中的数据存储,NFS(Network File System)都是一种高效、可靠的解决方案。本文将带你从零开始,掌握NFS的安装、配置、优化等操作方法。

1 NFS简介

       NFS(Network File System):是一种分布式文件系统协议,允许用户通过网络访问远程文件系统,就像访问本地文件一样。它最初由 Sun Microsystems 开发,现已成为Linux 和Unix系统中文件共享的标准协议。

NFS 的核心优势:

  • 跨平台支持:NFS 支持多种操作系统,包括 Linux、Unix 和macOS
  • 高效共享:允许多个客户端同时访问共享文件,提升协作效率
  • 易于配置:通过简单的配置文件即可实现文件共享
  • 高性能:通过缓存和优化机制,提供高效的文件访问速度

NFS 的安装与配置

2.1 安装、配置NFS服务端

2.1.1 安装NFS服务

##安装NFS和RPC服务
yum install nfs-utils rpcbind -y

##之前已经安装过
[root@node-3 ~]# yum install nfs-utils rpcbind -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Package 1:nfs-utils-1.3.0-0.68.el7.x86_64 already installed and latest version
Package rpcbind-0.2.0-49.el7.x86_64 already installed and latest version
Nothing to do
[root@node-3 ~]# 

2.1.2 配置NFS服务

##创建共享目录
mkdir -p /data/nfs_share -m 777

[root@node-3 ~]# mkdir -p /data/nfs_share
[root@node-3 ~]# chmod 777 /data/nfs_share
##编辑NFS配置文件/etc/exports,添加共享目录和权限
vim /etc/exports

##添加如下内容
/data/nfs_share 192.168.10.0/24(rw,sync,no_subtree_check)
##参数解释:
rw:允许读写
sync:同步写入,确保数据一致性
no_subtree_check:禁用子树检查,提升性能

2.1.3 启动NFS服务

systemctl start nfs-server
systemctl enable nfs-server

[root@node-3 ~]# systemctl start nfs-server
[root@node-3 ~]# systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@node-3 ~]# 
[root@node-3 ~]# 
[root@node-3 ~]# systemctl status nfs-server
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
  Drop-In: /run/systemd/generator/nfs-server.service.d
           └─order-with-mounts.conf
   Active: active (exited) since Wed 2025-03-05 03:58:45 CST; 15s ago
 Main PID: 3731 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

Mar 05 03:58:45 node-3 systemd[1]: Starting NFS server and services...
Mar 05 03:58:45 node-3 systemd[1]: Started NFS server and services.
[root@node-3 ~]# 

2.1.4 防火墙策略放通NFS服务

firewall-cmd --add-service=nfs --permanent
firewall-cmd --add-service=mountd --permanent
firewall-cmd --add-service=rpc-bind --permanent
firewall-cmd --reload


[root@node-3 nfs_share]# firewall-cmd --add-service=nfs --permanent
success
[root@node-3 nfs_share]# firewall-cmd --add-service=mountd --permanent
success
[root@node-3 nfs_share]# firewall-cmd --add-service=rpc-bind --permanent
success
[root@node-3 nfs_share]# firewall-cmd --reload
success
[root@node-3 nfs_share]# 

2.2 安装配置NFS客户端

2.2.1 安装NFS服务

yum install nfs-utils -y

##之前已经安装过
[root@node-2 ~]# yum install nfs-utils -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
local                                                                                                                                                     | 3.6 kB  00:00:00     
Package 1:nfs-utils-1.3.0-0.68.el7.x86_64 already installed and latest version
Nothing to do
[root@node-2 ~]# 

2.2.2 挂载共享目录

mkdir -p /export/home/data01
mount -t nfs 192.168.10.32:/data/nfs_share /export/home/data01


[root@node-2 ~]# mount -t nfs 192.168.10.32:/data/nfs_share /export/home/data01
[root@node-2 ~]# 

2.2.3 验证挂载

[root@node-2 ~]# df -h
Filesystem                     Size  Used Avail Use% Mounted on
devtmpfs                       3.9G     0  3.9G   0% /dev
tmpfs                          3.9G     0  3.9G   0% /dev/shm
tmpfs                          3.9G   21M  3.9G   1% /run
tmpfs                          3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root         44G   20G   25G  46% /
/dev/sda1                     1014M  172M  843M  17% /boot
tmpfs                          797M   12K  797M   1% /run/user/42
tmpfs                          797M     0  797M   0% /run/user/0
192.168.10.32:/data/nfs_share   20G   44M   19G   1% /export/home/data01
[root@node-2 ~]# 

2.2.4 测试读写

##客户端创建文件
[root@node-2 ~]# echo "test" >>/export/home/data01/test.txt
[root@node-2 ~]# 
##服务端查看文件是否同步
[root@node-3 ~]# ls /data/nfs_share/test.txt 
/data/nfs_share/test.txt
[root@node-3 ~]# cat  /data/nfs_share/test.txt
test
test
[root@node-3 ~]# 

 

3 NFS优化

1. 调整NFS版本

       NFS支持多个版本(v3、v4、v4.1、v4.2),建议使用 NFSv4或更高版本,以获得更好的性能和安全性。

##查看nfs版本
[root@node-2 ~]# nfsstat -m
/export/home/data01 from 192.168.10.32:/data/nfs_share
 Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.10.31,local_lock=none,addr=192.168.10.32

[root@node-2 ~]# 

##vers=4.1,表示使用的是NFSv4.1

 2.启用缓存

##调整客户端缓存参数,提升文件访问速度
mount -t nfs -o rsize=8192,wsize=8192 192.168.10.32:/data/nfs_share /export/home/data01

[root@node-2 ~]# mount -t nfs -o rsize=8192,wsize=8192 192.168.10.32:/data/nfs_share /export/home/data01
[root@node-2 ~]#

3. 使用TCP协议

##NFS默认使用UDP协议,但在高负载环境下,建议切换到TCP协议
mount -t nfs -o proto=tcp 192.168.10.32:/data/nfs_share /export/home/data01

[root@node-2 ~]# mount -t nfs -o proto=tcp 192.168.10.32:/data/nfs_share /export/home/data01
[root@node-2 ~]# 

4 NFS安全配置

1. 限制访问范围

##在/etc/exports中,仅允许特定的IP地址或IP地址网段访问共享目录
/data/nfs_share 192.168.10.0/24(rw,sync,no_subtree_check)

##允许了192.168.10端的IP地址

5 总结

        NFS作为一种成熟的文件共享协议,广泛应用于企业IT基础设施中。通过本文的学习,你已经掌握了NFS的安装、配置、优化和故障排查技巧。无论是搭建内部文件共享系统,还是实现分布式存储,NFS 都能为你提供高效、可靠的解决方案。

         如果您对NFS有更多疑问或需要进一步的帮助,欢迎在评论区留言! 

你可能感兴趣的:(#,Linux,技术探索与实践,linux,运维,网络,网络协议)