NFS(Network Files System)是网络文件系统的英文缩写,由Sun公司于1980年开发,用于在UNIX操作系统间实现磁盘文件共享。在Linux操作系统出现后,NFS被Linux继承,并成为文件服务的一种标准。
通过网络,NFS可以在不同文件系统间共享文件。用户不必关心所用计算机的型号、操作系统等信息,只要用mount命令将远程服务器的共享目录挂载在本地文件系统下,就可像使用本地文件那样使用远程共享资源。
NFS的最大功能就是可以透过网络,让不同机器相互分享资源,利用NFS用户可以达到以下使用目的:
节约磁盘空间:可将常用数据集存储于NFS服务器中,用户通过网络访问而无须单独存储。
节约硬件资源:NFS还可共享CD-ROM、DVD-ROM等设备,从而减少整个网络上的移动介质设备。
NFS服务器上要安装的软件主要有以下3个:
nfs-kernel-server:Linux NFS服务器。
nfs-common:NFS通用程序。
portmap:RPC端口映射程序。
配置过程主要分为三步:
1.安装:对于NFS客户端,仅需要安装nfs-common和portmap这两个程序就可。下面进行服务器的安装,命令如下:
[root@server ~]#apt-get update
[root@server ~]#apt-get install nfs-kernel-server
安装好之后,可以查询一下NFS程序是否正常运行:
[root@server ~]#rpcinfo –p
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
2.修改配置文件
配置NFS服务
[root@server ~]# vi /etc/exports
/home/public 192.168.1.2(rw,anongid=503) 192.168.2.2(rw,anongid=503) *(ro)
/home/design 192.168.1.2(rw,anonuid=903) 192.168.1.*(rw,anongid=502)
/home/market 192.168.2.2(rw,anonuid=902) 192.168.2.*(rw,anongid=501)
说明:
每个配置文件可有多行共享目录,每条共享目录若有多个客户机匹配条件,各匹配条件应采用空格进行分隔,而主机和参数之间不能有空格。
例如,下列命令准备共享/tmp目录,并且允许192.168.0.1主机访问并有读写权限,结果是多了空格错误:
/tmp 192.168.0.1 (rw)
最终NFS会认为上述命令有两个主机匹配条件,第一个是IP为192.168.0.1的主机,默认参数为“ro”;第二个“rw”前没有指明主机,默认为“*”,表示全部主机。
NFS配置好后,需要重启NFS,重启NFS服务的命令如下:
[root@server ~]#/etc/init.d/nfs-kernel-server restart
如果仅仅修改了/etc/exports文件的内容,那么无须重启NFS服务,只需要执行以下命令就可:
[root@server ~]#exportfs -arv
另外,通过设置/etc/hosts.deny和/etc/hosts.allow这两个文件,可以指定哪些主机可以使用NFS服务,哪些主机拒绝使用NFS服务,从而提高NFS的安全性。
3.客户端使用NFS服务
在客户机连接上NFS服务器并使用服务器上的共享资源之前,首先要查看NFS服务器上的共享信息,了解共享资源。
要查看NFS服务器上的共享资源,可通过showmount命令实现。该命令的语法格式如下:
showmount [选项] [服务器]
选项:
-a:查看服务器上的共享目录和所有连接客户端信息。
-d:仅显示被客户端使用的共享目录信息。
-e:显示服务器上所有的共享目录。
例如,查看IP地址为192.168.0.5的NFS服务器上的共享资源信息:
[root@server ~]#/showmount -e 192.168.0.5
Export list for 192.168.0.5:
/tmp *
/home/public 192.168.1.2
在了解了NFS服务器的共享信息后,可通过mount命令将服务器上的共享目录挂载到本地,挂载好之后,就可如同本地文件一样使用。
mount命令的作用是挂载指定的文件系统。在Linux操作系统中,所有的磁盘分区、软驱、CD-ROM等都要挂载到系统中才可使用。
例如,将IP地址为192.168.0.5的NFS服务器上的/tmp共享目录挂载到本地的/mnt/nfs目录:
[root@server ~]#mount -t nfs 192.168.0.5:/tmp /mnt/nfs