免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1604 | 回复: 0
打印 上一主题 下一主题

[系统管理] IBM红皮书翻译之二:AIX 5L 5.3系统管理和支持(5.4) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-18 19:38 |只看该作者 |倒序浏览

5.4  网络文件系统
网络文件系统是一个让用户像访问自己本地的文件和目录一样来访问远程服务器的文件和目录的一种分布式文件系统。例如,你可以使用操作系统命令来创建、删除、读、写和设置远程文件和目录的文件属性。因为NFS使用远程过程调用(RPC)服务,所以它是和机器型号、操作系统、网络架构无关的。
要成功地实现一个NFS环境,你需要以下准备:
1.        应该在服务器和客户端运行的NFS后台进程
2.        需要远程使用的文件系统应该被导出
3.        导出的文件系统需要被在远程系统(客户端)上加载
5.4.1   NFS服务
NFS通过客户机-服务器模式来提供服务。
以下是将要讨论的一些术语:
Server
为远程访问提供文件系统、目录或者其他可用资源的计算机。
Clients
使用服务器资源的计算机或者它们的进程。
Export
使文件系统对远程客户端可用的动作。
Mount
客户端用来访问服务器导出的文件系统必须采取的动作。
可以对指定用户对导出目录的访问做限制。
NFS提供的主要服务是:
Mount
由服务器的/usr/sbin/rpc.mountd后台和客户端的/usr/sbin/mount命令提供。mountd后台是一个响应客户加载文件系统的一个RPC调用;mountd后台提供一个当前加载的文件系统列表和它们在那个客户机上被加载。
远程文件访问
由服务器的/usr/sbin/nfsd后台和客户端的/usr/sbin/biod后台提供,它处理客户端对文件的请求。biod后台运行在所有的NFS客户端系统中,当客户端上有一个用户希望对服务器上的一个文件进行读写操作时,biod后台将这个请求发送到服务器。
在每个系统(不过是客户端还是服务器)上启动NFS后台进程。默认在一个新系统上NFS是不启动的,当安装往一个新系统后,所有NFS必须的文件都已经安装在系统中,但是激活NFS的步骤并没有执行。可以使用以下两种方式启动NFS后台进程:
使用SMIT快速路径smitty mknfs
使用mknfs命令立即启动NFS后台进程,如下:
# mknfs -N
0513-059 The portmap Subsystem has been started.Subsystem PID is 23734.
Starting NFS services:
0513-059 The biod Subsystem has been started. Subsystem PID is 27264.
0513-059 The nfsd Subsystem has been started. Subsystem PID is 30570.
0513-059 The rpc.mountd Subsystem has been started. Subsystem PID is 28350.
0513-059 The rpc.statd Subsystem has been started. Subsystem PID is 15298.
0513-059 The rpc.lockd Subsystem has been started. Subsystem PID is 30976.
#
如果NFS后台没有启动,你可以使用系统资源控制器来启动NFS后台。
NFS后台可以被个别启动或者一次启动全部。使用以下命令启动个别NFS后台进程:
# startsrc -s daemon
这里daemon是SRC控制的后台之一。例如,启动nfsd后台使用命令:
# startsrc -s nfsd
使用以下命令启动所有NFS后台进程:
# startsrc -g nfs
5.4.2   导出NFS目录
这一节讨论exportfs命令的使用。
使用SMIT导出一个NFS目录
要使用SMIT导出一个NFS目录,按下列步骤执行:
1.        使用命令lssrc -g nfs校验NFS是否正在运行。如下面的例子所示,输出结果显示nfsd和rpc.mountd进程是激活的;如果它们没有激活,使用指令启动NFS。
#lssrc -g nfs
Subsystem            Group           PID               Status
biod                     nfs                 15740           active
nfsd                      nfs                 11376          active
rpc.mountd          nfs                5614            active
rpc.statd              nfs                16772          active
rpc.lockd             nfs                15496          active
#
2.        在服务器上使用smitty mknfsexp导出目录;SMIT屏幕如Figure 5-1所示:

3.        在导出目录的目录名城项输入/home1,设置导出目录的模式为读写,设置现在导出该目录,系统重启后也导出目录
4.        指定其他你想指定的特征或者接受默认值
5.        当你做完改变后,SMIT会更新/etc/exports文件,如果该文件不存在,它会被创建。
6.        为你需要导出的其他目录重复3-5步
7.        如果NFS正在服务器上运行,输入:
# /usr/sbin/exportfs -a
-a选项告诉exportfs命令发送/etc/exports文件中的所有信息到内核。如果NFS没有运行,使用前面介绍的指令启动NFS
8.        校验所有的文件系统都已经被正确的导出如下:
在服务器上:
# showmount -e MyServer
export list for MyServer:
/home1          (everyone)
/home2          (everyone)
/home3          (everyone)
/home4          (everyone)
#
这里我们使用MyServer作为showmount命令的服务器名称参数。在下面的讨论中我们还将使用这个服务器名称。
使用一个文本编辑器导出一个NFS目录
要使用一个文本编辑器导出一个NFS目录,使用以下步骤:
1.        使用你喜欢的文本编辑器打开/etc/exports文件,如下:
# vi /etc/exports
2.        为每个即将导出的目录创建一个条目(使用目录的绝对路径名称),如Figure 5-2所示:

3.        列出的每个目录的左边都是空白(没有#之类的标记),任何目录下都不能包含已经导出的目录。保存并关闭/etc/exports文件。
4.        如果NFS当前正在系统上运行,输入:
# /usr/sbin/exportfs -a
临时导出一个NFS目录
文件系统可以在需要的时候被导出,这是不需要改变/etc/exports文件,只需要输入:
# exportfs -i dimame
这里dimame是你要导出的文件系统的名称,-i标志指明不检查/etc/exports文件,所有的选项都从命令行直接读出。
5.4.3   撤销导出的NFS目录
你可以使用以下步骤之一来撤销导出的NFS目录:
Ø        使用SMIT来撤销导出的NFS目录:
a.         在服务器上输入以下命令来删除导出目录/home4:
# smitty rmnfsexp
b.        在要删除的导出目录名称项输入/home4即可。
Ø        使用文本编辑器撤销导出的NFS目录:
使用文本编辑器打开/etc/exports文件
找到要删除的目录项(即/home4)所在行,删除该行
保存并关闭/etc/exports文件
如果NFS正在运行,输入:
# exportfs -u dimame
这里dimame就是你要删除的目录的绝对路径(在本例子中就是/home4)
5.4.4   加载一个NFS目录
有3种类型的NFS加载:预定义的,显式的和自动的。
预定义的加载是在/etc/filesystems文件中指定的,这个文件中的每一节(或者项)定义一个加载的特征,如Figure 5-3所示:

像主机名、远程路径、本地路径和其他加载选项等数据都列在节中。预定义加载用于用户始终需要指定的加载的情况下。
显式的加载服务root用户的需要,它经常用于因为临时需要而暂时加载的情况;它也可以用于适应特定任务需求而加载的情况下和不能对所有NFS客户端正常可用的加载的情况下。这些加载通常是在命令行输入命令所需的所有信息。
显式的加载不需要更新/etc/filesystems文件,它加载的文件只有显式的执行命令umount或者系统重新启动后才会卸载。
自动的加载是由命令automount控制的,它会导致AutoFS内核扩展来监视指定文件的活动。如果一个程序或者用户试图访问一个目前没有加载的目录,该请求会被AutoFS截获,AutoFS就安排对该文件系统加载并服务该请求。
NFS加载过程
客户端访问远程服务器上的文件的第一步是加载服务器导出的目录。当客户端加载一个目录时,它并没有在该目录建立原目录文件的拷贝,而是使用一系列的RPC使得可以访问服务器目录。下面是对加载过程的描述:
1.        当服务器启动时,/etc/rc.nfs脚本运行exportfs命令,该命令阅读服务器上德/etc/exports文件然后告诉内核那个目录应该被导出以及它们需要的访问限制。
2.        rpc.mountd后台进程和一些nfsd后台进程(默认是8个)随后通过/etc/rc.nfs脚本启动。
3.        当客户端启动时,/etc/rc.nfs脚本启动一些biod后台进程(默认是8个),该进程会转发客户需求到正确的服务器上。
4.        /etc/rc.nfs脚本执行mount命令,mount命令阅读/etc/filesystems文件中列出的文件系统。
5.        mount命令定位一个或多个导出客户端所需信息的服务器并在它自己和该服务器之间建立通讯,这个过程叫做绑定。
6.        mount命令然后要求服务器允许客户端访问在它的/etc/filesystems文件中列出的目录。
7.        服务器的rpc.mountd后台进程接收到客户端的加载请求后,马上做出反应:要么允许、要么拒绝。如果客户端请求的目录对它可用,rpc.mountd后台进程就发送一个文件句柄给客户机内核作为标识。
8.        客户端通过在加载记录中记录某些信息来绑定文件句柄到加载点(实际上就是一个目录)。
一旦文件系统加载完成,客户端就可以进行文件操作。当客户端执行文件操作时,biod后台进程发送文件句柄到服务器,文件被nfsd后台进程之一阅读来处理文件请求,如果客户端具有执行文件操作的访问权,nfsd后台进程就返回必要的信息给客户端的biod后台进程。
注意:在加载文件系统之前必须确保NFS加载的加载点存在于系统中(如果使用automount后台进程才不需要使用加载点)。
建立预定义的NFS加载
你可以使用以下过程之一建立预定义的文件加载点:
注意:在系统启动时建立预定义加载时需要在/etc/filesystems文件中定义bg(后台的)和intr(中断的)选项。在系统启动时,定义为不可中断并以前台方式运行的加载如果网络或者服务器不可用时会造成客户端停机。如果客户端不能访问网络或者服务器,用户就必须以维护模式重新启动机器并编辑适当的加载请求。
要通过SMIT建立预定义加载(如Figure 5-4所示),使用以下命令:
# smitty mknfsmnt

在这个屏幕中指定每个你要预定义加载的值,必须对所有必选项(行首为*的项)赋值,其他可选项你可以赋值,也可以使用默认值。这种方法会在/etc/filesystems文件中创建期望加载的项的条目并试图加载它们。
要通过编辑/etc/filesystems文件来建立NFS默认加载(只要在特殊环境下才使用这种方式),使用以下步骤:
1.        在客户端使用文本编辑器打开/etc/filesystems文件,为每个希望在系统引导时加载的远程文件系统添加条目。示例如下:
/home1:
dev = /home1
mount = false
vfs = nfs
nodename = MyServer
options = ro,soft
type = nfs_mount
这一节直接指定系统加载/home1远程文件系统到本地同名的加载点;文件系统作为只读文件系统被加载;因为他被软加载,在服务器不响应时会返回一个错误消息;通过指定加载类型参数为nfs加载,当命令mount -t nfs_mount执行时系统会试图加载/home1文件系统(其他的加载类型为nfs_mount的文件系统也一并被加载)。
下面的示例节使系统在启动时加载/home2文件系统,如果加载失败,bg选项告诉系统以后台方式继续尝试加载该文件系统:
/home2:
       dev = /home2
       mount = true
       vfs = nfs
       nodename = MyServer
       option = ro ,soft ,bg
       type = nfs_mount
2.        删除你不想在系统启动时自动加载的目录项条目
3.        保存并关闭文件
4.        运行mount -a命令来加载在/etc/filesystems文件中指定的所有目录
5.        在其他客户端上重复以上步骤
现在就可以使用NFS目录了。
显式的加载一个NFS文件系统
要显式的加载一个NFS文件系统,使用以下步骤:
1.        校验服务器是否已经导出了目录,如下:
# showmount -e MyServer
export list for MyServer:
/home1          (everyone)
/home2          (everyone)
/home3          (everyone)
/home4          (everyone)
#
这里MyServer是NFS服务器的名称,这个命令显示当前从NFS服务器导出的目录的名称,如果你期望的目录没有在列表中显示,就从该服务器上导出该目录。
2.        使用mkdir命令建立本地加载点。要完成NFS的完全成功加载,必须提供一个NFS加载所需要的目录作为加载点,这个目录应该是空的,作为加载点的目录的创建和其他的目录创建的方法一样,不需要对它指定任何属性。
3.        在客户端机器上进入以下SMIT快速路径:
# smitty mknfsmnt
4.        对以下项作适当的改变以适应你的网络配置,你的配置可能不需要完成本屏幕的所有项。
– PATHNAME of mount point.
– PATHNAME of remote directory.
– HOST where remote directory resides.
– MOUNT now, add entry to /etc/filesystems.
– /etc/filesystems entry will mount the directory on system RESTART.
– MODE for this NFS.
注意:如果你使用ASCII码的SMIT接口,在每一项按Tab键来选择正确的值,在完成步骤7以前千万不要按回车键。
5.        对其他条目使用默认值或者依于你的NFS配置对它们作改变
6.        当你完成本屏幕的所有改变后,SMIT加载文件系统
7.        当Command:项显示OK状态时,退出SMIT
NFS现在已经可以使用了。
自动加载一个NFS目录
AutoFS依赖于使用automount命令来传播自动加载配置信息到AutoFS内核扩展并启动automountd后台进程,通过这个配置传播,只要文件系统中的文件和目录被打开,AutoFS内核扩展自动并显式的加载文件系统,AutoFS内核扩展告诉automountd后台进程需要加载或/和卸载的的文件系统请求,automountd后台进程扮演执行请求的服务的脚色。
因为在automountd后台进程中名称到位置的绑定是动态的,通过automountd后台进程更新到网络信息服务(NIS)的映射对用户来讲是透明的。同样,不需要对对文件和目录涉及硬编码参考的应用预加载共享文件系统,也不需要维护对特定应用应该加载哪个主机这些记录。
AutoFS允许文件系统按需加载,使用这种方式加载目录,不需要在所有事件加载所有需要加载的文件系统,而只加载那些当前使用的文件系统。
例如要自动加载名为/backup的NFS目录的步骤如下:
1.        使用以下命令校验NFS服务器是否已经导出了该目录:
# showmount -e MyServer
export list for MyServer:
/backup
#
这个命令显示当前从NFS服务器上导出的目录的名称。
2.        创建一个AutoFS映射文件,AutoFS会自动加载/卸载在该文件中指定的目录。例如,你想使用按需加载服务器/Accounts上的/bachup到远程/backup目录,在这里,我们使用的映射文件是/tmp/mount.map。在/usr/samples/nfs下有映射文件的例子。
3.        确保AutoFS内核扩展已经加载并且automountd后台进程在运行中,可以通过以下两种途径来完成这个工作:
a.         使用SRC,输入:
# lssrc -s automountd
如果automountd子系统没有运行,使用startsrc -s automountd命令运行它。
b.        使用automount命令,/usr/sbin/automount -v,在命令行接口定义使用的映射文件如下:
# /usr/sbin/automount -v /backup /tmp/mount.map
这里/backup是AutoFS在客户端的加载点。
现在,如果有一个用户运行cd /backup命令,AutoFS内核扩展会截取对该目录的访问并使用RPC调用automountd后台进程,automountd后台进程会加载/backup目录并使cd命令完成执行。
4.        要停止automountd,使用stopsrc -s automountd命令。如果因为某种原因使得automountd后台进程没有使用SRC而被启动,使用如下命令停止它:
# kill automountd_PID
这里automountd_PID是automountd后台进程的进程号(运行ps -e命令会显示automountd后台进程的进程ID号)。kill命令发送一个SIGTERM信号给automountd后台进程。
参数
与NFS加载相关的节中的参数如下:
dev=file_system_name
指定要加载的远程文件系统的路径名称。
mount=[true|false]
如果为true,说明系统引导时加载文件系统;如果为false,系统引导时不加载文件系统。
nodename=hostname
指定远程文件系统所在的主机名称。
vfs=nfs
指定将要加载的虚拟文件系统为NFS。
以下参数如果你没有设置,内核自动设置它们为以下默认值:
Ø        biods=6
Ø        fg
Ø        retry=10000
Ø        rsize=8192
Ø        wsize=8192
Ø        timeo=7
Ø        retrans=3
Ø        port=NFS_PORT
Ø        hard
Ø        secure=off
Ø        acregmin=3
Ø        acregmax=60
Ø        acdirmin=30
Ø        acdirmax=60
5.4.5   改变一个导出的文件系统
这一节我们向你解释怎样改变一个导出的NFS文件系统。
使用SMIT改变一个导出的NFS目录
使用SMIT改变一个导出的NFS目录的步骤如下:
1.        在服务器上撤销导出的文件系统:
# exportfs -u /dirname
这里dirname是你要改变的文件系统的目录的名称,在本例中,它就是/home3。
2.        在服务器上输入:
# smitty chnfsexp
显示结果如Figure 5-5所示:

3.        在PATHNAME of Directory to Export项输入正确的路径名称,在这里请输入/home3;按照你的配置输入其他项并回车。
4.        退出SMIT
5.        输入以下命令重新导出文件系统:
# exportfs /dirname
这里是你刚才作改变的文件系统,本例中就是/home3。
使用文本编辑器改变一个导出的NFS目录
使用文本编辑器改变一个导出的NFS目录的步骤如下:
1.        在服务器上撤销导出的文件系统:
# exportfs -u /dirname
这里dirname是你要改变的文件系统的目录的名称,在本例中,它就是/home3。
2.        用你喜欢的文本编辑器打开/etc/exports文件
3.        做你想要做的改变
4.        保存并关闭/etc/exports文件
5.        输入以下命令重新导出文件系统:
# exportfs /dirname
这里是你刚才作改变的文件系统,本例中就是/home3。
5.4.6   卸载一个NFS目录
要卸载一个显式的或者自动加载的NFS目录,输入umount /directory或者unmount /directory,例如:
# umount /backup
rmfs命令用来删除你创建的文件系统。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/6482/showart_114667.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP