论文部分内容阅读
随着存储着海量数据的分布式文件系统的进一步发展,为了满足各种企业、学术机构等组织对数据存取速度的需求,诞生了内存分布式文件系统这一概念。以开源的Alluxio为代表的内存分布式文件系统的逐渐发展,被人们运用到了日常生活中的方方面面,但这也暴露出了不少问题。本文以海量数据系统的可用性为研究目标,对比分析其他系统上的确保数据可靠性的机制,结合Alluxio自身特性,就数据部署策略方面提出改进的措施,以此来提高Alluxio自身的可用性,并且确保对上层计算框架更好的支持。Alluxio系统作为大数据生态系统的中间层,链接着上层计算框架与底层存储系统。当其正支持着上层计算框架对数据的读取时,若底层存储系统或者与之的通信网络发生故障,Alluxio中的数据的可靠性将不能从底层存储中获得保障,便会使系统不可用。同时考虑到远端调用在维护数据一致性的巨大消耗,建立或完善Alluxio内部对数据可用性的保障机制是十分必要的。所有的冗余措施都会占用Alluxio本就不多的内存存储,本文对此提出了一种改进思想。其主要分为两点,其一是将数据按热度进行划分,对热点数据以Alluxio层次化存储的方式固定到内存来提高内存空间的利用率进而提高系统整体的执行效率;其二是以数据块为粒度,通过设定合适的副本个数结合Alluxio并行化的读取措施进一步提高热点数据的读取效率,降低冷门数据占用的存储空间,也通过冗余措施确保了系统的可用性。这样当Alluxio在面对底层存储失联,自身节点故障等问题是仍能维持对上层计算框架的服务并坚持到故障被修复。基于上述的优化思想,在对Alluxio的源码进行解读后,本文在外部建立了一套按数据块预测读取频率来分类的计算模块与进行副本个数管理的动态调整模块;在内部改写了其自带的数据分配策略,添加了数据分层持久化的内容,同时对异常进行了监控,并以此实现了故障处理模块。最后,本文以一种模仿实际数据访问分布的读取算法对完成的热点数据分层部署策略和数据块副本动态调整策略进行测试,在与其他策略对比分析后,成功验证了本文策略的在提高系统响应效率、降低系统负载的有效性;在故障模拟后,通过分析任务的执行情况,也成功验证了本文策略对系统可用性提高上的有效性。