分类:
2012-07-16 13:29:55
原文地址:NFS服务器的配置与应用 作者:youyuanyin
NFS服务的配置与应用
1、什么是NFS
它是Network File system的缩写,即网络文件系统。
NFS是由SUN公司开发,并于1984年推出的一个RPC服务系统,它使我们能够达到文件的共享。一台NFS服务器如同一台文件服务器,只要将起文件系统共享出来,NFS客户端就可以将它挂载到本地系统中,从而可以像使用本地文件系统中的文件一样使用那些远程文件系统中的文件。
使用NFS既可以提高资源的使用率,又可以节省客户端本地硬盘的空间,同时也便于对资源进行集中管理
2、RPC
虽然NFS可以在网络中进行文件共享,但是NFS协议本身并没有提供数据传输的功能,它必须借助RPC(remote process call)远程过程调用协议实现数据的传输。RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以将NFS服务器看成是一个RPC服务器,而将NFS客户端看成是一个RPC客户端。
3、3个系统守护进程
①rpc.nfsd
基本的NFS守护进程,主要管理客户端是否能登入服务器
②rpc.mountd
RPC的安装守护进程,主要管理NFS的文件系统。当客户端通过rpc.nfsd登录NFS服务器后,在使用NFS服务器所提供的文件前,还必须通过文件使用权限的验证,rpc.mountd会读取NFS的配置文件/etc/exports来对比客户端的权限
③portmap
Portmap进行端口映射。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口号提供给客户端,使客户端可以通过该端口向服务器请求服务。Portmap如果没有运行,NFS客户端就无法查找从NFS服务器中共享的目录
以下以RedHat 红帽9为例
4、NFS服务的安装
①检查系统中是否已经安装了所需软件包
执行命令Rpm –q nfs-utils portmap
结果是
nfs-utils-1.0.1-2.9
portmap-4.0-54
如果未安装可以在安装光盘的RedHat/RPMS目录下找到
执行
rpm –ivh nfs-utils-1.0.1-2.9.i386.rpm安装NFS服务
rpm –ivh portmap-4.0-54.i386.rpm 安装portmap服务
5、NFS服务的配置
①主配置文件/etc/exports
该文件默认为空。可以定义NFS系统的输出目录(共享目录)、访问权限和允许访问的主机等参数。Exports文件中每一行提供了一个共享目录的设置,命令格式为:
<输出目录> [客户端1(选项1,选项2,…)][客户端2(选项1,选项2,…)]
输出目录是必选参数,其他参数都是可选的。格式中的输出目录和客户端之间、客户端与客户端之间使用空格分隔,客户端和选项之间没有空格
例:
/nfs/public 192.168.0.0/24(rw,async) *.(ro) |
输出目录/nfs/public供子网192.168.0.0/24中的所有客户机进行读写操作,而其他网络中的客户机只能读取目录的内容。当某用户使用子网192.168.0.0/24中的客户机访问该共享目录时,能否真正地写入,还要看该目录对该用户有没有开放Linux文件系统权限的写入权限
6、维护NFS服务的输出目录列表
修改了/etc/exports文件的内容后,不需要重新启动NFS服务,使用命令exportfs就可以使设置生效
Exportfs [选项]
选项:
-a:输出在/etc/exports文件中所设置的所有目录;
-r:重新读取/etc/exports文件的设置,并使设置立即生效;
-u:停止输出某一目录;
-v:在输出目录时将目录显示在屏幕上。
选项可以组合使用
7、启动和停止NFS服务
①NFS正常工作需要启动portmap和nfs这两个服务,并且portmap要先于nfs启动:
/etc/init.d/portmap start或service portmap start
/etc/init.d/nfs start或service nfs start
②停止NFS服务
/etc/init.d/nfs stop或service nfs stop
/etc/init.d/portmap stop或service portmap stop
③重启NFS
/etc/init.d/nfs restart
④检查portmap和nfs服务的状态
/etc/init.d/portmap status或service portmap status
/etc/init.d/nfs status或service nfs status
⑤设置开机自启动NFS 服务
Chkconfig --level 35 portmap on
Chkconfig –level 35 nfs on
或者执行ntsysv命令,出现如下图界面
找到“nfs”和“portmap”,按空格在前面加上“*”,“OK”即可
8、测试NFS服务
①检查NFS服务是否正常运行
Rpcinfo –p
如果NFS服务运行正常,就可以看到关于portmapper、nfs、mountd等守护进程的条目
②测试NFS服务器的输出目录状态
Showmount [选项] NFS服务器主机名称或地址
常用选项:
l -a:显示指定的NFS服务器的所有客户端主机及其所连接的目录;
l -d:显示指定的NFS服务器中已经被客户端连接(挂载)的所有输出目录
l -e:显示指定的NFS服务器上所有输出的共享目录
缺省“NFS服务器名称或地址”则默认当前主机
注意:如果不是查看本地NFS信息,而是其他机器,那么防火墙可能影响查看,可用service iptables stop命令暂时关闭防火墙
9、NFS客户端
①连接NFS服务器
Mount –t NFS服务器主机名或IP 地址:输出目录 本地挂载目录(挂载点)
本地挂载点不存在的话,必须建立,当然服务器端设定的权限和范围决定客户端能否成功挂载
10、卸载已挂载目录
Umount 挂载点
11、启动客户机是自动挂载服务器输出目录
Vi /etc/fstab
加入如下格式语句:
NFS服务器或IP地址:输出目录 本地挂载点 nfs defaults 0 0
注意:要想在客户端机器启动时成功挂载服务器目录,服务器必须提前启动
下面是完整的实例:
服务器端:
IP:192.168.0.2
Mkdir /mnt/nfs
Touch 1
Vi /etc/exports
输入内容是
/mnt/nfs 192.168.0.0/24(rw,sync)
Service portmap start
Service nfs start
客户端:
Mkdir /mnt/nfs
Mount –t nfs 192.168.0.2:/mnt/nfs /mnt/nfs
Cd /mnt/nfs
ls