由于实验室的项目需要实现在CephFS之上建立NFS之上,所以记录一下NFS服务器的安装与配置流程。

1.NFS服务的简介:

NFS 是 Network File System 的缩写,是Sun公司于1984开发的一种分布式文件系统协议。它的核心功能就是可以通过网络,让不同的客户端,可以彼此访问共同的文件系统 ,来实现文件的共享。像许多其他的协议,建立在开放的网络计算的远程过程调用(RPC)之上。NFS是在RFC中定义的开放标准,允许任何人实现该协议。

NFS 服务器可以让客户端将网络远程的 NFS 服务器分享的目录,直接挂载到本地端的机器当中。本地端的机器通过直接读写挂载的目录,就可以同步到NFS服务器之上。

版本更迭

  • NFS V2

    2是NFS最早实现的版本之一,基于UDP协议实现了一个无状态的服务器版本。仅仅支持32位的系统,且不大于2GB的文件。
  • NFS V3

    3的版本在2的基础之上做了大量的改进。支持了大于2GB的文件读写,使用了TCP协议来进行数据交互,支持了客户端的异步读写来提高文件系统的性能(同时也会产生我们头疼的一致性问题)
  • NFS V4

    4的版本提高了安全性,通过TCP协议实现了一个有状态的服务器版本,通过锁租约的机制来实现多客户端的读写同步。在4.1版本引入了pNFS,通过类似于一个HDFS架构来提供并行的一个分布式文件系统。

2.系统环境:

系统平台:Ubuntu 14.04

NFS Server IP:192.168.1.2

iptables关闭: Firewall is disable.(NFS端口使用在默认情况下是不固定,所以若配置NFS服务器需要搭配防火墙使用的话,请配置固定端口)

SELINUX=disabled

3.NFS服务器的安装:

NFS的安装只需要安装rpcbind与nfs-server就可以对外提供服务了。

  • rpcbind

    NFS 服务都是通过 RPC 来具体实现的,所以要正常使用NFS服务,需要启动 rpcbind来实现端口的映射工作 。执行如下命令,安装并启动rpcbind

    sudo apt-get install rpcbind
  • nfs-kernel-server

    提供nfs服务器的软件,提供文件系统的完整功能。这里要提醒一下,NFS服务器会直接使用到内核的模块,所以内核必须要支持 NFS 才行。如果操作系统的版本是自行编译的内核的话,需要注意编译NFS的内核支持。

      sudo apt-get install nfs-kernel-server

4.NFS服务器的配置:

NFS服务器的主要配置文件就是:/etc/exports。不过这个配置文件不一定会存在,可能需要使用 vim 主动新建这个文件。

/etc/exports文件由以下选项构成:

    [共享的目录] [主机名或IP(参数,参数)]

每一行最前面是要分享出来的目录,目录可以依照不同的权限分享给不同的主机。若权限参数不止一个时,则以逗号 (,) 分开。且主机名与小括号是连在一起的喔!其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay 当主机名或IP地址为空时,则代表共享给任意客户机提供服务。

下面是一些NFS共享的常用参数:

  • 访问权限选项

    设置输出目录只读:ro
    设置输出目录读写:rw
  • 用户映射选项

      all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
    no_all_squash:与all_squash取反(默认设置);
    root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
    no_root_squash:与rootsquash取反;
    anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
    anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
  • 其它选项

      secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
    insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
    sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
    async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
    wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
    no_wdelay:若有写操作则立即执行,应与sync配合使用;
    subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
    no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

这里我们使用了NFS v3的配置,如下图所示:

5.NFS服务器的启动:

配置完/etc/exports之后,接下来就可以启动NFS服务器了。

为了使NFS服务器能正常工作,需要启动rpcbind和nfs-kernel-server两个服务,并且rpcbind一定要先于nfs-kernel-server启动。

  sudo service rpcbind start
sudo service nfs-kernel-server start

若要开机自启动nfs服务,可以通过sysv-rc-conf配置自启动服务。

  sudo sysv-rc-conf --level 35 rpcbind on
sudo sysv-rc-conf --level 35 nfs-kernel-server on

6.NFS客户端的挂载:

客户端的挂载很简单,先建立一个挂载目录

  sudo mkdir /mnt/nfs
sudo mount -t nfs 192.168.12:/tmp /mnt/nfs

之后客户端对应的文件目录便挂载上对应的文件系统了。

7、启动自动挂载NFS文件系统:

客户端可以通过命令配置开机自启动挂载NFS的文件系统。

格式:
<server>:</remote/export> </local/directory> nfs < options> 0 0

将对应的命令 mount -t nfs 192.168.12:/tmp /mnt/nfs

添加至/etc/rc.d/local,不要尝试在直接在/etc/fstab/里挂载

  • 原因分析:

    在Linux内核启动的流程中,网络的启动是在本机文件系统挂载之后,所以直接利用 /etc/fstab 尝试挂载 NFS 时,系统由于尚未启动网络,是无法挂载成功的。

小结:梳理了一下在ubuntu之下NFS服务器的安装与配置。当然RedHat系列的发行版也是大同小异。若有疏漏,望指点斧正。

NFS服务器的安装与配置的更多相关文章

  1. ubuntu下nfs服务器的安装与配置

    nfs服务器的安装和配置 1.安装nfs 服务器,前提是你的系统能连上网. 2.设置/etc/exports配置文件 (1) 进入/etc/exports配置文件 (2) 在最后一行加入红色那行,/h ...

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

    这篇文章主要介绍了Linux NFS服务器的安装与配置方法(图文详解),需要的朋友可以参考下(http://xb.xcjl0834.com) 一.NFS服务简介 NFS 是Network File S ...

  3. 【转载】Linux NFS服务器的安装与配置

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...

  4. Linux NFS服务器的安装与配置

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...

  5. (转)Linux NFS服务器的安装与配置

    转自:http://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html 由于在6系列里面,portmap已经改名了 ,6系列需要使用 serv ...

  6. Linux NFS服务器的安装与配置(转载)

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...

  7. Linux NFS服务器的安装与配置详解

    一.NFS服务简介 NFS是Network File System(网络文件系统).主要功能是通过网络让不同的服务器之间可以共享文件或者目录.NFS客户端一般是应用服务器(比如web,负载均衡等),可 ...

  8. Linux NFS服务器的安装与配置(转载)

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...

  9. CentOS 6.3下Samba服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下   一.简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...

随机推荐

  1. NOIP2017SummerTraining0726

    三道比较简单的题,还以为是八校考试的题目,但是并不是,无语了,第三题其实看了挺久的,一看到图,就想到了二分图,网络流之类的算法,但是尽力往这个方向想了好久都没什么思路, 最后从简单入手,然而没什么结果 ...

  2. 教你ASP.NET中如何防止注入攻击

    你应该在程序中验证所有的不信任输入.你应该假定所有的用户输入都是非法的.用户可以在应用程序中提供表单字段,查询字串,客户端cookies和浏览器环境值比如用户代理字串和IP地址等. 弱输入校验通常为注 ...

  3. 阿里云AliYun表格存储(Table Store)相关案例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. 强大的grep,sed和awk--用案例来讲解

    准备工作: 先简单了解grep,sed和awk功能 1) grep 显示匹配特定模式的内容 grep -v 'boy' test.txt 过滤掉test.txt文件的boy,显示其余内容 grep ' ...

  5. springboot自定义配置源

    概述 我们知道,在Spring boot中可以通过xml或者@ImportResource 来引入自己的配置文件,但是这里有个限制,必须是本地,而且格式只能是 properties(或者 yaml). ...

  6. C# 剪贴板中文乱码问题

    最近写了个小工具.主要功能是生成一些数据,然后一键复制,最终粘贴到需要的地方. 本来一切正常的,可是当把工具拿给朋友使用时,却被告知粘贴出来的数据是乱码.当时第一时间想到是区域问题(朋友是台湾人),不 ...

  7. Tomcat 笔记-配置域名

    编辑/etc/hosts文件,添加域名: 127.0.0.1 localhost 127.0.1.1 ubuntu # The following lines are desirable for IP ...

  8. Spark 基本概念

    Application:用户编写的 Spark 应用程序,包含驱动程序(Driver),和分布在集群中多个节点上运行的 Executor 代码,在执行过程中由一个或多个作业组成 Driver(驱动程序 ...

  9. Windows中 MySQL5.7.17解压版安装步骤

    1.先去MySQL官网下载.当前最新版是5.7.19,可能安装方法不同了,本人测试没有安装成功,若有安装成功的朋友,希望分享一下安装步骤. 个人推荐下载MySQL5.7.17,官方下载网址:https ...

  10. 5分钟看懂svg path 路径的所有命令(更有API解释、有图、有图文对比解析)

    友情提示:更多详情.每个命令的例子.参数变化对比图文详解,欢迎关注九十七度的博客:SVG<Path>命令详解 M = moveto M x y 移动到指定坐标,xy分别为x轴和y轴的坐标点 ...