测试在Solaris系统下NFS使用手册
网络整理 - 06-30
所有的测试环境都是sun的solaris系统
理解nfs服务器和客户端功能
nfs是sun公司来建立来使用tcp/ip协议以及sun的远程调用和外部数据表示规范的产品nfs的使用非常方便也比较可靠他具有在不同操作系统之间共享文件的能力
nfs服务器可以使用nfs来让其他远程机器共享它的本地资源nfs客户机是访问nfs服务器的共享资源的机器其实在实际工作中一台主机即可以是nfs服务器也可以是nfs客户机他们可以互相共享和访问
只要你能理解nfs服务器和nfs客户机之间的不同剩下的就很easy了
nfs服务器和nfs客户机区别
solaris使用分布式文件系统或dfs命令公享资源公享资源可以手动和自动设置
nfs服务器运行两个守侯进程mountd 和 nfsd
用到的文件是
/etc/rcd/Snfsserver
/etc/dfs/dfstab
/etc/dfs/sharetab
/etc/rmtab
nfs服务器使用命令是share unshare shareall unshareall
nfs客户机上运行的守侯进程是statd 和 lockd
用到的文件是
/etc/vfstab
/etc/mnttab
nfs客户机使用命令是mount umount mountall umountall
nfs服务器设置
nfs服务器需要运行两个守侯进程mountd和nfsd来工作当nfs客户机试图访问一个远程的nfs服务器资源nfs客户机通过mount命令请求与 nfs服务器的mountd守侯进程进行连接当nfs服务器响应客户机时候返回给可户机一个信息客户机把这个信息写到本地的/etc/mnttab文件中这个信息是服务器中共享文件和目录的信息它是资源信息的编码磁盘设备号节点生成号节点号等这个是唯一的
一旦可户机得到请求信息nfs服务器上的mountd进程就会在服务器本地的/etc/rmtab文件中添加一条信息这是为了保持对当前加载可户机上文件的跟踪这个文件为每一个被加载资源添加一个条目格式是
remote hostname: local filename name
注意mountd每一次重新启动和可户机发一个卸载请求都会更新服务器的/etc/rmtab文件中的旧条目
共享设置命令
明白了以上的道理下面说具体的操作了nfs服务器使用/usr/sbin/share命令为客户机共享资源
命令详解
# share 显示所有可以安装的资源不管它是否已经被安装
# share [ F filesystem ] [ o options ] [d description ] pathnametoresource
指定共享文件
* F file system type 指定被公享的文件系统类型
* o options 指定客户对资源访问的类型
* d description 功享资源的简单描述当你share命令不带任何参数运行他就会被显示
* pathnametoresource 在服务器上共享的资源名字
*o 指定了允许客户访问共享资源的用户也权限具体如下
rw 表示用户可读/写是默认植
rw=clientclient 指定用户可以有读/写权限可以有很多用户用冒号分隔
ro 表示只读
ro=clientclient 指定用户client和client只读client可以是用户名也可以是ip地址或者一个网段例如ro=@/
root=clientclient 指定client和client上的root用户对共享资源有超级用户的权限但是他的优先级小于nfs服务器的本地权限
例如用户peng有个目录/exprot/home/games要共享
# share F nfs o rw=lnx:race ro=@/:sune root=mmmmn d i love MM ! /export/home/peng/games
运行结果共享/exprot/home/peng/games目录名字是lnx和race的两台主机有读/写权限这个c类网的机器和sun这个主机只有读的权限mmmmn这台主机的root用户可以对共享资源有超级用户访问权限但是声名一点要是我给共享目录/exprot/home/peng/games目录只读mmmmn的root权限也没有用只能只读因为服务器本地权限大于任何share的权限
取消share资源
# unshare [ F nfs ] pathtoresource
* F nfs 指定系统类型默认
* pathtoresource 指定共享路径
例如
# unshare /export/home/peng/games
取消这个共享资源了
开机自动共享资源
以上的命令方法在机器重新启动的时候设置消失如何保留和开机自动启动nfs共享我们可以用/etc/dfs/dfstab文件来实现自动共享文件只要主机启动进入运行级别nfs资源共享自动启动
编辑/etc/dfs/dfstab文件添加
share [ F filesystem ] [ o options ] [d description ] pathnametoresource
这个和命令行是一样的
# /etc/initd/nfsserver start
这样就ok了
手工快速命令
# shareall 共享所有列在/etc/dfs/dfstab中的共享资源
# unshareall 取消所有列在/etc/dfs/dfstab中的共享资源
资源查看
# dfshares
用以查看服务器的共享资源 输入格式如下
resource server access transprot
* resource 可被远程调用的资源的主机和路径名
* server 指定资源的系统名称
* access 服务器指定的权限默认是rw显示为
* transport 指定共享资源的端口
# dfmounts命令
显示服务器上查看共享资源被利用的状况输出格式如下
RESOURCE SERVER PATHNAME CLIENTS
* resource 共享资料名称
* server pathname 共享资料目录
* client 连接的客户端
# nfsstat
看nfs的全部状态
nfs客户机设置
安装好nfs服务器后就可以用客户端使用共享资料了首先要检测nfs服务器然后安装
检测nfs服务器
# showmount [ ade ] <hostname>
* a 显示已经已经使用的资源和来自哪个nfs服务器
* d 显示已经被远程安装的资源
* e 显示可以被安装的可以资源一般用e来查看远程主机的可以资源
建立共享
# mount [ F nfs ] [ o options ] pathtoresource pathtolocalmountpoint
* F nfs 指定共享文件系统默认的没必要指定
* o options 指定选项例如权限默认rw可读/写也可以ro只读
* pathtorescource 指定nfs服务器的主机名和共享资源路径
* pathtolocalmountpoint 指定共享资源在本地的mount点
例如
# mkdir /export/home/games
# mount peng:/export/home/peng/games /exprot/home/games
共享远程主机peng的/export/home/peng/games目录可读写挂接在本地的/exprot/home/games目录上
取消共享
# umount [F nfs] remotepathtoresource pathtolocalmountpoint
* F nfs 默认的文件系统
* remotepathtoresource 远程主机和共享目录路径主机和共享目录路径用冒号分隔
* pathtolocalmountpoint 本地主机挂点
例如
# umount peng:/export/home/peng/games /export/home/games
取消远程主机peng上的/exprot/home/peng/games这个目录的在本地/export/home/games上的共享
系统开机自动共享
修改/etc/vfstab文件格式如下
device to mount device to fsck mount point FS type fsck pass mount at boot mount options
* device to mount 指定远程服务器名和共享路径远程服务器名和共享路径用冒号分开
* device to fsck 这个是空的从来不从客户机进行文件检测
* mount point 指定本地的mount点这个目录必须是已经存在的
* FS type 对于nfs资源系统来说当然是nfs了
* fsck pass 这个也是空的表示不从客户机进行文件系统检测
* mount at boot 选择yes or noyes就是启动时自动安装
* mount options 用逗号分隔的mount命令的列表
例如
# vi /etc/vfstab 添加
peng:/export/home/peng/games /export/home/games nfs yes softbg
表示开机自动把远程主机peng的/export/home/peng/games目录自动挂到本机的/export/home/games下soft选项是目录不能安装产生一个错误bg选项系统启动过程中安装在后台
关于mount options的参数请用 man mount 自己看看吧
手工调试命令
# mountall
不带任何参数安装所有列在/etc/vfstab文件中mount at boot中为yes的资源
# mountall r 只影响远程文件
# mountall l 只影响本地文件
# umountall
不带任何参数谢载已经安装的资源不包括/ /proc