NFS共享存储服务

2023-05-16

文章目录

  • 引言
  • 一、NFS概述
  • 二、安装 nfs-utils、rpcbind 软件包
  • 三、NFS的特点
  • 四、实验步骤
    • 1、安装nfs和rpcbind软件
    • 2、设置共享目录
    • 3、启动 NFS服务并验证结果
    • 4、客户机中访问 NFS 共享资源
      • 4.1 手动挂载 NFS 共享目录
      • 4.2 fstab自动挂载设置
      • 4.3 强制卸载 NFS
  • 五、总结

引言

本文详细讲解了NFS实验的几个步骤。

一、NFS概述

  • NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 sun 公司开发。通过使用 NFS协议,客户机可以像访问本地目录一样访问远程 NFS 服务器中的共享资源。
  • NFS 也是 NAS存储设备必然支持的一种协议,但是因为没有用户认证机制,而且数据在网络上明文传输,安全性很差,所以一般只能在局域网中使用。

二、安装 nfs-utils、rpcbind 软件包

NFS 服务的实现依赖于 RPC (Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。在Centos 7系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。

  • nfs端口号2049
  • RPC端口号111
rpm -q rpcbind nfs-utils     #查询是否安装
yum install -y nfs-utils rpcbind   #安装nfs和rpc的软件包

systemctl start nfs      #开启nfs服务
systemctl start rpcbind   #开启rpcbind服务
systemctl enable nfs     #开机自启nfs服务
systemctl enable rpcbind   #开机自启rpcbind服务

三、NFS的特点

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

四、实验步骤

  • 安装nfs和rpcbind软件
  • 修改配置文件设置共享
  • 创建共享目录
  • 开启服务
  • 客户端验证共享目录可访问

1、安装nfs和rpcbind软件

rpm -q rpcbind nfs-utils     #查询是否安装
yum install -y nfs-utils rpcbind   #安装nfs和rpc的软件包

2、设置共享目录

NFS 的配置文件为 /etc/exports ,文件内容默认为空(无任何共享)。
在exports 文件中设置共享资源时,记录格式为“目录位置 客户机地址(权限选项)。
例如,将文件夹 /opt/web 共享给 192.168.109.0/24网段使用,允许读写操作,配置如下

mkdir /opt/web

vim /etc/exports

/opt/web 192.168.109.0/24(rw,sync,no_root_squash)

在这里插入图片描述
常用选项:

  • rw 表示允许读写
  • ro 表示为只读
  • sync 表示同步写入到内存与硬盘中
  • no_root_squash表示当客户机以root身份访问时赋予本地root权限(默认是root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限
  • root_squash 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户

其它常用选项:

  • all_squash 所有访问用户都映射为匿名用户或用户组
  • async 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据
  • subtree_check(默认) 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
  • no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率

举例:
其中客户机地址可以是主机名 ID 地址、网段地址,允许使用 “*” “?” 通配符;权限选项中的 rw 表示允许读写(ro为只读),sync表示同步写入,no_root_squash表示当客户机以 root 身份访问时赋予本地 root 权限(默认是root_squash,将为 nfsnobody 用户降权对待)。

当需要将同一个目录共享给不同的客户机,且分配不同的权限时,只要以空格隔指定多个“客户机(权限选项)”即可。
例如,以下操作将 /var/ftp/public 目录共享给两个客户机,并分别给予只读、读写权限。

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

/var/ftp/public 192.168.109.11(ro) 192.168.109.12(rw)

3、启动 NFS服务并验证结果

需要先启动rpc服务,因为nfs要向rpc注册端口

systemctl start nfs      #开启nfs服务
systemctl start rpcbind   #开启rpcbind服务
systemctl enable nfs     #开机自启nfs服务
systemctl enable rpcbind   #开机自启rpcbind服务

netstat -anpu | grep rpc  #过滤出rpc所有UDP连接信息

rpcinfo -p localhost   #查看nfs向rpc注册的端口信息

exports -v     #验证结果
exports -r     #刷新结果

showmount -e localhost   #验证共享

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、客户机中访问 NFS 共享资源

yum install -y nfs-utils rpcbind

showmount -e 192.168.109.11   #客户端验证共享

yum install -y httpd

mount -t nfs 192.168.109.11:/opt/web /var/www/html   #将共享目录挂载到网页目录

systemctl start httpd   #启动web服务

curl 127.0.0.1   #访问主页内容

echo "到此一游" >> /var/www/html/index.html    #客户端修改主页文件(服务端会同步)

  • NFS 协议的目标是提供一种网络文件系统,因此对 NFS 共享的访问也使用 mount 命令来进行挂载,对应的文件系统类型为 nfs 。
  • 可以手动挂载,也可以加入 fstab 配置文件来实现开机自动挂载。

4.1 手动挂载 NFS 共享目录

以 root 用户身份执行 mount 操作,将 NFS 服务器共享的 /opt/web目录挂载到本地目录 /var/www/html 。与挂载本地文件系统不同的是,设备位置处应指出服务器地址。

mount -t nfs 192.168.109.11:/opt/web /var/www/html

在这里插入图片描述

4.2 fstab自动挂载设置

修改 /etc/fstab 配置文件,加入 NFS 共享目录的挂载设置(文件系统类型为nfs)。
挂载参数建议添加_netdev(设备需要网络)
若添加 soft、intr 参数可以实现软挂载,允许在网络中断时放弃挂载。这样客户机就可以在每次开机后自动挂载 NFS 共享资源了。

vim /etc/fstab

192.168.109.11:/opt/web /var/www/html           nfs     default,_netdev 0 0

在这里插入图片描述

4.3 强制卸载 NFS

  • NFS客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS 服务突然间停掉了,那么在客户端就会出现执行 df -h
    命令卡死的现象。
  • 这个时候使用 umount 命令是无法直接卸载的,需要加上-lf 选项才能卸载。
  • 当出现卡死现象时,要重新开一个终端,执行 cat /etc/rc.local 命令,查看挂载点。然后使用 umount 命令卸载,其中-l 选项表示解除正在繁忙的文件系统,-f 选项表示强制。
systemctl stop nfs    #服务器端模拟nfs挂掉

umount /var/www/html   #客户端卸载时会卡住

umount -lf /var/www/html   #加lf参数成功卸载

其他nfs文件:

/var/lib/nfs/etab       #记录NFS分享出来的目录的完整权限设定值

/var/lib/nfs/xtab       #记录曾经登录过的客户端信息

五、总结

本文内容主要讲了NFS的安装步骤,先安装nfs和rpcbind软件,然后修改配置文件设置共享,再创建共享目录,最后开启服务,客户端就可以访问共享目录了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NFS共享存储服务 的相关文章

  • Linux下安装cuda和对应版本的cudnn

    1 首先在安装cuda与cudnn之前 xff0c 系统需要成功安装Nvidia驱动 xff0c 安装教程请参照以下教程 xff1a Nvidia驱动安装教程 2 验证系统内部是否已经安装了cuda 打开命令行 xff0c 输入以下命令 x
  • Windows安装Matlab的具体步骤

    一 进行相关文件的下载 安装所需的文件可以从以下链接获取 xff0c 提取码 xff1a 5417 点击此处进行文件下载 二 进行Matlab的安装 1 文件内容解释 下载的文件一共有三个 xff0c 文件名称分别为 xff1a Matla
  • Tensorflow---Tensorflow的五种保存模型的方式介绍

    一 保存模型的全部配置信息 使用model save 函数搭配tf keras models load model 对模型的架构 xff0c 权重以及配置进行保存与恢复 模型的保存代码如下 xff1a span class token ke
  • ISPRS遥感数据集--Potsdam数据集,Vaihingen数据集,Toronto数据集

    一 数据的获取 Potsdam数据集下载链接 百度网盘提取码 xff1a lala Vaihingen数据集下载链接 百度网盘提取码 xff1a lala Toronto数据集下载链接 百度网盘提取码 xff1a lala 二 数据集的介绍
  • Pytorch---使用Pytorch实现U-Net进行语义分割

    一 代码中的数据集可以通过以下链接获取 百度网盘提取码 xff1a f1j7 二 代码运行环境 Pytorch gpu 61 61 1 10 1 Python 61 61 3 8 三 数据集处理代码如下所示 span class token
  • 属性的注入---构造方法的注入

    Java类代码如下 xff1a span class token keyword package span span class token namespace org span class token punctuation span a
  • 属性的注入---set方法注入

    Java类代码如下 xff1a span class token keyword package span span class token namespace org span class token punctuation span a
  • 属性的注入---P名称空间注入

    Java类代码如下 xff1a span class token keyword package span span class token namespace org span class token punctuation span a
  • Java数组元素循环向前挪动1位后输出

    package practice 数组元素挪动 指导老师 xff1a 杨 宇 64 author WanAkiko public class TheElementMove public static void main String arg
  • 记一次引入cocoapods找不到库的问题

    记一次引入cocoapods找不到库的问题 最近维护公司代码 xff0c 代码很老了 xff0c 各种三方库都是拖进工程里面 xff0c 为了方便管理打算使用cocoapods管理三方库 xff0c 也为之后的组件化私有库分离做准备 但是期
  • MySQL8.0版本设置新密码

    安装好MySQL后打开cmd窗口 启动MySQL gt net start mysql 或任务管理器 gt 服务 gt 找到MySQL右键开始 连接MySQL gt mysql uroot p 这是会出现 34 Enter password
  • watch与computed的区别

    今天说说watch与computed的区别 我们知道有些功能既可以用watch实现又可以用computed实现 xff0c 谁比谁好呢 xff0c 没个准信 我们先来用它俩实现同一功能再进行对比看看具体好处 例子 xff1a 定义两个输入框
  • 新搭建Gitlab代码仓代码如何导入

    这里写目录标题 一级目录1 本地代码如何导入新Gitlab2 怎么将旧Gitlab代码导入新Gitlab 一级目录 1 本地代码如何导入新Gitlab 修改本地代码 git 目录下面的config 文件 xff0c 主要是url参数 xff
  • 思科交换机和路由器的配置

    思科交换机和路由器的配置 交换机的配置交换机端口的隔离跨交换机实现VLAN 路由器的配置静态路由RIP Version 1协议 xff08 动态路由 xff09 上一篇 xff1a 思科的安装与汉化 下一篇 xff1a 思科综合实例 接下来
  • c++实现单链表头插法、尾插法、删除、遍历

    最近复习数据结构与算法 xff0c 先从单链表开始 首先明确链表参数为 head xff08 即二级指针 xff09 的原因 xff1a 只要是要修改head指针必须传递head的地址 xff08 用 head xff09 xff0c 否则
  • 选择结构编程练习题

    1 3求任意一个整数的十位上的数字 1 4 输入三个实数 xff0c 判断能否构成三角形 xff1b 若能 xff0c 再说明是何种类型的三角形 1 5输入任意的a b c求一元二次方程ax x 43 bx 43 c 61 0的根 1 6
  • VScode搭建Opencv(C++开发环境)

    VScode配置Opencv 一 准备软件二 下载软件1 MinGw下载2 Cmake下载3 Opencv下载 三 编译1 cmake gui2 make3 install 四 VScode配置1 launch json2 c cpp pr
  • 树莓派 | 解决VNC Viewer无法连接显示问题

    如果觉得本篇文章对您的学习起到帮助作用 xff0c 请 点赞 43 关注 43 评论 xff0c 留下您的足迹 x1f4aa x1f4aa x1f4aa VNC Viewer是一个很不错的远程桌面应用 xff0c 但是我们在树莓派中使用时
  • CV应用领域-目标跟踪

    目标跟踪 啥是目标跟踪 xff1a 夏天的你走在大街上 xff0c 看见道路对面走过来一个漂亮的小姐姐 xff0c 你目不转睛的欣赏夏天美丽的风景 xff0c 这个过程就是目标跟踪 开个玩笑哈哈哈哈哈 通常 xff0c 我们所说的目标跟踪任
  • 面试1:MYSQL数据库语法

    关于MYSQL数据库一些语法 数据库基本语法 增加 xff1a insert into 数据表 字段1 字段2 字段3 values 值1 值2 值3 删除 xff1a delete from 数据表 where id 61 你要删除的数据

随机推荐

  • MAC 下解决端口占用的问题

    查看端口号 终端输入 xff1a sudo lsof i tcp port 将port换成被占用的端口 如 xff1a 8086 9998 将会出现占用端口的进程信息 杀死占用端口的PID进程 找到进程的PID 使用kill命令 xff1a
  • 树莓派配置watchdog

    0x00 安装watchdog apt span class hljs keyword install span watchdog 编辑 etc modules xff0c 添加bcm2708 wdog 编辑 etc watchdog co
  • 2023编程必会的100个代码大全,建议立刻收藏

    前言 我记得刚开始接触编程的时候 xff0c 觉得太难了 也很好奇 xff0c 写代码的那些人也太厉害了吧 xff1f 全是英文的 xff0c 他们的英文水平一定很好吧 xff1f 他们是怎么记住这么多代码格式的 xff1f 而且错了一个标
  • 第一篇博客

    第一篇博客 为了方便以后写博客的练习 以下内容基本都是来自写博客的帮助文档 xff0c 为了以后查找相关内容的时候不需要在在站内打开 xff0c 并且自己做一些实例 xff0c 熟练一下写博客的内容为了以后更方便 快捷键 撤销 xff1a
  • JavaEE入门第一课——配置项目并连接数据库

    JavaEE环境搭建 本地安装Java本地安装Tomcat本地安装Mysql本地创建IDEA JavaEE项目本地使用JDBC连接Mysql xff0c 并且读取数据库中的数据 1 本地安装Java 参考 xff1a https blog
  • 基于Mysql、Servlet、JSP的简单作业管理系统

    文章目录 基于Mysql Servlet JSP的简单作业管理系统内容Servlet简单介绍JSP简单介绍mysql数据库设计代码实现运行结果 基于Mysql Servlet JSP的简单作业管理系统 代码地址 xff1a https gi
  • JavaEE_FinalProject

    基于Springboot xff0c jsp和mybatis的作业管理系统 系统需求 可登陆 xff0c 分为学生和老师两端 xff0c 根据账号进行不同分类 老师可以查看作业 xff0c 添加学生并且添加作业 学生可以查看作业 xff0c
  • Debian10搭建dhcp服务

    文章目录 1 安装dhcp服务2 设置网卡监听3 配置dhcp参数4 重启dhcp服务5 测试6 易错总结 1 安装dhcp服务 apt install y isc dhcp server 等待安装完成即可 xff08 这里有一个报错 xf
  • Debian10搭建ntp服务

    文章目录 1 所需设备2 任务描述3 安装ntp服务4 配置ntp服务器4 安装ntpdate客服端5 Debian10Client设置计划任务6 易错总结 1 所需设备 两台Debian10Debian10Server 网卡信息 xff1
  • win11安装的Ubuntu20.04子系统出现System has not been booted with systemd as init system (PID 1)问题的解决流程

    目录 一 前言 二 具体解决方法 第一步 xff1a 切换root用户至自己账号 第二步 xff1a 重新安装xrdp 第三步 xff1a 重新配置端口并启动xrdp 第四步 xff1a 打开远程连接窗口 第五步 xff1a 点击连接 xf
  • 方面级情感分析综述论文&论文+讲解+复现(ABSA)

    2022最新方面级别情感分析论文综述 A Survey on Aspect Based Sentiment Analysis Tasks Methods and Challenges 其中关于ASTE Data V2数据集的论文 1 论文地
  • 使用Go语言开发Qt界面

    Go 的 UI 库 Go 语言本身是没有 UI 库的 xff0c 不过有许多第三方的库支持将 Go 语言绑定到其他 UI 库 xff0c 比如 Qt GTK 参考地址 环境搭建 非 windows 或者需要参数说明的可以参考官方的wiki
  • GitHub AI 编程工具自动写代码神器Copilot插件体验

    简介 copilot 是一个基于 AI 的编程辅助工具 目前已经集成在了 vscode 中 xff0c 后续可能集成到更多平台和工具 xff0c 目前还是测试阶段 官网地址 https copilot github com 支持所有语言 c
  • WebStorm NodeJS

    按 Create New Project 選擇 Empty Project 選擇自己的Directory 作為Location Location 最尾是代表Project Name 改為Hello World 創建一個Javascript
  • wsl ubuntu22.04 conda环境安装labelImg解决xcb缺失问题

    labelImg 安装 pip install PyQt5 i https pypi tuna tsinghua edu cn simple pip install pyqt5 tools i https pypi tuna tsinghu
  • 7个大一C语言必学的程序 / C语言经典代码大全

    嗨 大家好 xff0c 这里是可莉 xff01 今天给大家带来的是7个C语言的经典基础代码 那一起往下看下去把 程序一 打印100到200之间的素数 include lt stdio h gt int main int i for i 61
  • 字符串转化为枚举类型

    需求 xff1a 通过配置文件中自定义传入枚举类型的值 span class token annotation punctuation 64 value span span class token punctuation span span
  • NAT和PAT的原理及配置

    文章目录 一 NAT1 NAT概述2 私有地址3 NAT工作原理4 NAT功能5 NAT包含4类地址6 NAT的实现方式 二 静态转换 xff08 Static Translation xff09 三 动态转换 xff08 Dynamic
  • Linux系统安装教程(手把手教学)

    文章目录 1 首先 xff0c 打开虚拟机 xff0c 点击新建虚拟机2 点击下一步 xff0c 再点击稍后安装3 操作系统选择Linux xff0c 版本选择CentOS7 64位4 命名虚拟机5 设置磁盘大小为100GB6 设置内存为4
  • NFS共享存储服务

    文章目录 引言一 NFS概述二 安装 nfs utils rpcbind 软件包三 NFS的特点四 实验步骤1 安装nfs和rpcbind软件2 设置共享目录3 启动 NFS服务并验证结果4 客户机中访问 NFS 共享资源4 1 手动挂载