网络文件系统管理 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/,如需转载,请注明出处,否则将追究法律责任。 转载于:http://blog.itpub.net/27042095/viewspace-751967/