构建NFS远程共享存储

目录

一. NFS介绍

二. 网络附加存储(NAS)设备 

三. 远程过程调用

四. 实验测试

4.1 nfs-server操作

 4.1.1 新建一个目录作为共享

4.1.2 新增一个磁盘作为共享 

4.2 web1  客户端操作 


一. NFS介绍

NFS(Network File System)是一种分布式文件系统协议,允许网络中的计算机之间共享文件。它最初由Sun Microsystems开发,现在成为了许多操作系统的标准功能之一,包括Linux、UNIX和类UNIX系统。

NFS的主要特点和优势包括:

  1. 共享文件系统:NFS允许多台计算机通过网络共享文件,使得这些文件在网络中可以被多台计算机访问和操作。

  2. 透明性:对于用户来说,NFS提供了透明的文件访问体验,就好像文件存储在本地一样。用户不需要关心文件存储在哪台服务器上,只需要像操作本地文件一样操作共享文件。

  3. 跨平台兼容性:NFS在多种操作系统之间提供了文件共享功能,包括Linux、UNIX、macOS等,这使得不同平台之间可以无缝地共享文件。

  4. 简化管理:通过NFS,管理员可以将文件集中存储在一台或多台文件服务器上,而不是分散在每台计算机上,这样可以简化文件管理和备份。

  5. 性能:NFS可以在本地网络或广域网络(WAN)上实现高性能文件共享,使得远程访问文件的速度接近本地访问的速度。

尽管NFS有很多优点,但也有一些考虑因素,比如安全性、性能调优、网络延迟等。因此,在实际应用中,需要根据特定的需求和环境来评估是否使用NFS以及如何配置和管理NFS。

NFS 文件系统仅支持基于 IP 的用户访问控制,NFS 的客户端主要为Linux。

二. 网络附加存储(NAS)设备 

在文件系统级别进行共享,通常使用的是网络附加存储(NAS)设备。这种共享方法允许多个计算机通过网络访问共享存储设备上的文件。两种常见的文件系统级别共享方法是NFS(Network File System)和Samba。

  1. NFS(Network File System)

    • NFS是一种在UNIX和类UNIX系统之间共享文件的标准协议。
    • 它允许Linux和其他UNIX系统之间通过网络访问共享目录。
    • NFS速度快,适合局域网环境下的文件共享,但在广域网上可能速度较慢。
  2. Samba

    • Samba是一个开源的实现了SMB/CIFS协议的软件套件,它允许UNIX系统上的计算机与Windows系统共享文件和打印机。
    • Samba可以在Linux、UNIX和Windows之间提供文件共享服务。
    • 尽管Samba可以提供更广泛的操作系统兼容性,但在某些情况下,与NFS相比可能会有一些性能损失。

选择NFS还是Samba取决于你的环境和需求:

  • 如果你的网络中主要是UNIX/Linux系统,而且速度要求较高,可以选择NFS。
  • 如果你的网络中有Windows系统,并且需要与这些系统进行文件共享,可以选择Samba。
  • 如果需要跨平台兼容性,可能需要同时配置NFS和Samba,以满足不同操作系统的需求。

三. 远程过程调用

RPC(Remote Procedure Call,远程过程调用)是一种在计算机网络中进行进程间通信的协议,它允许一个计算机程序调用另一个位于远程计算机上的程序,就像调用本地程序一样。NFS(Network File System)就是通过RPC来实现客户端和服务器之间的通信。

下面是RPC和NFS之间的通信过程:

  1. RPC客户端调用

    • 当客户端需要访问NFS服务器上的文件时,它会通过RPC调用向NFS服务器发出请求。
    • RPC客户端会构建一个请求消息,其中包含了调用的远程过程的标识符、参数等信息。
  2. RPC服务器响应

    • NFS服务器收到客户端发来的RPC请求后,会解析请求消息,确定所需执行的操作。
    • NFS服务器执行相应的文件操作(如读取、写入等),并将结果返回给RPC客户端。
  3. RPC客户端接收响应

    • 客户端接收到来自服务器的响应消息,其中包含了所需的文件数据或执行结果。
  4. 通信过程中的端口信息传递

    • 在RPC通信的过程中,客户端和服务器之间会使用一系列动态分配的端口进行通信。这些端口的信息会在RPC调用的过程中通过RPC协议进行传递和记录。
    • RPC协议会确保客户端和服务器都能够正确地识别对方使用的端口,并确保通信的正确性和完整性。

总的来说,RPC提供了一种机制,使得NFS客户端和服务器之间能够通过网络进行通信,而不需要关心底层网络细节和具体的端口分配。RPC协议会处理通信中的细节,确保客户端和服务器之间能够有效地进行远程过程调用,并传递所需的端口信息。

四. 实验测试

 实验环境准备两台机器

服务端:nfs-server   192.168.226.100
客户端:web1           192.168.226.130

 #centos7(服务端和客户端都关闭防火墙和selinux内核防火墙)
systemctl stop firewalld
systemctl disable firewalld    
setenforce 0

4.1 nfs-server操作

 4.1.1 新建一个目录作为共享

[root@nfs-server ~]# yum -y install rpcbind  #安装rpc协议的包
[root@nfs-server ~]# yum -y install nfs-utils #安装nfs服务。
启动服务
[root@nfs-server ~]# systemctl start nfs
[root@nfs-server ~]# systemctl start rpcbind
[root@nfs-server ~]# mkdir /nfs-dir   #创建存储目录
[root@nfs-server ~]# echo "这是一个测试页面" >> /nfs-dir/index.html  #常见共享测试文件
[root@nfs-server ~]# vim /etc/exports   #编辑共享文件,新增如下内容
/nfs-dir        192.168.226.0/24(rw,no_root_squash,sync)[root@nfs-server ~]# systemctl restart nfs-server #重启服务。
[root@nfs-server ~]# systemctl enable nfs-server #开机自启动
可选参数注释:
ro:只读
rw:读写
*:表示共享给所有网段。
sync:所有数据在请求时写入共享
root_squash: 对于使用分享目录的使用者如果是root用户,那么这个使用者的权限将被压缩成为匿名使用者,只读权限。
no_root_squash:使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限。

4.1.2 新增一个磁盘作为共享 

前提下载包和关闭防火墙和seliunx不在赘述,看上方内容了解1.查看块设备,找到新增的磁盘名
lsblk2.格式化磁盘
方式一:
mkfs.ext4 /dev/sdb
方式二:
mkfs.xfs /dev/sdb3.新建一个目录用作挂载目录
mkdir /mnt/new_disk4.挂载磁盘
mount /dev/sdb /mnt/new_disk5.配置NFS共享
vim /etc/exports#新增如下,表示将/mnt/new_disk目录共享给所有主机
/mnt/new_disk *(rw,sync,no_root_squash)6.重启服务
systemctl restart nfs-server7.创建一个测试文件,看是否成功
echo "这是使用磁盘进行NFS共享" >> /mnt/new_disk/index.txt

4.2 web1  客户端操作 

[root@web1 ~]# yum -y install rpcbind
[root@web1 ~]# yum -y install nfs-utils
[root@web1 ~]# mkdir /ceshi                                    #创建目录共享的挂载点
[root@web1 ~]# mkdir /gongxiang                                #创建磁盘共享的挂载点
[root@web1 ~]# mount -t nfs 192.168.226.100:/nfs-dir /ceshi           #挂载
[root@web1 ~]# mount -t nfs 192.168.226.100:/mnt/new_disk /gongxiang  #挂载# -t:指定文件系统类型
[root@web1 ~]# 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   12M  1.9G    1% /run
tmpfs                          tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root        xfs        17G   13G  4.2G   76% /
/dev/sda1                      xfs      1014M  151M  864M   15% /boot
tmpfs                          tmpfs     378M     0  378M    0% /run/user/0
192.168.226.100:/nfs-dir       nfs4       17G  1.9G   16G   12% /ceshi
192.168.226.100:/mnt/new_disk  nfs4       20G   44M   19G    1% /gongxiang[root@web1 ~]# ls /ceshi
index.html
[root@web1 ~]# umount /ceshi     #取消挂载
[root@web1 ~]# umount /gongxiang #取消挂载制作开机挂载
[root@web1 ~]# vim /etc/fstab
192.168.226.100:/nfs-dir        /ceshi       nfs   rw,nofail,bg   0 0
192.168.226.100:/mnt/new_disk   /gongxiang   nfs   rw,nofail,bg   0 0[root@web1 ~]# mount -a对rw,nofail,bg 参数解释:
rw     表示文件系统以可读写(read-write)模式挂载,允许用户对文件系统进行读写操作
nofail 表示即使文件系统挂载失败,系统也不会因此启动失败。
bg     表示以后台(background)模式挂载文件系统。

现在就验证成功拉,实际应用也是一样的原理。 

当然,在客户端也可以进行修改,客户端与服务端会实时同步 。

扩展:

 在客户端操作时这个语句mount -t nfs 192.168.226.100:/nfs-dir /ceshi

其中的IP可以换成主机名,那么就要在/etc/hosts文件中新增如下格式的内容

IP地址 主机名

测试:

[root@web1 ~]# umount /ceshi #先取消之前的挂载
[root@web1 ~]# mount -t nfs server:/nfs-dir /ceshi     #使用主机名挂载
[root@web1 ~]# 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   12M  1.9G    1% /run
tmpfs                   tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G   13G  4.2G   76% /
/dev/sda1               xfs      1014M  151M  864M   15% /boot
tmpfs                   tmpfs     378M     0  378M    0% /run/user/0
server:/nfs-dir         nfs4       17G  1.9G   16G   12% /ceshi

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

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

相关文章

UTONMOS探索元宇宙:开启未来数字世界的无限可能

在科技的浪潮中,元宇宙如同一颗璀璨的星辰,冉冉升起,吸引着无数人的目光。 元宇宙,一个超越现实的数字世界,它融合了虚拟现实、增强现实和互联网等多种技术,为人们打造了一个全新的沉浸式体验空间。在这里…

数据结构--顺序表和链表的区别

顺序表和链表之间各有优劣,我们不能以偏概全,所以我们在使用时要关注任务的注重点,以此来确定我们要使用两者中的哪一个。 不同点: 存储空间上: 顺序表在物理结构上是一定连续的,而链表(这里以带头双向循环…

面 试 题

过滤器和拦截器的区别 都是 Aop 思想的一种体现,用来解决项目中 某一类 问题的两种接口(工具),都可以对请求做一些增强 出身 过滤器来自 servlet 拦截器来自 spring 使用范围 过滤器 Filter 实现了 iavax.servlet.Filter 接口,也就是说…

CSS实现渐变色

渐变色分为线性渐变和径向渐变。 线性渐变linear-gradient(方向, 颜色1, 颜色2, … ,颜色n)径向渐变radial-gradient(颜色1 覆盖区域大小, 颜色2 覆盖区域大小, … ) 线性渐变的方向可以为: ​ 1、一个方向值时: to bottom 表示从上边到下边渐变 ​ 2、…

Spring AI多模态接口开发

文章目录 项目地址创建项目配置项目接口开发结果测试测试接口测试在线图片接口测试本地图片接口测试 项目地址 Spring AI项目开发 创建项目 打开IDEA创建一个新的spring boot项目,填写项目名称和位置,类型选择maven,组、工件、软件包名称可…

Android 11 输入系统之InputDispatcher和应用窗口建立联系

InputDispatcher把输入事件传给应用之前,需要和应用窗口建立联系,了解了这个过程,就清楚了APP进程和InputDispatcher线程也就是SystemServer进程之间是如何传输数据了 我们向窗口addView的时候,都会调用到ViewRootImpl的setView方…

Docker 部署 Nginx 实现一个极简的 负载均衡

背景: Nginx是异步框架的网页服务器,其常用作反向代理(负载均衡器)。在一般的小项目中, 服务器不多, 如果不考虑使用服务注册与发现, 使用Nginx 可以容易实现负载均衡。 在特此写一个快速入门 Nginx 的技术贴, 使用 Docker 部署 Nginx, 实现一个极简的加权轮询负载均…

现在的原创内容博客 SEO 最好就选谷歌和必应!

当我们在国内讨论搜索引擎优化的时候,我们经常讨论的是百度 SEO,很少提及 Bing 搜索与 Google 搜索,但随着跨境电商的崛起,在国内做外贸 SEO 的小伙伴越来越多,有效的了解 Bing 搜索与 Google 搜索的优化规则是很有必要…

开源aodh学习小结

1 介绍 aodh是openstack监控服务(Telemetry)下的一个模块,telemetry下还有一个模块ceilometer OpenStack Docs: 2024.1 Administrator Guides Get Started on the Open Source Cloud Platform - OpenStack Telemetry - OpenStack 1.1 代码仓…

softmax函数与交叉熵损失详解

文章目录 一、softmax函数1.1 引入指数形式的优点1.2 引入指数形式的缺点 二、交叉熵损失函数2.1 交叉熵损失函数2.2 softmax与交叉熵损失 参考资料 一、softmax函数 softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区…

【C++ 内存管理】深拷贝和浅拷贝你了解吗?

文章目录 1.深拷贝2.浅拷贝3.深拷贝和浅拷贝 1.深拷贝 🍎 深拷⻉: 是对对象的完全独⽴复制,包括对象内部动态分配的资源。在深拷⻉中,不仅复制对象的值,还会复制对象所指向的堆上的数据。 特点: 🐧① 复制对…

记录一下 log4j的漏洞

目录 背景 bug的产生 bug复现 JNDI 网络安全学习路线 (2024最新整理) 学习资料的推荐 1.视频教程 2.SRC技术文档&PDF书籍 3.大厂面试题 特别声明: 背景 log4j这次的bug,我相信大家都已经知道了,仅以…

【unity小技巧】减少Unity中的构建打包大小

文章目录 正常默认打包查看编辑器打包日志压缩图片压缩网格模型压缩贴图压缩音频文件只打64位包最终大小完结 正常默认打包 这里以安卓为例。先什么都不干,直接打包安卓apk,查看包大小 查看编辑器打包日志 搜索build report构建报告。构建报告我们应该…

Pytorch学习-引言

Pytorch相关链接 Pytorch官方网站 https://pytorch.org/ Pytorch的Github仓库 https://github.com/pytorch/pytorch Pytorch论坛 https://discuss.pytorch.org/ Pytorch离线下载包链接 https://download.pytorch.org/whl/torch_stable.html Pytorch学习视频推荐链接 http://【…

手写一个SPI FLASH 读写擦除控制器

文章目录 flash读写数据的特点1. 扇擦除SE(Sector Erase)1.1 flash_se 模块设计1.1.1 信号连接示意图:1.1.2 SE状态机1.1.3 波形图设计:1.1.4 代码 2. 页写PP(Page Program)2.1 flash_pp模块设计2.1.1 信号连接示意图:…

JavaScript 对象入门:基础用法全解析

目录 对象 语法 属性和访问 方法和调用 this关键字 null 遍历对象 内置对象 Math 属性 方法 Date 创建日期对象 获取和设置日期 ⭐对象 对象是 JavaScript 数据类型的一种,数据类型也包括数值类型、字符串类型、布尔类型、undefined。对象数据类型可…

程序员之路:裁员与内卷下的生存之道

作为一名普通的程序员,身处这个瞬息万变的IT行业,面对着今年不断加剧的裁员浪潮和日益激烈的内卷竞争,我时常感到焦虑和不安。然而,正是这些挑战,让我们更加深入地思考了在这个行业中,我们该如何找到自己的…

2024统计建模中国新质生产力统计测度与时空演变及其驱动因素研究

高质量成品论文46页word版本1.5w字书写完整数据集1000行py代码一等奖论文!这里仅展示部分内容,完整版在下面的链接。 【1.5w字全网最佳】2024统计建模大赛高质量成品论文39页配套完整代码运行全套数据集https://www.jdmm.cc/file/2710661/ 中国新质生产…

【2024HNCTF】密码组部分出题记录

2024H&NCTF 密码组部分出题记录 题目:BabyPQ、HappyDance 文章目录 2024H&NCTF 密码组部分出题记录BabyPQ | 签到HappyDance BabyPQ | 签到 本题为nc交互题,之所以采用这种形式,是因为可能有很多密码新师傅们不了解这种赛题形式&a…

AI机器人火了,探讨早就可以帮我们开拓市场的中关村科金语音机器人

近期AI机器人给我们带来了不少惊喜,比如国外 Figuer 联合 OpenAI 做了 Chatgpt 机器人,可以通过对话后推理干活,国内仿生机器人员工也开始量产,看到AI机器人不禁想到会不会替代我们的工作?我们了解到很多机器人厂家的…