共计 2140 个字符,预计需要花费 6 分钟才能阅读完成。
ubuntu 上 nfs 服务配置
简介
NFS(Network File System)即网络文件系统,是 FreeBSD 支持的文件系统中的一种,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。在 NFS 的应用中,本地 NFS 的客户端应用可以透明地读写位于远端 NFS 服务器上的文件,就像访问本地文件一样。
好处
以下是 NFS 最显而易见的好处:
- 节省本地存储空间,将常用的数据存放在一台 NFS 服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
- 用户不需要在网络中的每个机器上都建有 Home 目录,Home 目录可以放在 NFS 服务器上且可以在网络上被访问使用。
- 一些存储设备如软驱、CDROM 和 Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
组成
NFS 体系至少有两个主要部分:
一台 NFS 服务器和若干台客户机,如右图所示。
客户机通过 TCP/IP 网络远程访问存放在 NFS 服务器上的数据。
在 NFS 服务器正式启用前,需要根据实际环境和需求,配置一些 NFS 参数。
应用场景
NFS 有很多实际应用。下面是比较常见的一些:
- 多个机器共享一台 CDROM 或者其他设备。这对于在多台机器中安装软件来说更加便宜跟方便。
- 在大型网络中,配置一台中心 NFS 服务器用来放置所有用户的 home 目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的 home 目录。
- 不同客户端可在 NFS 上观看影视文件,节省本地空间。
- 在客户端完成的工作数据,可以备份保存到 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
正文完