企业级NFS网络文件共享服务

简介: 企业级NFS网络文件共享服务

NFS服务环境准备

服务器角色列表

NFS server:192.168.1.5
NFS clent01:192.168.1.4
NFS clent01:192.168.1.3

系统及内核版本

[root@nfs-server ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@nfs-server ~]# uname -r
3.10.0-693.el7.x86_64
注:防火墙和selinux都关闭

软件列表

nfs-utils
rpcbind

NFS服务企业案例部署

将NFS server的/data目录共享给192.168.1.0网段,要求可读写

NFS服务端部署

服务安装

[root@nfs-server ~]# yum -y install nfs-utils rpcbind
[root@nfs-server ~]# rpm -qa nfs* rpcbind
nfs-utils-1.3.0-0.66.el7_8.x86_64
rpcbind-0.2.0-49.el7.x86_64
[root@nfs-server ~]# systemctl start rpcbind.service
[root@nfs-server ~]# systemctl enable rpcbind
[root@nfs-server ~]# lsof -i :111
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind 16202  rpc    6u  IPv4  64534      0t0  UDP *:sunrpc 
rpcbind 16202  rpc    8u  IPv4  64536      0t0  TCP *:sunrpc (LISTEN)
rpcbind 16202  rpc    9u  IPv6  64537      0t0  UDP *:sunrpc 
rpcbind 16202  rpc   11u  IPv6  64539      0t0  TCP *:sunrpc (LISTEN)
[root@nfs-server ~]# systemctl start nfs.service 
[root@nfs-server ~]# systemctl enable nfs.service 

创建共享目录及授权

[root@nfs-server ~]# mkdir -p /data
[root@nfs-server ~]# chown -R nfsnobody.nfsnobody /data
[root@nfs-server ~]# ll -d /data/
drwxr-xr-x 2 nfsnobody nfsnobody 6 10月 23 15:20 /data/

配置NFS配置文件

[root@nfs-server ~]# vim /etc/exports
[root@nfs-server ~]# cat /etc/exports
/data 192.168.1.0/24(rw,sync)
[root@nfs-server ~]# exportfs -rv
exporting 192.168.1.0/24:/data
[root@nfs-server ~]# showmount -e localhost
Export list for localhost:
/data 192.168.1.0/24
[root@nfs-server ~]# cat /var/lib/nfs/etab 
/data 192.168.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)

本地挂载测试

[root@nfs-server ~]# mount -t nfs 192.168.1.5:/data /mnt/
[root@nfs-server ~]# df -h 
192.168.1.5:/data         18G  1.6G   17G    9% /mnt

客户端配置(所有)

[root@nfs-clent01 ~]# yum -y install rpcbind nfs-utils
[root@nfs-clent01 ~]# systemctl start rpcbind.service 
[root@nfs-clent01 ~]# systemctl enable rpcbind.service
注:nfs服务不用启动
[root@nfs-clent01 ~]# showmount -e 192.168.1.5
Export list for 192.168.1.5:
/data 192.168.1.0/24
[root@nfs-clent01 ~]# mount -t nfs 192.168.1.5:/data /mnt
[root@nfs-clent01 ~]# df -h
192.168.1.5:/data         18G  1.6G   17G    9% /mnt
[root@nfs-clent01 ~]# echo "/bin/mount -t nfs 192.168.1.5:/data /mnt" >>/etc/rc.local 

测试:在clent01的/mnt目录下创建测试文件,clent02和nfs-server都能收到共享文件

[root@nfs-clent01 ~]# cd /mnt/
[root@nfs-clent01 mnt]# ls
[root@nfs-clent01 mnt]# touch test.txt

clent02查看

[root@nfs-clent02 ~]# ll /mnt/
总用量 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 10月 23 15:41 test.txt

nfs-server查看

[root@nfs-server ~]# ll /mnt/
总用量 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 10月 23 15:41 test.txt

NFS服务常用配置参数权限

即为括号内参数

rw:表示可读写
ro:表示只读
sync:写数据时同步写入NFS server磁盘(有点安全,缺点性能会稍降低)
async:写数据会先写入缓冲区,硬盘有空档在写入硬盘
no_root_squash:访问NFS server共享目录的如果是root的话,它对该目录具有root权限
root_squash:访问NFS server共享目录的如果是root的话,权限将会压缩为匿名用户
all_squash:所有用户的权限都会压缩为匿名用户
anonuid:匿名用户,uid通常为nfsnobody用户的值
anongid:匿名用户组,uid通常为nfsnobody用户组的值

企业生产NFS exports配置实例

配置例一:

/data 192.168.1.0/24(rw,sync)
注:允许客户端读写,并且数据同步到服务器端的磁盘里

配置例二:

/data/blog 192.168.1.0/24(rw,sync,all_squash,anonuid=2000,anongid=2000)
注:允许客户端读写,并且数据同步写入服务端磁盘,指定客户端用户的UID和GID

配置例三:

/data/log 192.168.1.0/24(ro)
注:只读,例如有特定用户需要查看共享目录文件的需求,又不希望用户有修改的权限

重点NFS服务文件或命令说明

/etc/exports:主配置文件,默认为空
/usr/sbin/exportfs:管理命令,加载配置生效:exportfs -rv
/usr/sbin/showmount:查看配置及挂在结果:showmount -e 192.168.1.5
/var/lib/nfs/etab:配置文件的完整设定参数
/proc/mounts:客户端挂载参数:grep mnt /proc/mounts
/var/lib/nfs/rmtab:客户端访问服务器exports的信息列表


目录
相关文章
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
573 61
|
9月前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
702 0
|
10月前
Vite使用svg-企业级开发(支持本地svg和网络svg渲染)
本教程介绍如何在Vite项目中集成SVG图标插件。首先安装`vite-plugin-svg-icons`,配置插件指向SVG图标目录,并注册全局组件。接着创建SVG图标组件,支持内部图标与外部图片展示。通过简单配置,即可在页面中灵活使用各类SVG图标,提升开发效率。
509 0
|
网络协议 安全 Devops
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
621 4
|
Ubuntu 网络协议 Unix
02理解网络IO:实现服务与客户端通信
网络IO指客户端与服务端通过网络进行数据收发的过程,常见于微信、QQ等应用。本文详解如何用C语言实现一个支持多客户端连接的TCP服务端,涉及socket编程、线程处理及通信流程,并分析“一消息一线程”模式的优缺点。
620 0
|
机器学习/深度学习 人工智能 安全
从攻防演练到AI防护:网络安全服务厂商F5的全方位安全策略
从攻防演练到AI防护:网络安全服务厂商F5的全方位安全策略
369 8
|
SQL 监控 安全
网络安全与信息安全:漏洞、加密与安全意识
随着互联网的迅猛发展,网络安全和信息安全问题日益受到关注。本文深入探讨了网络安全漏洞、加密技术以及提高个人和组织的安全意识的重要性。通过分析常见的网络攻击手段如缓冲区溢出、SQL注入等,揭示了计算机系统中存在的缺陷及其潜在威胁。同时,详细介绍了对称加密和非对称加密算法的原理及应用场景,强调了数字签名和数字证书在验证信息完整性中的关键作用。此外,还讨论了培养良好上网习惯、定期备份数据等提升安全意识的方法,旨在帮助读者更好地理解和应对复杂的网络安全挑战。
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
512 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
379 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。