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

好处:

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

坏处:

NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。

应用:

NFS有很多实际应用。下面是比较常见的一些:

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

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

NFS配置实验

实验环境:

服务端:RHEL6.5(rh6-1) IP192.168.100.110/24
客户端:RHEL6.5(rh6-2) IP192.168.100.120/24

客户端配置:

#yum install nfs-utils rpcbind –y			//nfs-utils用于NFS共享发布和访问;rpcbind用于远端过程调用机制支持
#chkconfig nfs on			//选择性设置NFS服务开机自启
#chkconfig rpcbind on		//选择性设置RPC服务开机自启
#mkdir /opt/wwwroot 		//设置共享目录
#vi /etc/exports 				//编辑NFS配置文件expots,文件内容默认为空
	/opt/wwwroot 192.168.100.0/24(rw)		//目录位置为/opt/wwwroot,客户机地址为192.168.100.0网段,权限为rw可读可写

用于配置NFS服务程序配置文件的参数

参数 作用
ro 只读
rw 读写
root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
sync 同时将数据写入到内存与硬盘中,保证不丢失数据
async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
#service rpcbind start					//开启RPC服务
#service nfs start							//开启NFS服务
#netstat –ntap | grep rpcbind			//查看111端口是否开启
#showmount –e 192.168.100.110		//本机中查看NFS文件	
#service iptables stop			//关闭防火墙
#setenforce 0						//关闭增强安全功能
#chmod 777 /opt/wwwroot 	//修改wwwroot路径权限以供写入

客户端配置:

#yum install nfs-utils rpcbind –y			//检查NFS和RPC服务是否安装,若未安装则自动安装
#service rpcbind start
#service nfs start
#chkconfig nfs on
#chkconfig rpcbind on
#showmount –e 192.168.100.110			//查看服务器中的NFS文件
#mkdir /abc					//创建挂在路径
#mount 192.168.100.110:/opt/wwwroot /abc			//手动挂载
#vi /etc/fstab					//编辑自动挂载文件
	192.168.100.110:/opt/wwwroot /abc  nfs  defaults,_netev 0 0    //添加自动挂载配置内容

测试:

在客户端(rh6-2):

#cd /abc							//切换到共享目录下
#touch test123.txt				//在客户端创建测试文件test123.txt

在服务端(rh6-1):

#cd /opt/wwwroot 				//切换到共享目录下
#ls –l
总用量0
-rw-r—r--. 1 nfsnobody nfsnobody 0 5月  7 18:45 test123.txt //可以发现没用户认证机制

可以发现,挂载完成后,访问客户机的/abc文件夹,实际上就相当于访问NFS服务器中的/opt/wwwroot文件夹,其中的网络映射过程对于用户程序来说是透明地。如上测试内容所示,在客户端创建的test 123.txt测试文件,会立刻出现在服务器的/opt/wwwroot当中。


强制卸载NFS

NFS客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端NFS服务突然间停掉了,那么在客户端就会出现执行df –h命令卡死的现象。这个使用umount命令是无法直接卸载的,需要加上-lf才能卸载,如命令#umount –lf /mnt。