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-utils (nfs端口号 2049/tcp):共享服务
  • rpcbind (RPC端口号 111/tcp) :远程共享调用
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服务器安装 nfs-utils、rpcbind 软件包
  • NFS服务器设置共享目录 
  • 启动 NFS服务并验证结果
  • 客户机中访问 NFS 共享资源  ,手动挂载 NFS 共享目录  ,fstab自动挂载设置 ,强制卸载 NFS

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.100.0/24网段使用 允许读写操作

mkdir /opt/webvim /etc/exports/opt/web 192.168.100.0/24(rw,sync,no_root_squash)

常用选项:

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

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

[root@localhost ~]# vim /etc/exports/var/ftp/public 192.168.100.11(ro) 192.168.100.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 rpcbindshowmount -e 192.168.109.11                           #客户端验证共享yum install -y httpdmount -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 配置文件来实现开机自动挂载。

手动挂载 NFS 共享目录

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

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

fstab自动挂载设置

修改 /etc/fstab 配置文件,加入 NFS 共享目录的挂载设置(文件系统类型为nfs)。
挂载参数建议添加_netdev(设备需要网络)

vim /etc/fstab192.168.109.11:/opt/web /var/www/html           nfs     default,_netdev 0 0

 

强制卸载 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参数成功卸载
    

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

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

相关文章

【论文阅读——GTG-Shapley: Efficient and Accurate Participant Contribution Evaluation】

1. 文章来源 ACM Transactions on Intelligent Systems and Technology 学术论文,已出版 2. 主要贡献 提出了引导截断梯度Shapley(GTG-Shapley)方法来解决这一挑战。它使用梯度更新来重建FL模型以进行SV计算,而不是使用不同组合…

C语言 文件操作

目录 1. 什么是文件?2. 二进制文件和文本文件3. 文件的打开和关闭3.1 流和标准流3.1.1 流3.1.2 标准流 3.2 文件指针3.3 打开、关闭文件3.3.1 fopen - 打开文件3.3.2 fclose - 关闭文件 4. 文件的顺序读写4.1 fgetc - 从文件流获取一个字符4.2 fputc - 将一个字符写…

智能优化算法 | Matlab实现KOA开普勒优化算法(内含完整源码)

智能优化算法 | Matlab实现KOA开普勒优化算法(内含完整源码) 文章目录 智能优化算法 | Matlab实现KOA开普勒优化算法(内含完整源码)文章概述源码设计文章概述 智能优化算法 | Matlab实现KOA开普勒优化算法(内含完整源码) 源码设计 %% clear all clc N=25; % Number of s…

Spring的IOC和AOP机制?

我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂。 主要用到的设计模式有工厂模式和代理模式。 IOC就是典型的工厂模式,通过sessionfactory去注入…

stm32开发三、GPIO

部分引脚可容忍5V,容忍5V的意思是:可以在这个端口输入5V的电压,也认为是高电平 但是对于输出而言,最大就只能输出3.3V,因为供电就只有3.3V 具体哪些端口能容忍5V,可以参考一下STM32的引脚定义 不带FT的,就只…

机器学习(2)

目录 2-1泛化能力 2-2过拟合和欠拟合 2-3三大问题 2-4评估方法 2-5调参和验证集 2-6性能度量 2-7比较检验 2-1泛化能力 如何进行模型评估与选择? 2-2过拟合和欠拟合 泛化误差:在“未来”样本上的误差 经验误差:在训练集上的误差&am…

Elastic 将于 2024 年 5 月 25 日在上海举行线下 Meetup

2024 Elastic Meetup 上海站活动,由 Elastic、悦高软件、新智锦绣联合举办,现诚邀广大技术爱好者及开发者参加。 活动时间 2024 年 5 月 25 日 13:30-18:00 活动地点 中国上海 上海市黄浦区北京东路668号科技京城G座7楼 活动流程 13:30-14:00 入场 14…

设计一个游戏的基本博弈框架

设计一个游戏的基本博弈框架,玩家通过操作改变某个数值,这个数值的变动会引发一系列实时变化,并且当这些数值累计到特定阈值时,会导致游戏中出现其他变化,可以分为以下几个步骤: 1. 确定游戏类型和主题 首…

从零创建一个vue2项目

标题从零创建一个vue2项目,项目中使用TensorFlow.js识别手写文字 npm切换到淘宝镜像 npm config set registry https://registry.npm.taobao.org安装vue/cli -g npm install -g vue/cli检查是否安装成功 vue -V创建项目 vue create 项目名安装TensorFlow npm …

1689 ssm社区老人危机干预系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java ssm社区老人危机干预系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主…

为什么很多计算机专业的同学毕业即失业❓

✅大部分计算机专业毕业生在就业时遇到困难,原因往往是多方面的,并非普遍情况,主要包括以下几点: 1.技能不匹配:学校所学知识可能与实际工作需求有一定差距,比如缺乏特定编程语言的深入掌握或实际项目经验。…

【Docker】docker 镜像如何push到私有docker仓库

文章目录 一、 网址解析对于Linux和macOS系统:对于Windows系统: 二、 镜像push 一、 网址解析 希望 registry.meizu.com 能够解析到内网IP地址(例如10.128.17.157),您可以通过修改主机的 hosts 文件来实现。 hosts 文…

【机器学习】机器学习与人工智能融合新篇章:自适应智能代理在多元化复杂环境中的创新应用与演进趋势

🔒文章目录: 💥1.引言 🚋1.1 机器学习与人工智能的发展背景 🚌1.2 自适应智能代理的概念与重要性 🚐1.3 研究目的与意义 ☔2.自适应智能代理的关键技术 🛣️2.1 环境感知与信息处理技术 …

【网络知识】光猫、路由器 和 交换机 的作用和区别?

1.光猫如下: 光猫:将光纤的光信号转换为数字信号。 2.路由器如下: 路由器上的 WAN 口 是黄色,用于连接外部网络,比如:光猫出来的线。 黄色隔壁三个白灰色接口为LAN口,负责内网,比如…

C# WinForm —— 14 CheckedListBox 复选列表框介绍

1. 简介 类似 ListBox,提供项的列表,区别就是 CheckedListBox 每一个项前面有个复选框 2. 常用属性 属性解释(Name)控件ID,在代码里引用的时候会用到,一般以 ckl 开头BackColor背景颜色BoderStyle边框样式:无、FixedSingle、F…

SqlServer2016安装

1、下载 下载地址: https://www.microsoft.com/en-us/server-cloud/products/sql-server-2016/ 或者 MSDN, 我告诉你 - 做一个安静的工具站 开发版下载地址:https://myprodscussu1.app.vssubscriptions.visualstudio.com/downloads KB2919442下载地址…

Centos7 配置 DNS服务器

Centos 7 配置DNS服务器 环境描述: 一台服务器和一台用于测试的客户机 服务器IP:192.168.200.132 客户机IP:192.168.200.143 服务器配置 yum install bind bind-utils -y #安装软件包vim /etc/named.conf //编辑named主配置文件listen-on p…

【云原生】Kubeadm搭建K8S

一、部署Kubernetes 实验环境 服务器主机名IP地址主要组件k8s集群master01 etcd01master01192.168.10.100kube-apiserver kube-controller-manager kube-schedular etcdk8s集群node01 etcd02node01192.168.10.101kubelet kube-proxy docker flannelk8s集群node02 etcd03nod…

uniapp编译H5解决ios的border-radius失效问题,以及ios满屏显示不全的问题

1.解决方案 .card-itemA {width: 650rpx;height: 326rpx;box-shadow: 0rpx 0rpx 30rpx 14rpx rgba(236, 235, 236, 0.25);background: linear-gradient(180deg, #FFFFFF 0%, rgba(255, 255, 255, 0) 100%);border-radius: 60rpx;overflow: hidden;// 兼容ios的圆角问题transfor…

免费思维13招之十:增值型思维

免费思维13招之十:增值型思维 免费思维的另一大战略思维——增值型思维。 为了提高客户的粘性而促进重复性消费,我们必须对客户进行免费的增值型服务。 大家不要把增值型思维与赠品型思维混淆,增值型思维重心在于提高与消费者的粘性而促进重复消费,重心在后端。而赠品型思…