学到这里差不多就结束了linux的基础学习了,其实linux的内容并不难,我们要经常的反复的去操作它,多多和它去联络感情才能很好的掌握这个linux。

加油!今天是星期二。没有什么比努力让人更加热血沸腾,成功会不远万里地来追寻我。

一、NFS概述

NFS(网络文件系统,Network File System)采用CS的工作模式。NFS是分布式计算系统的一个组成部分,可以实现在异种网络上共享和装配远程文件系统。NFS提供了一种在类Unix系统上的共享文件的方法。

它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录。NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中。在本地的NFS客户端的机器看来,NFS服务器端共享的目录就好像自己的磁盘分区和目录一样。

一般客户端挂载到本地目录的名字可以随便,但为方便管理,我们要和服务器端一样比较好。NFS一般用来存储共享视频,图片等静态数据。

NFS还可以结合远程网络启动实现
 无盘工作站(PXE启动,所有数据都在服务器的磁盘阵列上)
 瘦客户工作站(本地启动系统,本地磁盘存储常用系统工具,而所有/home目录的用户数据被放在NFS服务器上并且在网络上处处可见)

二、NFS协议以及各版本的组要差别

  2.1、V3相对V2的主要区别 

    1)文件尺寸
      V2最大只支持32BIT的文件大小,而NFS V3新增加了支持64BIT文件大小的技术。
    2) 文件传输尺寸
      V3没有限定传输尺寸,V2最多只能设定为8k,可以使用-rsize and -wsize 来进行设定。
    3)完整的信息返回
      V3增加和完善了许多错误和成功信息的返回,对于服务器的设置和管理能带来很大好处。
    4)增加了对TCP传输协议的支持
      V2只提供了对UDP协议的支持,在一些高要求的网络环境中有很大限制,V3增加了对TCP协议的支持
    5)异步写入特性
      NFS V3能否使用异步写入,这是可选择的一种特性。
      NFS V3客户端发发送一个异步写入请求到服务器,在给客户端答复之前服务器并不是必须要将数据写入到存储器中(稳定的)。
      当客户端希望释放这个copy的时候,它会向服务器通过这个操作过程,以确保每个操作步骤的完整。
      异步写入能够使服务器确定最好的同步数据的策略使数据尽可能的同步的提交。
      与V2比较来看,这样的机制能更好的实现数据缓冲和更多的平行(平衡)。而NFS V2的SERVER在将数据写入存储器之前不能再相应任何的写入请求。
        改进了SERVER的mount性能
        有更好的I/O WRITES性能。
        更强网络运行效能,使得网络运作更为有效。
        更强的灾难恢复功能。  

   2.2、V4相对V3的改进 

     改进了INTERNET上的存取和执行效能
    在协议中增强了安全方面的特性
    增强的跨平台特性

三、RPC(Remote Procedure Call Protocol,远程过程调用)

  3.1、概述 

    1)RPC(Remote Procedure Call Protocol):远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。

                              在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
    2)RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。

        当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。

    3)NFS协议本身没有网络传输功能,而是基于RPC实现的。

    4)RPC提供了一个面向过程的远程服务结构。
    5)RPC可以通过网络从远程主机上请求服务,而不需要了解底层网络技术的协议。
    6)RPC是工作在OSI模型的会话层,它可以为遵循RPC协议应用层协议提供端口注册功能。
    7)很多服务都可以向RPC注册端口。
    8)RPC使用网络端口111来监听客户端的请求。

  3.2、NFS与RPC

    

四、NFS的详解

  4.1、NFS的守护进程  

  NFS的不同功能由不同的守护进程提供。
  NFS的每个功能都有RPC分配分配的端口监听。
     rpc.nfsd:基本的NFS守护进程(2049端口),主要负责登录权限检测。
     rpc.mountd:负责管理NFS的文件系统,对客户端存取服务器的文件进行一系列的管理。
     rpc.rquotad:提供远程磁盘限额服务。
     rpc.lockd:用于管理文件的锁定,防止多个客户端同时写入某个文件时产生的冲突。
     rpc.statd:用来检查共享目录的一致性

  4.2、NFS的相关工具

  exportfs:NFS服务器端功能,维护共享资源
  showmount:NFS客户端功能,查看服务器共享的目录。(后面跟ip地址)
  nfsstat:显示NFS的状态统计信息。
  rpcinfo:显示由RPC维护的端口映射,显示已注册的RPC服务列表

  4.3、NFS的安装与启动

    1)在服务器端:sudo apt-get install nfs-common nfs-kernel-server(同时也安装了客户端的nfs)

    2)启动服务器端的nfs服务器:sudo service nfs-kernel-server restart

    3)在客户端(之安装nfs客户端):sudo apt install nfs-ommon

  4.4、NFS服务端  

    1)主要配置文件/etc/exports
    共享目录 [主机1(参数项)] [主机2(参数项)] ...
    主机:ip地址或主机名
    参数项:
        ro 设置共享目录为只读
       rw 设置共享目录可读写
        sync 所有数据在请求时写入共享
       async NFS在写入数据前可以相应请求
       secure NFS通过1024以下的安全TCP/IP端口发送
       insecure NFS通过1024以上的端口发送
       wdelay 如果多个用户写入NFS目录,则归组写入(默认)
       no_wdelay 如果多个用户写入NFS目录,则立即写入,使用async时无需此设置。
       hide 在NFS共享目录中不共享其子目录
       no_hide 共享NFS目录的子目录
      subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
       no_subtree_check 和上面相对,不检查父目录权限
       all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
       no_all_squash 保留共享文件的UID和GID(默认)
       root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
       no_root_squash root用户具有根目录的完全管理访问权限
      anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
      anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID

   

    2)exportfs命令   

    用于维护NFS共享的目录列表
    当修改了/etc/exports之后,无需重启nfs服务
     exportfs [-aruv]
       -a:全部挂载或卸载配置文件中的设置
       -r:重新挂载配置文件中的设置。
       -u:卸载共享目录
       -v:显示输出列表同时,显示设定参数。

  4.5、NFS客户端  

  1)showmount命令 

   查看NFS服务器上所有共享目录 showmount –e ip_address
    查看服务器上哪些共享目录被挂载 showmount –d ip_address
  2)NFS的挂载与卸载
    挂载 mount –t nfs [-o 参数] server_adr:/共享目录 /本机挂载点
    卸载 umount /本机挂载点 (加选项-f进行强制卸载)
  3)启动时挂载
    修改/etc/fstab文件 192.168.0.200:/share /share nfs hard,intr 0 0

五、NFS实现共享文件实战

  5.1、环境

  首先我在ubuntu的desktop版充当nfs客户端,在ubuntu的server版充当nfs服务器端

  5.2、步骤

  1)首先在ubuntu的server版中安装nfs服务器,然后开启服务

    sudo apt install nfs-kernel-server

    sudo service nfs-kernel-server restart

  2)创建一个共享目录在服务器端

  

  3)修改nfs配置文件/etc/exports,然后要重启服务

   

  4)在客户端中安装nfs客户端,并在客户端查看nfs服务器的共享目录

   

  5)在客户端中创建一个目录nfsfolder来远程挂载nfs服务器中的nfsshare

    

  6)零时挂载

  

  7)测试,在nfs服务器端的共享目录放一个a.txt文件,然后在去客户端哪里查看

  

  

  8)永久挂载,修改/etc/fstab文件

   

      

    

    

linux(十四)之linux NFS服务管理的更多相关文章

  1. Linux操作系统-CentOS7启动流程和服务管理

    Linux操作系统-CentOS7启动流程和服务管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.systemd POST --> Boot Sequence --&g ...

  2. Linux操作系统-CentOS6启动流程和服务管理

    Linux操作系统-CentOS6启动流程和服务管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux组成 1>.Linux: kernel+rootfs ker ...

  3. linux基础-第十四单元 Linux网络原理及基础设置

    第十四单元 Linux网络原理及基础设置 三种网卡模式图 使用ifconfig命令来维护网络 ifconfig命令的功能 ifconfig命令的用法举例 使用ifup和ifdown命令启动和停止网卡 ...

  4. [原]Jenkins(十四)---jenkins示例:admin管理所有项目,新建用户只能看部分项目

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. *如有错误,请指正 * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horiz ...

  5. Linux系列教程(二十四)——Linux的系统管理

    上篇博客介绍了Linux的服务管理,不管是以RPM包安装的服务,还是通过源码包安装的服务,万能启动服务的方法都可以通过 /绝对路径/启动脚本名 start .而通过 RPM 包安装的服务还可以通过 s ...

  6. linux基础之nginx和nfs服务

      第一部分: 一.nginx服务安装nginx包(源码安装)1.先cd /etc/yum.repos.d目录下2.yum install epel-release -y(安装扩展包)3.yum in ...

  7. Linux系列教程(十四)——Linux用户和用户组管理之相关配置文件

    前面我们介绍了软件包管理.首先介绍了rpm包的相关命令,但是我们发现直接安装rpm包会被其依赖性折磨的不行,然后解决办法是yum在线管理,通过yum命令安装rpm包能自动帮助我们解决依赖性.最后又介绍 ...

  8. 【原创】(十四)Linux内存管理之page fault处理

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  9. (十四)Linux kernel mmc 框架说明,包括mmc_test使用方法

    1.Linux 总线模型         Linux下的任何驱动在内核中最终都抽象为bus, driver以及device三者间的相互作用. 总线是处理器和一个或多个设备之间的通道,在设备模型中,所有 ...

随机推荐

  1. ajax请求原理

    首先分析使用ajax时候有那些不确定的因素 请求:1 请求的方式不确定 2 请求的地址不确定 3 请求是否异步不确定 4 发送的数据不确定 响应:5 返回的数据不确定 6 响应成功之后 需要处理的业务 ...

  2. mysql导出指定字段或指定数据到文件中

    使用mysqldump把mysql数据库的数据导出到文件中还是挺方便的:比如说要导出baijunyao数据库: // mysqldump -u用户名 -p 数据库名 [表名]> 导出的文件名 m ...

  3. HTML5使用Canvas来绘制图形

    一.Canvas标签: 1.HTML5<canvas>元素用于图形的绘制,通过脚本(通常是javascript)来完成. 2.<canvas>标签只是图形容器,必须使用脚本来绘 ...

  4. Protocol Buffers与FlatBuffers效率对比

    Protocol Buffers是Google跨语言.跨平台的通用序列化库.FlatBuffers同样出自Google,而且也跨语言跨平台,但更强调效率,专门为游戏开发打造.在游戏界混了几年,各种各样 ...

  5. TCP/IP 2MSL

    TCP/IP连接包括两个端A和B 假如A首先终止连接,发送FIN,此时A进入FIN_WAIT_1: 收到来自B的ACK:进入FIN_WAIT_2,等待接收对方FIN,如果收到,进入2MSL状态 收到来 ...

  6. 神经网络中的BP神经网络和贝叶斯

    1 贝叶斯网络在地学中的应用 1 1.1基本原理及发展过程 1 1.2 具体的研究与应用 4 2 BP神经网络在地学中的应用 6 2.1BP神经网络简介 6 2.2基本原理 7 2.3 在地学中的具体 ...

  7. [NOIP2009] 靶形数独 骚气的大爆搜

    这两天OD留的题是搜索,这个东西,就是历年的NOIP压轴题嘛.做了几道什么斗地主啊啥的,感觉还是这题我还懂点. 这道题的搜(xia)索(da)思路是这样的:预处理出一切能处理的东西. 数独大家都了解吧 ...

  8. textarea的换行符处理以及正确的在Html中显示

    个人不太喜欢在页面做过多的逻辑处理,贴出java的处理方式 /** * Html转换为TextArea文本 * @return */ public static String HtmlToText(S ...

  9. SpringBoot整合Mybatis之项目结构、数据源

    已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结. 之前在网上找过不少关于springboot的教程,都是一些比 ...

  10. 防火墙和iptables

    本文目录: 6.1 为什么需要防火墙 6.2 数据传输流程 6.2.1 网络数据传输过程 6.2.2 本机数据路由决策 6.3 TCP三次握手.四次挥手以及syn攻击 6.3.1 三次握手建立tcp连 ...