NFS,AFS是第一代分布式文件系统的代表,其目的是提供标准接口和远程文件访问,更多的关注访问的性能和数据的可靠性。NFS与AFS都是分布式的C/S文件系统。
NFS的实质在于用户间计算机的共享。用户通过NFS客户端接入网络,可以访问同一网络中其它计算机系统的硬盘(该计算机为NFS服务端)。NFS客户端可以mount远端文件系统的部分或全部到本地,访问这些文件系统就像访问在本地磁盘上的文件系统一样。
NFS访问数据的速度以接近采用本地磁盘的速度为目标,NFS的性能受限于:
- 网络的最大吞吐量
- 服务端硬件性能:网卡,磁盘等
- 服务端缓存大小,TCP/IP的配置
- 服务端服务实例的运行个数
- 客户端请求的网络文件数
- 客户端的系统性能
- 其它运行在客户或服务端上与NFS竞争资源的进程
在实际运行中,NFS服务端压力较大。NFS客户端的性能直接取决于服务端的性能和网络性能。如果遇到客户端性能很差,需要从上面两个方面进行检查。
NFS的服务过程如下:
NFS系统读写流程如下:
NFS客户端将用户级别命令转化为RPC;NFS服务端将RPC转换为用户级别命令。
NFS的主要缺点:文件服务器的定位对客户端非透明,即客户端需要知道服务端的确切地址(挂载点),这也导致了其可扩展性差,维护困难,优点是发展多年,linux内核直接支持,使用简单方便。
AFS(Andrew File System)文件系统主要用于管理分部在不同网络节点上的文件。AFS采用安全认证和灵活的访问控制提供一种分布式的文件和授权服务,该服务可以扩展到多个客户端。
AFS系统具有以下特点:
- 服务端的功能可以分部到多台服务器上以均衡负载,增加冗余和容错。多个服务器组成一个单元(cell)。一个存储节点在同一时间只能属于一个单元,而一个单元可以管理数个存储节点。
- 数据可以在服务器间进行移动和复制。这些操作对最终用户是透明的,最终用户不感知。
- 系统运行时,某个服务器可以出现故障下线和恢复上线的情景。
- 所有的客户端都有几乎全部的管理员权限。
- 可以扩展到更多的客户端。
- 所有的客户端对整个单元都有相同的视图。
- 灵活的访问控制:可以通过用户,群,或IP进行控制
- 对于只读卷可以进行复制以提高冗余
-
使用Kerberos身份验证来识别用户并授予文件访问权限。不信任客户端计算机。 - 授权过程加密。可在传输过程中加密文件内容。
-
客户端软件可用于几乎所有的Unix平台,包括Linux和Mac OS-X,再加上微软Windows(2000年及以后版本)。 - 有通向Windows 9x和Mac 系列,NFS系统的网关
- 跨单元操作是可能的,AFS是一个全局的文件系统
AFS系统概图如下:
AFS使用过程如下:
AFS与NFS不同,AFS提供给用户的是一个完全透明,永远唯一的逻辑路径。因而其具有跨平台,分布式的特点。但是由于AFS使用本地文件系统来缓存最近被访问的文件块,访问一个在本地的AFS文件由于需要附加一些耗时的操作,比直接访问本地的其它文件要慢很多。AFS为读操作做了优化,写操作很复杂,是一个读快写慢的文件系统,不能提供很好的读写并发能力。