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命令)

挂载共享目录,并创建文件测试

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 通过案例深入解析linux NFS机制

    接上篇,创建web02服务器,将web01.web02服务器的/data目录挂载到nfs01服务器的共享目录/data上,并以不同方式实现开机自启动. web01篇: 在/etc/rc.local中添加如下一行: 重启并检查: web02篇: 克隆模板机,创建web02虚拟机,更改主机名,ip地址 安装rpc服务:yum install rpcbind 开启并设置开机启动 在最后添加一行: 因为磁盘挂载在系统启动的顺序中要快于网卡加载,而rpc又需要联网,所以我们需要开启延迟挂载: 重启,并检查

  • linux系统之间通过nfs网络文件系统挂载设置方法

    NFS简介 NFS是Network File System的简写,即网络文件系统. 网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. NFS好处 以下是NFS最显而易见的好处: 1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到. 2.用户不必在每个网络上机器里头都有一个home目录.Home目录 可以被放在NFS服务

  • 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服务器 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安装配置及常见问题、/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配置教程详解

    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的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. NFS基于 RPC协议,NFS本身只是起到共享的作用而和客户端进行连接和数据传输则是RPC协议的功能 NFS主要通过两个daemon 来进行控制: 1.rpc.nfsd  ------- 它用来控制客户端是否可以连接到,NFS serve

  • Linux NFS服务器安装与配置思路分析

    一,nfs服务优缺点 NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS 的基本原则是"容许不同的客户端及服务端通过一组RPC分享相同的文件系统",它是独立于操作系统,容许不同硬件及操作系统的系统共同进行

  • Linux NFS服务器的安装与配置方法(图文详解)

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法. NFS 的基本原则是"容许不同的客户端及服务端通过一组RPC分享相同的文件系统",它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享. NF

  • 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事件类型有很多,常见

随机推荐