[发明专利]支持海量数据访问的分布式文件系统的架构方法有效
申请号: | 201410216506.6 | 申请日: | 2014-05-21 |
公开(公告)号: | CN104008152B | 公开(公告)日: | 2017-12-01 |
发明(设计)人: | 董敏;金泽豪;毕盛 | 申请(专利权)人: | 华南理工大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 广州市华学知识产权代理有限公司44245 | 代理人: | 蔡茂略 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 支持 海量 数据 访问 分布式 文件系统 架构 方法 | ||
技术领域
本发明涉及分布式文件系统研究领域,特别涉及一种支持海量数据访问的分布式文件系统的架构方法。
背景技术
随着互联网技术的发展,“云计算”正日益受人们重视,它是分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡等传统技术的融合而形成的一种新的面向用户的服务型产品概念。而“云存储”又是最为贴近普通网民的云服务之一。
早期的分布式文件系统,文件及其元数据信息没有做冗余备份,一旦其中某台服务器故障,则存储在该服务器上的文件就不可用。而且随着文件数量增加,系统也变得更为庞大,既难扩展也难管理。现代的分布式文件系统则更加注重元数据的分布策略,将文件元数据和数据存储分离,可以提高服务的并发性、可用性,并充分利用集群中实际数据存储机器的磁盘IO。
目前常见的分布式文件系统有GFS、HDFS、Lustre、MogileFS等,其各自适用于不同的领域。最活跃是Hadoop上的HDFS,其架构图如图8所示,其面向的是分布式计算,采用单一元数据服务器的架构,系统简单,适合较大的文件体积,通过追加方式写入的文件往往达到了成百上千GB,将文件进行分块存储。对于分布式数据处理、计算的场景来说,HDFS足够应付,并已有许多成功案例。但是其单个的主节点容易成为瓶颈,而且有单点失败的情况。MogileFS支持大量小文件的读写,可自动复制文件,但是不支持文件的随机读写,对数据库过度依赖,同样存在单点故障。Lustre采用对象存储技术,适合对大文件进行读写,其将大文件分片,通过存储节点上的RAID提供可靠性,故系统不提供多个副本的冗余备份。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种支持海量数据访问的分布式文件系统的架构方法,该系统借鉴了各种分布式文件系统的优点,其无中心化架构及冗余备份机制可向上层提供安全可靠的、高效的分布式文件存取服务以及海量的数据访问。
本发明的目的通过以下的技术方案实现:支持海量数据访问的分布式文件系统的架构方法,包括以下步骤:
(1)采用非阻塞的网络通信框架,在Linux系统中,采用epoll选择器。使系统在大量连接及高IO时仍有很高的性能;
(2)采用简单且高效的基于动态代理的远程过程调用(RPC,Remote Procedure Call),降低系统复杂性;
(3)与传统的C/S架构类似,客户端通过API访问文件系统,集群中的节点通过以太网实现相互通信,每个节点负责维护路由表、元数据、文件数据。客户端连接任意一个已注册服务的节点即可实现对文件的操作;
(4)文件通过一致性哈希算法映射到相应的节点上,保证文件的分布与节点数目无关,节点的加入与退出对系统的影响和数据的迁移量降到最低,分布式哈希表采用Kademila算法,能最大限度的减少查找文件中的时间消耗;
(5)对大文件分块,文件的数据以及元数据都备份在3个不同的节点上,节点宕机后能迅速切换,保证数据的安全有效;
(6)完全分布式的结构在多个节点上都存在文件备份,对某个文件操作时需要判断真正可操作的备份。系统采用一种优秀的、可快速在多个节点中选举出领导者的算法PaxosLease,由领导者操作后再同步到其他备份。
上述方法的步骤(1)中所述的非阻塞网络通信框架,是基于Java的NIO库MINA,其提供支持TCP/UDP上抽象的事件驱动的API。其也是优秀的过滤器链和和多线程控制器模型,对数据包快速进行封装解包,并交给多线程控制器处理,MINA在完整的RPC调用中耗时约为0.5毫秒。
上述方法的步骤(2)中所述的远程过程调用的传统模式为三层:
(2-1)存根/框架(Stub/Skeleton)层:用于客户端存根(代理)和服务器端框架。
(2-2)远程引用(Remote Refference)层:用于远程引用行为。
(2-3)传输(Transport)层:用于连接的建立和管理,以及远程对象的跟踪。
Java自带的RMI框架内部过多的异常检查,传输时附带不必要的信息,存根的生成也使得代码的管理变得复杂,见图11。而动态的代理模式(见图6)在运行时根据需要动态的生成代理对象,将要调用的方法名、参数通过包装后发送给服务端,服务端接收到请求后查找已经注册的服务实体,调用实体的方法后对返回值和异常包装后发送给客户端。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410216506.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:降低光掩模板条纹的方法及装置
- 下一篇:投影系统
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置