论文部分内容阅读
随着传感器技术的发展以及智能手机的普及,群智感知走上了移动计算的核心舞台。群智感知产生的海量多样的数据,对存储系统提出了更高的要求。传统的本地文件系统能保存的数据量有限,能提供的吞吐量也有限,不适用于群智感知。现有的分布式文件系统大多采用集中式的元数据管理策略,集中式的元数据管理策略不适用于群智感知环境下海量的小文件产生的海量元数据量。GFS、HDFS等分布式文件系统专用于存储大文件,TFS、Haystack等分布式文件系统则专用于存储小文件,而群智感知要求分布式文件系统能高效地支持大小文件混存。群智感知计算的基础是海量数据的存储。本文研究了主流的分布式文件系统的原理,并着重研究了在多个服务器分布元数据的策略以及各大分布式文件系统存储大文件和小文件的策略,在这些基础上,设计并实现了一个分布式元数据服务器的、同时支持大小文件存储的分布式文件系统HaipengFS。本文的研究内容主要包括以下几点:(1)研究了主流的分布式文件系统GFS、HDFS、TFS、ceph,并分析了它们的系统架构、主要实现原理以及局限性。(2)针对要存放大量文件的元数据的需求,研究了在元数据服务器集群分布元数据的主要策略,并参考现有的策略设计了基于一致性Hash的分布元数据的策略。(3)针对要同时存放大文件和小文件的需求,参考了现有分布式文件系统存储大小文件的策略设计了HaipengFS大小文件混存的方案,大文件使用多个64MB的数据块来存放,多个小文件共用一个数据块并通过索引文件维护小文件在数据块的位置(4)为了让文件系统能适应不断变化的负载,设计了基于遗传算法的元数据服务器间负载均衡算法,并通过实验对负载均衡算法进行了验证。(5)基于以上研究内容,设计了分布式文件系统HaipengFS的原型系统,并使用C++编程语言在Linux上实现了HaipengFS,最后在阿里云平台上对HaipengFS进行了性能测试。通过以上工作,验证了本文所提出的方法的有效性。