AIX 系统 NFS设置
一、NFS守护进程:NFS是通过使用许多用户级的守护进程及远程过程调用等网络应用程序来实现的。而NFS服务器及客户端的守护进程并不完全一致。
1、 作为NFS服务器所需的守护进程
portmap:将远程过程调用(RPC)程序映射为传输层的TCP/UDP端口号。
rpc.mountd:响应客户机发来得文件系统安装请求 nfsd:执行客户机的IO请求
2、 作为NFS客户机所需的守护进程
portmap:将远程过程调用(RPC)程序映射为传输层的TCP/UDP端口号。
biod:从客户机的高速缓冲区提前读入或延迟写成数据块。
3、 NFS服务器和客户机都运行的守护进程 实现文件锁功能
rpc.statd:为rpc.lockd进程提供冲突和复原功能
rpc.lockd:处理本地或远地的加锁功能
二、NFS的启动与关闭:
1、NFS服务的启动,NFS的服务是由/etc/rc.nfs命令文件来启动的。默认情况下,由init进程依据 /etc/inittab文件的配置来执行rc.nfs。所有的NFS守护进程由SRC来控制,可以用SRC的命令来启动(startsrc)或停止(stopsrc)这些进程,还可以显示(lssrc)这些进程的状态。在启动所有的NFS守护进程前,必须先启动portmap进程。通常新安装的AIX系统默认是不启动NFS服务的。
因此第一次启动NFS时可以用mknfs命令来启动NFS服务 mknfs命令有三个参数:
-I :使用该参数时会在/etc/inittab文件中添加一条记录,便于系统重启时调用rc.nfs。
-N:使用该参数时,mknfs立即执行/etc/rc.nfs文件,但是并不在inittab文件中添加记录。
-B:使用该参数,不仅在inittab文件中添加记录,同时还执行/etc/rc.nfs文件
另外:也可以用SRC的命令来启动NFS服务。既可以启动NFS所有进程,也可以单独启动某一进程。如:
# startsrc -g nfs -----启动NFS服务所有进程
# startsrc -s rpc.mountd -----单独启动rc.mountd进程
2、停止NFS服务。停止NFS服务也有两种方式:使用rmnfs命令或者用SRC的命令停止服务。rmnfs 命令同样有三个参数:
-I :删除/etc/inittab文件中的调用rc.nfs文件的记录
-N:立即停止NFS服务,但是不删除inittab文件中的记录
-B:立即停止NFS服务,同时删除inittab文件中的记录
# stopsrc –g nfs -----停止NFS服务所有进程
# stopsrc –s rpc.mountd ---单独停止rpc.mount
三、配置NFS服务器:
1、/etc/exports文件.该文件记录NFS服务器的共享信息,每一行为一条共享记录。默认情况下该文件不存在,可以通过手工编辑的模式或者使用smit mknfsexp 命令生成exports文件。如果该文件不存在,则无法启动rpc.mountd和nfsd守护进程。
exports文件的格式为:导出目录(共享目录) 选项(option)
导出目录(共享目录),必须为绝对路径。
选项(option):
ro :远程用户以只读方式访问被导出目录。 rw=hostname1:hostname2:hostname3…… :指定一个或多个客户机对导出目录读写访问,没有指定的客户机只能只读访问。 anon=uid:如果客户机访问导出目录的用户是未知用户,就用uid对应的用户作为有效用户。anon=-1 表示禁止匿名用户访问,anon=-2 表示允许匿名用户访问。 root=hostname1:hostname2:hostname3……:给指定的访问客户机分配root用户的访问权限。
access=client1:clent2:client3……:指定具有安装访问权限的主机或工作组。对于列出的每个client访问时,首先在/etc/netgroup 文件中检查,然后在/etc/hosts文件中检查。如果访问主机不在上述文件列表中,则没有安装权限。
secure:对应访问导出目录的主机使用列出的安全协议。
下面是我实验环境中/etc/exports 文件的内容:
/test -sec=sys:krb5p:krb5i:krb5:dh,rw,root=tas
/arch -sec=sys:krb5p:krb5i:krb5:dh,rw,access=demo,root=linux32:wang
注意:这里的access和root一定要写机器名,其机器名对应的ip在/etc/hosts中体现出来
2、exportfs命令: exportfs命令的功能就是让rpc.mountd这个守护进程重新读取修改后的/etc/exports文件的内容。在系统启动时会调用/etc/rc.nfs文件,该文件会执行exportfs –a 命令,命令会读取/etc/exports文件中的内容,并将内容导出到/etc/xtab文件中,如果系统中不存在/etc/exports文件,则服务器不会启动nfsd和rpc.mountd这两个守护进程。
命令参数:
-a 导出所有的列在/etc/exports文件中的共享目录。 -v 打印每个共享目录的信息。 -u 不导出指定的目录。当用到 -a 标志时,不导出列在/etc/exports文件中的所有的目录。
-i 允许没有在/etc/exports文件中指定的目录的导出,或者忽略在/etc/exports文件中的选项。
-f File 指定一个导出文件,而不是 /etc/exports 文件,该文件包含了一个您可以导出的目录的列表。这个文件应该遵守 /etc/exports 文件相同的格式。注意:这个可更替的文件将不会在系统和 NFS 启动的时候用来自动导出目录。/etc/exports 文件是支持在系统启动时指定导出目录的唯一的文件。
-o选项 为要导出的目录指定可选的特征。可以输入多个变量,中间用逗号隔开。该参数具体内容参考上面叙述中exports文件的选项内容。
实例:
# exportfs –a ----------------------------- 导出 /etc/exports 文件中的全部目录
# exportfs /test --------------------- 导出/test目录,该目录必须在exports文件中指定
# exportfs –u /test --------------------- 取消/test目录的导出。
# exportfs –i /tzxtab --------------------- 导出未在exports文件中指定的目录,而且该目录没有任何限制地被导出。
# exportfs -i -o -root=tas /arch --------- 从 /etc/exports 文件导出带不同选项的目录.
3、NFS系统的主要文件及关系:
/etc/exports ------NFS导出目录的配置文件
/etc/xtab -------该文件内容是由exportfs命令产生。不可手工编辑该文件内容。
/etc/rmtab ------客户机成功挂载服务器共享目录后,会在该文件中增加一条成功记录
4、查看导出命令:
showmount -e hostname
四、NFS客户端设置: NFS客户端设置相对比较简单,首先判断portmap守护进程是否启动。接下来判断biod、rpc.lockd、rpc.statd进程是否允许,这几个进程虽非必要,但是建议客户机还是启动这几个进程为好。如果过程如下:
# lssrc –s portmap # lssrc –g nfs
NFS客户端挂载NFS服务器共享目录基本分为2种,预定义安装,手工安装。
1、 预定义安装:就是在/etc/filesystems文件中设置要安装的共享目录内容。如图:
说明:/test1: -----本地挂载点
dev = "/arch/test" ---要挂载的远程NFS共享目录的全路径
vfs = nfs ---文件系统的安装类型
nodename = tas ---NFS服务器的主机名(应该在hosts文件中指定)
mount = false ---系统引导时是否自动挂载
options = bg,hard,intr,sec=sys 该选项参数解释如下: bg或fg --第一次挂载失败后,尝试一bg(后台方式)或者fg(前台方式)继续挂载 hard或soft --当NFS服务器无法连接时,客户机是无限制尝试挂载(hard)还是过一段时间再尝试挂载(soft)
intr --允许使用键盘中断挂载,这在无法访问NFS主机时很有用
2、 手工用mount命令直接挂载NFS共享目录。如果要挂载的共享已经在/etc/filesystems文件中定义了,只需执行 mount 挂载点 即可。 如果没有在/etc/filesystems文件中定义,则需要手工挂载,命令格式如下: mount 主机名:共享目录 挂载点