关键词:
分布式文件系统
负载均衡
性能优化
目录放置
目录迁移
摘要:
分布式文件系统作为存储海量数据的载体被广泛应用于互联网企业的各大数据中心中。当今,分布式文件系统迫切要求以更高的性能、更合理的数据布局来满足各种应用场景的要求。现有的分布式文件系统主要以文件为粒度研究数据的放置与迁移策略,忽视了文件访问热度变化快的特性,导致负载均衡时效性短、I/O性能无法保证等问题。针对上述问题,本文对实际工作负载进行了详细分析,总结了分布式文件系统中I/O访问的规律和特性,选取访问热度更稳定、更持久的目录为研究对象,分别从全闪存系统中目录放置策略、混合存储中目录放置策略和目录迁移策略三个方面开展了研究。具体而言,主要研究内容和贡献如下:
针对全闪存分布式文件系统中新目录放置时缺乏未来负载的访问信息、难以应对倾斜工作负载造成的负载不均衡问题,提出了一种基于多维负载信息的学习型目录粒度数据放置策略(LDPP)。LDPP首先对工作负载的目录历史信息进行聚类获得标签,通过目录请求特征和标签训练分类模型。其次,使用该分类模型预测新创建目录的多维负载信息如存储容量、带宽和每秒输入输出操作数(Input/Output Operations Per Second,IOPS)。最后,根据预测的目录负载信息,采用多维分配算法将新目录放置在合适的存储节点上。仿真实验表明,LDPP相比于基于哈希的方法,IOPS均衡度提升了18.4%;实际系统(华为全闪存分布式文件系统Ocean Stor Dorado)上的测试表明,LDPP降低了36%的响应延迟,提升了8%的IOPS和9%的带宽。
针对混合存储中目录放置时热点数据集中于固态盘(Solid State Drives,SSDs)节点导致的I/O队列长、性能差等问题,提出了一种基于两轮选择的混合存储系统的目录粒度数据放置策略(OLDP)。首先,OLDP采用轻量级的学习模型预测新创建目录的负载,并基于目录结构的局部性,利用同级目录负载信息对预测的目录负载进行调节。其次,使用多维分配算法在集群所有节点中选择目录的预放置节点(称为虚拟节点),并根据IOPS维度信息将这些虚拟节点划分为“较重负载”和“较轻负载”两类虚拟节点群。最后,对于预放置到“较重负载虚拟节点群”的目录,在配备SSD的节点群中再次使用多维分配算法选择最终的放置节点;对于预放置到“较轻负载虚拟节点群”的目录,在配备机械硬盘(Hard Disk Drives,HDDs)的节点群中选择最终的放置节点。在分布式文件系统Gluster上的实验结果表明,OLDP降低了36.1%的I/O队列长度的峰值和16%的响应延迟,提升了26%的IOPS和25%的带宽。
针对分布式文件系统数据再均衡策略开销大、无法有效适应负载动态变化的问题,提出了一种低开销的负载感知的目录粒度数据迁移策略(Lo ADM)。首先,Lo ADM利用目录热度变化缓慢特性,设计了基于目录访问频率和访问间隔的热度分数。其次,根据热度分数将目录划分为四个热度等级,并以热度等级作为分类标签训练目录热度模型,从而识别潜在的最热目录。最后,根据最热目录的多维负载信息(IOPS、带宽和热度分数),采用粒子群优化算法将最热目录迁移到合适的节点。此外,为更好利用数据局部性以加速I/O访问,Lo ADM动态选取K个同级目录进行协同迁移。在分布式文件系统Gluster上的实验结果表明,Lo ADM将IOPS提高了67.4%,降低了40.6%的I/O完成时间和14.7%的迁移开销。