好学IT学院:IT信息技术分享交流平台
标签:Linux  来源:本站整理  作者:不详  发布时间:2007-11-01  ★★★加入收藏〗〖手机版
摘要:◎ What is NFS ?Network File SystemNFS是由SUN公司发展, 并於1984年推出, NFS是一个RPC service ,它使我们能够达到档案的共享, 它的设计是为了在不同的系统间使用, 所以它的通讯协定设……

◎ What is NFS ?

Network File System
  NFS是由SUN公司发展, 并於1984年推出, NFS是一个RPC service ,它使我们能够达到档案的共享, 它的设计是为了在不同的系统间使用, 所以它的通讯协定设计与主机及作业系统无关.当使用者想用远端档案时只要用"mount"就可把remote档案系统挂接在自己的档案系统之下,使得远端的档案使用上和local机器的档案没两样.
  machine  A    machine  B
  /           /
  bin  etc  usr  bin  etc  usr
  man      man  share  local

假如我们在机器A上, 要把机器B上的 /usr/man 挂接到machine A 的/usr/man只要下

mount  machine_name:/usr/man  /usr/home

就可mount过来.而我们不只是可以mount目录,就是一个档也是可以的.在挂接之後我们只能对档案做reading (or writing) 的动作,而不能在remote machie上把此档或目录move,delete掉 , 但须注意的是如我们mount /usr 後 , 不能再mount /usr底下的目录, 否则会发生错误

□ Servers & Clients

NFS就是促使Servers上的档案能被其他的机器mount,而达到资源共享,享用这些档案的机器就可称为Client,一个client可以从server上mount一个档或是一个层次的目录(file hierarchies) . 然而事实上任何一台机器都可以做NFS server or NFS client ,甚至同时为NFS server and NFS client 也可以.

□ Server's Exporting & Client's Mounting

NFS server 所export 出来的档案或目录都记录在 /etc/exports 这一个档中,当我们启动NFS server 时 在 /etc/rc.local 的这一个script会自动的启动 exportfs 这一个程式 , 搜寻 /etc/exports 这一个档是否存在, 并且赋予正确的权限给所有export出去的 file hierarchies.

但须注意的是,只有server所export出去的路径,NFS client才能够mount, 同样的当启动client时, 系统会自动去mount所有server export的路径,而mount到的所有路径都会记录在 /etc/fstab 下 , 类似如下的fstab档

/dev/sd0a  /  4.2 rw 1 1
  /dev/sd0h  /tmp   4.2 rw 1 3
  /dev/sd0g  /usr   4.2 rw 1 2
  /dev/fd0   /pcfs  pcfs rw,noauto 0 0
  sparc20:/swap /swap nfs rw,intr,bg,soft 0 0
  sparc17:/home /home nfs rw,intr,bg,soft 0 0
  sparc17:/home3 /home3 nfs rw,intr,bg,soft 0 0
  sparc14:/home4 /home4 nfs rw,intr,bg,soft 0 0
  sparc20:/home2 /home2 nfs rw,intr,bg,soft 0 0
  sparc20:/var/spool/mail /var/spool/mail nfs rw,intr,bg,soft 0 0
  rs970:/home1 /home1 nfs rw,intr,bg,soft 0 0

★ Noted :

当client mount 到一个路径,绝对不是说copy server上的这一个路径到local的机器上,我们可以用 cd 进入这一个mount到的路径,就如同是使用local directory一样

□ Setting Up a NFS Server

1. 定义机器为 NFS file server

2. 划分server's disk ,定义哪一些partitions 是要提供出来作为client 所共享的file system

3. 在 Client Form 上定义每一台client 的参数

4. 写出 /etc/exports  (一般系统都有一个default exports)

5. 重新boot NFS server or 用指令 exportfs -a 输出所有的directories 并且用 nfsd 8 & 启动 nfsd守护程式,常驻在背景

※ ps. 一些细节

1. 检查 /etc/exports 输出路径的权限,确定只有root能修改,all user只能read

2. 用exportfs 去增加或删除directories
  exportfs -o access=engineering,ro=dancer /usr
  exportfs -u /usr

3. 假如你的机器没有NIS(YP server)的服务,当更改资料时记得修改
  /etc/passwd
  /etc/group
  /etc/hosts
  /etc/ethers