基于分布式文件系统(HADOOP)架构的高性能并发存储方案
项目背景
客户应用业务中已有2组服务器,每组服务器通过光纤链路连接到2套不同的存储设备,存储数据量约50T,服务器配置NFS服务做为共享文件系统提供给所有的NFS客户端。客户端主要的文档类型为图纸,单个文件容量在2G左右。
工作站挂载某一个服务器的NFS共享(共享基于磁盘存储),进行TB级别的数据读写,服务器出现卡死现象,无法再做其他操作,只能等到读写结束才恢复正常。
综上所述,因此需要新购高性能的交换机、服务器,用以兼容和优化原应用业务,并满足基于大文件交换的NFS共享方案。
因此,本次项目的硬件采购同时需要配置一个基准的Hadoop HDFS分布式文件交换方案(Zookeeper分布式服务框架),用以兼容原应用业务,通过提供统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等内容,实现对原有业务服务器和数据存储的兼容整合和优化,要求整体部署要求采用Apache Ambari(虚拟机)进行统一部署与管理。
建设原则
本项目主要通过采购新的高性能交换机和服务器,用于搭建和部署一套高可靠性、高性能、可无缝扩展、高并发的文件交换业务应用,对原中海油研究院数据中心的业务应用的NFS存储和应用服务器的进行兼容和升级,并支撑工作站NFS客户端能够快速的访问文件系统,以满足科研与生产的要求。
方案架构
我们推荐了一种开源的分布式文件系统架构Hadoop HDFS Federation。
方案架构主要包含如下结构:
文件数 |
数据块数 |
数据块大小 |
内存空间占用 |
3000万 |
3000万 |
64MB |
约12GB |
10亿 |
10亿 |
64MB |
约380GB |
方案特性
多个Name Node共用一个集群里Data Node上的存储资源,每个Name Node都可以单独对外提供服务
每个Name Node都会定义一个存储池,有单独的id,每个Data Node都为所有存储池提供存储
Data Node会按照存储池id向其对应的Name Node汇报块信息,同时, Data Node会向所有Name Node汇报本地存储可用资源情况
如果需要在客户端方便的访问若干个Name Node上的资源,可以使用在HDFS Gateway上挂载NFS表,把不同的目录映射到不同的Name Node ,但Name Node上必须存在相应的目录
HDFS基本概念介绍
1、Block:HDFS默认的基本存储单位是64M的数据块,和普通文件系统相同的是,HDFS中的文件是被分成64M一块的数据块存储的。 不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间。
2、元数据节点(NameNode)和数据节点(DataNode)
元数据节点保存内容:
a、主要用来管理文件系统的命名空间,其将所有的文件和文件夹的元数据保存在一个文件系统树中。 这些信息也会在硬盘上保存成以下文件:命名空间镜像(namespace image)及修改日志(edit log)
b、其还保存了一个文件包括哪些数据块,分布在哪些数据节点上。然而这些信息并不存储在硬盘上,而是在系统启动的时候从数据节点收集而成的。
数据节点保存内容
真正存储数据的地方。客户端(client)或者元数据信息(namenode)可以向数据节点请求写入或者读出数据块。 其周期性的向元数据节点回报其存储的数据块信息。
3、从元数据节点(secondary namenode)
从元数据节点并不是元数据节点出现问题时候的备用节点,它和元数据节点负责不同的事情。 其主要功能就是周期性将元数据节点的命名空间镜像文件和修改日志合并,以防日志文件过大。这点在下面会相信叙述。 合并过后的命名空间镜像文件也在从元数据节点保存了一份,以防元数据节点失败的时候,可以恢复。
我们的服务
领航动力作为综合解决方案提供商和服务提供商,可以为用户提供信息安全监控解决方案的服务。主要包括:用户需求调研、需求分析、系统详细设计、系统部署和方案实现、长期的系统维护及技术支持。
客户收益
增加了集群存储数据容量与访问的并发处理
改动最小,只需要在现有环境中增加HDFS架构
提供良好扩展性的同时允许其他文件系统或应用直接使用块存储池
统一的块存储管理保证了资源利用率,可以通过增加DataNode实现跨主机的无缝扩容与提高并发率