面向存储介质的HDFS优化综述
HDFS全称Hadoop Distributed file system,是Hadoop中的分布式操作系统,目前被广泛应用于大数据存储。HDFS是针对传统磁盘设计的,随着硬件设备的飞速发展,HDFS对于存储介质的优化和支持成为了一个具有挑战性的课题。本文总结了HDFS面向外存中传统磁盘、叠瓦式磁盘、固态硬盘,与内存中传统内存与非易失性内存的优化技术。本文认为未来的HDFS系统一定是平衡性能与成本的异构集群,提出了四种可能的研究方向并进行讨论。
1 HDFS存储系统概述
HDFS全称Hadoop Distributed file system,是Hadoop中的分布式操作系统,目前被广泛应用于大数据存储。HDFS的设计初衷是在大规模的廉价服务器集群上可靠地存储大规模数据,并提供高吞吐的数据读写[1]。HDFS将所存储的文件划分为较大的数据块,并将这些数据块分布式地存储在集群的各个节点上,集群中的NameNode负责管理集群中的元数据。为了防止Namenode故障,HDFS中还包含它的备份。HDFS中默认采用机架敏感的副本放置策略[2],为了减少对存储空间的占用,HDFS还支持基于纠删码EC的容错机制,提升了存储空间的利用率[3]。
HDFS拥有高容错性、高可扩展性与高可移植性,符合当前大数据存储大容量、生成快、多样性的需求,得到了广泛的应用。但是HDFS是针对传统磁盘设计的,随着硬件设备的飞速发展,HDFS对于存储介质的优化和支持成为了一个具有挑战性的课题。
2 面向外存介质的HDFS优化技术
2.1 传统磁盘
传统磁盘的优点是价格便宜,存储密度高,寿命长,但是依赖磁盘的旋转与磁头的移动来读写数据,随机读写性能差。因此,对传统磁盘的优化方法主要是将大量小的随机读写合并为大的顺序读写。文献[4]提出了LSM-Tree,在磁盘上采用Copy-on-Write结构,极大地提高了数据吞吐量,是采用这种思想的典型结构。
2.2 SMR磁盘
叠瓦式(SMR)磁盘的相邻磁道相互重叠,所以相比传统磁盘存储密度更高,价格更便宜,但是写放大严重,随机写性能很差。在HDFS中,大量数据是很少被读写的冷数据,非常适合存储在SMR磁盘中,降低存储成本。面向SMR磁盘的优化技术技术主要是改善其糟糕的读写性能。
文献[5]提出了一种新的文件系统日志写入系统,将许多小的随机日志转变为顺序写入。文献[6] 提出了适合叠瓦式磁盘的STL(shingled translation layer)和GC(garbage collection)方法,对不同的磁道分别采用就地更新与异地更新,当空闲空间过于分散式按需地执行垃圾回收操作 。这些优化使得叠瓦式磁盘能够更好地应用在HDFS当中。
2.3 固态硬盘
固态硬盘具有高带宽、高吞吐、随机读写快等优点,但是有擦除次数限制,寿命较短,成本高。随着SSD技术进步,单位容量价格走低,越来越多的企业使用它加速数据读写。
文献[10]指出在当前的HDFS中将HDD直接替换为SSD并不能保证带来性能提升,并探索了如何最优化HDFS中的性能、成本和能耗,结论是只有与高网络带宽、并行存储访问结合使用,HDFS中的SSD优势才能得到利用。文献[9]也指出当前的HDFS结构不能充分利用SSD的所有优势,提出一系列的结构改进,包括:引入利用SSD的高IOPS存储和打乱Mao函数输出的简化版数据处理算法,使用基于libaio的预读取模型减少读取延迟,以及使用基于记录大小的 reduce程序克服reduce阶段中的数据偏移问题。最终[9]在Terasort 和DFSIO基准性能测试中分别实现了30%和18%的性能提升。
除了相比磁盘更高效的读写速度,SSD还可以作为计算设备。文献[8]利用固态硬盘的计算能力实现了适应ISC(in-storage computing)的MapReduce框架,将Mapper任务下推到固态硬盘中执行,提升了2.3倍的MapReduce性能。
针对固态硬盘擦除次数有限,文献[7]修改了Namenode中的数据块放置策略,尽可能平衡Datanode上SSD的使用量。文献[9]则引入了基于磁盘磨损信息的块替换策略。
3 面向内存介质的HDFS优化技术
3.1 内存缓存机制
HDFS上的Key-Value存储将内存作为数据的读写缓冲,将随机读写转化为顺序读写。除了利于加速数据写入外,内存更主要的是缓存文件来加速应用的数据访问性能。
3.2 非易失性内存
可以字节寻址的非易失性内存(NVM)是一种全新的存储介质,不仅有相比闪存更持久,而且具有更短的访问延时。
文献[13]提出了一种通过利用非易失性存储器对HDFS的Namenode元数据进行管理的方案,减轻了由于执行了保留文件系统元数据的日记处理而导致的Namenode瓶颈。文献[11]提出了NVFS(NVM- and RDMA-aware HDFS),它基于现有的HDFS,加入了对NVM和RDMA((远程直接内存访问))支持。NVFS中NVM提供两种访问模式:块访问和内存访问,分别对应NVFS-BlkIO和NVFS-MemIO接口。分别将HDFS的写入和读取吞吐量提高多达4倍和2倍,数据生成基准测试的执行时间最多减少了45%。
对于NVM,文献[10]也得到了对于SSD类似的结论(见2.3)。文献[12]分析了HDFS中的数据恢复机制,发现在DataNode中复制任务的配置会严重影响数据恢复。通过针对NVM优化配置,数据恢复性能从17% 提高到了 71%。
4 总结与展望
HDFS一开始就是面向传统磁盘设计和实现的,基于传统磁盘和内存的优化和应用已经趋于成熟。但高密度、低成本的SMR磁盘、高吞吐与高成本的SSD和性能更优,成本更高的NVM为HDFS引入了新的研究课题,且目前研究多有不足。目前的研究主要聚焦在某一单一介质能够给HDFS带来多少性能提升,或是对某一特定介质的配置优化。
未来的HDFS系统一定是平衡性能与成本的异构集群,充分利用现有以及未来全新的存储介质,这就呼唤着HDFS整体架构上的四大功能:
- 对任意存储介质IO性能的标准化测试
- 基于1的文件及副本智能分类放置策略
- 基于1与使用记录的数据动态迁移策略
- 在新硬件集成时,系统还应当考虑到它的物理特性,如SMR的写放大,SSD的寿命问题等。
针对问题2,我认为对于特定的成本-性能平衡点,可以提出模型计算最优策略。然后把文件写入分类视为分类任务,引入机器学习模型。对于问题3,可以设计统计模型对于已经存储的数据被访问的可能性进行实时计算,调度它们在不同介质中的位置,把网络流量成本与写入成本作为惩罚函数,访问延时降低和传输时间缩短作为奖励函数,转化为一个强化学习问题。针对问题4,可以人工地设计规则。
参考文献
[1] Konstantin S, Hairong K, Sanjay R, Robert C. The Hadoop distributed file system. In: Proc. of the MSST. 2010. 1.10. [11] White T. Hadoop: The Definitive Guide. 4th ed., O’Reilly Media, Inc., 20
[2] White T. Hadoop: The Definitive Guide. 4th ed., O’Reilly Media, Inc., 20
[3] Hakim W, John K. Erasure coding vs. replication: A quantitative comparison. In: Proc. of the IPTPS Workshop. 2001. 328338
[4] O’Neil P, Cheng E, Gawlick D, O’Neil E. The log-structured merge-tree (LSM-tree). Acta Informatica, 1996,33(4):351385
[5] Patana-anake T, Martin V, Sandler N, Wu C, Gunawi HS. Manylogs: Improved CMR/SMR disk bandwidth and faster durability with scattered logs. In: Proc. of the MSST. 2016. 1.16.
[6] He WP, Du DHC. SMaRT: An approach to shingled magnetic recording translation. In: Proc. of the FAST. 2017. 121134.
[7] Hong J, Li L, Han C, Jin B, Yang Q, Yang Z. Optimizing Hadoop framework for solid state drives. In: Proc. of the Big Data. 2016. 9.17.
[8] Dongchul P, Wang JG, Kee YS. In-storage computing for Hadoop MapReduce framework: Challenges and possibilities. IEEE Trans. on Computers, 2016,PP(99):1.1
[9] J. Hong, L. Li, C. Han, B. Jin, Q. Yang and Z. Yang, “Optimizing Hadoop Framework for Solid State Drives,” 2016 IEEE International Congress on Big Data (BigData Congress), San Francisco, CA, 2016, pp. 9-17, doi: 10.1109/BigDataCongress.2016.11.
[10] Moon, S., Lee, J., Sun, X. et al. Optimizing the Hadoop MapReduce Framework with high-performance storage devices. J Supercomput 71, 3525–3548 (2015). https://doi.org/10.1007/s11227-015-1447-3
[11] Islam NS, Wasi-ur-Rahman M, Lu XY, Panda DK. High performance design for HDFS with byte-addressability of NVM and RDMA. In: Proc. of the Int’l Conf. on Supercomputing. 2016.8.21
[12] H. Li, X. Li, Y. Lu and X. Qin, “An Experimental Study on Data Recovery Performance Improvement for HDFS with NVM,” 2020 29th International Conference on Computer Communications and Networks (ICCCN), Honolulu, HI, USA, 2020, pp. 1-9, doi: 10.1109/ICCCN49398.2020.9209698.
[13] Choi, W.G., Park, S. A write-friendly approach to manage namespace of Hadoop distributed file system by utilizing nonvolatile memory. J Supercomput 75, 6632–6662 (2019). https://doi.org/10.1007/s11227-019-02876-9
面向存储介质的HDFS优化综述