一.NFS的概念
1.NFS概念:Network File System,是主机间通过网络进行文件共享的网络协议,最早由Sun公司提出,多用于Unix操作系统,它允许用户将远程主机的文件系统看做好象是本地文件系统一样,并且是可安装的,可读的和可写的。系统使用与本地文件系统一样的命令mount把NFS文件系统挂接在本地文件树结构上。
2.NFS术语
拥有实际的物理磁盘并且通过NFS将这个磁盘共享的主机叫NFS文件服务器,通过NFS访问远程文件系统的主机叫NFS客户机。一个NFS客户机可以利用许多NFS服务器提供的服务。相反,一个NFS服务器可以与多个NFS客户机共享它的磁盘。一个共享了部分磁盘的NFS服务器可以是另一个NFS服务器的客户机。
NFS服务器输出的目录叫远程资源并且通常写作:host:pathname 其中host是文件服务器的名字而pathname是服务器上被输出目录的绝对路径。
远程资源被安装到客户机上的那个目录叫安装点(mount point)。
3.NFS输入输出规则
规则一:NFS输出目录,服务器输出的是目录而不是文件系统。
规则二:如果服务器已经输出了一个目录,如/usr/local,并且有一个文件系统安装在/usr/local
/extra,那么/usr/local/extra的内容在客户端看不到,除非服务器明确地输出了它,或客户机明确地安装了它。
规则三:客户机可以安装一个输出目录的子目录,前提是此子目录不是另一个文件系统。
规则四:一个主机不可以将一个输入的目录再次输出。例如,如果一个主机通过NFS安装/usr/local,它就不能将/usr/local输出给另外的主机。
规则五:一个已经输出目录的子目录不可以再输出,除非子目录在一个不同的文件系统上。还是举个例子:假设你要按只读方式输出根文件系统的跟(/)目录,但是又要按读写方式输出/tmp目录。你不可能做到这一点,除非/tmp被安装在不同于跟的文件系统上
二.NFS安装
只需安装两个软件包即可,通常被默认安装
#rpm -q nfs-utils portmap
插入linux的第一张光盘
#mount /mnt/cdrom #cd /RedHat/RPMS #rpm –ivh nfs-utils-
portmap软件包中的portmap服务,为NFS提供RPC服务的支持.nfs-utils软件包中提供了NFS服务器程序和相应的维护工具,#rpm –ql nfs-utils
支持RPC的概念:使进程产生的调用看起来象是一个普通的调用,而真正的执行是在其他进程中——也许是一个远程系统中的进程。各种RPC执行协议都朝着一个共同的目标在发展,那就是用隐藏执行细节来简化进程间通信的复杂性。
RPC机制的核心概念就是将函数调用产生的数据串行化到一个顺序流中,然后在连接接收端对它进行重组。这两种行为同步发生,就好象传统的过程化编程一样。RPC客户端进程发出一个看似标准的函数调用,但是,这个调用不会在本地执行,调用参数被打包并传递到一个远程的执行环境当中,在那里它们再被传入真正的执行函数当中。在完成函数执行后,执行结果又被串行化传回客户端,再由客户端函数传给调用者。
三.NFS的配置
1.服务器的配置:NFS服务器的配置文件exports,export文件在目录/etc/下,用于配置NFS服务器所提供的目录共享.exports文件默认设置为空,这也是出于安全性的考虑,exports(输出)文件
要输出的共享目录 客户端主机地址(设置选项)
/home/share *(sync,ro)
共享目录:设置系统中需要为共享的目录路径
客户端主机地址:例192.168.1.19 abc.com指定域名的主机 192.168.1.0/24指定网段中的所有主机 *.abc.com指定域中的所有主机 *所有主机
设置选项:sync设置NFS服务器同步写磁盘(async:资料会先暂存于内存当中,而非直接写入硬盘),ro设置输出的共享目录只读(与rw不能共同使用)
2.NFS服务器的启动与停止
启动NFS服务器
#service portmap start
#service nfs start
查询NFS服务器状态:#service portmap status #service nfs status
设置NFS服务器的自动启动状态
#chkconfig –list portmap|nfs查看nfs服务的自动启动状态
#chkconfig –level 35 portmap|nfs on指定运行级,由数字 0 到 7 构成的字符串
3.showmount命令:查询NFS服务器的共享目录状态
#showmount -h显示showmount命令的联机帮助
#showmount [NFS服务器主机地址]:显示连接到指定NFS服务器的所有主机
#showmount -e [NFS服务器主机地址]显示指定NFS服务器的输出目录列表
#showmount -d [NFS服务器主机地址]显示指定NFS服务器中已被客户端连接的所有输出目录
#showmount -a [NFS服务器主机地址]显示指定NFS服务器的所有客户端主机及其所连接的目录,例#showmount -a
4.NFS客户端配置
#mount 192.168.1.57:/home/public /mnt/nfshare
#mount |grep nfs查询该目录的挂载状态
#umount /mnt/nfshare卸载卸NFS共享目录