文件系统级的数据压缩卸载

SSDFans 2023-06-09 07:43

01 背景和动机

    压缩作为一种有效降低SSD数据写入量的方法由于受到CPU压缩/解压效率不高的影响,在某些情况下吞吐量甚至低于非压缩IO系统。而硬件ASIC压缩加速器在性能、功耗上都优于CPU/GPU/FPGA ,且高性能的硬件压缩加速器成本越来越低,如Intel QAT加速器甚至直接集成在芯片组内。

    文章首先进行了两个实验,第一个实验是在NVMe SSD+HDD组成的混合存储系统上分别使用启用GZIP和LZ4压缩功能的ZFS文件系统进行写性能测试,结果表明,压缩有效降低了系统的写入量,同时发现与LZ4算法相比,GZIP压缩率更高,但是计算开销也更高。第二个实验是分别在启用GZIP和LZ4压缩功能的ZFS文件系统上进行大数据分析性能测试,测试结果如下图所示,可以看出GZIP与LZ4相比,IO开销更少,但是由于解压开销过大,性能甚至不如不适用压缩的ZFS。

    可以发现:GZIP的高CPU占用可能导致资源竞争、影响其他任务;压缩/解压应该卸载到硬件完成而不是使用低效而繁忙的CPU处理。

02 QZFS的设计与实现

    本文作者对ZFS的压缩路径进行了改造,将软件压缩替换为QAT硬件压缩。为了使用QAT对ZFS进行压缩加速,需要解决以下问题:首先,卸载压缩应该将压缩、解压函数调用替换为ASIC IO调用其次,由于QAT对数据的处理与软件实现的压缩不同,因此需要对数据进行预处理;之后,为了高效的压缩卸载,需要对运行时的内存地址翻译、操作进行优化;最后,为了优于卸载开销,需要选择性的将部分压缩任务卸载到QAT,而不是全部交给QAT实现。

QZFS系统设计

    整个QZFS的设计如下图所示,设计基于QAT硬件压缩加速器和ZFS文件系统实现,可以作为Lustre的后端文件系统。整个QZFS实现仅依赖QAT的硬件API和Linux环境,并且已经合入ZFS官方版本。


压缩服务引擎

    压缩服务引擎由压缩性检查器和算法选择器组成,用于决定哪些压缩任务卸载到QAT加速器上。功能包括压缩率决定的压缩卸载、原始数据大小决定的选择性卸载和可扩展的压缩算法选择器。

    压缩率决定的压缩卸载是使用压缩率检查器决定是否将数据保存为压缩格式,当检查器收到ZIO模块的写入请求时,记原始数据长度,预设压缩结果长度,若QAT压缩结果长度超过,则直接进行原始数据写入,不进行压缩。

原始数据大小选择性卸载是指:由于对过小的数据进行硬件压缩卸载造成的硬件通信开销过大,而过大的数据需要在内核中预留过多的连续内存,因此需要根据数据大小将压缩任务选择性的卸载到QAT加速器上运行。当时,卸载到QAT执行,其他大小则使用软件压缩。

    可扩展的压缩算法选择器用于在压缩时选择合适的算法进行压缩,由于其高度模块化,因此可以方便的扩展其他压缩算法,文章发表时仅实现了GZIP的压缩方法。


向量化IO模型

    QAT需要连续的物理内存存放数据,而ZIO使用的虚拟内存物理上可能不连续,因此使用扁平缓冲和分散缓冲表实现了向量IO模型,整个模型结构如下图所示。这种将连续数据分割成定长的数据块组并分散存放可以避免在调用QAT时分配大量连续内存引起的内存复制开销。

QAT卸载任务组织

    为了进行负载均衡,避免任务堆积,需要对QZFS的硬件压缩卸载进行调度。具体方法为:在QZFS启动时,QAT卸载模块会初始化一个逻辑实例,分配部分连续的物理内存作为QAT运行数据缓存区,并建立与QAT硬件的通信通道。当压缩任务过多时,任务卸载模块可能因为没有足够的QAT计算资源无法获得QAT实例,此时卸载模块将通过软件替代即使用CPU完成压缩来平衡系统的计算资源。

    每个卸载的压缩任务使用压缩会话描述。有时,这些压缩会话可能会发生错误。如果无法正确处理QAT加速器上的故障,则可以重新启动QAT设备进行恢复。在这种情况下,QAT卸载模块清理所有正在执行的压缩会话,并将可用性标志设置为FALSE,以禁用所有QAT卸载操作,直到完成重新初始化操作。

03 评估

评估平台

    整个评估平台由4台服务器组成,每台装备有两个22核心Xeon E5-2699v4,128G RAM,1组NVMe SSD阵列和一块DH8950 PCIe QAT card。每个NVMe阵列由3块1.6TB Intel P3700 Series NVNe SSD组成。服务器通过Intel XL710 40GB 网卡和100Gb以太网交换机连接,具体连接方式如下图所示。


基准性能测试

    使用fio进行多线程读写性能基准测试。测试结果如下图所示,结果表明,在压缩关闭配置中,平均读吞吐量比平均写吞吐量高18%,随机读取吞吐量最高3937 MB/s,与NVMe固态硬盘的硬件特性一致。软件GZIP下,平均读比写吞吐量高出约4.5倍,这是因为GZIP算法的压缩速度远低于解压速度。启用QAT加速器后,平均读吞吐量与写吞吐量相近。总的来说,QAT配置具有最高的读/写吞吐量和成本效率。GZIP配置与QAT配置具有相似的压缩比,但其高CPU开销不仅导致写入吞吐量低、系统效率低。与OFF配置相比,开启QAT因为压缩数据降低了存储的I/O成本,因此改进了吞吐量(读10%,写28%)。

科学大数据性能评估

    在Luster客户端上运行Luster OSS访问存储上的科学数据,部署方式分别为单节点集群和多节点(3/4节点)集群。


单节点方案

    首先,作者分析了不同硬件/软件方案在进行科学大数据分析时的执行时间,可以看出,由于分析转换时间固定,执行差异集中在解压开销,可以看出QZFS保持了最高的解压效率。

    之后,作者分析了不同线程数量下的执行时间和效率,结果如下图所示。单线程下,相对于软件GZIP,QAT配置下的执行时间降低了约30%。随着线程数增加,GZIP和QAT配置的执行时间逐渐减少。在每个工作负载进程中有16个线程的情况下,QAT加速的gzip性能优势从30%增长到60%,因为更多的线程产生更多的并行I/O请求,提高了底层QAT加速器的利用率。

多节点方案

    在三节点、四节点上进行性能测试的结果与单节点模式类似,QAT平均降低了63.10%和63.14%的执行时间,整体效率提升了6倍多。

04 总结

    高IO性能和低总体成本是两个难以同时实现重要的优化目标。数据压缩被认为是一种有效的解决方案,但压缩任务会产生较高的计算资源消耗,并可能影响应用程序工作负载的运行。本文研究了文件系统级别的数据压缩卸载。QZFS旨在将Intel QAT加速器集成到ZFS文件系统中,以提供与应用程序透明且经济高效的数据存储。评估已经验证,与带软件gzip压缩的ZFS、应用程序集成gzip加速相比,QZFS可以有效节省CPU资源,并进一步提高大数据处理工作负载的性能。

The End

致谢


感谢本次论文解读者,来自华东师范大学的硕士生黄奕阳,主要研究方向为文件系统压缩


 点一下“阅读原文”获取论文

SSDFans AI+IOT+闪存,万物存储、万物智能、万物互联的闪存2.0时代即将到来,你,准备好了吗?
评论
  • Supernode与艾迈斯欧司朗携手,通过Belago红外LED实现精准扫地机器人避障;得益于Belago出色的红外补光功能,使扫地机器人能够大大提升其识别物体的能力,实现精准避障;Belago点阵照明器采用迷你封装,兼容标准无铅回流工艺,适用于各种3D传感平台,包括移动设备、物联网设备和机器人。全球领先的光学解决方案供应商艾迈斯欧司朗(瑞士证券交易所股票代码:AMS)近日宣布,与国内领先的多行业三维视觉方案提供商超节点创新科技(Supernode)双方联合推出采用艾迈斯欧司朗先进Belago红
    艾迈斯欧司朗 2024-12-20 18:55 50浏览
  • ALINX 正式发布 AMD Virtex UltraScale+ 系列 FPGA PCIe 3.0 综合开发平台 AXVU13P!这款搭载 AMD 16nm 工艺 XCVU13P 芯片的高性能开发验证平台,凭借卓越的计算能力和灵活的扩展性,专为应对复杂应用场景和高带宽需求而设计,助力技术开发者加速产品创新与部署。随着 5G、人工智能和高性能计算等领域的迅猛发展,各行业对计算能力、灵活性和高速数据传输的需求持续攀升。FPGA 凭借其高度可编程性和实时并行处理能力,已成为解决行业痛点的关
    ALINX 2024-12-20 17:44 54浏览
  • 光耦合器,也称为光隔离器,是用于电气隔离和信号传输的多功能组件。其应用之一是测量电路中的电压。本文介绍了如何利用光耦合器进行电压测量,阐明了其操作和实际用途。使用光耦合器进行电压测量的工作原理使用光耦合器进行电压测量依赖于其在通过光传输信号的同时隔离输入和输出电路的能力。该过程包括:连接到电压源光耦合器连接在电压源上。输入电压施加到光耦合器的LED,LED发出的光与施加的电压成比例。光电二极管响应LED发出的光由输出侧的光电二极管或光电晶体管检测。随着LED亮度的变化,光电二极管的电阻相应减小,
    腾恩科技-彭工 2024-12-20 16:31 52浏览
  • 汽车行业的变革正愈演愈烈,由交通工具到“第三生活空间”。业内逐渐凝聚共识:汽车的下半场在于智能化。而智能化的核心在于集成先进的传感器,以实现高等级的智能驾驶乃至自动驾驶,以及更个性、舒适、交互体验更优的智能座舱。毕马威中国《聚焦电动化下半场 智能座舱白皮书》数据指出,2026年中国智能座舱市场规模将达到2127亿元,5年复合增长率超过17%。2022年到2026年,智能座舱渗透率将从59%上升至82%。近日,在SENSOR CHINA与琻捷电子联合举办的“汽车传感系列交流会-智能传感专场”上,艾
    艾迈斯欧司朗 2024-12-20 19:45 59浏览
  • 耳机虽看似一个简单的设备,但不仅只是听音乐功能,它已经成为日常生活和专业领域中不可或缺的一部分。从个人娱乐到专业录音,再到公共和私人通讯,耳机的使用无处不在。使用高质量的耳机不仅可以提供优良的声音体验,还能在长时间使用中保护使用者听力健康。耳机产品的质量,除了验证产品是否符合法规标准,也能透过全面性的测试和认证过程,确保耳机在各方面:从音质到耐用性,再到用户舒适度,都能达到或超越行业标准。这不仅保护了消费者的投资,也提升了该公司在整个行业的产品质量和信誉!客户面临到的各种困难一家耳机制造商想要透
    百佳泰测试实验室 2024-12-20 10:37 144浏览
  • 国产数字隔离器已成为现代电子产品中的关键部件,以增强的性能和可靠性取代了传统的光耦合器。这些隔离器广泛应用于医疗设备、汽车电子、工业自动化和其他需要强大信号隔离的领域。准确测试这些设备是确保其质量和性能的基本步骤。如何测试数字隔离器测试数字隔离器需要精度和正确的工具集来评估其在各种条件下的功能和性能。以下设备对于这项任务至关重要:示波器:用于可视化信号波形并测量时序特性,如传播延迟、上升时间和下降时间。允许验证输入输出信号的完整性。频谱分析仪:测量电磁干扰(EMI)和其他频域特性。有助于识别信号
    克里雅半导体科技 2024-12-20 16:35 53浏览
  • 随着工业自动化和智能化的发展,电机控制系统正向更高精度、更快响应和更高稳定性的方向发展。高速光耦作为一种电气隔离与信号传输的核心器件,在现代电机控制中扮演着至关重要的角色。本文将详细介绍高速光耦在电机控制中的应用优势及其在实际工控系统中的重要性。高速光耦的基本原理及优势高速光耦是一种光电耦合器件,通过光信号传递电信号,实现输入输出端的电气隔离。这种隔离可以有效保护电路免受高压、电流浪涌等干扰。相比传统的光耦,高速光耦具备更快的响应速度,通常可以达到几百纳秒到几微秒级别的传输延迟。电气隔离:高速光
    晶台光耦 2024-12-20 10:18 132浏览
  • 百佳泰特为您整理2024年12月各大Logo的最新规格信息。——————————USB▶ 百佳泰获授权进行 USB Active Cable 认证。▶ 所有符合 USB PD 3.2 标准的产品都有资格获得USB-IF 认证——————————Bluetooth®▶ Remote UPF Testing针对所有低功耗音频(LE Audio)和网格(Mesh)规范的远程互操作性测试已开放,蓝牙会员可使用该测试,这是随时测试产品的又一绝佳途径。——————————PCI Express▶ 2025年
    百佳泰测试实验室 2024-12-20 10:33 110浏览
  • //```c #include "..\..\comm\AI8051U.h"  // 包含头文件,定义了硬件寄存器和常量 #include "stdio.h"              // 标准输入输出库 #include "intrins.h"         &n
    丙丁先生 2024-12-20 10:18 84浏览
  • 光耦固态继电器(SSR)作为现代电子控制系统中不可或缺的关键组件,正逐步取代传统机械继电器。通过利用光耦合技术,SSR不仅能够提供更高的可靠性,还能适应更加复杂和严苛的应用环境。在本文中,我们将深入探讨光耦固态继电器的工作原理、优势、挑战以及未来发展趋势。光耦固态继电器:如何工作并打破传统继电器的局限?光耦固态继电器通过光电隔离技术,实现输入信号与负载之间的电气隔离。其工作原理包括三个关键步骤:光激活:LED接收输入电流并发出与其成比例的光信号。光传输:光电传感器(如光电二极管或光电晶体管)接收
    腾恩科技-彭工 2024-12-20 16:30 40浏览
我要评论
0