NFS(Network File System)
NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远
端系统上的文件。
优点:
本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。
用户不必在每个网络上机器里头都有一个home目录。Home目录 可以被放在NFS服务器上并且在网络上处处
可用。
诸如软驱,CDROM,和 Zip? 之类的存储设备可以在网络上面被别的机器使用。这可以减少整个网络上的
可移动介质设备的数量。
配置:(依然建议在selinux关闭下做实验。)
软件包:nfs-utils portmap
安装:yum install -y nfs-utils portmap
守护进程: rpc.nfsd 、rpc.lockd、rpciod、rpc.mountd、rpc.rquotad、rpc.startd
rpc.nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器
rpc.mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过rpc.nfsd登录NFS服务
后,在使用NFS服务所提供的文凭前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports
来对比客户端权限。
portmap:portmap的主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服
务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务
。
(这三个服务进程是运行NFS服务器所必须的服务。)
脚本:/etc/init.d/nfs 、/etc/init.d/nfslock(这个文件是NFS的主要配置文件,不过系统并没有默认值,所
以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。)
端口:2049(nfsd) ,其他端口portmap(111)分配
配置文件:/etc/exports 、/etc/sysconfig/nfs
校验服务是否运行:
rpcinfo -p
service portmap status
service nfs status
启动服务
service nfs start
停止服务
service nfs stop
重启服务
service nfs restart
当修改了/etc/exports文件后,
exportfs -r 命令会刷新服务器的共享列表
exportfs -v 命令会显示服务器上的共享目录和选项列表
exportfs -a 命令会导出/etc/exports中列出的所有共享或者以参数命名的共享
exportfs -u 命令会取消导出以参数命名的共享;
显示主机的NFS服务器信息:showmouont [NFS服务器主机地址]
显示NFS服务器的输出列表:showmount –e [NFS服务器主机地址]
显示NFS服务器中被挂载的共享目录:showmount –d [NFS服务器主机地址]
显示NFS服务器的客户机与被挂载的目录:showmount –a [NFS服务器主机地址]
NFS服务器
在/etc/exports文件中定义导出目录
每个条目都指定文件系统被导出到的主机,以及相关的权限和选项
例如:
/var/ftp/pub *.example(ro,sync) bigserver.redhat.com(rw,sync)
/root/presentations server2.example.com(rw,sync)
/data 192.168.10.0/255.255.255.0(sync)
每个条目指定一个导出的目录和他的访问权限。可以指定一对或多对主机/权限,但是不能将条目分成若干
行。主机名可以包含通配符,如上所示。也可用通配符来匹配主机名或域名:station1*将与station1、
station2、station11等等匹配;*.example.com将与station1.example.com等等匹配。
主机的IP地址可以被单独指定,也可以是网络/子网掩码格式。默认情况下,/etc/exports中的条目以只读
形式导出。
选项和主机之间必须不能使用空格间隔。
指定的选项有以下几种:
ro:只读访问
rw:读写访问
sync:所有数据在请求时写入共享
async:NFS在写入数据前可以相应请求
all_squash:共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash:保留共享文件的UID和GID(默认)
root_squash:root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas:root用户具有根目录的完全管理访问权限
用于防火墙的端口选项
要在NFS中使用防火墙,必须使用通常有portmap分配的端口的服务器使用静态端口。这些服务包括:mountd
、statd和lockd守护进程。
nfs脚本在/etc/sysconfig/nfs文件中查找在启动守护进程是使用的选项。MOUNTD_PORT、STATD_PORT、
RQUOTAD_PORT、STATD_OUTING_PORT、LOCKD_TCPPORT和LOCKD_UDPPORT变量都可以使用强制这些选项守护进程在
指定的端口启动。该文件默认安装中可能不存在,可以自行创建即可。
客户端NFS
用/etc/fstab文件指定网络挂载目录
或者直接用mount 命令 挂载即可
如:mount -t nfs -o -w=1024 192.168.0.170:/sharedfs /project
客户端NFS自动挂载
方法一,/etc/fstab
netfs服务会使用文件/etc/fstab作为参考, 所以像NFS共享的会被自动执行。
如下是一个/etc/fstab中的挂载NFS的一条记录。
server1.example.com:/share/directory /mnt/share nfs defaults 0 0
方法二, autofs 服务:
使用/etc/fstab的一个缺点是:不管用户访问NFS的次数和时间,系统总是会使用资源来维护这个NFS挂载。虽
然对于一两个NFS挂载的时候这不是问题,但是如果系统在维护很多NFS挂载的时候,系统性能会受到影响,一
个替代方法就是使用基于kernel的自动挂载工具:他可以在需要的时候自动的挂载NFS。
autofs 服务会根据/etc/auto.master文件来控制自动挂载命令:automount的命令可以更加方便的指定挂载点
,主机名, 输出目录等等。
autofs的配置文件以父-子关系来组织,主配置文件(/etc/auto.master) 列出了所有的挂载点,然后他会连接
到一个特定的映射类型, 这个类型可以是配置文件,程序, NIS映射或者其他挂载方式,auto.master文件包含
了如下内容。
挂载做法是使用一个文件,这个文件通常命名成auto.
挂载点,一个NFS类型的auto.
-
,该目录必须手动创建。
可以使用nfs的选项替换
定在options列表前使用了符号"-"。
使用你的NFS服务器替换如上的
使用NFS服务器的输出路径替换如上的 .
可以使用nfs的选项替换
autofs配置文件可以用于很多中挂载方式和不同的文件系统上,特使是在NFS的挂载上特别有用,举例来说,有
些单位把所有的/home目录集中于一台NFS服务器上, 然后在每个节点上配置auto.master指向auto.home,使得
每个节点都可以通过autofs挂载/home目录。所有的用户都可以在任何一台工作站上访问自己/home/下的的数
据和配置文件,该案中的auto.master看起来会像如下所示。
/home /etc/auto.home 这个文件设置了/home/挂载点被配置到了/etc/auto.home文件上,auto.home看起
来应该如下:
* -fstype=nfs,soft,intr,rsize=8192,wsize=8192,nosuid,tcp server.example.com
例如操作步骤:
1、vim /etc/auto.master
/mnt /etc/zuto.shared
2、vim /etc/auto.shared
shared -soft,intr,rw 192.168.0.170:/shared
* -soft,intr,rw 192.168.0.170:/shared/&
重启服务即可。