网络文件系统管理
NFS是独立于机器类型、操作系统和网络架构而是通过使用RPC(远程程序调用)。
10.1 NFS服务
1、几个概念
服务端(Server),客户端(Client),Export、mount。
2、NFS提供的服务
Mount: 通过在服务端启用/usr/sbin/rpc.mountd伺服进程,在客户端使用mount命令,mounted伺服进程是一个RPC来回应客户端的请求
Remote File access:通过在服务端启用/usr/sbin/nfsd和在客户端启用/usr/sbin/biod,来出来客户端对文件的请求。但客户端一个用户要来读或写一个在服务器端的文件时,biod伺服进程发送这个请求到服务端。
Boot parameters: 通过在服务端启用/usr/sbin/rpc.bootparamd伺服进程来提供无盘SunOS客户端的启动参数。
PC authentication: 通过在服务端启动/usr/sbin/rpc.pcnfsd来提供PC-NFS的用户认证服务
一个NFS服务是无状态的(stateless),也就是说,NFS的传输是原子级的,一个单一的NFS传输对应了一个单一完整的文件操作。
10.2 计划、安装和配置NFS
配置NFS:
1、配置在每一个系统上(不管是服务端还是客户端)启动NFS
使用smit mknfs或mknfs命令
mknfs命令参数:
-B:即现在就启动NFS服务进程同时在系统重启时也启动,它会在/etc/inittab文件中创建一条记录来执行/etc/rc.nfs。
-I: 在/etc/inittab文件中创建了启动NFS服务的记录
-N:当前立即启动NFS,但重启时不启动。
2、如果要使用命令行来启动NFS伺服进程,使用startsrc –g nfs。
注意,如果/etc/exports文件没有存在,则nfsd和rpc.mountd伺服进程不会启动。这时可以通过touch /etc/exports先创建一个空白的exports文件
10.2.1Exporting NFS目录
使用smit
1、先用lssrc –g nfs检查NFS伺服进程
2、使用smit mknfsexp来设置
3、设置完后,会刷新/etc/exports文件。
4、把相关信息发送到内核上
#/usr/sbin/exportfs –a
5、确定是否已经export出去
#showmount –e Croom
上述smit的操作也可以用编辑/etc/exports文档来代替,其它步骤不变。
如果要临时export一个文件系统,可以不改变/etc/exports文件,而直接采用exportfs命令来操作。
#exportfs –i /dirname
对于客户端,要采取一下步骤来确定可以进行服务端export出来的文件系统
1、确定NFS是默认的远程文件系统
#vi /etc/vfs
nfs 2 /sbin/helpers/nfsmnthelp none remote
2、启动NFS伺服进程
10.2.2Unexporting 一个NFS文件系统(目录)
1、使用smit rmnfsexp菜单
2、使用编辑exports文件的方式
编辑保存后,使用exportfs –u dirname来刷新
注意exportfs命令的使用。
10.2.3mount一个NFS文件系统(目录)
有三种类型:预定义、显式的、自动的
预定义即在/etc/filesystems文件上先定义好,在系统启动时自动mount这些文件系统。
显式的需要root用户,短期需要使用时才mount上来。
自动的由automount命令控制,使得AutoFS系统扩展内核在客户端需要访问该NFS文件系统时自动把该文件系统mount上来。
NFS mounting过程:
1、当服务端系统启动时,/etc/rc.nfs脚本执行exportfs命令,该命令读取/etc/exports文件并告诉内核哪些目录需要被export。这时rpc.mounted和好几个nfsd(默认下是8个)伺服进程启动。
2、当客户端启动时,也是通过/etc/rc.nfs脚本启动好几个biod伺服进程(默认8个)
3、rc.nfs脚本接着执行mount命令,读取/etc/filesystems文件,并且在它和服务端建立通讯联系,这个过程也叫绑定(binding)
4、当客户端发起mount请求时,服务端通过rpc.mount接收客户端请求,如果运行该请求的话,则向客户端内核发送一个标记叫做文件柄(file handle)
5、接着客户端通过记录相关一个mount记录把该文件柄绑定到该mount point上。
创建一个预定义的NFS mounts
注意:在创建时要注意设置以下参数,定义成bg和intr(interruptible)。如果设置成foreground和non-interruptible则在系统重启时,如果服务端或网络有问题时,则客户端会被挂住。
使用smit mknfsmnt来操作,注意一些参数设置(也是在/etc/filesystems中的options项)
创建一个显式的NFS文件系统:
创建一个自动mount的NFS文件系统:
1、确定服务器端已经把该文件系统export出来,使用#showmount –e Server1
2、创建一个AutoFS map文件,在/usr/samples/nfs中有例子。
3、在客户端要加载AutoFS内核扩展并且启用automountd,有两种办法
a、#starsrc –s automountd
b、使用automount命令
#/usr/sbin/automount –v /backup /tmp/mount.map
4、停止automountd,可以使用
#stopsrc –s automountd
10.3 NFS服务端和客户端的管理
10.3.1查看NFS伺服进程的情况
#lssrc –g nfs
10.3.2改变一个exported文件系统的属性
可以使用smit或编辑/etc/exports文本文件的两种方式,当在更改前,都要先把该文件系统unexport掉,改动完成后,再把它export出去。
1、#exportfs –u /dirname
2、使用smit chnfsexp或vi /etc/exports文件
3、#exportfs /dirname
10.3.3umount一个NFS文件系统
使用umount即可
10.4 相关文件、命令和伺服进程
10.5 问题断定
10.5.1确定NFS问题检查列表
1、检查网络连接情况
2、检查客户端是否有启动inetd、portmap和biod伺服进程。
3、检查客户端有有效的mount安装点。
4、使用rpcinfo命令检查服务端是启用的并且是在运行的
#/usr/bin/rpcinfo –p server_name
5、检查服务器端的伺服进程有启动,并且文件系统是export出去的,可以使用一下脚本命令
#/usr/bin/rpcinfo –u server_name mount
#/usr/bin/rpcinfo –u server_name portmap
#/usr/bin/rpcinfo –u server_name nfs
6、检查服务器端的/etc/exports文件
#showmount –e server_name
10.5.2检查网络连接
使用nfsstat 命令来查看
10.5.3NFS错误信息
1、Hard-mounted和sofe-mounted问题
如果网络或服务端有问题,硬连接会提示“still trying”,而软连接会提示“Connection timed out”
2、bad sendreply错误信息
如果transmit buffer不够,会提示“nfs_server:bad sendreply”
3、服务端没有响应
4、远程mounting问题(客户端)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27042095/viewspace-751967/,如需转载,请注明出处,否则将追究法律责任。