tarius.wu

Spend more time with your family and friends, eat your favorite foods, visit the places you love.
posts - 4, comments - 58, trackbacks - 0, articles - 10
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

DEBIAN 下NFS服务器的安装和配置

Posted on 2005-06-11 15:56 tarius.wu's Blog 阅读(1343) 评论(0)  编辑 收藏 引用 所属分类: UNIX

安装

NFS客户端

# apt-get install nfs-common portmap
NFS服务器端
# apt-get install nfs-kernel-server nfs-common portmap

配置

安装好NFS服务器后,/etc下会有一个NFS的配置文件exports,初次配置时此文件是空的,需要向该文件中添加内容。此文件的格式在exports(5)中,具体可以man一下,这里举一些例子:

#File system to share      Allowed client hosts (optional list)

/usr/local               *.zju.edu.cn(ro,async,root_squash)

/var/mail               @depts_hosts(rw,sync)

/var/spool/news          10.13.72.6/12(all_squash)

解释:

第一行是注释,,提醒exports文件的格式;

后面每一行都列出了要共享的文件系统以、可以访问文件系统的主机,还指定了可以访问文件系统主机的可能方式:

  • 使用通配符(*.zju.edu.cn),表示在.zju.edu.cn域中的所有主机都可以访问/usr/local文件系统;
  •  使用NIS网络组(在NIS网络组dept_hosts中的所有主机都可以安装/var/mail文件系统)。注意,这个例子只有在使用NIS的情况下有效。
  • 使用IP地址(所有IP地址在10.13.72.6/12范围内的主机都可以访问/var/spool/news

每一行中还列出了一些可选项,以指明访问权限:

  • ro: readonly; rw: readwrite;
  • async选项指定了使用NFSv3中的文件服务器向磁盘写入数据的方式,允许服务器在完成写数据之前向客户端返回结果,故是异步的。
  • Sync:可想而知,它应该在向客户端返回控制权以前就应完成数据的写入。这是NFSv2的方法。
  • root_squash: 表示客户端上的root用户应该映射为服务器上的nobody用户的UID。通常在所有的NFS设置中都需要这样做,否则的话客户端上的root用户就会在服务器的输出文件系统中具有root的特权了。
  • All_squash: 这个选项把root_squash扩展为所有的用户,即客户端上的所有UID都映射为服务器上的nobody用户的UID

启动

在准备好共享文件后,需要启动文件服务以处理客户端请求的程序和守护进程:exportfs(8), rpc.quotad(8c), rpc.muntd(8), rpc.nfsd(8)。启动以上这些程序和守护进程的最简单方式是运行/etc/init.d/nfs start命令(root 身份)。

一些操作实例

Exportfs(8)命令用来维护服务器当前的共享文件系统表,这个表就是/var/lib/nfs/xtab。对于典型的NFS服务器来说,exportfs要使用-r选项开始运行,这样可以将内存中的/var/lib/nfs/xtab文件与/etc/exports文件进行同步。因此当我们对exports文件作了修改,则需要手工运行exportfs –r。注意,不要手动编辑/var/lib/nfs/xtab文件,而要使用exportfs命令。

       还有一种情况是我们只想临时性的共享一个目录,因此不想编辑/etc/exports文件,这可以通过以下方式做到:

exportfs –o –ro 10.13.72.6: /mnt/cdrom

这样,cdrom的共享是临时性的,在系统重启后不再输出。当然,我们可以使用以下命令来收回cdrom的共享:

exportfs –u 10.13.72.6: /mnt/cdrom

另一个值得注意的地方是,当我们需要增加一个共享文件系统时,在编辑好/etc/exports文件后,要使用exportfs命令进行同步。但exportfs同步命令有两个选项 –a-r。如果当前的共享文件中存在临时的文件系统,则使用exportfs –r后,/var/lib/nfs/xtab/etc/exports文件完全同步,导致临时共享文件系统会被系统收回。而exportfs –a命令可以保持当前共享的文件系统,只添加在/etc/exports文件中列出的所有文件系统。

最后,可以通过exportfs –v(详细模式)来查看当前共享的文件系统。

 

补上NFS客户端推荐的参数配置

nfsvers=3,wsize=32768,rsize=32768,rw,bg,intr,hard,tcp

参数                        意义
nfsvers=3                   NFSv3,默认是 NFSv2,而 NFSv4 比较复杂,不是所有内核都支持。
wsize=32768             设置 32K 的写缓存,对于 UDP 方式来说,8K 是推荐值。
rsize=32768               设置 32K 的读缓存,对于 TCP 方式来说,32K 是推荐值。
rw                              读写方式,根据权限需要有时也设置为 ro(read only)
bg                              如果安装失败(服务器没有响应), 在后台一直尝试,继续发其他的安装请求
hard                            如果服务器当机,让试图访问它的操作被阻塞,直到服务器恢复为止
intr                            允许用户中断被阻塞的操作(并且让它们返回一条错误消息)
tcp                             选择通过 TCP 来传输,默认的 UDP 不好。


只有注册用户登录后才能发表评论。