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

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

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

1 NFS简介

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

NFS 的核心优势:

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

2 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有更多疑问或需要进一步的帮助,欢迎在评论区留言!

相关尊享内容

IPad无法开机怎么办
365bet游戏下载

IPad无法开机怎么办

📅 10-12 👑 962
英雄联盟传送是哪个键
365app下载安装官方免费下载

英雄联盟传送是哪个键

📅 09-20 👑 885