Linux NFS机制工作原理及实例解析
什么是NFS?
network file system 网络文件系统
通过网络存储和组织文件的一种方法或机制。
为什么要用NFS?
前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一放到后端的存储上。
共享存储的好处:方便数据的查找与取出,缺点:存储服务器压力大,坏了丢失全部数据。
NFS工作原理
NFS功能,有很多服务,每个服务都有自己的端口,并且经常变换。
客户端查找这些端口,就需要一个中间人---RPC服务(默认端口号111)。
工作流程:
1.启动RPC服务
2.启动NFS服务(同时向RPC服务注册启动的端口)
3.客户端向RPC请求NFS服务
4.RPC返回端口到客户端
5.客户端用返回的端口地址向NFS请求传输数据。
安装NFS服务
安装:yum install nfs-utils rpcbind
查看:rpm -qa nfs-utils rpcbind
开启服务并设置开机自启:systemctl start rpcbind.service systemctl enable rpcbind.service
systemctl start nfs systemctl enable nfs
配置NFS
nfs配置文件 /etc/exports
执行命令man exports 找到其中的:
配置文件的格式:
要共享的目录 访问的主机(权限)
①要共享的目录:存取数据的目录
②访问的主机:单个主机:172.16.1.7或主机名 网段:172.16.1.0/24或172.16.1.*
③权限:rw 可读 ro 只读 sync 写到远端磁盘(慢,安全) async 异步写到远端缓冲区(快,不安全)
root_squash anonuid=匿名用户的UID anongid=匿名用户的GID
all_squash 无论客户端是什么用户,到服务端都当做nfsnobody
[root@nfs01 ~]# vim /etc/exports
注:一个目录可同时给多个主机共享,如上图test。注意小括号和前面的字符中间没有空格。
创建目录:[root@nfs01 ~]# mkdir -p /data
nfs的默认用户是nfsnobody,所以要对目录进行授权:[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data
重启NFS:[root@nfs01 ~]# systemctl reload nfs 或者 exportfs -r (平滑重启)
检查:
打开web01虚拟机,安装rpc和nfs服务(原则上客户端只安装rpc即可,我们这里是为了测试showmount命令)
挂载共享目录,并创建文件测试
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Linux NFS服务器安装与配置思路分析
一,nfs服务优缺点 NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS 的基本原则是"容许不同的客户端及服务端通过一组RPC分享相同的文件系统",它是独立于操作系统,容许不同硬件及操作系统的系统共同进行
-
Linux服务器配置—搭建NFS服务器步骤
一.安装配置NFS服务器 1> 要使NFS服务器提供服务,必须启动inet ,portmap,nfs 和 mount这4个守护进程,并保持在后台运行.2>规划好要共享的分区或目录3>定义客户机的参数4>配置NFS主配置文件:/etc/exports5>重启NFS服务 1.配置/etc/exports文件的语法#vi /etc/exports /sharedir -maproot=daemon host2 /sharedir2 -ro -networ
-
linux如何实现一键部署nfs过程图解
服务器信息 管理服务器:m01 172.16.1.61 服务端:nfs01 172.16.1.31 客户端:web01 172.16.1.7 web02 172.16.1.8 在m01上编写脚本 服务端nfs_server.sh 客户端nfs_client.sh 配置ssh免秘钥连接 一键远程部署nfs服务 检查ansible主机列表文件 部署服务端 部署客户端 检测结果 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.
-
Linux NFS服务器的安装与配置方法(图文详解)
一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS 的基本原则是"容许不同的客户端及服务端通过一组RPC分享相同的文件系统",它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享. NF
-
linux NFS安装配置及常见问题、/etc/exports配置文件、showmount命令
1,服务器端软件:安装nfs-utils和portmap(rpcbind) nfs-utils: 提供rpc.nfsd 及 rpc.mountd这两个NFS DAEMONS的套件 portmap: NFS其实可以被看作是一个RPC SERVER PROGRAM,而要启动一个RPC SERVER PROGRAM,都要做好PORT的对应工作,而且这样的任务就是由PORTMAP来完成的.通俗的说PortMap就是用来做PORT的mapping的. NFS需要启动的DAEMONS:参考NFS daemo
-
linux系统之间通过nfs网络文件系统挂载设置方法
NFS简介 NFS是Network File System的简写,即网络文件系统. 网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. NFS好处 以下是NFS最显而易见的好处: 1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到. 2.用户不必在每个网络上机器里头都有一个home目录.Home目录 可以被放在NFS服务
-
linux NFS 学习笔记
NFS,是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. NFS基于 RPC协议,NFS本身只是起到共享的作用而和客户端进行连接和数据传输则是RPC协议的功能 NFS主要通过两个daemon 来进行控制: 1.rpc.nfsd ------- 它用来控制客户端是否可以连接到,NFS serve
-
通过案例深入解析linux NFS机制
接上篇,创建web02服务器,将web01.web02服务器的/data目录挂载到nfs01服务器的共享目录/data上,并以不同方式实现开机自启动. web01篇: 在/etc/rc.local中添加如下一行: 重启并检查: web02篇: 克隆模板机,创建web02虚拟机,更改主机名,ip地址 安装rpc服务:yum install rpcbind 开启并设置开机启动 在最后添加一行: 因为磁盘挂载在系统启动的顺序中要快于网卡加载,而rpc又需要联网,所以我们需要开启延迟挂载: 重启,并检查
-
linux下NFS配置教程详解
1.NFS简介 (1)什么是NFS? 1)NFS是Net File System的简写,即网络文件系统.NFS是由SUN公司开发,并于1984年推出的一个RPC(远程过程调用)服务系统,它使我们能够达到文件的共享,在不同的系统间使用,所以它与通信协议.主机及操作系统无关.当用户想使用远程文件时只要用"mount"命令就可把远程文件系统挂接在自己的文件系统之下,使远程的文件与使用本地计算机上的文件一样. 例如在计算机A上,要把计算机B上的/usr/man挂接到A的/usr/man只需执行
-
Linux NFS机制工作原理及实例解析
什么是NFS? network file system 网络文件系统 通过网络存储和组织文件的一种方法或机制. 为什么要用NFS? 前端所有的应用服务器接收到用户上传的图片.文件.视频,都会统一放到后端的存储上. 共享存储的好处:方便数据的查找与取出,缺点:存储服务器压力大,坏了丢失全部数据. NFS工作原理 NFS功能,有很多服务,每个服务都有自己的端口,并且经常变换. 客户端查找这些端口,就需要一个中间人---RPC服务(默认端口号111). 工作流程: 1.启动RPC服务 2.启动NFS服
-
java阻塞队列实现原理及实例解析
这篇文章主要介绍了java阻塞队列实现原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 阻塞队列与普通队列的不同在于.当队列是空的时候,从队列中获取元素的操作将会被阻塞,或者当队列满时,往队列里面添加元素将会被阻塞.试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素.同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来,如从队列中移除一个或者多个元素,或者完
-
Java内存模型原子性原理及实例解析
这篇文章主要介绍了Java内存模型原子性原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本文就具体来讲讲JMM是如何保证共享变量访问的原子性的. 原子性问题 原子性是指:一个或多个操作,要么全部执行且在执行过程中不被任何因素打断,要么全部不执行. 下面就是一段会出现原子性问题的代码: public class AtomicProblem { private static Logger logger = LoggerFactory.
-
Java原子变量类原理及实例解析
这篇文章主要介绍了Java原子变量类原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.原子变量类简介 为何需要原子变量类 保证线程安全是 Java 并发编程必须要解决的重要问题.Java 从原子性.可见性.有序性这三大特性入手,确保多线程的数据一致性. 确保线程安全最常见的做法是利用锁机制(Lock.sychronized)来对共享数据做互斥同步,这样在同一个时刻,只有一个线程可以执行某个方法或者某个代码块,那么操作必然是原子性
-
Pandas数据离散化原理及实例解析
这篇文章主要介绍了Pandas数据离散化原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 为什么要离散化 连续属性离散化的目的是为了简化数据结构,数据离散化技术可以用来减少给定连续属性值的个数.离散化方法经常作为数据挖掘的工具 扔掉一些信息,可以让模型更健壮,泛化能力更强 什么是数据的离散化 连续属性的离散化就是在连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数 值代表落在每个子区间中的属性值 分箱 案例 1.
-
Java HashMap原理及实例解析
这篇文章主要介绍了Java HashMap原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 示例 1 : HashMap的键值对 HashMap储存数据的方式是-- 键值对 package collection; import java.util.HashMap; public class TestCollection { public static void main(String[] args) { HashMap<String
-
Python assert关键字原理及实例解析
这篇文章主要介绍了Python assert关键字原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python assert(断言)用于判断一个表达式,在表达式条件为 False 的时候触发异常. 断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况. 语法格式: assert expression 等价于: if not expression: raise AssertionError asser
-
python匿名函数lambda原理及实例解析
这篇文章主要介绍了python匿名函数lambda原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 #-*- coding:utf-8 -*- #__author__ = "www.iplaypy.com" # 普通python函数 def func(a,b,c): return a+b+c print func(1,2,3) # 返回值为6 # lambda匿名函数 f = lambda a,b,c:a+b+c
-
JAVA面向对象 封装原理及实例解析
这篇文章主要介绍了JAVA面向对象 封装原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 抽象 去定义一个类的时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模板).这种研究问题的方法称为抽象. 修饰符 Java提供四种访问控制修饰符号控制方法和变量的访问权限: Ⅰ.公开级别:用pubilc修饰,对外公开 Ⅱ.受保护级别:用protected修饰,对子类和同一个包中的类公开 Ⅲ.默认级别:没有修饰符号,向同一
-
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
PyQt5中信号与槽可以说是对事件处理机制的高级封装,如果说事件是用来创建窗口控件的,那么信号与槽就是用来对这个控件进行使用的,比如一个按钮,当我们使用按钮时,只关心clicked信号,至于这个按钮如何接受并处里鼠标点击事件,然后在发射这个信号,则不关心,但是如果要重载一个按钮,这时候就要关心了,比如可以改变它的行为:在鼠标按下时触发clicked信号,而不是释放时 PyQt5常见事件类型 pyqt是对Qt的封装,qt程序是事件驱动的,它的每个动作都有幕后某个事件所触发,Qt事件类型有很多,常见
随机推荐
- JavaScript 解析Json字符串的性能比较分析代码
- 修改注册表减少ghost镜像文件体积
- iOS中的缓存计算和清除完整实例代码
- PHP导出Excel实例讲解
- 用PHP和ACCESS写聊天室(二)
- Android实现带附件的邮件发送功能
- Discuz 模板引擎的封装类代码
- 详解vue2.0脚手架的webpack 配置文件分析
- js的alert样式如何更改如背景颜色
- 微信小程序(三):网络请求
- android中RecyclerView自定义分割线实现
- 根据分辩率调用不同的CSS.
- php 实现收藏功能的示例代码
- webpack中CommonsChunkPlugin详细教程(小结)
- andriod开发之Activity的渲染机制
- 简单谈谈centos7中配置php
- Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
- Pycharm运行加载文本出现错误的解决方法
- laravel 获取某个查询的查询SQL语句方法
- python实现随机调用一个浏览器打开网页