1、NFS:Network File System
在Linux下实现文件共享有多种方式,NFS就是其中之一。网络文件系统(NFS)协议是由Sun MicroSystem在20世纪80年代为了提供对共享文件的远程访问而设计和实现的。该协议采用Client/Server模型, 通过使用Sun开发的远程过程调用协议(RPC Protocol)来实现运行在一台计算机上的程序来调用在另一台远程机器上运行的子程序.
NFS包含3个版本:NFSv2、NFSv3、NFSv4
RHEL6是以NFSv4作为默认版本,NFSv4使用TCP协议(端口号是2049)和NFS服务器建立连接,而老版本的NFS可以在TCP协议或者是UDP协议上运行。NFS服务的端口默认是不固定的,但可以强制NFS使用固定端口。
RHEL6中NFS的软件包:nfs-utils
在NFS的相关文档中,有两个值得重点关注
/etc/exports:NFS服务的主配置文件,该文件的最主要目的是发布共享目录并为共享目录限制权限。和其他服务的主配置文件一样,绝大部分的配置都是通过编辑该文件完成
/var/lib/nfs/xtab:这个文件主要用来记录客户端与NFS服务器的连接记录,如果想查看哪些客户端曾经连接过NFS服务器,查看该文件即可
NFS服务的主配置文件exports发布共享目录的格式如下:
共享目录 [客户端1参数1][客户端2 参数]…
共享目录是指在NFS服务器上需要给客户端共享出来的目录,在设置共享目录的时候要使用绝对路径
注意:在发布共享目录的格式中除了共享目录是必跟参数外,其他参数都是可选的。而且共享目录和客户端1与客户端2之间都需要使用空格符号,但客户端和参数之间不能有空格。
如:在/etc/exports文件添加如配置:
/media *(ro) 192.168.0.10(rw,no_root_squash)
/NFS/test 192.168.0.0/24(ro)
NFS服务的启动与停止:NFS服务脚本是NFS
chkconfig --list
将rpcbind和nfs都设为自动启动
chkconfig rpcbind on
chkconfig nfs on
启动rpcbind
service rpcbind start
之后才能成功启动nfs
service nfs start
一定要先启动rpcbind,然后再启动nfs,不然NFS quotas和NFS daemon都将启动失败。
servicenfs start|stop|restart|reload
exportfs命令:用于维护当前主机中NFS服务器的输出目录列表
exportfs �Crv使NFS服务器重新读取exports文件的设置,而不需重启NFS服务器
exportfs �Cauv 用于停止当前主机中NFS服务器的所有目录输出
exportfs �Cav 用于输出NFS服务器的所有共享目录
exportfs �Cv 显示输出列表同时,显示导出的设定参数
客户端的使用:
客户端可以先使用showmount �Ce查看NFS服务器发布的共享目录
挂载NFS文件系统
Mount -t nfs NFS服务器IP地址(或主机名):共享目录 本地挂载点
如:mount �Ct nfs 192.168.0.1:/media /mnt
启动挂载NFS
想要系统每次启动时自动挂载NFS服务器上的共享目录,则可以编辑/etc/fstab文件
NFS服务器的IP:共享目录 挂载点 nfs defaults 0 0
配置NFS固定端口:
默认情况下,NFS配置完毕后,每次重新启动该服务后其相应的端口都会随机变化,如果启用了防火墙,如何开放变化的端口就成问题了,其实解决办法也很简单,只需对NFS进行配置使用固定端口即可
NFS服务启动时,会检查/etc/sysconfig/nfs文件,因此改该文件,修改相应字段便可以强制NFS服务使用固定端口了:
若NFS服务器上启用了iptables防火墙且filter表的3个链默认规则为DROP需创建如下规则:
iptables �CI INPUT �Ci lo �Cj ACCEPT
iptables �CI INPUT �Cp tcp --dport111 �Cj ACCEPT
iptables �CI INPUT �Cp udp --dport111 �Cj ACCEPT
iptables �CI INPUT �Cp tcp --dport2049 �Cj ACCEPT
iptables �CI INPUT �Cp udp --dport2049 �Cj ACCEPT
iptables �CI INPUT �Cp tcp �Cmmultiport --dport 875,32803,32769,892,662 �Cj ACCEPT
iptables �CI INPUT �Cp udp �Cmmultiport --dport 875,32803,32769,892,662 �Cj ACCEPT
service iptables save