ubuntu配置NFS

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的文件系统。

<7.>查看nfs服务器的共享资源 
在客户机连接nfs共享资源前,通常要用showmount命令查看一下nfs服务器上的共享资源情况,了解是否有权限访问。showmount命令查看 某台nfs服务器上都有哪些nfs共享资源。showmount命令包含在nfs-kernel-server软件包中,一般语法格式 是:

showmount [dehv] nfssrvname
  • 其中nfssrvname表示nfs服务器主机名,也可用IP地址各选项如下:
-d :显示客户端所挂载的共享目录
-e: 显示nfs服务的导出共享目录列表
-h: 显示帮助信息
-v: 显示版本

格式:
<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 时,系统由于尚未启动网络,是无法挂载成功的。

猜你喜欢

转载自blog.csdn.net/oXiaoXue123456789/article/details/81565621