NFS 共享存储服务

一、存储和NFS共享

1.存储类型分为三种

直连式存储:Direct-Attached Storage,简称DAS
网络附加存储:Network-Attached Storage,简称NAS
存储区域网络:Storage Area Network,简称SAN

DAS:存储和主机是直连的,家用电脑,服务和硬盘直连,存储和主机在一台机器上                         SAN:有一定距离,主机核存储设备距离先对较远 ,只提供空间不提供文件系统,管理等其他软件服务,只相当于多了一块硬盘                                                                                                             NAS:存储在远程,文件系统也在远程,这块空间,你可以直接访问上面的文件,你只能看到文件,文件共享NFS  FTP 等都是NAS

2.三种存储架构的应用场景

DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业
NAS多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低
SAN则适用于大型应用或数据库系统,缺点是成本高、较为复杂

二、NFS共享存储服务

1.NFS简介

NFS(Network File System 网络文件服务) 文件系统(软件)文件的权限 NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。 通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源 NFS 也是 NAS 存储 设备必然支持的一种协议

NFS端口不固定,依靠rpcbind,rpcbind端口固定111,NFS会把端口号告诉rpcbind

rpcbind相当于一个中转站,所以使用NFS时rpcbind服务必须正常

NFS配置文件路径:/etc/exports

NFS 它是文件系统,是操作系统内核来管理的

2.NAS存储

NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。远端过程调用:自己没有这种功能,调用别人的功能)
NFS 也是 NAS 存储 设备必然支持的一种协议以完成远 程到本地的映射过程。

在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,
前者用于 NFS 共享发布和访问,后者用于 RPC 支持。
手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。

特点: 采用TCP/IP传输网络文件 安全性低 简单易操作 适合局域网环境

3.NFS原理

NFS优势:节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率。

缺点也比较明显:
由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只在局域网中使用。

4.NFS软件介绍

软件包:nfs-utils(包括服务器端和客户端)

相关软件包:rpcbind(必须)

nfs端口号不固定 RPC端口号111

NFS服务主要进程:

  • rpc.nfsd 最主要的NFS进程,管理客户端是否可登录

  • rpc.mountd 挂载和卸载NFS文件系统,包括权限管理

  • rpc.lockd 非必要,管理文件锁,避免同时写出错

  • rpc.statd 非必要,检查文件一致性,可修复文件

日志:/var/lib/nfs/

NFS的使用要求:
NFS服务的实现依赖于RPC(远程过程调用)机制,以完成远程到本地的映射过程,所以需要安全nfs-utils、rpcbind(远程过程调用)软件包来提供共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。

NFS共享配置文件格式       

格式为:共享的目录名称 客户机地址(权限选择)
 

NFS配置文件:

/etc/exports
/etc/exports.d/*.exports

格式:共享目录(绝对路径)  客户机地址 (权限)
如    /share  *  允许所有主机访问share目录 (权限)客户机地址可以是主机名、IP 地址、网段地址,也可以是*权限可以不写,常用权限如下
rw :允许读写
ro :只读。
sync :表示同步写入到内存与硬盘中。
no_root_squash : 表示当客户机以root身份访问时赋予本地root权限(默认是root_squash)。
root_squash :表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户。
all_squash :所有访问用户都映射为匿名用户或用户组。
async :将数据先保存在内存缓冲区中,必要时才写入磁盘。
subtree_check(默认):若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。
no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。

exportfs -v 显示本机服务端的共享目录

exportfs -r 重新加载配置文件

showmount -e hostname:客户机上查看共享

exportfs:可用于管理NFS导出的文件系统

选项:

-v     查看本机所有NFS共享
-r      重读配置文件,并共享目录
-a     输出本机所有共享
-au   停止本机所有共享

三、搭建NFS服务器

#服务端和客户端都需要安装软件包
[root@localhost ~]# yum install nfs-utils.x86_64 rpcbind -y*******************************************************************
#服务端操作
[root@localhost ~]# mkdir /share     #新建共享目录
[root@localhost ~]# cd /share/       #切换到共享目录下
[root@localhost share]#echo "welcome to DNS">test    #写入一些内容给供客户端读取​#编辑配置文件
[root@localhost share]# vim /etc/exports
/share *
[root@localhost share]#showmount -e      #查看本机发布的NFS共享目录
[root@localhost share]#exportfs -r    #重读配置文件
[root@localhost share]#exportfs -v    #查看详细的nfs信息
[root@localhost share]#systemctl start rpcbind
[root@localhost share]#systemctl start nfs*******************************************************************
#客户端操作
#临时挂载,重启后实效
[root@localhost ~]#mount 172.16.12.7:/share /mnt   #挂载服务器至本地文件夹
[root@localhost ~]#df -Th      #查看是否挂载成功
#永久挂载,写入/etc/fstab配置文件
[root@localhost ~]#vim /etc/fstab
172.16.12.10: /share   /mnt   nfs   defaults  _netdev  0   0
#IP地址:/共享文件名   #挂载点   #文件类型   #权限   #无网不加载  #不备份 #不检查
#两种挂载方式选其中一种即可
[root@localhost share]#systemctl start rpcbind
[root@localhost share]#systemctl start nfs​*******************************************************************
#测试
#客户端操作
[root@localhost ~]#cd /mnt
[root@localhost mnt]#cat test    #读取共享文件测试
服务器端在共享文件夹下创建点文件
cd /share   
touch  haha
在客户机的挂载目录下查看是否成功看到文件
cd /mnt
ls 看下内容哈

1.实验:

服务器192.168.246.7      客户机192.168.246.8

进入服务端配置(192.168.246.7):

进入客户机(192.168.246.8)验证:

下一步,我们来进行挂载    使用mount命令

mount   对方IP地址:共享文件夹    挂载点  

如果想永久挂载需要写道 vim /etc/fstab文件中

做到这就结束了,可以再验证下创建文件

2. 使用权限:

相关的权限和选项

默认选项:(ro,sync,root_squash,no_all_squash)
ro,rw 只读和读写
async 异步,数据变化后不立即写磁盘,先写入到缓冲区中,过一段时间再写入磁盘,性能高,安全性
低
sync(1.0.0后为默认)同步,数据在请求时立即写入共享存储磁盘,性能低,安全性高
root_squash (默认)远程root映射为nfsnobody,UID为65534,CentOS8 为nobody,CentOS 7以前的版本为nfsnobody
no_root_squash 远程root映射成NFS服务器的root用户
all_squash 所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobody
no_all_squash (默认)保留共享文件的UID和GID
anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用

读写权限:

客户端默认权限为只读模式,也就是说不配置客户端的读写权限,客户端就无法创建、修改文件

去服务端看下

在去客户机验证下

但是,我们创建文件的时候为什么还会显示失败呢?

那是因为对/share文件目录还没有权限,服务已经添加了相应的权限,但是对文件本身还没有权限,虽然我们是在客户端的root用户,但是,我们现在访问的是服务端的文件夹,root用户的超级管理员身份在服务端并没有效果,所以,还需要修改一下服务端的文件的权限,

现在再去客户端创建文件就可以了

我们又发现,创建的文件属主和属组是一个陌生的用户nfsnobody

root_squash权限:当NFS 客户端使用 root 用户访问时,映射为 NFS 服务端的匿名用户

属主  、属组权限

细心的朋友们,在启动服务的时候就会发现后面有一排的权限

服务端修改配置文件:

此时客户端创建文件的属主和属组都是root

客户端创建文件都指向同一属主和属组

如何将客户端新建文件都指定同一用户,需要设置anonuid 和 anongid

指明客户端用户映射为特定用户UID和组GID,而非其他用户,可配合all_squash使用

首先在服务端上新建一个用户并指定uid号

这个时候我们再去客户端创建文件

我们在服务端查看就可以发现,文件属主就是指定的用户

在客户端和服务端,uid一样的用户、名字不同,可能会导致文件打不开

四、搭建一台NFS共享服务器

实验目的:电脑访问7-1  7-2看到的内容都是一样的,都是nfs 服务机共享文件夹的内容

这样7-2,7-3  这两台服务机只需要能接受很多人访问就可以,不需要很多存储空间,网页的内容都由7-1 nfs服务机  来提供

环境:nfs存储服务器:192.168.246.7  服务器1:192.168.246.8  服务器2:192.168.246.9

前提:关闭所有设备防火墙和临时防护

systemctl   stop  firewalld      #关闭防火墙
setenforce  0                    #关闭临时防护
#服务器1操作:
[root@localhost ~]# yum install -y httpd
#创建网页文件并写入内容存放在网站文件的默认目录,供客户端访问读取内容
[root@localhost ~]# cd /var/www/html
[root@localhost html]# vim index.html
haha
[root@localhost ~]#systemctl start httpd#服务器2操作:
[root@localhost ~]# yum install -y httpd
#创建网页文件并写入内容存放在网站文件的默认目录,供客户端访问读取内容
[root@localhost ~]# cd /var/www/html
[root@localhost html]# vim index.html     
nihao
[root@localhost ~]#systemctl start httpd#浏览器网址访问:
http://192.168.246.7/
http://192.168.246.8/
http://192.168.246.9/

现在服务器1和服务器2启用httpd服务,对客户端提供的是不同的信息服务

进入服务器1(192.168.246.8)配置:

进入服务器2(192.168.246.8)配置:

 

以上访问不同的服务器获取的是不同的信息,

现在不同的服务器想提供相同的内容服务该怎么操作呢?接下来就需要启用nfs存储服务端

                                 

#所有服务器都需要安装软件包
[root@localhost ~]# yum install nfs-utils.x86_64 rpcbind -y
[root@localhost ~]#systemctl start rpcbind
[root@localhost ~]#systemctl start nfs#nfs存储服务端操作:
#创建共享目录和文件,再写入一些内容给供客户端读取
[root@localhost ~]#mkdir /data
[root@localhost ~]#cd /data
[root@localhost data]#vim index.html
welcome to future
#编辑nfs的配置文件
[root@localhost data]#vim /etc/exports
/data  192.168.246.0/24(rw)
[root@localhost ~]#chmod   777  /data
[root@localhost data]#exportfs -r
[root@localhost data]#exportfs -v#服务器1操作:
#挂载nfs存储服务器的共享目录到本机的存放网站文件的默认目录
[root@localhost html]#mount 192.168.246.7:/data /var/www/html/#服务器2操作:
#挂载nfs存储服务器的共享目录到本机的存放网站文件的默认目录
[root@localhost html]#mount 192.168.246.7:/data /var/www/html/

现在我们引入nfs共享服务器

进入nfs共享服务器进行配置:

分别进入服务器1和2 挂载一下

然后我们再去浏览器打开看一下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/416973.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JupyterLab】在 conda 虚拟环境中 JupyterLab 的安装与使用

【JupyterLab】在 conda 虚拟环境中 JupyterLab 的安装与使用 1 JupyterLab 介绍2 安装2.1 Jupyter Kernel 与 conda 虚拟环境 3 使用3.1 安装中文语言包(Optional)3.2 启动3.3 常用快捷键3.3.1 命令模式下 3.4 远程访问个人计算机3.4.1 局域网下 1 JupyterLab 介绍 官方文档: …

PMIC 基础知识浅析(四)

PMIC 后端研究现状: 现今针对便携式移动平台的电源管理芯片仍以传统分离型 PMIC为主。 根据后端设计的特点,传统分离型 PMIC 又可分三大类。 控制芯片与开关 MOSFET 分离型,MOSFET 外置于PCB上,芯片仅提供智能控制功能。 此类IC…

20240116使用Firefly的AIO-3399J的预编译的Android10固件确认RT5640声卡信息

20240116使用Firefly的AIO-3399J的预编译的Android10固件确认RT5640声卡信息 2024/1/16 17:55 百度:RK3399 ALC5640 RK3399 RT5640 BING:RK3399 ALC5640 LINE-IN接麦克风不会有声音的。 耳机只有右边有声音,但是偏小,可以通过音量…

SQL SERVER无法连接到服务器解决过程记录

很久没用sql server了,这几天打算更新SQL SERVER数据库:SQL看这一篇就看够了(附详细代码及截图) 这篇文章,发现连接不上服务器。 找一下解决办法。 一、打开服务界面 在键盘上按“WINR”快捷键,打开运行…

6.4.3合并文件

6.4.3合并文件 有时候需要把多个SWF文件合并成同一个视频文件,利用Swf2VideoConverter2可以轻松实现这一功能。 1.单击“添加”按钮,在弹出的下拉菜单中选择“添加文件”,在弹出的“Open Swf Files(打开Swf文件)”窗口中选择swf…

MySQL中SELECT字句的顺序以及具体使用

目录 1.SELECT字句及其顺序 2.使用方法举例 3.HAVING和WHERE 1.SELECT字句及其顺序 *下表来自于图灵程序设计丛书,数据库系列——《SQL必知必会》 2.使用方法举例 *题目来源于牛客网 题目描述 现在运营想要查看不同大学的用户平均发帖情况,并期望结…

优化微信小程序更新体验:异步更新与强制更新方案解析

在微信小程序的开发和迭代过程中,新版本覆盖率的问题一直备受关注。由于小程序采用异步更新机制,在用户首次打开或冷启动时才会检查并下载新版本,导致部分用户无法及时应用上最新版本。为了解决这一问题,微信团队经过深入研究和讨…

触想E款工位机迭代出新,助力制造企业突围制胜!

新品概要 新年之初,触想智能上线全新E款工位机系列TPC-A14.这是一款服务于制造企业,助力生产现场数据管理及流程监控的可视化工具。TPC-A14搭载RK3399高性能处理器,集成读卡、扫码/摄像头/指示灯等典型现场应用,支持对接MES、ERP等…

【数据结构】二叉树的介绍和二叉树堆

前言 💓作者简介: 加油,旭杏,目前大二,正在学习C,数据结构等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏&#x1…

大模型:我也会自监督学习~

前言 当下大模型的能力已经很强了,但是将来我们想要的是能力更强的大模型,其最好能够处理各种复杂问题也即强对齐模型。 之前大模型训练的监督信号主要来源于人类反馈,但是如果想要训练一个强对齐模型必然就需要一个对应的强监督信号&#…

分类预测 | Matlab实现ISSA-SVM基于多策略混合改进的麻雀搜索算法优化支持向量机的数据分类预测

分类预测 | Matlab实现ISSA-SVM基于多策略混合改进的麻雀搜索算法优化支持向量机的数据分类预测 目录 分类预测 | Matlab实现ISSA-SVM基于多策略混合改进的麻雀搜索算法优化支持向量机的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 基于多策略混合改进的麻…

做完十年数据分析后的思考与总结

种一棵树最好的时间是十年前,其次是现在。十年了,本次分享大多来自工作中的日常所思所想,欢迎自取。 01 数据分析的本质 数据是基础,分析才是重点。 行业内有专门的统计岗,就是只负责做好数据统计就可以了&#xff0…