当前位置: 首页 > news >正文

运维实施31-NFS服务

NFS概述

NFS(Network File System)网络文件系统,主要用于Linux系统上实现文件共享的一种协议,其客户端主要是Linux。

没有用户认证机制,且数据在网络上传送的时候是明文传送,一般只能在局域网中使用支持多节点同时挂载及并发写入

企业应用:为集群中的webserver提供后端存储(做静态资源服务器)

环境准备

编号IP地址作用
1192.168.66.143Web服务器
2192.168.66.138NFS服务器

NFS组成

rpcbind:负责NFS的数据传输,远程过程调用tcp/udp协议端口 ==111==

nfs-utils:控制共享哪些文件,权限管理

RPC(Remote Procedure Call Protocol)是一种远程过程调用协议。
​
它允许一个程序通过网络从另一台计算机上的程序请求服务,而无需了解底层的网络技术细节。简单来说,RPC使得不同计算机之间的程序可以像在同一台计算机上一样互相调用和通信。

安装NFS软件

yum install rpcbind nfs-utils -yrpm -q rpcbind

NFS的配置文件

NFS 的配置文件为/etc/exports(服务端进行配置)

格式为: 共享的目录位置 客户机地址(权限选项)

/test888 192.168.78.0/24(rw,sync,no_root_squash)

将/text888目录共享给192.168.78.0网段的所有用户

# vim /etc/exports共享目录    共享选项
/share     *(ro,sync)共享主机:
*                                       代表所有主机
192.168.0.0/24                          代表共享给某个网段
192.168.0.0/24(rw) 192.168.1.0/24(ro)   代表共享给不同网段
192.168.0.254                           共享给某个IP
*.zking.com                             代表共享给某个域下的所有主机共享选项:
ro: 只读
rw: 读写
sync: 实时同步,直接写入磁盘
async: 异步,先缓存在内存再同步磁盘
anonuid: 设置访问nfs服务的用户的uid,uid需要在/etc/passwd中存在
anongid: 设置访问nfs服务的用户的gid
root_squash: 默认选项 root用户创建的文件的属主和属组都变成nobody,其他人nfs-server端是它自己, client端是nobody。
no_root_squash: root用户创建的文件属主和属组还是root, 其他人server端是它自己uid, client端是nobody。
all_squash: 不管是root还是其他普通用户创建的文件的属主和属组都是nobody

 anonuid和anongid参数和all_squash一起使用。 all_squash表示不管是root还是其他普通用户从客户端所创建的文件在服务器端的拥有者和所属组都是nfsnobody;服务端为了对文件做相应管理,可以设置anonuid和anongid进而指定文件的拥有者和所属组。

NFS任务解决方案

创建一个共享目录,如/share

# mkdir /share

编写NFS主配置文件

# vim /etc/exports共享目录    共享选项
/share      192.168.66.1/24(rw,sync)

启动相关的NFS服务

手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs

systemctl start rpcbind
systemctl start nfssystemctl enable rpcbind
systemctl enable nfs# ss -naltp | grep 111    # 111端口

 查看本机发布的 NFS 共享目录

exportfs -rvexporting 192.168.66.1/24:/share
showmount -eExport list for localhost.localdomain:
/share 192.168.66.1/24
在客户机中访问 NFS 共享资源
安装 nfs-utils、rpcbind 软件包
rpm -q rpcbind nfs-utils
yum -y install nfs-utils rpcbindsystemctl start rpcbind
systemctl enable rpcbind
查看 NFS 服务器端共享了哪些目录
showmount -e 192.168.66.138Export list for 192.168.66.138:
/share 192.168.66.1/24
mkdir /nfsdata
mount 192.168.66.138:/share /nfsdata
df -Th文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  1.9G     0  1.9G    0% /dev
tmpfs                   tmpfs     1.9G     0  1.9G    0% /dev/shm
tmpfs                   tmpfs     1.9G   13M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  4.8G   13G   28% /
/dev/sda1               xfs      1014M  187M  828M   19% /boot
tmpfs                   tmpfs     378M   60K  378M    1% /run/user/0
/dev/sr0                iso9660   9.6G  9.6G     0  100% /run/media/root/CentOS 7 x86_64
192.168.66.138:/share   nfs4       17G  4.8G   13G   28% /nfsdata

搭建Web服务器

# yum install httpd -y
# systemctl start httpd

当Apache软件启动完毕后,会自动占用计算机的80端口。

80端口指向web服务器的目录 => /var/www/html

所以项目源代码都可以直接存放于 /var/www/html 目录

记得关闭防火墙与SELinux

在Web服务器中挂载NFS

# mkdir /var/www/html/mediamount 192.168.66.138:/share /var/www/html/media
或
mount -t nfs 192.168.66.138:/share /var/www/html/media
或
mount.nfs 192.168.66.138:/share /var/www/html/media

上传到NFS服务器的/share

第一步:使用MX上传素材到/share目录(NFS服务器)

第二步:在Web服务器中,ll /var/www/html/media目录

第三步:通过浏览器访问该文件

设置自动挂载
vim /etc/fstab192.168.66.138:/share /var/www/html/media nfs defaults,_netdev 0 0

强制卸载 NFS

如果服务器端NFS服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现执行 df -h 命令卡死的现象。

这个时候直接使用 umount 命令是无法直接卸载的,需要加上 -lf 选项才能卸载。

umount -lf /var/www/html/media

http://www.dtcms.com/a/195689.html

相关文章:

  • 研华服务器ASMB-825主板无法识别PCIE-USB卡(笔记本)
  • 牛客网NC22222:超半的数
  • 【云实验】搭建个人网盘实验
  • leetcode0215. 数组中的第K个最大元素-medium
  • 1基·2台·3空间·6主体——蓝象智联解码可信数据空间的“数智密码”
  • 2025年长三角+山东省赛+ 认证杯二阶段论文发布!
  • 杰理ac696配置mic
  • QT6 源(104)篇一:阅读与注释QAction,其是窗体菜单栏与工具栏里的菜单项,先给出属性测试
  • 【Golang笔记01】Goland基础语法规则
  • 数字经济犯罪案件中的“双刃剑”电子数据
  • Spring2:应用事务+连接池形成的工具类
  • 【匹配】Hirschberg
  • ​小店推客系统开发SEO全攻略:从技术架构到流量裂变,打造私域增长引擎
  • 代码随想录算法训练营第三十八天打卡
  • 文章记单词 | 第86篇(六级)
  • Guided Filtering相关记录
  • EC800X_DP-DTU-Q600R 系列开发板介绍
  • Gen5 应用实例
  • 主打「反激进」的一汽丰田,靠稳扎稳打的技术实现突围
  • 梁文锋署名,DeepSeek-V3新论文揭秘:低成本大模型训练如何突破算力瓶颈?
  • 【omnet++】omnet++6.0.3中调用python
  • 主流数据库排查与优化速查手册
  • [Unity]AstarPathfindingProject动态烘焙场景
  • 播放进度条小组件
  • C#学习教程(附电子书资料)
  • 413 Payload Too Large 问题定位
  • 【Win32 API】 lstrcpynA()
  • 直接从图片生成 html
  • [Lc] 5.16 One question a day周总结
  • 道路运输企业管理人员考试真题练习