寻找属于勒色的勒色! 生活、游记、见闻、上海、摄影、计算机、互联网、关注特奥......

2006-07-12

SUN NFS Server

NFS服务器和NFS客户机区别。
Solaris使用分布式文件系统或dfs命令公享资源。公享资源可以手动和自动设置。

NFS服务器运行两个守侯进程:mountd 和nfsd。
用到的文件是:
/etc/rc3.d/S15nfs.server
/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 ] pathname-to-resource ---指定共享文件。
* -F file system type 指定被公享的文件系统类型。
* -o options 指定客户对资源访问的类型。
* -d description 功享资源的简单描述。当你share命令不带任何参数运行,他就会被显示。
* pathname-to-resource 在服务器上共享的资源名字。
*-o 指定了允许客户访问共享资源的用户也权限。具体如下:
rw 表示用户可读/写,是默认植。
rw=client1:client2 指定用户可以有读/写权限。可以有很多用户,用冒号分隔。
ro 表示只读。
ro=client1:client2 指定用户client1和client2只读。client1可以是用户名,也可以是ip地址,或者一个网段。例如:ro=@202.99.88.0/24
root=client:client2 指定client1和client2上的root用户对共享资源有超级用户的权限。但是,他的优先级小于NFS服务器的本地权限。
例如:有个目录/email/share要共享。
# share -F nfs -o rw=ws01:ws02 , ro=@192.168.6.0/24:sun490 ,root=ws01 -d "Email Data" /email/share
运行结果:
共享/email/share目录,名字是ws01和ws02的两台主机有读/写权限;
192.168.6.0这个C类网的机器和sun490这个主机只有读的权限;
ws01这台主机的root用户可以对共享资源有超级用户访问权限。但是声名一点,要是我给共享目录/email/share目录只读,ws01的root权限也没有用,只能只读。因为服务器本地权限大于任何share的权限

取消share资源。
# unshare [ -F nfs ] path-to-resource
* -F nfs 指定系统类型,默认。
* path-to-resource 指定共享路径。
例如:
# unshare /email/share
取消这个共享资源了。

开机自动共享资源。
以上的命令方法,在机器重新启动的时候,设置消失。如何保留和开机自动启动NFS共享。我们可以用/etc/dfs/dfstab文件来实现自动共享文件。只要主机启动进入运行级别3,NFS资源共享自动启动。
1、编辑/etc/dfs/dfstab文件,添加:
share [ -F filesystem ] [ -o options ] [-d description ] pathname-to-resource -----这个和命令行是一样的
2、# /etc/init.d/nfs.server start
这样就ok了。
3、手工快速命令。
# 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 ] path-to-resource path-to-local-mount-point
* -F nfs 指定共享文件系统,默认的。没必要指定。
* -o options 指定选项,例如权限。默认rw,可读/写。也可以ro--只读。
* path-to-rescource 指定NFS服务器的主机名和共享资源路径。
* path-to-local-mount-point 指定共享资源在本地的mount点。

例如:
# mkdir /email/share
# mount peng:/email/share /email/share
共享远程主机peng的/email/share目录,可读写,挂接在本地的/email/share目录上。

取消共享
# umount [-F nfs] remote-path-to-resource path-to-local-mount-point
* -F nfs 默认的文件系统。
* remote-path-to-resource 远程主机和共享目录路径,主机和共享目录路径用冒号分隔。
* path-to-local-mount-point 本地主机挂点。

例如:
# umount maildb1:/email/share /email/share
取消远程主机maildb1上的/email/share这个目录的在本地/email/share上的共享。

系统开机自动共享
修改/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 no,yes就是启动时自动安装。
* mount options 用逗号分隔的mount命令的列表。

例如:
# vi /etc/vfstab 添加:
maildb1:/email/share - /email/share nfs - yes soft,bg

表示开机自动把远程主机maildb1的/email/share目录自动挂到本机的/email/share下。soft选项是目录不能安装,产生一个错误。bg选项,系统启动过程中安装在后台。
关于mount options的参数,请用 man mount 自己看看吧。

手工调试命令
# mountall
不带任何参数,安装所有列在/etc/vfstab文件中mount at boot中为yes的资源。
# mountall -r 只影响远程文件
# mountall -l 只影响本地文件

# umountall
不带任何参数,谢载已经安装的资源。不包括/ 、/proc、/usr、/var。另外,系统忙,也可能不会卸载。
# umountall -r 只影响远程文件
# umountall -l 只影响本地文件

没有评论:

free hit counter