开发者社区> happenlee> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

NFS服务器的安装与配置

简介: 由于实验室的项目需要实现在CephFS之上建立NFS之上,所以记录一下NFS服务器的安装与配置流程。 1.NFS服务的简介: NFS 是 Network File System 的缩写,是Sun公司于1984开发的一种分布式文件系统协议。
+关注继续查看

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

Screenshot from 2017-10-22 02:38:17.png

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux服务器快速安装java jdk教程
Linux服务器快速安装java jdk教程
0 0
ECS 服务器迁移,(nginx 安装、 ecs 安装组与防火墙设置)
每一次 启动和关闭都要进入 cd /usr/local/nginx/sbin 然后执行对应的命令,是不是感觉很烦呀,来配置个全局环境变量或者一个软连接, 这个是一个2选1的,配置哪个都行个人推荐使用软连接,方便,一行命令解决。
0 0
基于Windows下VSCode安装及安装相关插件通过SSH协议远程连接服务器详细方法(二)
基于Windows下VSCode安装及安装相关插件通过SSH协议远程连接服务器详细方法
0 0
基于Windows下VSCode安装及安装相关插件通过SSH协议远程连接服务器详细方法(一)
基于Windows下VSCode安装及安装相关插件通过SSH协议远程连接服务器详细方法
0 0
Win10的IIS服务器详细安装与配置
Win10的IIS服务器详细安装与配置
0 0
Eclipse 服务器配置之安装 Tomcat 服务器
Eclipse 服务器配置之安装 Tomcat 服务器
0 0
gitlab在服务器上的安装与配置-自己搭建一个gitlab服务器
gitlab在服务器上的安装与配置-自己搭建一个gitlab服务器
0 0
Linux服务器的MongoDB的安装和使用
Linux服务器的MongoDB的安装和使用
0 0
关于购买阿里云学生服务器以及win7安装Tomcat连接服务器的过程总结
关于购买阿里云学生服务器以及win7安装Tomcat连接服务器的过程总结
0 0
阿里云学生服务器(Windows)的配置以及安装Tomcat连接服务器的教程
阿里云学生服务器(Windows)的配置以及安装Tomcat连接服务器的教程
0 0
+关注
happenlee
西电&amp;&amp;北大 百度 AIG 大数据部。关注分布式存储系统,高性能服务器开发。 如果有兴趣加入百度一起共事,请将简历发送至邮箱happenlee@hotmail.com~~
文章
问答
文章排行榜
最热
最新
相关电子书
更多
网站/服务器取证 实践与挑战
立即下载
固守服务器的第一道防线——美联集团堡垒机的前世今生
立即下载
机器学习在大规模服务器治理复杂场景的实践
立即下载