linux.nfs服务配置

简介

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

好处

以下是NFS最显而易见的好处:
1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。

这里写图片描述

组成

NFS体系至少有两个主要部分:

一台NFS服务器和若干台客户机,如右图所示。
客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据。
在NFS服务器正式启用前,需要根据实际环境和需求,配置一些NFS参数。

nfs结构

应用场景

NFS 有很多实际应用。下面是比较常见的一些:
1. 多个机器共享一台CDROM或者其他设备。这对于在多台机器中安装软件来说更加便宜跟方便。
2. 在大型网络中,配置一台中心 NFS 服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录。
3. 不同客户端可在NFS上观看影视文件,节省本地空间。
4. 在客户端完成的工作数据,可以备份保存到NFS服务器上用户自己的路径下。

NFS是运行在应用层的协议。随着NFS多年的发展和改进,NFS既可以用于局域网也可以用于广域网,且与操作系统和硬件无关,可以在不同的计算机或系统上运行。

配置

$ sudo apt-get install nfs-kernel-server

打开/etc/exports文件,在末尾加入:

/home/kevin *(rw,sync,no_root_squash)
注:nfs允许挂载的目录及权限,在文件/etc/exports中进行定义,各字段含义如下:
/home/kevin:要共享的目录
* :允许所有的网段访问
rw :读写权限
sync:资料同步写入内在和硬盘
no_root_squash:nfs客户端共享目录使用者权限

重启服务:

$sudo /etc/init.d/portmap restart                  <---重启portmap,  1604改名为rpcbind
$sudo /etc/init.d/nfs-kernel-server restart      <---重启nfs服务
$showmount -e                                          <---显示共享出的目录

注:nfs是一个RPC程序,使用它前,需要映射好端口,通过portmap设定
命令执行情况如下:

$sudo /etc/init.d/portmap restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service portmap restart
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the restart(8) utility, e.g. restart portmap
portmap start/running, process 474
$sudo /etc/init.d/nfs-kernel-server restart
 * Stopping NFS kernel daemon                                              [ OK ] 
 * Unexporting directories for NFS kernel daemon...                   [ OK ] 
 * Exporting directories for NFS kernel daemon...     
  exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/home/xgc".
  Assuming default behaviour ('no_subtree_check').
  NOTE: this default has changed since nfs-utils version 1.0.x
                                                                                 [ OK ]
 * Starting NFS kernel daemon                                       [ OK ]
$showmount -e
Export list for xgc-VirtualBox:
/home/kevin *

现在可以在本机上试一下:

$sudo mount -t nfs localhost:/home/kevin /mnt     sudo   mount   –t    nfs    共享主机ip:/rootfs    挂载点
注:localhost为本机linux的IP地址

这样就把共享目录挂到了/mnt目录,取消挂载用:

$sudo umount /mnt      卸载 : umount     -e   挂载点      // 注意卸载时命令的执行路径不能够是挂载点

如果用在嵌入式设备上挂载,要加上参数-o nolock

我在开发板上使用的挂载命令:

#mount -t nfs -o nolock 192.168.1.8:/home/kevin /mnt

猜你喜欢

转载自blog.csdn.net/sinat_36544290/article/details/80735947