阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

NFS服务器的安装与配置

204次阅读
没有评论

共计 3346 个字符,预计需要花费 9 分钟才能阅读完成。

由于实验室的项目需要实现在 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 的配置,如下图所示:

NFS 服务器的安装与配置

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 系列的发行版也是大同小异。若有疏漏,望指点斧正。

CentOS 7 下 NFS 实例笔记 http://www.linuxidc.com/Linux/2016-12/138708.htm

Linux 下 NFS 搭建步骤 http://www.linuxidc.com/Linux/2016-08/134022.htm

NFS 文件系统详解  http://www.linuxidc.com/Linux/2016-06/131940.htm

基于 LAMP 平台利用 NFS 远程共享资源实现站点构建  http://www.linuxidc.com/Linux/2016-07/133510.htm

Linux NFS 服务器的安装与配置详解 http://www.linuxidc.com/Linux/2017-01/139886.htm

CentOS 7.2 中 NFS1.3 安装 http://www.linuxidc.com/Linux/2016-10/135970.htm

NFS 网络文件共享存储服务器  http://www.linuxidc.com/Linux/2017-06/145030.htm

Ubuntu 14.04 安装配置 NFS 服务器 http://www.linuxidc.com/Linux/2016-04/129848.htm

Linux 的 NFS 配置  http://www.linuxidc.com/Linux/2017-04/143135.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-10/147888.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3346字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中