应用软件运行速度提升16倍:Lightbits与Ceph的存储性能对比
2022-04-30
来源:Lightbits
概述
云计算和基于容器的应用是推动当今IT领域产生重大变革的两大趋势。与其他技术和方法相比,二者都能够以更高的灵活性和更低的成本去运行和操作应用,因此日益受到欢迎。然而,在所有新的机遇面前,要实现潜在优势也都会有巨大的挑战。
层出不穷的新技术通常会对业务运营产生渐进式的影响。但是,以云计算作为运行模式,结合管理云原生应用的Kubernetes——这一做法已经改变了信息技术的交付、管理和使用方式。
此外,为支持这些环境而设计的系统需要选择计算、网络,尤其是存储系统,这些系统具备高度可扩展的容量和性能,而无需采用传统管理方式。Kubernetes提供机制,帮助应用以透明的方式利用多种计算和存储资源。但是,要确保应用对持久数据的访问,需要底层存储基础架构具有弹性,同时还能满足成千上万个应用的容量和性能需求。
在此背景下,Evaluator Group获邀对适合云原生应用环境的两种存储系统展开对比。
● Ceph:云原生环境中常用的开源软件定义存储
●Lightbits云数据平台:专为云环境设计的软件定义存储
如下所示,在使用相同硬件和存储介质的情况下,Lightbits在所有工作负载测试中,实现的性能均远远优于Ceph。表1汇总显示了使用QLC介质的NVMe固态硬盘(SSD)的测试结果。该测试使用在OpenShift Kubernetes环境中作为容器运行的工作负载来进行。
表1:在容器环境中使用QLC介质时的Lightbits与Ceph I/O速率比较。(来源:Evaluator Group)
本文的其余部分将更深入地探讨二者的技术和性能差异,以及使用NVMe SSD与TLC介质时的性能数据。
新兴技术
如前所述,多个趋势正在推动IT领域发生重大变化;其中,利用公共云等服务的趋势正在改变IT运行的地点和付费方式,影响了应用程序的运行方式。云原生应用程序(CNA)的推行正在改变应用程序的开发和管理方式,这在一定程度上得益于企业向服务和云端迁移的趋势。此外,可通过Fabric去访问NVMe存储的新技术,以及新的非易失性存储技术的出现,使得那些能够利用这些功能的系统拥有显著的性能优势。
云原生应用程序
基于容器的应用程序设计旨在运行于云环境,包括本地云和公共云。云原生应用程序被设计为可独立扩展的服务,又称为微服务。借助微服务架构,CNA能够在少量或甚至无需管理介入的情况下,按需扩展应用程序的各个部分。
此外,CNA部署在一个位置后,可以根据可用资源甚至根据资源的价格而移动到其他位置。另外,许多此类应用程序所需的持久性存储也必须动态响应不断变化的容量和性能需求。
NVMe over Fabrics协议
非易失性存储主机控制器接口规范(NVMe)是一个支持固态硬盘(SSD)去使用高速PCIe总线进行通信的接口,以实现对固态设备的低时延访问。与SCSI或SATA设备相比,NVMe支持数十亿条命令,显著减少了延迟或时延。为了兼容与外部设备的通信,NVMe over Fabrics扩展了NVMe协议,支持通过Fabric去访问NVMe。
NVMe over Fabric访问的最新选择之一是使用TCP传输协议,即NVMe/TCP。实施这项协议的技术负担可显著减少,无需任何特定的硬件或交换机设置即可支持商用以太网。总体而言,与TCP上的其他存储协议相比,在仍然使用现有网络基础设施的情况下,NVMe over TCP具有更低的时延和更高的吞吐量。
持久性存储
持久性存储(PMem)兼具存储特性(特别是无需能耗即可保留或“持久保存”数据的能力),以及内存总线访问特性(例如极低的时延和字节寻址能力)。持久性存储有两种主要类型,分别是NVDIMM和英特尔傲腾持久性存储(Optane Persistent Memory)。NVDIMM和傲腾PMem之间的主要区别在于存储密度和成本,其中,与NVDIMM设备相比,英特尔傲腾PMem持久性存储在这两个方面都具有显著优势。
英特尔PMem既可用于“应用程序直接访问模式”,也可用于“内存模式”。前者需要修改应用程序,后者以低于DRAM的成本、透明地扩展系统内存容量。Lightbits在App Direct模式下使用PMem作为非易失性写入缓冲区,将写入和元数据访问直接定向至PMem,减少了备份介质的磨损,改善了系统写入性能。
解决方案概述
过去几十年里,使用商用硬件、以“软件或软件定义存储(SDS)”的形式运行的存储系统日益受到追捧。这种方法之所以引人入胜,是因为它能够在不可使用专用或专有硬件的环境中运行弹性的数据中心级存储。此外,其灵活性有利于在不同的环境和部署规模中使用相同的SDS堆栈。如前所述,我们的评估中就使用两种不同的SDS选项,为容器应用提供持久存储。随后将概述它们的功能。采用英特尔技术的Lightbits解决方案如图1所示。
图1:用于Lightbits软件定义存储的英特尔平台(来源:英特尔)
英特尔
英特尔为当今许多领先的服务器和存储解决方案提供基础平台组件。这些组件包括英特尔至强处理器、英特尔网络适配器和英特尔傲腾?技术等,其中,英特尔傲腾?可作为NVMe固态硬盘,或内存形式的傲腾持久性存储(PMem)设备提供。此外,具有应用设备队列(ADQ)的英特尔Ethernet 800系列提供了高性能、低时延的NVMe/TCP网络接口卡。
Lightbits云数据平台
Lightbits云数据平台是一种软件定义存储,旨在运用最新的技术,包括NAND闪存和英特尔傲腾持久性存储(PMem);它使用高速100GbE网络接口卡,支持NVMe over TCP。Lightbits使用分布式架构,能够按需独立扩展CPU、内存、PMem或NVMe设备。因此,Lightbits能够提供可扩展的企业级存储,性能优于本地NVMe设备。
Lightbits智能闪存管理解决方案Intelligent Flash Management ?(IFM)支持最大限度地提高SSD性能和延长其耐用性。其主要特性包括写条带化、无IOP元数据访问、智能垃圾收集、追加写策略和并行读/写通道。
通过将英特尔的高性能硬件平台与Lightbits方案进行耦合,可提供可扩展的解决方案,降低总体拥有成本(TCO)。Lightbits解决方案特别采用了以下技术:
● 英特尔®至强®理器系统
o 高性能CPU、内存、I/O和PCIe Gen4
o 使用高性能CPU架构的高效存储软件
o 企业级SSD热插拔和LED支持NVMe介质
● 英特尔傲腾持久性存储(PMem)
o 低时延、非易失性写缓冲区和元数据存储
o 无需电池或电容器即可维持持久性
o 大容量持久性存储, 总拥有成本低于其他替代方案
● 英特尔 Ethernet 800系列网络适配器
o 提供应用设备队列(ADQ)
o 高性能应用设备队列
o 低时延NVMe/TCP,无需使用定制的驱动程序
通过Kubernetes容器存储接口(CSI),Kubernetes管理的容器可以作为持久卷(PV)访问Lightbits存储。Lightbits CSI插件使Kubernetes能够使用其“Elastic RAID”在Lightbits集群中存储持久卷(PV),该“Elastic RAID”提供纠删码保护,防止每个节点的数据丢失。其他Lightbits服务包括压缩、复制、卷快照、克隆和用于多租户环境中的基于角色的访问控制(RBAC)。
Ceph
Ceph是一款开源的软件定义存储产品,带有多个不同的接口,可作为块设备、文件系统和目标存储进行访问。设计Ceph时,采用旋转硬盘驱动器作为主要的存储介质,基于NAND的SSD在大多数主流存储系统中不发挥作用。
自Ceph设计以来的15年间,各种外形规格的固态闪存已成为高性能存储系统的主要介质。但Ceph初始设计中旨在提高旋转物理介质性能的许多元素仍得以保留。最近,更新后的Ceph已经可以使用固态的“BlueStore”和“RocksDB”进行元数据操作。迄今为止,Ceph还没有针对持久性存储进行优化,也不支持NVMe over fabrics或NVMe over TCP。
我们在测试中使用Ceph的开源版本,详见附录。
存储效率
与一些软件定义存储系统相比,Lightbits的弹性设计拥有更多优势。Lightbits针对每个节点使用纠删码保护,确保在丢失存储设备时的数据可用性;此外,节点之间可进行复制,因此,Lightbits能够在减少开销和存储容量浪费的同时,提供 更大的弹性。在测试期间,Lightbits的配置是:在每个节点上使用纠删码来保护数据,同时在Lightbits集群中的另一个节点上额外制作一份数据拷贝。
与此相反,Ceph的配置是:创建三个数据副本来进行数据保护,此时,如果一个节点的驱动器和另一个节点出现故障断电,则无法确保数据可用性。尽管这两种保护方法的存储效率相似,但Lightbits方法的可用性更高。
不同容器工作负载下的性能
Evaluator Group需对Kubernetes应用环境中作为容器运行的两种不同的存储产品进行分析。我们对Lightbits软件定义存储与面向容器的开源软件定义存储产品Ceph进行了比较。测试环境由12个Kubernetes节点组成,在专用的3节点Lightbits集群或3节点Ceph集群中运行容器工作负载。容器应用测试图表和其他细节、硬件、软件和其他方面的详细信息,请参见附录描述。
测量存储性能时,使用众所周知的“vdbench”工具创建工作负载,每个节点使用8个运行vdbench的容器实例,总共96个vdbench实例。
测试包括性能敏感型应用中常见的5种不同的访问模式和块大小:
● 4KB,100%读取,100%随机访问
● 4KB,100%写入,100%随机访问
● 8KB,80%读取/20%写入,80%随机访问
● 16KB,70%读取/30%写入,80%随机访问
● 32KB,50%读取/50%写入,80%随机访问
这些工作负载用于比较Lightbits与Ceph的性能,使用QLC固态介质作为主要存储介质,并根据每个存储系统使用适当的高速持久介质。在所有情况下,分别多次运行5个工作负载,获得可用于比较的平均结果。有关Lightbits和Ceph配置的具体细节,请参见附录。
Evaluator Group评论:测试结果显示,使用Lightbits具有巨大的性能优势,其中,4KB写入工作负载的性能是Ceph的16倍。考虑到在所有比较中,底层介质的数量和类型是相同的,这种优势尤为明显。
图2:Ceph与Lightbits吞吐量比较(来源:Evaluator Group)
图2显示了使用QLC介质时,Lightbits和Ceph在5种不同访问模式下的吞吐量结果。吞吐量结果是直接可比较的,因为它们考虑了数据块大小的差异,因此将其全部显示在一起。
性能详情
I/O速率(以每秒I/O传输次数或IOPs衡量)是小数据块工作负载的常用指标,但不利于对比不同的数据块大小。如下方图3所示,对典型应用大小——8KB、16KB和32 KB进行比较,绘制I/O速率,以每秒I/O传输次数衡量。在32KB时,Lightbits的优势是5.7倍,在16KB时,优势是10.4倍,在8K工作负载时,Lightbits的性能超过Ceph 12倍。
图3:使用QLC介质时Lightbits与Ceph的性能对比–不同数据块大小的吞吐量(来源:Evaluator Group)
上文显示的三种工作负载是数据库或其他事务应用程序中的常见负载。尽管许多数据库尝试执行16K或32K大小的I/O,但在许多情况下,如果更改较小或事务率较高,它们倾向于使用较小数据块。数据库将执行8K甚至4K事务,而非等待合并几个较小的I/O。
以下显示Ceph和Lightbits使用两种不同类型的存储介质,即QLC和TLC介质时,4KB读取操作的I/O速率比较。
图4:使用QLC和TLC介质时,Ceph与Lightbits的4KB读取I/O速率比较(来源:Evaluator Group)
虽然会发生4KB读取操作,但4KB写入操作更经常用于数据库日志记录操作。使用QLC介质时,Lightbits的性能比Ceph高出近17倍,使用TLC介质时,性能比Ceph高出近7倍,如下图5所示。
图5:使用QLC和TLC介质时,Ceph与Lightbits的4KB写入I/O速率比较(来源:Evaluator Group)
Evaluator Group评论: 数据库和其他事务应用程序依赖于低时延存储,尤其是事务日志,后者必须在事务完成前写入持久介质。日志大多通过4K I/O操作写入,在此工作负载下,Lightbits显示出比Ceph更大的优势:使用TLC介质时,优势高出近7倍,使用QLC时,优势高出近17倍。
其他性能数据
下文为性能结果概述,其中指出三个主要指标,包括吞吐量、I/O速率以及时延。Lightbits相对于Ceph的性能优势极其显著,因此用“x”倍数来体现这种优势。使用简单的除法(即515,697 / 30,728 = 16.78 x)来显示Lightbits性能优势倍数。要点如下:
● 在所有五个工作负载下的测试结果表明,Lightbits具有4到16倍的优势
● 数据库经常使用对时延高度敏感的小块写入日志或日记
● 在4KB写入下,Lightbits的性能优势为16.78倍,优势显著
表3:Lightbits与Ceph性能比较(来源:Evaluator Group)
关于测试,还有一点值得留意,即在使用QLC介质时,Ceph的时延高于大多数工作负载可接受的水平。这是因为,我们在所有测试中使用相同的队列深度设置,确保比较结果的公平公正。如果工作负载针对Ceph QLC进行了优化,将使用较低的队列深度设置,从而降低I/O速率,同时减小时延。如果以这种方式进行测试,Ceph的时延水平更易于接受,但性能会显著降低,从而放大Lightbits的优势。
最终结论
性能始终是IT基础设施的重要考虑因素,尤其是在运行云环境或托管云原生应用程序时。尽管并非每个应用或微服务都需要高I/O速率,但如要运行现代云基础设施,提供具有高I/O速率和低时延的弹性、可扩展存储至关重要。
Evaluator Group评论:在使用相同硬件配置的情况下,Lightbits的性能显著优于Ceph,弹性也更高。Lightbits针对英特尔的高性能技术进行优化,为支持云的Kubernetes环境提供了强大的存储平台。
近期技术进展层出不穷,助力IT用户去大规模、经济高效地运营基础设施。当与英特尔傲腾持久性存储结合使用时,QLC等新型存储介质可以为要求不高的工作负载支持海量存储容量,并提供良好的性能。包括新处理器和端到端NVMe在内的其他技术也可以提供性能和成本优势。
英特尔的专有技术,如Xeon CPU、支持NVMe over TCP的英特尔网卡,以及傲腾持久性存储和高密度NVMe SSD,为软件定义产品提供了强大的硬件基础。由于高效利用了英特尔CPU、网络接口和持久存储介质,Lightbits存储可提供本地NVMe级别的性能,从而持续确保低时延和数据服务。
本文中所示的性能测试使用了IT环境和应用中常见的工具和工作负载。附录提供了进一步的详细信息,如希望进一步了解测试,或希望使用自己的硬件配置重复这些测试,可参考附录。
Evaluator Group评论:借助存储专业人员熟知的测试工具和工作负载,我们认为,Lightbits可以提升现代应用程序的性能。Lightbits可以通过QLC介质和傲腾PMem,支持时延敏感型应用,而Ceph在明显具有更高延迟的情况下只能提供很低的I/O速率。
利用持久性存储和端到端NVMe等新技术,Lightbits即可提供比Ceph更优异的性能,且弹性更高。显而易见,Lightbits的性能是Ceph的16倍,时延更低,是适合现代应用和云环境的更佳选择。
附录
测试环境详情
测试环境利用以下硬件、软件和应用工作负载项目。
测试持续4个月,从2021年9月起至12月止。
硬件和基础设施
● 关于测试配置的概述,请参见下方图6
o 在裸机上运行的应用集群,由12个Kubernetes“worker”节点组成
o 3节点管理集群/作为虚拟机运行的Kubernetes“master”节点
o 运行软件定义存储堆栈的3节点存储集群
● 应用环境和编排使用OpenShift 4.6版
图6:OpenShift访问存储节点的工作负载测试设置(来源:Evaluator Group)
软件环境
● 使用Red Hat OpenShift 4.6版作为3个管理节点和12个应用节点
o 12个应用(OpenShift“worker”)节点直接运行于硬件上,因此称为“裸机”
o 3个管理(OpenShift“master”)节点作为虚拟机运行,但作为“裸机”安装
● CentOS 8.4版是3个Ceph节点使用的基础操作系统
● Ceph SDS堆栈使用开源Ceph 16.2.6版(又名“Pacific”)
● VMware 7.0;3台虚拟机使用ESXi及vCenter
SUT配置
● 一个12节点应用集群,运行Red Hat OpenShift
o 应用/工作节点配置:
双插槽第一代英特尔至强可扩展系统(Intel Xeon Platinum 8173M)
96 GB内存(12个8 GB DIMM)
英特尔XXV710-DA2网卡,每台主机带2个25 Gb/s连接
● 两个存储系统连接到OpenShift应用集群
o SDS #1,Ceph配置:
双插槽第三代英特尔至强可扩展系统(Intel Xeon Gold 6338)
256 GB内存(16个16 GB DIMM)
2 TB的英特尔傲腾PMem(配置为WAL和Cache设备)
英特尔E810-CQDA2网卡,每台主机带1个100 Gb/s连接
8个英特尔NVMe存储介质,可选择
● QLC SSD介质:英特尔SSD D5-P5316 @ 15.36 TB
● TLC SSD介质:英特尔SSD D7-P5510 @ 3.84 TB
o SDS #2,Lightbits配置:
双插槽第三代英特尔至强可扩展系统(Intel Xeon Gold 6338)
256b GB内存(16个16 GB DIMM)
2 TB英特尔傲腾持久性存储Persistent Memory 200(配置为Lightbits写入缓冲区)
英特尔E810-CQDA2网卡,每台主机带1个100 Gb/s连接
8台英特尔NVMe存储设备,可选择:
● QLC SSD介质:英特尔SSD D5-P5316 @ 15.36 TB
● TLC SSD介质:英特尔SSD D7-P5510 @ 3.84 TB
客户端配置–基础设施
● 使用运行VMware ESXi的单一英特尔系统来支持基础设施
o 3台虚拟机用作OpenShift“master”节点
o 运行Microsoft Server 2019的“jump”主机,用于远程访问基础设施
SDS存储配置
Ceph配置
备注:Ceph没有“默认”配置,由于硬件的可用性和其他配置参数,每次安装都可能不同。有关配置,请参见下文:
● 使用“CentOS 8.4版”作为所有三个节点的主机操作系统
● 按照上述定义配置硬件,每个节点配置8个NVMe设备
● 下载后,在全部3个节点上配置Ceph“Pacific”
o 将2 TB的PMem分成两个分区,一个用于WAL,另一个用于RocksDB
o 每个NVMe SSD配置为6个逻辑OSD(每台设备设置6个OSD)
● Ceph设备配置
o 每台主机有8个SSD,分别被划分为6个区域
o 在8个物理SSD上使用6个分区,每个系统总共有6 * 8 = 48个OSD
o Ceph配置了驻留在Optane PMem上的WAL
● 默认资源设置:
o CPU设置为每个OSD 1个CPU,内存设置为每个设备4 GB
Lightbits配置
备注:Lightbits没有“默认”配置。Lightbits和英特尔工程部门为Lightbits执行了所有的设置操作。有关配置,请参见下文:
● 使用“Lightbits”作为全部三个节点的主机操作系统
● 按照上述定义配置硬件,每个节点配置8个NVMe设备
● 在全部3个节点上配置Lightbits
o 指定2 TB的PMem作为缓存设备
o 将每个NVMe SSD用作逻辑设备
应用工作负载
● 使用“vdbench”工具,生成具有不同数据块大小和读写比率的合成工作负载
o 在开始其他测试之前,运行“写入-填充”工作负载,完全写入被测的整个存储容量
o 每个测试运行15分钟进行“预热”,然后运行30分钟进行“测量”
o 测试按顺序进行,每完成5个测试称为一“组”
o 每个测试组重复9次,用9轮运行结果的平均值进行比较
● 针对存储配置测试以下5种工作负载
o 4KB,100%读取,100%随机访问
o 4KB,100%写入,100%随机访问
o 8KB,80%读取/20%写入,100%随机访问
o 16KB,70%读取/30%写入,80%随机访问
o 32KB,50%读取/50%写入,50%随机访问
测试过程概述
● 设置用于应用的服务器和网络
● 设置系统,安装附加测试基础设施使用的VMware
● 在15个系统上安装OpenShift(12个“worker”裸机硬件和3个“master”虚拟机节点)
● 安装和配置软件定义存储目标集群
o 将Lightbits安装到3个节点上,用于Lightbits SDS存储
o 安装CentOS,并在用于Ceph SDS存储的3个节点上安装Ceph Pacific
● 创建包含96个vdbench客户端容器实例和1个vdbench控制器实例的容器工作负载环境
● 在控制器容器上运行vdbench工作负载,将工作负载分配给所有96个vdbench实例
● 为每个工作负载收集9组结果,得到平均I/O速率、吞吐量和时延
使用TLC介质进行比较
使用QLC介质测试完毕后,重新将两个存储系统配置为使用TLC介质设备,而非QLC设备。众所周知,TLC介质的写入I/O速率更优,时延更低。同样,测试两个存储系统时,使用相同的工作负载,在相同的服务器硬件、网络上运行,最重要的是,使用相同数量和类型的存储介质。基于TLC的NVMe固态设备作为主要的存储介质,并根据最佳实践,为每个存储堆栈使用英特尔傲腾PMem。
图7:TLC多工作负载下的Lightbits与Ceph吞吐量比较(来源:Evaluator Group)
图7显示了使用TLC SSD介质时,五次相同测试的吞吐量结果。显示吞吐量结果旨在提供可直接比较的结果,不过I/O速率是更常用于显示单个小数据块工作负载的指标。