Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3398791
  • 博文数量: 864
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10634
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(864)

文章存档

2023年(1)

2021年(1)

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: LINUX

2010-10-18 08:56:54

1、理解nfs服务器和客户端功能。

  nfssun公司来建立来使用tcp/ip协议以及sun的远程调用和外部数据表示规范的产品。nfs的使用非常方便,也比较可靠。他具有在不同操作系统之间共享文件 的能力。
  nfs
服务器可以使用nfs来让其他远程机器共享它的本地资源。nfs客户机是访问nfs服务器的共享资源的机器。其实在实际工作中,一台主机即可以是nfs服务器,也可以是nfs客户机。他们可以互相共享和访问。

 
只要你能理解nfs服 务器和nfs客 户机之间的不同。剩下的就很easy了。

2 nfs服务器和nfs客户机区别。
2.1   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
 
2.2  nfs
服务器设置

  nfs
服务器需要运行两个守侯进程mountdnfsd来工作。当nfs客户机试图访问一个远程的nfs服务器资源。nfs客户机通过mount命令请求与 nfs服务器的mountd守侯进程进行连接。当nfs服务器响应客户机时候,返回给可户机一个信息。客户机把这个信息写到本地的/etc/mnttab文件中。这个信息是服务器中共享文件和目录的信息。它是资源信 息的编码:磁盘设备号、节点生成号、节点号等。这个是唯一的。

 
一旦可户机得到请求信息,nfs服务器上的mountd进程就会在服务器本地的/etc/rmtab文件中添加一条信息。这是为了保持对当前加载可户机上文件的跟 踪。这个文件为每一个被加载资源添加一个条目,格式是:

remote hostname:  local filename name

注意:mountd每一次重新启动和可户机发一个卸载请求,都会更新服务器的/etc/rmtab文件中的旧条目。

2.3 共享设置命令。
 
明白了以上的道理,下面说具体的操作了。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  指定用户client1client2只读。client1可以是用户名,也可以是ip地址,或者一个网段。例如:

 root=client
client2 指定client1client2上的root用户对共享资源有超级用户的权限。但是,他的优先级小于nfs服务器的本地权限。

 
 
例如:用户peng有个目录/exprot/home/games要共享。

 # share -F nfs -o rw=lnx3000:race ,
,root=mmmmn -d "i love MM !" /export/home/peng/games  
 
运行结果:共享/exprot/home/peng/games目录,名字是lnx3000race的两台主机有读/写权限;202.88.99.0这个c类网的机器和sun450这个主机只有读的权限;mmmmn这台主机的root用户可以对共享资源有超级用户访问权限。但是声名一点,要是我 给共享目录/exprot/home/peng/games目录只读,mmmmnroot权限也没有用,只能只读。因为服务器本地权限大于任何share的权限。。

 
 
取消share资源。

 # unshare [ -F nfs ] path-to-resource
 *  -F nfs
指定系统类型,默认。

 *  path-to-resource
指定共享路径。

 
例如:

  # unshare /export/home/peng/games  
 
取消这个共享资源了。

2.4 开机自动共享资源。
   
以上的命令方法,在机器重新启动的时候,设置消失。如何保留和 开机自动启动nfs共 享。我们可以用/etc/dfs/dfstab文件来实现自动共享文件。只要主机启动进入运行级别3nfs资源共享自动启动。

 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中的共享资源。

2.5 资源查看。
 # dfshares  
 
用 以查看服务器的共享资源 。输入格式如下:

 resource  server access  transprot
 * resource 
可被远程调用的资源的主机和路径名。

 * server  
指定资源的系统名称。
  
 *  access 
服务器指定的权限, 默认是rw,显 示为“-”

 * transport 
指定共享资源的端口。

 # dfmounts命令    
 
显示服务器上查看共享资源被利用的状况,输出格式如下:
  
 RESOURCE     SERVER PATHNAME                  CLIENTS
 *  resource 
共享资料名称。

 *  server pathname 
共 享资料目录。

 *  client 
连接的客户端。

 # nfsstat  
 
nfs的全部状态

3nfs客户机设置。
 
安装好nfs服务器后,就可以用客户端使用共享资料了。首先要检测nfs服务器,然后安装。

3.1 检测nfs服务器。
# showmount [ -ade ]
* -a 
显示已经已经使用的资源和来自哪个nfs服务器。

* -d 
显示已经被远程安装的资源。

* -e 
显示可以被安装的可以资源。一般用-e来查看远程主机的可以资源。

3.2 建立共享。
# 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 /export/home/games
# mount peng:/export/home/peng/games /exprot/home/games
 
共享远程主机peng/export/home/peng/games目录,可读写,挂接在本地的/exprot/home/games目录上。

3.3取消共享。
# umount [-F nfs] remote-path-to-resource path-to-local-mount-point
* -F nfs 
默认的文件系统。

* remote-path-to-resource
远程主机和共享目录路径,主机和共享目录路径用冒号分隔。

* path-to-local-mount-point 
本地主机挂点。

例如:
# umount peng:/export/home/peng/games /export/home/games
取消远程主机peng上 的/exprot/home/peng/games这个目录的在本地/export/home/games上的共享。

3.4 系统开机自动共享。
 
修改/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 soft,bg

表示开机自动把远程主机peng/export/home/peng/games目录自动挂到本机的/export/home/games下。soft选项是目录不能安装,产生一个错误。bg选项,系统启动过程中安装在后台。
关 于mount options的参数,请用 man mount 自己看看吧。
  
 
3.5
手工调试命令。

# mountall  
 
不 带任何参数,安装所有列在/etc/vfstab文件中mount at boot中为yes的资源。

# mountall -r
只影响远程 文件

# mountall -l
只影响本地文件

# umountall
 
不带任何参数,谢载已经安装的资源。不包括/ /proc/usr/var。另外,系统忙,也可能不会卸载。

# umountall -r
只影响远程文件

# umountall -l
只影响本 地文件

小节:
 
到这里我想应该没有什么问题了。

 
大家只要注意一下客户端和服务器端的区分。

  nfs
服务器端运行守侯进程mound
nfsd
  nfs
服务器端使用文件/etc/dfs/dfstab/etc/dfs/sharetab
/etc/rmtab
  nfs
服务器使用命令是:
share unshare shareall unshareall
   
  nfs
客户端运行守侯进程statdlockd

 
用到的文件是/etc/vfstab
/etc/mnttab
  nfs
客户机使用命令是:
mount umount mountall umountall
 
知道这些,就ok了。

FAQ :
1
、运行mount命令不能得到共享资源,得到信息:“nfs server not responding”
            
answer
:确信服务器上nfsdmountd已经运行,资源已经用共享命令正确共享。
  
2
、当我企图共享到本地磁盘时,错误为:“mount
/tmp_mount not found”.
answer:
你有没有在本地创建mount点。。。
阅读(1107) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-10-19 18:37:08

谁能告诉我怎么收藏呀,点击那儿!

chinaunix网友2010-10-19 18:35:59

好文章呀,想收藏!