您的位置:首页 > 其它

分布式文件系统:概述(1)

2016-05-09 13:56 337 查看
一、简介

随着Hadoop系统的红火,HDFS作为其基础设施也为众人所熟知。HDFS本身是一个分布式文件系统(Distributed File System,后文缩写为DFS),它不仅可以为Hadoop生态圈中产品所用,也可以为圈外其他产品所用。

与本地文件系统(Local File System,后文缩写为LFS)相比,现代DFS一般具有如下几个特点:1)高可靠性;一般来说,DFS可以通过复制(replication)来提高文件系统的可用性。文件的内容被复制到不同的磁盘、或磁盘控制器、或主机。这样即使单个磁盘甚至主机出现故障,也不影响DFS对外提供服务。2)高吞吐量;通过复制以及将程序推送到数据存储节点,数据处理服务器可以实现就近获取数据;通过配置大数据文件块,可以实现高效的顺序读写。这些特点在HDFS上都得到了充分的体现。

从历史的角度看,上述特性并非早期DFS的追求目标。早期的DFS如Andrew,NFS的主要目标有:1)实现文件对存储载体位置的透明性。这样用户无论在家里,或是在办公室里,只要与DFS有网络连接,就可以处理自己的文件。2)利用散布于各个服务器的磁盘空间,对外提供统一的存储空间。

一般来说,文件有两部分内容:元数据和内容数据。元数据包括:文件存储位置,包括其在文件系统的文件目录位置以及数据块的位置;文件大小、文件创建修改访问时间戳等。一般的LFS对元数据和内容数据提供统一的处理。当然这不是说元数据和内容数据混合在一起(事实上元数据通常保存在不同的super block中)。而是说在文件系统数据块级别上,元数据所在的super block和内容数据所在的data block除去大小的区别,并无存储介质上的不同。其实,LFS针对小文件有一个常见的优化措施:给super block增加富余空间用作data
block。如果小文件的内容能够容纳入此富余空间,则此类文件读写IO效率就比较高。

通常DFS都建立在LFS之上。同样的DFS也需要维护文件元数据与内容数据。早期的DFS基本上将此项工作交由LFS代理。这样DFS上的文件与LFS中的文件存在1:1的映射关系,即DFS上的一个文件,最终映射到LFS上的一个文件。对LFS上文件的修改,既是对DFS上某文件的修改。如今很多DFS自己管理自己的元数据和内容数据。一种常见的方式是:多个DFS文件的元数据作为LFS的一个文件保存、操作。DFS文件的内容数据作为另一个LFS文件保存、操作。在DFS上,元数据和内容数据可以在不同的服务器上,可以应用不同复制策略。

对DFS来说,有几个重要的技术特征需要注意:1)数据如何分布;DFS是否自己维护元数据与内容数据,还是交由LFS代理。如果是前者,这两种数据如何分布。2)服务器如何管理数据;即服务器如何根据文件元数据,获取文件内容数据。如前所说,早期的DFS将文件元数据、内容数据维护管理工作交由LFS代理负责,对这两个技术项并没有多少可以叙述的。3)客户端如何与服务器交互。具体细节包括用户如何发起文件读写操作,服务器如何响应;客户端本地cache缓存如何实现;如何避免DFS中的可用性单点(通常与元数据管理相关);等等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: