发新话题
打印

NETAPP技术学习全程记录

本主题由 awu 于 2008-10-12 15:31 设置高亮
要提供NFS的服务功能,需要存储系统提供的服务包括:mount daemon,network lock manager,network file system daemon,status,rpcbin,rquotad and portmapper.
   上面说到的这些服务是每个NFS进程都需要的。例如rpcbind不运行的话。在NFS的客户端和服务器端不能建立连接。


------------------------------------------------------
NFS
由于员工队伍中包括原始 NFS 开发团队成员之一、NFS 版本 3 和版本 4 的合著者、NFS 版本 4 IETF(英文) 工作组共同主席以及 Linux NFS 维护人员,NetApp 成为 NFS 社区中的驱动力量。我们提供的开源包括 Linux 的 NFS 实施(英文)以及允许并行数据访问的 pNFS(英文) Linux 客户端。
                                                                                                                          ---摘自www.netapp.com
-----------------------------------------------------

[ 本帖最后由 ender 于 2008-7-2 17:31 编辑 ]

TOP

NFS是一个分布式文件系统,它容许用户访问远程系统上的文件和目录,这些文件和目录对用户来说好像是在本地。用户可以使用OS命令创建,删除,读写远程文件和目录,以及设置远程文件和目录的属性,而这一切都是在本地完成的。NFS使用RPC而不受本地机器类型、OS和网络结构的限制。
      NFS基于客户机/服务器模式。一个NFS服务器拥有本地磁盘上的文件,客户机通过NFS访问它。拥有实际磁盘,并通过NFS将这些磁盘共享出来的主机叫NFS服务器,通过NFS访问文件系统的叫NFS客户机。服务器给客户机共享文件系统的操作叫做导出(export ).客户机要访问服务器导出的文件系统之前,必须在本地先挂接(mount)这个文件系统。
     NFS服务器导出的目录叫做远程资源,并通常写做:hostname:pathname 格式,其中hostname是NFS服务器的主机名,pathname是服务器上被导出目录的绝对路径。在客户机上安装远程资源的那个目录叫做挂接点(mount point)。

TOP

RPC

远程过程调用(RPC)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC 协议假定某些传输协议的存在,如 TCP 或 UDP,为通信程序之间携带信息数据。在 OSI 网络通信模型中,RPC 跨越了传输层和应用层。RPC 使得开发包括网络分布式多程序在内的应用程序更加容易。

RPC 采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用过程接收答复信息,获得进程结果,然后调用执行继续进行。

TOP

portmap

portmap进程是一种网络服务,它容许客户程序按照标准的方法查找与一个特定程序相关的一个端口号。portmap进程的主要功能就是吧PRC程序号转化为internet的端口号。
       当一个PRC服务器启动时,会选择一个空闲的端口号并在上面监听(每次启动后的端口号各不相同),同时它作为一个可用的服务会在portmap进程注册。一个PRC服务器对应唯一一个PRC程序号,PRC服务器告诉portmap进程它在哪个端口号上监听连接请求和为哪个PRC程序号提供服务。
     portmap进程在端口111上监听,以便客户进程容易与它取得联系。NFS服务默认的端口号是2049。

TOP

不错,感谢楼主

TOP

关注

TOP

file locking & Lock Manager & Automounter

file locking 是防止多个用户同时对一个文件进行更改。

Lock Manager NFS使用NLM来提供一个类似于UNIX的file lock的功能来管理客户机和服务器进程。

Automounter是一个程序,可以按要求自动挂接(mount)文件系统。或者当文件系统超过某个时限后自动卸载(umount)文件系统。现在部分linux环境下对光盘和USB设备管理就是这样,方便使用

[ 本帖最后由 ender 于 2008-7-3 16:19 编辑 ]

TOP

NFS的不同版本

到目前为止NFS有3个版本:
NFS v2
NFS v2 的定义是 RFC 1094, RPC 的定义是 RFC 1057,  External Data Representation (XDR) 的定义是RFC 1014.对文件的大小限制是最大4GB.
NFS v3
针对V2的一些限制做了更新,特别是文件大小的限制。NFS v3的定义是RFC 1813, RPC 和2版本一样。V3没有限定传输尺寸,V2最多只能设定为8k,可以使用-rsize and -wsize 来进行设定。这两个参数的设定对于NFS的执行效能有较大的影响,可以用工具测试当前环境下取哪个值最优化。
V3也是当前多数系统默认的NFS版本。
NFS v4
NFS v4的变化要大一些。增强的安全特性,支持RPCSEC-GSS和使用身份映射(Identity Mapping)访问远程域。文件加锁功能改为在NFS核心协议中实现。rpc.lockd, rpc.statd和rpc.mountd在NFS V4中将不再被使用。过去的NFS协议是“无状态”(stateless)的,而NFS V4协议是“有状态”(stateful)的。NFS V4协议为访问控制列表定义了模板和数据类型,并且支持在客户端和服务器之间传递访问控制列表的RPC操作。

TOP

NFS 4.1 /pNFS

在网上看到,现在开始做新版本的NFS了。V4的一个新版本,pNFS.
        Parallel NFS (pNFS) is an extension to NFS v4 that allows clients to access storage devices directly and in parallel thus eliminating the scalability and performance issues associated with NFS servers in deployment today. This is achieved by the separation of data and metadata, and moving the metadata server out of the data path.
       新技术总是很多,能活下来的不多。看三年后有没有实际的产品出现就是了。

TOP

options nfs

DR*> options nfs
nfs.acache.persistence.enabled on         
nfs.assist.queue.limit       40         
nfs.export.allow_provisional_access on         
nfs.export.auto-update       on         
nfs.export.harvest.timeout   1800      
nfs.export.neg.timeout       3600      
nfs.export.pos.timeout       36000      
nfs.export.resolve.timeout   6         
nfs.hide_snapshot            off        
nfs.ifc.xmt.high             16         
nfs.ifc.xmt.low              8         
nfs.kerberos.enable          off        
nfs.locking.check_domain     on         
nfs.mount_rootonly           on         
nfs.mountd.trace             off        
nfs.netgroup.strict          off        
nfs.notify.carryover         on         
nfs.per_client_stats.enable  off        
nfs.require_valid_mapped_uid off        
nfs.response.trace           off        
nfs.response.trigger         60         
nfs.rpcsec.ctx.high          0         
nfs.rpcsec.ctx.idle          360        
nfs.tcp.enable               on         
nfs.udp.enable               on         
nfs.udp.xfersize             32768      
nfs.v2.df_2gb_lim            off        
nfs.v3.enable                on         
nfs.v4.acl.enable            off        
nfs.v4.enable                off        
nfs.v4.id.domain                        
nfs.v4.read_delegation       off        
nfs.v4.write_delegation      off        
nfs.webnfs.enable            off        
nfs.webnfs.rootdir           XXX        
nfs.webnfs.rootdir.set       off        
涉及到NFS的options还不少,不管怎么说NFS还是FILER上很重要的功能,多点也正常。

TOP

发新话题