第7章NFS服务主讲人赵开新本章内容31NFS服务的安装前提和过程3233NFS服务的组件配置NFS服务34NFS服务配置实例7.1NFS服务的安装前提和过程7.1.1所需要的套件7.1.2查询套件是否已经安装7.1.3安装NFS7.1.1所需要的套件必须的两个套件:portmap套件该套件借助RPC服务的帮助,负责端口映射工作以保证NFS服务的正常运行。nfs-utils套件该套件为NFS服务的主要套件,提供rpc.nfsd和rpc.mounted这两个守护进程与其他相关文档、执行文件的套件。7.1.2查询套件是否已经安装在明确了所需两个套件之后,则需检查在本机系统中是否安装有该套件,可以通过执行以下命令来查询:[root@localhost~]#rpm-qa|grepnfs-utils[root@localhost~]#rpm–qa|grepportmap7.1.3安装NFS准备好NFS服务相应的rpm安装包后,可以通过执行以下指令进行安装:[root@localhost~]#rpm–ivhnfs-utils-1.0.9-40.el5.i386.rpm注意为了避免在以后使用过程中出现错误,最好查询一下NFS的各个程序是否在正常运行,执行以下命令:[root@localhost~]#rpminfo–p在执行以上命令后,如果没有看到NFS和mounted选项,则说明NFS没有运行,需要使用以下命令来启动NFS服务:[root@localhost~]#/etc/rc.d/init.d/nfsstart7.2NFS服务的组件Linux下的NFS服务主要由rpc.nfsd进程、rpc.mounted进程、rpc.quotad进程、rpc.locked以及rpc.statd进程五个进程组成。其中,前两个进程是必须的,后三个进程是可选的。进程进程说明必须rpc.nfsd进程该守护进程主要用于对客户端登录主机的权限验证,同时负责处理NFS请求。是rpc.mounted进程该守护进程主要用于对NFS的文件系统的管理。当客户端成功登录主机后,rpc.mounted进程会根据/etc/exports文件来检查客户端是否有访问NFS服务器上的资源的权限。是rpc.quotad进程该守护进程提供了NFS和配额管理程序之间的接口否rpc.locked进程该守护进程可以帮助rpc.stated守护进程使用本进程来处理崩溃系统的锁定恢复问题的解决。锁定文件在于可以避免多个用户同时操作一个文件时发生的问题。否rpc.statd进程该守护进程负责处理客户端与服务器之间的文件锁定问题以确保文件的一致性(与rpc.locked有关)。否7.3配置NFS服务7.3.1NFS服务的具体配置exports文件设置主机名的规则具体权限规则7.3.2NFS文件的存取权限exports文件Linux发行的套件有多种,其中有些套件不提供/etc/exports文件,而RedHatEnterpriseLinux5就没有提供该文件。此时使用该操作系统的用户就需要自己手工创建。该配置文件由多个基本条目组成,各个级别条目的格式如下:目录主机1(选项1,选项2)主机2(选项1,选项2)[主机n…]配置的具体方法如下:[root@localhost~]#vi/etc/exports/tmp192.168.0.8/24(ro)localhost(rw)*(ro,sync)#[共享目录][第一台主机(权限)][可用主机名][其他主机(可用统配符)]设置主机名的规则主机名称的设定主要有几个方式:●使用主机名称,该主机名称要在/etc/hosts内或使用DNS可以被找到(即可找到IP)。在使用主机名称的情况下,可以支持通配符(如*或?等)。●使用完整的IP地址或网段。exports文件Linux发行的套件有多种,其中有些套件不提供/etc/exports文件,而RedHatEnterpriseLinux5就没有提供该文件。此时使用该操作系统的用户就需要自己手工创建。该配置文件由多个基本条目组成,各个级别条目的格式如下:目录主机1(选项1,选项2)主机2(选项1,选项2)[主机n…]配置的具体方法如下:[root@localhost~]#vi/etc/exports/tmp192.168.0.8/24(ro)localhost(rw)*(ro,sync)#[共享目录][第一台主机(权限)][可用主机名][其他主机(可用统配符)]具体权限规则权限权限说明ro:read-only只读权限rw:read-write可读写权限async数据先暂存于内存当中,不直接写入硬盘sync数据同步写入到内存与硬盘当中no_root_squash登录NFS主机使用共享目录的用户,共享目录是谁就具有谁的权限。为了安全起见,不建议使用该设置。root_squash在登录NFS主机使用共享之目录的用户如果是root时,这个用户的权限将被压缩成为匿名用户,通常UID与GID都会变成nobody(nfsnobody)那个系统账号的身份。all_squash登录NFS的所有用户都会被压缩成为匿名用户者,通常也就是nobody(nfsnobody)。anonuidanon意指anonymous(匿名者)前面关于*_squash提到的匿名用户者的UID设定值,通常为nobody(nfsnobody),但是你可以自行设定这个UID的值!当然,这个UID必需要存在于你的/etc/passwd当中。anongid同anonuid,只是变成了GroupID7.3.2NFS文件的存取权限使用何种用户账号用户账号说明root账号基于安全因素的考虑,如果客户端是root账号去访问NFS服务器资源,服务器会主动将客户端改成匿名用户。因此,root账号只能访问服务器上的匿名资源。NFS服务器上有客户端的账号客户端是根据用户和组(UID、GID)来访问NFS服务器资源的,如果NFS服务器上想对应的用户名和组,用户就访问与客户端同名的资源。NFS服务器上没有客户端账号客户端只能访问匿名资源。NFS服务的启动与停止启动NFS服务执行命令:[root@localhost~]#serviceportmapstart[root@localhost~]#servicenfsstart停止NFS服务执行命令:[root@localhost~]#servicenfsstop此时不一定要关闭portmap服务。重启NFS服务执行命令:[root@localhost~]#servicenfsrestart此时不一定要关闭portmap服务。NFS服务的启动与停止在桌面上单击右键,选择“打开终端”菜单,在打开的终端窗口输入“ntsysv”命令,即可打开RedHatEnterpriseLinux5下的“服务”配置小程序,找到“nfs”,并在其前面加个“*”,最后单击“确定”按钮。至此,完成了NFS服务随系统启动而自动运行的设置。7.4NFS服务配置实例7.4.1查看NFS服务器共享资源7.4.2加载NFS服务器共享目录7.4.3自动挂接NFS文件系统7.4.1查看NFS服务器共享资源showmount指令的语法格式如下:[root@localhost~]#showmount[-adehv][ServerName]具体参数:-a查看服务器上的输出目录和所有连接客户端信息。显示格式为“host:dir”。-d只显示被客户端使用的输出目录信息。-e显示服务器上所有的输出目录(共享资源)。实例当需要查看IP地址为192.168.100.16的服务器上的NFS共享资源信息时,需要执行以下指令:[root@localhost~]#showmount–e192.168.100.16exports服务器上查看共享7.4.2加载NFS服务器共享目录mount命令的语法格式如下:[root@localhost~]#mount-tNFS实例如果要加载IP为192.168.100.16的服务器上的/exports/rhel目录,可以通过以下方法实现。首先,创建一个本地目录来加载NFS服务器上的输出目录,执行命令:[root@localhost~]#mkdir/mnt/nfs然后,使用相应的mount指令加载服务器目录,执行命令:[root@localhost~]#mount–tNFS192.168.100.16:/exports/rhel/mnt/nfs7.4.3自动挂接NFS文件系统在RedHatEnterpriseLinux5中,自动加载文件系统是在/etc/fstab中定义的,NFS文件系统同样如此。首先,用文本编辑器打开/etc/fstab文件,在该文件中添加如下行:192.168.100.16:/exports/rhel/mnt/nfsnfsdefaults00然后,执行以下指令重新加载fstab文件中定义的文件系统来使设置生效:[root@localhost~]#mount-a注意如果客户端需要使用NFS服务器所提供的共享资源,则自然会想到在Linux启动时自动挂接和使用mount指令手动挂接两种方法。其实,RedHatEnterpriseLinux5内置的autofs还提供了第三种方法:让用户用到共享资源时自动挂接。习题1.NFS的主要作用是什么?2.NFS所需要的两个套件是什么?3.需要执行什么命令对NFS服务进行启动和停止?