访问网络附加存储:nfs
文章目录
- 访问网络附加存储
- 一、网络附加存储
- 1.1、存储类型
- 1.3、通过NFS挂载NAS
- 1.4、NFS挂载过程
- 服务端
- 客户端
- 二、实验:搭建NFS服务端及挂载到nfs客户端
- 服务端
- 客户端
- 测试
- 命令合集
- 服务端
- 客户端
访问网络附加存储
一、网络附加存储
1.1、存储类型
-
DAS:Direct Attached Storage,直连附加存储,将存储设备通过总线(SCSI、PCI、
IDE等)接口直接连接到一台服务器上使用。 -
NAS:Network Attached Storage,网络附加存储,将设备通过TCP/IP网络共享,
提供文件存储。 -
SAN:Storage Area Network,存储区域网络,将设备通过光纤通道或者TCP/IP网
络共享出去,提供块设备。SAN存储可以进一步划分为FC-SAN和IP-SAN。
NFS 支持的功能相当的多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此,NFS的功能所对应的端口没有固定住,而是随机取用一些未被使用的小于1024的端口提供服务。但如此一来客户端如何获得服务器端的相关端口呢?
此时我们就得需要远程过程调用(RPC)的服务!RPC最主要的功能是注册每个NFS功能所对应的端口,并且汇报给客户端,让客户端可以连结到正确的端口。
1.3、通过NFS挂载NAS
NFS是Network File System的缩写,即网络文件系统。最早由Sun公司开发,用来在UNIX&Linux系统间实现磁盘文件共享的一种方法。它的主要功能是通过网络让不同的主机系统之间可以共享文件或目录。NFS客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务端共享的数据目录挂载到NFS客户端本地系统中(就是某一个挂载点下)。从NFS客户端的机器本地看,NFS服务端共享的目录就好像是客户自己的磁盘分区或者目录一样,而实际上确是远端的NFS服务端的目录。
在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频、图片、附件等静态资源文件。一般是把网站用户上传的文件都放在NFS共享里,例如,BBS产品的图片、附件、头像,特别是中小网站公司应用频率更高。
NFS服务器导出共享目录,NFS客户端将导出的共享挂载到本地。
挂载NFS共享方式:
-
使用mount命令手动挂载。
-
使用/etc/fstab条目在启动时自动挂载。
-
按需挂载:使用autofs服务或systemd. automount功能。
1.4、NFS挂载过程
服务端
-
安装环境依赖包
rpm -q rpcbind nfs-utils oryum -y install nfs-utils rpcbind
-
设置共享目录
mkdir -p /opt/nfs chmod 777 /opt/nfsvim /etc/exports/opt/nfs *.*.*.*/*(rw,sync,no_root_squash)
客户机地址可以是主机名、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服务器也不检查其父目录的权限,这样可以提高效率。 anonuid=xxx :指定NFS服务器/etc/passwd文件中匿名用户的UID anongid=xxx :指定NFS服务器/etc/group文件中匿名用户的GID
-
关闭防火墙,启动 NFS 服务程序
手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs
systemctl stop firewalld
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfsnetstat -anptu | grep 111 ##rpcbind默认使用端口111
netstat -anptu | grep 2049 ##nfs默认使用端口2049
- 查看本机发布的 NFS 共享目录
exportfs -rv #发布共享
showmount -e
客户端
-
安装环境依赖包
rpm -q rpcbind nfs-utils oryum -y install nfs-utils rpcbind
-
启动 NFS 服务程序
手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs
```bash
systemctl stop firewalld
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfsnetstat -anptu | grep 111 ##rpcbind默认使用端口111
netstat -anptu | grep 2049 ##nfs默认使用端口2049
```
-
挂载点:使用 mkdir 在合适的位置创建挂载点。
mkdir -p /opt/test
-
挂载:与分区上的文件系统一样,NFS共享必须先进行挂载才可用。
无论在哪种情况下,您都必须作为root用户登录,或使用sudo 命令,以超级用户身份运行这些命令。
-
临时挂载
mount -t nfs -o rw,sync "nfs-serverIP":/opt/nfs /opt/test-t nfs选项是NFS共享的文件系统类型(默认值)。-o sync选项使mount立即与NFS服务器同步写操作(默认值为async)。下一次系统启动时,此NFS共享将不可用 ,可用于在持久提供共享之前对挂载NFS共享进行测试。
-
永久挂载
vim /etc/fstab..."nfs-serverIP":/opt/nfs /opt/test nfs rw,sync 0 0
-
卸载
umount "nfs-serverIP":/opt/nfsorumount mountpoint
二、实验:搭建NFS服务端及挂载到nfs客户端
服务端
-
安装环境依赖包
-
设置共享目录
-
关闭防火墙,启动 NFS 服务程序
-
查看本机发布的 NFS 共享目录
客户端
- 安装环境依赖包
-
启动 NFS 服务程序
-
创建挂载点
-
挂载
测试
在nfs服务端/opt/nfs下创建“wl.txt”文件,内容为“wl love to bath point 88 technician”;在nfs客户端查看是否有“wl.txt”文件,并检查文件内容是否与服务端一致。
命令合集
服务端
[root@nfs-server ~]#yum -y install nfs-utils rpcbind
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
local | 3.6 kB 00:00:00
软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 已安装并且是最新版本
软件包 rpcbind-0.2.0-49.el7.x86_64 已安装并且是最新版本
无须任何处理[root@nfs-server ~]#mkdir -p /opt/nfs[root@nfs-server ~]#chmod 777 /opt/nfs[root@nfs-server ~]#vim /etc/exports/opt/nfs 10.190.33.0/24(rw,sync,no_root_squash)[root@nfs-server ~]#systemctl stop firewalld[root@nfs-server ~]#systemctl start rpcbind[root@nfs-server ~]#systemctl start nfs[root@nfs-server ~]#systemctl enable rpcbind[root@nfs-server ~]#systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.[root@nfs-server ~]#netstat -anptu | grep 111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 713/rpcbind
tcp6 0 0 :::111 :::* LISTEN 713/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 713/rpcbind
udp6 0 0 :::111 :::* 713/rpcbind [root@nfs-server ~]#netstat -anptu | grep 2049
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp6 0 0 :::2049 :::* LISTEN -
udp 0 0 0.0.0.0:2049 0.0.0.0:* -
udp6 0 0 :::2049 :::* - [root@nfs-server ~]#exportfs -rv
exporting 10.190.33.0/24:/opt/nfs[root@nfs-server ~]#showmount -e
Export list for nfs-server:
/opt/nfs 10.190.33.0/24[root@nfs-server ~]#echo wl love to bath point 88 technician > /opt/nfs/wl.txt[root@nfs-server ~]#cat /opt/nfs/wl.txt
wl love to bath point 88 technician
客户端
[root@nfs-client- ~]#yum -y install nfs-utils rpcbind
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
local | 3.6 kB 00:00:00
软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 已安装并且是最新版本
软件包 rpcbind-0.2.0-49.el7.x86_64 已安装并且是最新版本
无须任何处理[root@nfs-client- ~]# systemctl start rpcbind[root@nfs-client- ~]# systemctl stop firewalld[root@nfs-client- ~]# systemctl start rpcbind[root@nfs-client- ~]# systemctl start nfs[root@nfs-client- ~]# systemctl enable rpcbind[root@nfs-client- ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.[root@nfs-client- ~]# mkdir -p /opt/test[root@nfs-client- ~]# mount -t nfs -o rw,sync 10.190.33.10:/opt/nfs /opt/test[root@nfs-client- ~]# mount -a[root@nfs-client- ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 480736 0 480736 0% /dev
tmpfs 497816 0 497816 0% /dev/shm
tmpfs 497816 8508 489308 2% /run
tmpfs 497816 0 497816 0% /sys/fs/cgroup
/dev/mapper/centos-root 38770180 4585544 34184636 12% /
/dev/sda1 1038336 177468 860868 18% /boot
/dev/sr0 4635056 4635056 0 100% /mnt/sr
tmpfs 99564 12 99552 1% /run/user/42
tmpfs 99564 0 99564 0% /run/user/0
10.190.33.10:/opt/nfs 38770304 4584960 34185344 12% /opt/test[root@nfs-client- ~]# vim /etc/fstab...10.190.33.10:/opt/nfs /opt/test nfs rw,sync 0 0[root@nfs-client- ~]# mount -a[root@nfs-client- ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 470M 0 470M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 8.4M 478M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 37G 4.4G 33G 12% /
/dev/sda1 1014M 174M 841M 18% /boot
/dev/sr0 4.5G 4.5G 0 100% /mnt/sr
tmpfs 98M 12K 98M 1% /run/user/42
tmpfs 98M 0 98M 0% /run/user/0
10.190.33.10:/opt/nfs 37G 4.4G 33G 12% /opt/test[root@nfs-client- ~]# ll /opt/test/
总用量 4
-rw-r--r--. 1 root root 36 5月 6 01:44 wl.txt[root@nfs-client- ~]# cat /opt/test/wl.txt
wl love to bath point 88 technician
相关文章:

访问网络附加存储:nfs
文章目录 访问网络附加存储一、网络附加存储1.1、存储类型1.3、通过NFS挂载NAS1.4、NFS挂载过程服务端客户端 二、实验:搭建NFS服务端及挂载到nfs客户端服务端客户端测试命令合集服务端客户端 访问网络附加存储 一、网络附加存储 1.1、存储类型 DAS:Di…...

jsp 实验12 servlet
一、实验目的 掌握怎样在JSP中使用javabean 二、实验项目内容(实验题目) 编写代码,掌握servlet的用法。【参考课本 上机实验1 】 三、源代码以及执行结果截图: 源代碼: inputVertex.jsp: <% page lang…...

「 网络安全常用术语解读 」通用配置枚举CCE详解
1. 背景介绍 NIST提供了安全内容自动化协议(Security Content Automation Protocol,SCAP)为漏洞描述和评估提供一种通用语言。SCAP组件包括: 通用漏洞披露(Common Vulnerabilities and Exposures, CVE):提供一个描述…...

一机游领航旅游智慧化浪潮:借助前沿智能设备,革新旅游服务效率,构建高效便捷、生态友好的旅游服务新纪元,开启智慧旅游新时代
目录 一、引言 二、一机游的定义与特点 (一)一机游的定义 (二)一机游的特点 三、智能设备在旅游服务中的应用 (一)旅游前的信息查询与预订支付 (二)旅游中的导航导览与互动体…...
设计模式学习笔记 - 项目实战三:设计实现一个支持自定义规则的灰度发布组件(实现)
概述 上两篇文章,我们讲解了灰度组件的需求和设计的思路。不管之前讲的限流、幂等框架,还是现在讲的灰度组件,功能性需求都不复杂,相反,非功能性需求是开发的重点。 本章,按照上篇文章的灰度组件的设计思…...

BJFUOJ-C++程序设计-实验2-类与对象
A 评分程序 答案: #include<iostream> #include<cstring>using namespace std;class Score{ private:string name;//记录学生姓名double s[4];//存储4次成绩,s[0]和s[1]存储2次随堂考试,s[2]存储期中考试,s[3]存储期…...
数据库语法复习
总结: DDL(数据定义语言) CREATE DATABASE:创建一个新的数据库。DROP DATABASE:删除一个数据库。CREATE TABLE:创建一个新的表。DROP TABLE:删除一个表。ALTER TABLE:修改表的结构&a…...

Tomcat、MySQL、Redis最大支持说明
文章目录 一、Tomcat二、MySQL三、Redis1、最大连接数2、TPS、QPS3、key和value最大支持 一、Tomcat 查看SpringBoot内置Tomcat的源码,如下: 主要就是看抽象类AbstractEndpoint,可以看到默认的核心线程数10,最大线程数200 通过…...
MATLAB数值计算工具箱介绍
MATLAB是一个强大的数学计算平台,它提供了广泛的数值计算工具箱,这些工具箱覆盖了从基础的线性代数到复杂的数值分析和优化问题。以下是MATLAB中一些关键工具箱的详细介绍: 1. 线性代数工具箱(Linear Algebra Toolbox)…...
2023 广东省大学生程序设计竞赛(部分题解)
目录 A - Programming Contest B - Base Station Construction C - Trading D - New Houses E - New but Nostalgic Problem I - Path Planning K - Peg Solitaire A - Programming Contest 签到题:直接模拟 直接按照题目意思模拟即可,为了好去…...

ROS2学习——Docker环境下安装于使用(1)
目录 一、简要 二、ROS2和ROS1区别 三、环境搭建与安装 (2)拉取ubuntu22.04镜像 (2)安装ROS2 1. 基本设置 2.设置源 3.安装ROS2功能包 4.测试 四、相关指令学习 1.小海龟测试 2.ros2 node等指令 3.rqt 一、简要 随着R…...
数据仓库之Hologres
官方文档 简介 Hologres是阿里云推出的一种云原生的实时分析型数据仓库。它是基于开源项目Apache Hudi(Hadoop Upserts Deletes and Incrementals)进行扩展和优化的。Hologres提供了高性Hologres是阿里云推出的一种云原生的实时分析型数据仓库。它是基…...

MacOS搭建docker本地私有镜像库
相关环境 macOS: bigsur 11.7.8 docker desktop: 4.22.0 docker engine: 24.0.5 准备工作 本机已经安装好docker desktop,未安装的自行参考其他教程。如果不能翻墙,可以修改本地的镜像地址,可在docker desktop 设置中的docker engine中修…...

Unity Material(材质)、Texture(纹理)、Shader(着色器)简介
文章目录 一、概念二、Rendering Mode三、Main Maps三、参考文章 一、概念 Material(材质):物体的“色彩”、“纹理”、“光滑度”、“透明度”、“反射率”、“折射率”、“发光度”等,材质的本质是shader的实例(载体)Texture(贴图):附件到…...

《视觉十四讲》例程运行记录(1)—— 课本源码下载和3rdparty文件夹是空的解决办法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、第二版十四讲课本源码下载1. 安装git工具 二、Pangolin下载和安装1. 源码下载2. Pangolin的安装(1) 安装依赖项(2) 源码编译安装(2) 测试是否安装成功 二、…...

VLM与基础分割模型的联合使用
最近做的项目里有涉及大模型,里面有一部分的功能是: 将图片输入VLM(视觉语言模型,我使用的是llava),询问图中最显著的物体,将其给出的答案作为基础分割模型(我使用的是Grounded-SAM)的text prom…...
JS数组去重的方法
目录 1、includes 2、indexOf 3、Set结合Array.from 4、filter 5、reduce 6、使用双重for循环 介绍一下数组常用的去重复方法 以以下数组为例子来介绍,一维的数字类型数组: const arr [1, 2, 2, 2, 3, 1, 6, 4, 4, 6, 5, 7] 1、includes funct…...

Go实战训练之Web Server 与路由树
Server & 路由树 Server Web 核心 对于一个 Web 框架,至少要提供三个抽象: Server:代表服务器的抽象Context:表示上下文的抽象路由树 Server 从特性上来说,至少要提供三部分功能: 生命周期控制&…...
C#中接口设计相关原则
在C#中,接口(Interface)是一种引用类型,它定义了一个契约,指定了一个类必须实现的成员(属性、方法、事件、索引器)。接口不提供这些成员的实现,只指定成员必须按照特定的方式被实现。…...

Pytorch学习笔记——卷积操作
一、认识卷积操作 卷积操作是一种数学运算,它涉及两个函数:输入函数(通常是图像)和卷积核(也称为滤波器或特征检测器)。卷积核在输入函数上滑动,将核中的每个元素与其覆盖的输入函数区域中的对应…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...

c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...

ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...
el-amap-bezier-curve运用及线弧度设置
文章目录 简介示例线弧度属性主要弧度相关属性其他相关样式属性完整示例链接简介 el-amap-bezier-curve 是 Vue-Amap 组件库中的一个组件,用于在 高德地图 上绘制贝塞尔曲线。 基本用法属性path定义曲线的路径,可以是多个弧线段的组合。stroke-weight线条的宽度。stroke…...

[electron]预脚本不显示内联script
script-src self 是 Content Security Policy (CSP) 中的一个指令,它的作用是限制加载和执行 JavaScript 脚本的来源。 具体来说: self 表示 当前源。也就是说,只有来自当前网站或者当前页面所在域名的 JavaScript 脚本才被允许执行。"…...