加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

分布式文件存储架构

(2014-06-07 15:32:41)
标签:

存储

分布式文件存储架构

分类: 数据中心

文/刘新民

分布式文件系统主要的功能是用于存储文档、图像、视频之类的非结构化数据,该系统建立在网络之上的,以全局方式管理系统资源,它可以任意调度网络中的存储资源,并且调度过程是“透明”的。

分布式存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但提高了系统的可靠性、可用性和存取效率,还易于扩展。以高性能、高容量为主要特性的分布式存储系统,一般满足以下四个条件:

  • 应用于网络环境中;
  • 单个文件数据分布存放在不同的节点上;
  • 支持多个终端多个进程并发存取;
  • 提供统一的目录空间和访问名称。

HDFS(Hadoop Distributed File System)是开源项目Hadoop的家族成员,是谷歌文件系统GoogleFS(Google File System)的开源实现,以下仅简单介绍HDFS工作模式。

HDFS被设计成适合运行在通用硬件上的分布式文件系统,是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的非结构化数据、半结构化应用。运行在HDFS之上的程序有很大量的数据集,典型的HDFS文件大小是GB到TB的级别,因此,HDFS被调整成支持大文件。一个HDFS集群是有一个Namenode和一定数目的Datanode组成(如图所示):

  • NameNode(名称节点)是一个或一组中心服务器,是HDFS的中枢,负责管理文件系统的目录名字空间信息(namespace)和客户端对文件的访问,并且管理所有的DataNode;
  • DataNode(数据节点)在HDFS中负责管理本节点上附带的存储Block(数据块)。在HDFS内部,文件不是放在一块磁盘上,一个文件其实分成多个block(数据块),这些block存储分散在Datanode组成的集群中,NameNode记录block对应在不同的DataNode上的映射关系。

NameNode接受客户端的元数据请求,然后对DataNode发出Block Ops(块操作)指令,文件的创建、删除和复制操作,同时决定block到具体Datanode节点的映射。Datanode在Namenode的管理下进行block的创建、删除和复制。

http://www.h3c.com.cn/res/201405/04/20140504_1851982_image006_826866_30008_0.jpg

图 HDFS经典体系架构图示

HDFS可靠性和性能主要通过数据块的副本来实现,并且HDFS采用一种称之为Rack-aware(机架感知)的策略来改进数据的可靠性、有效性和网络带宽的利用。

在通常副本数为3的情况下,HDFS的策略将一个副本存放在本地机架上,一个副本放在同一个机架上的另一个节点,最后一个副本放在不同机架上的一个节点。在读取时,为了降低整体的带宽消耗和读延时,如果客户端同一个机架上有一个副本,那么就读该副本。

HDFS依然是主从结构,Namenode成为整个系统的瓶颈和关键故障点,因此,众多使用分布式文件系统的用户均在此基础上不断完善其高可用性,比如发展出无中心存储架构。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有