论文部分内容阅读
为了在保证数据访问性能的同时降低系统的冗余存储开销,分布式存储系统通常会采用异步编码技术。在新数据被写入时,系统使用多副本机制对这些数据进行存储,并在数据访问变少后,在后台将这些数据转化为纠删码方式存储。由于分布式系统通常采用随机分布的数据块放置方法,逻辑地址连续的数据块通常会分散在系统的所有节点中。因此在执行编码操作时,编码进程需要通过跨机架下载来获取数据块。而在编码完成后,又需要跨机架的数据块重新分布来保证数据的可靠性。这种方法即降低了异步编码操作的执行效率,也影响了系统中前台任务进程的性能。为了提高异步编码的执行效率并降低其对前台任务性能的影响,本文提出了一种新型的编码条带构建方式,我们称之为动态条带构建技术(Dynamic Stripe Con-structiom,DSC)。DSC根据当前系统中数据块的放置信息来组建编码条带。放入同一编码条带中的数据块需要满足以下两种性质:(1)这些数据块存在副本存储于同一机架中,以保证在编码时不会引起跨机架的数据块下载;(2)这些数据块存在副本分散在其他独立的机架中,以保证编码完成后不会引起跨机架的数据块重新分布。为了在庞大的选择空间中有效地组建编码条带,我们设计了一种管理数据块放置信息的数据结构,并基于这一数据结构提出了一种线性时间复杂度的动态条带构建算法。该算法可以以热插拔的方式应用于使用任何数据放置方式与纠删码配置的分布式集群。为了验证动态条带构建技术的有效性,我们将DSC实现在HDFS系统上。在真实集群的测试实验中,DSC可以显著的提高异步编码的执行效率(实验中最高改进可达81%),并降低其对前台任务进程的影响。在系统集成的过程中,我们首先探讨了异步编码中节点上数据局部性与负载均衡的问题,随后设计了文件间编码与迭代编码技术来优化异步编码在小文件与追加文件场景下的应用。为了适应分布式集群中不断变化的数据访问负载,我们还提出了一种将动态副本与纠删码结合的新型数据块管理架构。这种架构模式使得我们可以对系统中的数据块进行动态的管理,以在提高数据可靠性与访问性能的同时最小化系统的存储开销。