【Linux网络】典型NAS存储方式:NFS网络共享存储服务

一、关于存储的分类

二、NFS的介绍

nfs的相关介绍:

1、原理

2、nfs的特点

3、nfs软件学习

4、共享配置文件的书写格式

 关于权限,学习:

5、关于命令的学习:

三、实验操作

1、nfs默认共享权限(服务端设置)

2、客户端进行挂载 

​编辑 3、客户端测试:

4、调优

①修改共享配置文件,添加写的权限

②还需要修改文件夹,因为目前现在文件夹没有其他用户的写的权限

四、总结


一、关于存储的分类

存储类型分为三种

1、直连式存储:Direct-Attached Storage,简称DAS

特点:存储和主机直接连接,比如家用的电脑,服务和硬盘直接连接,存储和主机在一台机器上

适用范围:适用于那些数据量不大,对磁盘访问速度要求较高的中小企业

2、网络附加存储:Network-Attached Storage,简称NAS

特点:存储在远程,文件系统也在远程,这块空间是你可以直接访问上面的文件,如ftp、nfs都属于NAS(可以理解为通过网络共用一个设备,且设备的数据仅存了一份)

适用范围:适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低

3、存储区域网络:Storage Area Network,简称SAN

特点:有一定的距离,主机距离存储设备相对较远,只提供空间不提供文件系统,管理等其他软件服务,比如ceph,gfs等

适用范围:适用于大型应用或数据库系统,缺点是成本高、较为复杂

二、NFS的介绍

nfs的相关介绍:

nfs是一种NAS存储,NFS也是一种网络文件系统基于内核的文件系统

nfs端口号不固定,早期喜欢说是2049,但是实际上是不固定的,它依赖于rpc(Remote Process Call,远程过程调用协议),通过nfs协议,客户机可以像访问本地目录一样远程访问服务器的共享资源。

1、原理

首先,服务端:nfs开启以后,服务端自己的rpc会注册相关信息;

然后,客户端:想要去连接服务端,会先找一下rpc注册中心,获取nfs的端口号(因为nfs的端口号是随机的,由rpc来进行管理) ;

最后,rpc会告诉客户端关于服务端的nfs端口号,客户端实现访问

2、nfs的特点

  • 使用tcp/ip传输网络文件(rpcbind的端口号是111,nfs的端口号不固定)
  • 比较适合局域网环境,内部操作
  • 安全性低

3、nfs软件学习

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

相关软件包:rpcbind(必须)(centos7的rpcbind由systemd直接管理,不需要启动,会有叫醒服务,在centos7之前都需要先启rpcbind再启动nfs)

nfs端口号不固定 RPC端口号111(tcp和udp都是)

NFS服务主要进程:

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

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

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

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

日志:/var/lib/nfs/

4、共享配置文件的书写格式

/etc/exports

共享目录      共享给哪些主机(权限)
/dir           192.168.20.0/24(rw.....等)

举例:最简单的:/opt *
可获取的主机可以是一台,也可以是网段等

 关于权限,学习:

默认选项:(ro,sync,root_squash,no_all_squash)
ro,rw 只读和读写(如果允许客户端创建文件夹,写内容等,需要调为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(这里注意是id号)

anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用

/data/nfs1        *(rw,all_squash,anonuid=1002,anongid=1002)

##以后在生产环境中,为了调优和统一化部署,建议映射为id号相同的用户

5、关于命令的学习:

服务端:

1、软件的配置文件不需要修改,需要修改共享配置文件:/etc/exports

2、修改完以后,先重启一下nfs服务,有两种方法:exportfs -r和systemctl  reload nfs

3、查看本机的共享配置文件信息:exportfs -v

客户端:

1、需要知道服务端是否开启了共享服务:showmount -e 服务端的ip

2、服务端需要挂载:

临时挂载:mount 服务端ip:/共享目录  挂载点

永久挂载:vim /etc/fstab;服务端ip:/共享目录   挂载点 nfs defaults,_netdev 0 0

注意:因为是通过网络共享,那么需要知道,万一服务器不在线,那么永久挂载的配置文件会在开机的时候加载,那么如果没有“_netdev”则开不了机。这个“_netdev”的意思是能够ping通才行,没ping通不生效

三、实验操作

1、nfs默认共享权限(服务端设置)

[root@localhost ~]#mkdir /data
[root@localhost ~]#vim /etc/exports

##exportfs -r和systemctl reload nfs用法一样
[root@localhost ~]#exportfs -r
exportfs: No options for /data 192.168.20.0/24: suggest 192.168.20.0/24(sync) to avoid warning
[root@localhost ~]#exportfs -v
/data         	192.168.20.0/24(ro,sync,wdelay,hide,no_subtree_check,sec=sys,secure,root_squash,no_all_squash)

2、客户端进行挂载 

[root@localhost ~]#systemctl start nfs

[root@localhost ~]#showmount -e 192.168.20.30

[root@localhost ~]#mkdir /nfsdir

##临时挂载
[root@localhost ~]#mount 192.168.20.30:/data /nfsdir/
[root@localhost ~]#df -hT

##永久挂载
[root@localhost ~]#vim /etc/fstab 
[root@localhost ~]#mount -a
[root@localhost ~]#df -hT

 

 3、客户端测试:

4、根据实验来学习权限配置

想要客户端有写的权限:

①修改共享配置文件,添加写的权限

②还需要修改文件夹,因为目前现在文件夹没有其他用户的写的权限

 

 

5、关于文件的属主

1、默认情况下,是root_squash,no_all_squash,即:root压榨为匿名用户,普通用户只是保留uid与名称无关

2、添加完rw权限以后,客户端可以写内容也可以删除内容

6、客户多台客户机使用nfs

7、比较常用的选项配置:

共享配置文件的常用选项
/data      *(rw,all_squash,anonuid=2000,anongid=2000)

测试结果 

建议在使用的时候,将所有主机的uid=2000的用户使用同一个人,这样比较方便 

拓展 

在这个使用的基础上,指定uid为2000的用户使用,这样更加安全!!

验证  在服务端和客户端只是认识uid为2000的用户,换个名字也是一样的 

 

 8、验证rpcbind是tcp和udp的111端口:

四、总结

1、服务端添加共享目录的写的权限的时候,需要注意给软件添加权限,然后还得给共享的目录添加权限,目录权限添加有两种办法:直接用chmod 777;或者使用setfacl 只给指定的用户或uid给rwx权限;

2、rpcbind用了tcp协议也用了udp协议,都是111端口,tcp用于建立可靠的客户端连接,udp用于管理注册信息nfs的端口号;

3、要知道如果系统默认是进行root压榨为nfsnobody和普通用户不压榨,但是是以uid记录,所有属主和属组都是看uid的,与用户名无关;

4、在生产环境中,建议使用全部压榨,调整为uid为统一的用户,使用setfacl限定,这样数据更安全

5、最后,nfs是一种nas存储方式,nfs本身就是一种网络文件系统,所以直接挂载就可以使用

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大数据-之LibrA数据库系统告警处理(ALM-12049 网络读吞吐率超过阈值)

告警解释 系统每30秒周期性检测网络读吞吐率,并把实际吞吐率和阈值(系统默认阈值80%)进行比较,当检测到网络读吞吐率连续多次(默认值为5)超过阈值时产生该告警。 用户可通过“系统设置 > 阈值配置 >…

【数据结构】C语言实现栈

🎈个人主页:库库的里昂 🎐C/C领域新星创作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:数据结构与算法🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家…

软件开发和软件测试,到底学哪个好呢?

写在前面:买车没有最好,只有最适合。 类似这类“很难选择”的问题,在知乎上其实有很多。 比如:“该去年薪10w的国家电网,还是去年薪40w的互联网大厂”; 比如:“城里有房,剩下的100…

Sentinel规则

一、服务熔断测试 例子: application.properties配置文件 server.port8083spring.application.nameorder#spring.cloud.nacos.discovery.server-addrhttp://192.168.44.64:80spring.cloud.nacos.discovery.server-addrlocalhost:8848spring.cloud.sentinel.transport.port999…

C++之map和set模拟实现

前言 在map和set的使用文章中提到了CSTL中的map和set的底层其实就是用的红黑树来实现的,所以可以用红黑树来简单模拟实现一下STL中的map和set. STL源码中map和set的实现 map: 我们看到它的底层这个成员变量其实就是一棵红黑树, 之前说过map其实就对应搜索树的KV模型&#x…

面向企业的人脸属性检测技术方案

人脸识别技术已经成为企业提升服务质量、优化用户体验的重要工具。美摄科技,作为领先的人工智能技术提供商,我们致力于为企业提供最先进、最全面的人脸属性检测技术解决方案。 我们的AI人脸检测与属性分析技术,能够快速准确地检测人脸并返回…

安全狗云安全体系为高校提升立体化纵深防御能力

客户情况 某高校有服务器500台,对外站点200个,核心交换流量20G。 客户痛点 校园网系统分类较多,并且每类网站中安全级重要程度又各不相同,同时有多个网络出口(如:教育网、电信网、移动网等),二级学院存在…

物联网网关在工业行业的应用案例

物联网网关在工业行业的应用案例 随着物联网技术的不断发展,物联网网关在工业行业的应用越来越广泛。本文将介绍一个物联网网关在工业行业的应用案例,以期为相关领域的研究和实践提供借鉴和启示。 一、案例背景 某大型制造企业是一家全球知名的汽车制…

vscode中git拉取、提交代码、解决冲突,以及合并代码的操作

vscode中git拉取、提交代码、解决冲突,以及合并代码的操作 场景:本地有修改代码,远程仓库没有更新,这时本地想要提交代码。 步骤:本地修改了testA文件内容->本地先暂存提交->拉取->推送; 本地修改…

2023.11.14 hivesql的容器,数组与映射

目录 https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501 8.hive的复杂类型 9.array类型: 又叫数组类型,存储同类型的单数据的集合 10.struct类型…

SpringNative遇到的问题

问题1 org.apache.catalina.LifecycleException: An invalid Lifecycle transition was attempted ([before_stop]) for component 用不了反射,所以需要这个文件去 package org.wxy.example.sqlite.config;import java.lang.reflect.Constructor; import java.lan…

【机器学习基础】多元线性回归(适合初学者的保姆级文章)

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~ 💡往期推荐: 【机器学习基础】机器学习入门(1) 【机器学习基…

BI智能财务分析真的神,财务人都来用

不用等,真的不用等!这边接入数据,那边就能把利润表、资产负债表、现金流量表等财务数据分析报表送到眼前,不用开发,直接就看分析结果。 奥威BI财务方案真能把我要的指标、分析都做出来? 能,可…

在win10环境下安装python,配置python环境,执行python脚本

1.安装python 去python官网下载: https://www.python.org/ 这里采用 Python 3.10.8 版本 选择windows 64位 双击安装: 安装这里有两个选项: 1.默认安装直接选Install Now 2.勾选install launcher for all users(recommend&a…

Github小彩蛋显示自己的README,git 个人首页的 README,readme基本语法

先上效果👇 代码在下面,流程我放最下面了,思路就是创建一个和自己同名的仓库,要公开,创建的时候会提示小彩蛋你的reademe会展示在你的首页,或许你在这个readme里面的修改都会在你的主页上看到了&#x1f44…

TEMU平台要求电子产品提供的UL测试报告如何办理?

平台销售的电子产品,要符合指定的标准,如果不合格很容易发生起火,等危及消费者生命财产的安全,因此很多客户因为缺少UL报告,导致产品被下架。 带电的产品上架亚马逊或相关的跨境电商平台都需要相关的UL报告/UL标准&…

vue-router配置

1、路由安装 npm install vue-router4 2、创建router目录 3、编辑文件且引入router包 4、main.js引入

申明式管理方式与配置清单文件

目录 申明式管理方式 1、使用申明式管理方式相关操作 1)获取资源配置清单 2)更改获取的yaml配置清单,并进行修改然后创建或更新资源 3)在线修改或编辑资源配置 4)删除资源 2、如何获取资源配置清单文件模板&…

spark性能调优 | 默认并行度

Spark Sql默认并行度 看官网,默认并行度200 https://spark.apache.org/docs/2.4.5/sql-performance-tuning.html#other-configuration-options 优化 在数仓中 task最好是cpu的两倍或者3倍(最好是倍数,不要使基数) 拓展 在本地 task需要自己设置&a…

客户管理系统升级,助力企业快速增长——API线索对接功能

在数字化时代,企业需要迅速适应不断变化的市场需求,实现高效的客户管理,以便迅速发现商机并提供更好的客户体验。为了助力企业取得成功,客户管理系统的API线索对接功能应运而生,带来更多机会、更高效率以及更全面的客户…