论文部分内容阅读
作为云计算和新兴Web2.0互联网应用的核心技术之一,分布式文件系统是当前存储系统技术领域的研究热点。分布式文件系统的资源共享、对存储平台的抽象性和隔离性、大规模扩展性和容错等特性,使之广泛应用于各个数据中心。然而,分布式文件系统的元数据访问瓶颈和小文件I/O访问性能一直都是无法回避的问题,制约着分布式文件系统的进一步发展和推广。作为云计算和Web2.0应用的一个重要基础设施,分布式文件系统中需要保存大量的小文件。同时,一些典型应用的存储使用特征使文件系统为派生文件保存了大量的冗余元数据,不仅增加了元数据访问的压力,延长了小文件的I/O访问路径,而且其消耗的网络消息率也对应用程序的性能产生了较大影响,使得分布式文件系统的元数据和小文件访问不能取得最优的效果。
本文主要针对大规模分布式文件系统中元数据组织和小文件I/O的性能和扩展性问题展开研究,并研究了分布式文件系统的弹性服务方法和语义查找方法,主要贡献包括:
(1)提出了面向列的目录表模型以解决文件派生冗余问题。文件派生冗余问题造成元数据大量冗余,增大了文件系统元数据管理的压力,消耗了有限的资源。本文提出的新目录模型能够通过单一文件名描述更多的数据维度,使由单一文件派生的文件能够方便的保存于同一文件名下,从而消除了元数据的冗余,降低了元数据管理和存储资源的压力。通过微测试表明,与传统的目录模型相比,采用新模型分三列存储后,元数据的空间消耗缩减为原始大小的5%。通过实际基因序列导入测试表明,与OrangeFS相比,新模型下文件消耗的存储空间缩减为原始大小的1/5。
(2)提出了分裂受控的可扩展哈希方法提升元数据管理的扩展性、并发度和性能。海量文件的元数据管理对多元数据服务器性能的扩展性、实现的并发度提出了更高的要求。本文提出的新方法既利用了可扩展哈希在均衡分布元数据负载方面的优势,又避免了由于哈希表分裂导致的网络迁移开销,从而大幅度提升了元数据性能的扩展性。通过在75个服务器上文件总数为1.5亿的微测试表明,与采用本地分裂和随机分裂策略的原始的可扩展哈希方法相比,分裂受控的可扩展哈希方法可以将文件并发创建的性能提升接近10倍。
(3)提出了异步、分布式的多维属性动态索引方法,兼容POSIX接口实现基于文件属性的查找,使大规模文件系统能够快速查找。大规模分布式文件系统需要管理十亿甚至百亿级别的文件,文件目录树无法提供除文件路径名之外的查找方法。新兴的Web2.0应用需要根据文件属性、标签、内容等语义信息查询文件,而基于目录树游历的方法进行语义查询对于大规模文件系统而言过于缓慢,因而是不可接受的。本文提出的新方法利用了多个结点的并行性和事件处理的异步化,近实时的完成文件属性的索引,并为多维度的属性数据建立星形的关联模型,使得属性维度可以动态变化,提高了灵活性。此外,属性索引通过POSIX的扩展属性接口导出,并为用户提供基于属性的文件查找方法。通过mdtest测试表明,异步索引方法对文件系统的性能仅有微小的影响。通过基于属性查找的微测试表明,在较低的文件选择率下(1%),新的文件查找方法比全目录树遍历有近千倍的性能提升,比基于外部数据库的索引查找方法有近10倍的性能提升。
(4)提出了基于目录的分散聚集方法处理大量并发的小文件创建。大量并发的小文件创建是众多Web2.0应用面临的共同问题,而现在的分布式文件系统中普遍存在着元数据处理并发度低和数据的随机写入问题,因此无法高效的处理并发小文件创建。元数据的并发处理多被限制于目录级别,无法充分利用并行资源;数据通常先被分配位置,然后再写入,从而导致了I/O随机化。本文提出的基于目录的分散聚集方法首先将大量并发的小文件创建分散到多个服务器上以利用并行资源,然后再在每个服务器上将到达的小文件创建聚集起来顺序组织写入以充分利用底层设备的顺序I/O带宽。通过在32个结点上进行的PostMark测试表明,与OrangeFS相比,本文提出的基于目录的分散聚集方法可以将并发的小文件创建速率和带宽提高60倍以上。
(5)提出了基于目录的文件聚合存储方法提高小文件读取速率。分布式文件系统中一直存在着1-N映射问题,并由此给文件的数据读取引入了多级查找的延迟开销。对于小文件而言,该问题影响更甚。本文提出了基于目录的文件聚合存储方法,将普遍存在的1-N映射转变为M-1映射,从而减少了底层文件个数,降低了在本地文件系统中的查找延迟,使每次数据读取仅需要一次I/O操作,提高了小文件的访问性能。通过在32个结点上进行的PostMark测试表明,与OrangeFS相比,本文提出的基于目录的文件聚合存储方法可以将并发小文件随机读取的带宽提高2到16倍以上。
(6)提出了基于透明检查点技术的元数据服务动态迁移方法。针对分布式文件系统元数据服务的高可用要求,动态服务迁移可以降低结点计划性停机的不利影响。本文提出了基于透明检查点技术的动态迁移方法,在不增加文件系统实现复杂度、不修改文件系统代码的情况下,透明的完成服务进程迁移,降低服务器之间的网络同步开销,从而达到比其他方法更好的效果。通过实际测试表明,采用基于透明检查点技术的迁移方法可以保持较低的检查点开销,仅为结点增删相结合迁移方法的70%。