|
||||||
| NFS 是由 Sun Microsystem 开发一用於 UNIX 系统之间共用档的网路服务系统,它也得到大多数的 UNIX 系统的支援。
我们可以将某台机器的某个档(目录)共用出来供其他机器使用。 下面就让我们来实施具体的工作。 首先根据 man nfsd 我们可以知道 nfsd(8) 只是处理 NFS 协议,真正的远端 mount(共用)功能是由 mountd(8) 来完成的,而 mountd 是通过 /etc/exports 来设置共用目录的。exports(5) 的每一行表示第一个共用设置,第一行中都有以下三个部分:
abc# cat /etc/exports
/home -maproot=daemon -network 192.168.7.0 -mask 255.255.255.0
其中 /home 为我们要共用出来的目录,-maproot=daemon 是共用叁数,表示当本地 UNIX 系统使用远端的 /home 目录时,将本地的
root 帐号的 uid 映射为远端机器上的 daemon,gid 映射为空,也就是说当我们以 root 身份访问 abc 上的 /home 目录时,我们的身份会被转换成远端主机
abc 上的 daemon 的身份。后面的 -netmask=192.168.7.0 -mask=255.255.255.0 设置可能访问该些共用资源的主机为
192.168.7.0/255.255.255.0 这个子网内的所有机器。
还有很多共用叁数可以设置,比较有用的有:-mapall= 将所有的本地帐号映射为远端主机上的某个指定帐号,-ro 以唯读共用该文件夹(default 为可读写)其他叁数你可以透过 man exports 得到。 现在我们的共用资源已经通过 /etc/exports 设置好了,接下来就是启动 NFS 守护程序 nfsd 和远端共用进程 mountd 了,由於 NFS 是使用RPC,所以要在启动 NFS 之前行启动 portmap 进程:
abc# portmap //如果已经启动就不再需要这一步了
abc# nfsd -n 5
abc# mountd
其中 nfsd -n 5 中的 -n 叁数是指定同时建立多少个服务副本,可能选择 4-6,这有助於提供 NFS 系统性能,但也不过太高,否则会占用大量资源。现在
NFS 就已经启动成功了,你可以通过 showmount(8) 来查询你的共用资源:
abc# showmount -e localhost
/home 192.168.7.0
这表明我们的 NFS 伺服器已经正确启动了,接下来就要在用户端设置了。
在用户端我们使用 mount_nfs 来将远端主机共用的目录 mount 到本地上,因为在本例中我们是希望将远端主机(abc)上的 /home 目录 mount 到用户端(def)的 /home 目录以保证系统用户的资料同步,所以我们进行以下操作:
现在远端的共用目录 /home 就已经 mount 到本地的 /home 目录中了,我们可以看到 mount_nfs 与其他 mount 命令不同,它不是使用设备名(如/dev/ad0s1)而是使用 hostname:/sharedir 的方式来表示 mount 来源,其中 hostname 是远端主机的主机名或 IP 位址。 |
||||||
|
||||||