2012年10月29日星期一

Linux 系统 NFS 服务端配置方法

FROM: NFS 伺服器
NFS(Network FileSystem)藉由网络共享文件系统的架设比较简单,最大的问题在于「权限」方面的概念。因为用户与服务器可能必须要具备相同的帐号才能读写某些目录或文件。另外,NFS 的启动需要使用远程过程调用协议(RPC)。也就是说,在使用 NFS 服务时,必须启动 RPC 服务。

修改 /etc/exports,增加共享目录


[bash]
[root@www ~]# vim /etc/exports
/tmp 192.168.100.0/24(ro) localhost(rw) *.edu.net(ro,sync)
#[共享目录] [第一部主机(权限)] [可用主机名] [可用域名]
/home/linux *.centos.vbird(rw,all_squash,anonuid=45,anongid=45)
# 如果要开发匿名,那重点是 all_squash,并且要配合 anonuid, anongid
[/bash]
上面说明:将 /tmp 分別共享给三个不同的主机或域。主机后面以小括号 () 括起来的部分表示权限参数,若权限参数不止一个,则以逗号 , 分开。小括号与主机名之间不能有空格。# 开头表示该行已被注释。

主机名称的设定方式:

  • 使用完整的 IP 或 网段,如: 192.168.100.10192.168.100.0/24, 或 192.168.100.0/255.255.255.0

  • 使用主机名称,但主机名称必须在 /etc/hosts 内,或可使用 DNS 找到该名称。如果是主机名称,支持匹配符号 *?



权限常见参数(小括号内参数):

























参数值 说明
rw
ro
目录功效的权限是可读写(read-write)或只读(read-only),但最终能不能读写,还与文件系统的 rwx 及其属主有关。
sync
async
sync 表示数据会同步写入到内存和硬盘中,async 表示数据会先暂存于内存中,而不后再写入到硬盘中。
no_root_squash
root_squash
挂载端若使用 NFS 文件系统的帐号为 root ,默认情况下,root 的身份会由 root_squach 的设置成为 nfsnobody,这种对服务器会比较有保障。但如果想要开放挂载端使用 root 身份来操作服务器的文件系统,那这里就需设置成 no_root_squach。
all_squash 不论使用 NFS 的 身份为何,都会被设置为匿名使用者,即 noboby(nfsnobody)。
anonuid
anongid
anon 意指 anonymous(匿名者),前面关于 *_squash 提到的匿名使用的 UID 设定值,通常为 nobody(nfsbody),但可以自行设定这个 UID 的值,当然,这个 UID 必需要存在于 /etc/passwd 当中。anonuid指 UID, 而 anongid指 GID。

启动与停止 NFS 服务


上面已提到,NFS 启动需要 rpcbind 的协助。
[bash gutter="false"]
[root@www ~]# /etc/init.d/rpcbind start
# 如果 rpcbind 本來就已經在运行,就不需要重新启动

[root@www ~]# /etc/init.d/nfs start
# 有时候某些 distributions 可能会出现如下的警告讯息:
exportfs: /etc/exports [3]: No 'sync' or 'async' option specified
for export "192.168.100.10:/home/test".
Assuming default behaviour ('sync').
# 上面的警告信息是在告知没有指定 sync 或 async 参数,NFS 默认会使用 sync,该警告可不理。

[root@www ~]# /etc/init.d/nfslock start
[root@www ~]# chkconfig rpcbind on
[root@www ~]# chkconfig nfs on
[root@www ~]# chkconfig nfslock on
[/bash]
若修改 /etc/exports 文件增加新的共享,应先停止 NFS 服务,再启动 NFS 服务方能使新增的共享起作用。使用命令 exportfs -rv也可达到同样的效果。

Linux 挂载其它 Linux 的 NFS 共享


[bash]
[root@www ~]# mkdir /mnt/nfs
# 建一个目录用作挂载点
[root@www ~]# mount -t nfs -o rw 192.168.100.1:/tmp /mnt/nfs
# 192.168.100.1 表示 NFS 服务端的主机 IP 地址,也可使用主机名,但需在 /etc/hosts 文件中。/tmp 是服务端共享的目录。
[root@www ~]# umount -f /mnt/nfs
#取消挂载
[/bash]

没有评论:

发表评论