NFS:
1. Conception:
Network FileSystem 可以简单到理解为一个 File Server. 远端机通过将Server中的目录挂载到本地, 就可以像操作本地partition一样操作远端Server中到目录。
如果说Samba是【局域网】内异构OS间文件分享服务, NFS就是【互联网】上Node间文件分享服务。
Example:
Server share: /home/sharefiles/
Client(1): mount Server:/home/sharefiles /home/will/
Client(2): mount Server:/home/sharefiles /home/jason/
2. NFS <--> RPC <--> Clients
NFS基本的服务端口在2049, 随机选择小于1024到埠口来传输数据。Client通过 Remote Procedure Call(RPC)来获得这些埠口。
服务器启动NFS时会随机取用多个埠口,并主动向 RPC 注册,RPC 将这些埠口回报给Client,让其可以正确到连接到这些埠口。
RPC自己启用 111 port来监听用户请求,当 RPC 重启时和其关联到Services都必须重启。
3. NFS 权限
NFS Server 启动时候需要2个 daemons, 一个用来管理Client的login, 一个管理Client到权限(priviledge)。
/etc/init.d/nfs //与Server有关
/etc/init.d/nfslock //与Client有关
当用户进行请求时,Server会以Client的UID和GID来试图读取文件。当用户 UID/GID 与Server设定不符时就会出现问题。
4. NFS Directory list
1) /etc/exports Main configuration file
[分享目录] [用主机ip] [用主机名] [用Domain]
/tmp 192.168.100.0/24(ro) localhost(rw) *.ev.ncku.edu.tw(ro,sync)
注: 主机名必须在/etc/hosts内。
权限:
rw read-write
ro read-only
sync data 会同步写入Disk
async data 暂存在mem中
root_squash 将用户端的root身份压缩成nsfnobody
no_root_squash 开放用户端使用root身份操作server files
all_squash 忽略用户身份,全部压缩成nfsnobody
anonuid anon:anonymous
/usr/sbin/exports Server options
/var/lib/nfs/*tab Login files
--etab 记录NFS分享的目录到完整权限设定值
--xtab 记录曾经链接到此NFS到相关用户资料
/usr/sbin/showmount Client options, 查看Server分享到目录
5. NFS启动
1) 设定 /etc/exports
2) 启动 rpcbind
3) 启动 nfs
阅读(1551) | 评论(0) | 转发(0) |