Chinaunix首页 | 论坛 | 博客
  • 博客访问: 214345
  • 博文数量: 28
  • 博客积分: 715
  • 博客等级: 上士
  • 技术积分: 348
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-28 00:31
文章分类
文章存档

2012年(28)

我的朋友

分类: 系统运维

2012-04-10 20:52:22

solaris下NFS配置 server端(1.1.6.68)
1) 修改 /etc/dfs/dfstab文件
# more /etc/dfs/dfstab
# Place share(1M) commands here for automatic execution
# on entering init state 3.
#
# Issue the command '/etc/init.d/nfs.server start' to run the NFS
# daemon processes and the share commands, after adding the very
# first entry to this file.
#
# share [-F fstype] [ -o options] [-d ""] [resource]
# .e.g,
# share -F nfs -o rw=engineering -d "home dirs" /export/home2
share -F nfs -o rw=1.1.1.3 /tmp
2) 启动rpc进程(如果没启动)
# /etc/rc2.d/S71rpc start
3) 启动server nfs进程
# /etc/init.d/nfs.server start
4) 检查dfshares是否成功
# dfshares
RESOURCE SERVER ACCESS TRANSPORT
host:/tmp host -

client端(1.1.1.3)
启动client端 nfs进程
#/etc/init.d/nfs.client start
Mount
##mount 1.1.6.68:/tmp /nfs
# df -k
Filesystem kbytes used avail capacity Mounted on
-----------------------------------------------------------------
1.1.6.68:/tmp 2481656 220904 2260752 9% /nfs
想使用slackware linux的网络安装,但发现slackware只支持nfs网络安装。
slackware.vetcafe.net的slackware current镜像服务器是solaris的,所以找到这篇文章,学习架设了nfs服务器。

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

nfs是sun公司来建立来使用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服务器需要运行两个守侯进程mountd和nfsd来工作。当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 指定用户client1和client2只读。client1可以是用户名,也可以是ip地址,或者一个网段。例如:ro=@202.99.88.0/24
root=client:client2 指定client1和client2上的root用户对共享资源有超级用户的权限。但是,他的优先级小于nfs服务器的本地权限。

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

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

2、4 开机自动共享资源。

以上的命令方法,在机器重新启动的时候,设置消失。如何保留和开机自动启动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中的共享资源。

2、5 资源查看。
# dfshares
用以查看服务器的共享资源 。输入格式如下:
resource server access transprot
* resource 可被远程调用的资源的主机和路径名。
* server 指定资源的系统名称。
* access 服务器指定的权限,默认是rw,显示为“-”。
* transport 指定共享资源的端口。

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

# nfsstat
看nfs的全部状态

3、nfs客户机设置。

安装好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 no,yes就是启动时自动安装。
* 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客户端运行守侯进程statd、lockd。

用到的文件是/etc/vfstab、/etc/mnttab

nfs客户机使用命令是:mount umount mountall umountall

 
#vi /etc/dfs/dfstab
add "share -F nfs -o rw /tmp"
/etc/rc3.d/S15nfs.server start
#############################
1 server
1.1  基本运行程序是/etc/init.d/rpc,/etc/init.d/nfs.server
启动服务:/etc/rc3.d/S15nfs.server atart
S15nfs.server包含了rpc和nfs.server,还有一些日志等,建议用它来启动nfs server
要是想每次重起后都运行,保证S15nfs.server在/etc/rc3.d目录下

1.2共享目录
Vi /etc/dfs/dfstab文件中有共享条目
例如:share –F nfs –o ro=IP /home2
      share –F nfs –o ro
[email==@202.108.42.0/24]=@202.108.42.0/24[/email]
/home2
      Share –F nfs -o rw /tmp
1.3 dfshare 查看服务器的共享资源
1.4 dfmounts,服务器上查看资源被利用情况
1.5 nfsstat 查看nfs的全部状态

2 client
2.1基本运行程序是/usr/lib/nfs/statd 和/usr/lib/nfs/lockd
启动服务:/etc/rc3.d/S73nfs.client start

S73nfs.client包含了statd和lockd还有日志等,建议用S73nfs.client启动nfs的client
要是想每次重起后都运行,保证S73nfs.client在/etc/rc2.d目录下
Notes:/etc下rc3.d和rc2.d可启动相关服务

NFS安装和配置

NFS服务器(被共享)

1.启动服务
/etc/rc3.d/S15nfs.server start

2:共享目录
vi /etc/dfs/dfstab
e.g.
# hostname admin
# cat /etc/dfs/dfstab
share -F nfs -o ro=db1:app1:app2:app3:app4,anon=0 /usr/js
share -F nfs -o rw=db1:app1:app2:app3:app4,nosuid /home

3. 诊断
查看服务器的已共享资源 dfshares
查看共享资源被利用的状况 dfmounts



NFS客户端(使用共享)

1.启动服务
/usr/lib/nfs/statd

2. 运行mount
e.g.
app4# mount admin:/home /home

3. 开机自动mount
vi /etc/vfstab, 加入新的一行启动mount配置:
e.g
app4:~% cat /etc/vfstab
#device         device          mount           FS      fsck    mount   mount
admin:/home     -               /home           nfs     -       yes     -
.....
这样,开机后,系统自动将admin:/home目录 mount 到app4的/home目录.


关于Linux的NFS与Solaris不同点:

1. Solaris的目录共享设置文件是/etc/dfs/dfstab, 而RadHat Linux共享目录设置文件是/etc/exports
2. Solaris开机自动mount设置文件是/etc/vfstab, 而RadHat Linux开机自动mount设置文件是/etc/fstab
 
 
 
(一)solaris

做server

1:基本运行程序是/etc/init.d/rpc和/etc/init.d/nfs.server

启动服务
/etc/rc3.d/S15nfs.server start

S15nfs.server包含了rpc和nfs.server,还有日志等一些其它有用的程序.建议用S15nfs.server启动nfs的server端

要是想每次从起后都运行,保证S15nfs.server在/etc/rc3.d目录下

2:共享目录
vi /etc/dfs/dfstab文件中有共享条目,这些共享目录会在守护进程启动时自动共享。


(一)solaris

做server

1:基本运行程序是/etc/init.d/rpc和/etc/init.d/nfs.server

启动服务
/etc/rc3.d/S15nfs.server start

S15nfs.server包含了rpc和nfs.server,还有日志等一些其它有用的程序.建议用S15nfs.server启动nfs的server端

要是想每次从起后都运行,保证S15nfs.server在/etc/rc3.d目录下

2:共享目录
vi /etc/dfs/dfstab文件中有共享条目,这些共享目录会在守护进程启动时自动共享。
这些进程在系统进入运行级别2时自动运行。
挂接远程网络文件系统  
# share  -F nfs  -o rw=engineering  -d "home dirs"  /export/home2
例如:share -F nfs -o ro=202.108.42.90:202.108.42.91  /home2
    share -F nfs -o ro=@202.108.42.0/24  /home2

-o specific_options
      The specific_options are used to control access of the
      shared  resource.   (See   share_nfs(1M)  for  the NFS
      specific options.) They may be any of the following:

      rw    pathname is shared read/write  to  all  clients.
            This is also the default behavior.

      rw=client[:client]...  或一个网段 rw=@202.108.42.0/24
            pathname is shared read/write only to the listed
            clients. No other systems can access pathname.

      ro    pathname is shared read-only to all clients.

      ro=client[:client]...  或一个网段 rw=@202.108.42.0/24
            pathname is shared read-only only to the  listed
            clients.   No other systems can access pathname.

-d description
      The -d flag may be used to provide  a  description  of
      the resource being shared.
dfshares命令  
用以查看服务器的共享资源

dfmounts命令  
服务器上查看共享资源被利用的状况

用nfsstat看nfs的全部状态



做client

1:基本运行程序是/usr/lib/nfs/statd和/usr/lib/nfs/lockd

启动服务
/etc/rc3.d/S73nfs.client start

S73nfs.lient包含了statd和lockd,还有日志等一些其它有用的程序.建议用S73nfs.client启动nfs的client端

要是想每次从起后都运行,保证S73nfs.client在/etc/rc2.d目录下


阅读(6559) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

zhl_shanghai2012-04-11 17:21:42

☆彼岸★花开: Red Hat Enterprise Linux,  建立了NFS服务器了 ,但是复制不了文件是怎么回事? 急急急~~.....
我也刚想整理一下Linux的NFS配置,不过相比solaris好像更简单明白些。不能复制文件是什么意思?是客户端看不到服务端共享的目录?是不是客户端mount不上呢还是mount上却读不到文件?

☆彼岸★花开2012-04-11 16:10:54

Red Hat Enterprise Linux,  建立了NFS服务器了 ,但是复制不了文件是怎么回事? 急急急~~