数字化时代,各行业每天都会面对大量数据的使用与存放,如企业业务往来的订单数据、医院每天大量产生的医疗影像、政府机关单位各类电子档案、广电日常素材采集等,也包括ERP、HIS、MES等业务系统数据。“掌管”各种业务数据存、管、用的存储,其性能将会对业务的运转产生很大影响。
评估一套存储,性能是核心指标之一。而影响存储性能的因素通常有很多种,比如硬件配置、网络时延、存储软件处理流程等。为了了解深信服分布式存储EDS在每一部分的优化措施,我们将一个业务I/O流程归纳为以下四层:
结合上述分层方式,我们来介绍EDS如何激发卓越性能。
一、客户端业务网络层优化
1.降低业务网络层时延
EDS通过增强支持NVMe-oF协议,来代替iSCSI和FC协议,并通过RDMA技术减少数据在客户端内存拷贝,缩短客户端IO路径,降低客户端CPU开销。
目前在实验室内测结果表示,NVMe-oF相比于通过FC接入在小块随机读写时延上降低60%以上(NVME-oF的IO传输时延在10us以内,而FC通常在30us,iSCSI通常在70us)。
2.提升网络接入并发
EDS通过虚拟IP池的方式实现客户端统一IP接入,EDS服务端IO多路径映射到存储节点间均衡负载,每一个节点都可以参与IO接收和处理,因此EDS可以通过横向地增加存储节点获得线性提升的网络接入并发IO能力。值得一提的是,部分分布式存储虽然存储节点可以横向扩展,但接入网关会限制在4个节点以内,因此接入IO并发有限。
二、存储软件逻辑层优化
1.降低IO路径时延
(1)更高效的副本分发机制
EDS通过多副本和纠删码的方式进行数据冗余,以副本机制为例,多份副本并发写入存储节点的固态盘,写入成功即向应用返回成功,没有主备副本之分。对比开源存储架构CEPH的副本分发机制,EDS的I/O路径更短,写时延更低。
(2)更高效的分层机制
在混合盘配置下,固态盘作为高性能层提供读写加速能力,EDS通过独特的Tier分层减少了数据写入固态盘后的数据二次复制,降低固态盘寿命损耗,提高IO处理效率。
(3)更高的分层命中率
EDS的业务读操作会优先从Tier分层读取,所以业务读性能跟SSD命中率强相关。由于性能层容量有限,如何把业务需要频繁访问的数据(即热数据)留存在成为提升业务读性能的关键。EDS通过更智能的热力图算法决定那部分数据留存在性能层,相比于传统LRU算法可大幅度提升性能层命中率,提升业务读性能。
(4)更智能的内存预加载
为了提升业务读性能,EDS文件存储支持内存预加载技术,提前将数据按以下机制预加载到高速内存中,业务可直接从内存获取数据。
基于目录的预加载机制:大部分应用场景,一个目录保存的文件相关性较强,若目录内数据量较小,则将整个目录的文件都加载到内存。
基于时间的预加载机制:若目录内的数据量较大,则通过创建时间将目录内的文件进行分组,当某个组中的文件在短时间内被读取超过3个,则将整个组中的文件加载到内存。
2.提升多磁盘并发
EDS通过自适应条带化和自研分布算法来充分发挥同一主机内多块磁盘的并发能力。
(1)自适应条带化技术
条带化技术是指将一块连续的数据切分成很多个小的数据块,然后并发地存储到不同物理硬盘上,实现对数据进行写入或读取时可以获得最大程度上的I/O并发能力。
为了保证获得最优的I/O性能,EDS的条带数会根据集群配置进行自适应调整,无需用户配置。
(2)性能最优分布算法
为了保证性能最优,EDS数据分布会优先遵循以下三大策略:
主机内优先跨磁盘组分布策略:每个磁盘组由1块SSD和多块HDD组成,跨越多个磁盘组,可以利用到更多的SSD的加速能力。
磁盘组内优先跨磁盘分布策略:在混合盘配置中,为了避免对一个条带组内的数据进行并发读写时对机械硬盘产生随机的I/O(机械盘受限于物理结构,随机I/O性能较差),数据在磁盘组内优先跨磁盘分布。
优先选择组件剩余容量最多策略:为了保证数据分布均衡,主机或磁盘的剩余容量大小也是数据分布时的一个重要考量因素。
3.提升小文件/对象写入性能
在海量小文件/对象承载场景下EDS通过小文件合并技术大幅降低元数据规模,保证关键元数据都能够完全存储在有限的SSD上,并利用自研PhxKV数据库对元数据进行管理,提升元数据访问效率及故障修复的效率,从而提升EDS对海量小文件/对象读写效率,可以轻松承载百亿级别的小文件/对象存储。
三、服务器硬件层优化
EDS支持在通用X86或ARM架构的服务器上进行部署,相比于传统存储使用的专有硬件,所需投入的成本更低,并且EDS联合Intel推出了精选解决方案:
对于普通生产业务承载,EDS推荐高性价比混闪方案,通过配置少量固态盘(SATA/NVMe/Optane)作为高性能层提供读写加速能力,配置大容量机械盘作为容量层承载更多数据。
对于核心高负载业务承载,EDS可以采用全闪存方案,支持全SATA和全NVMe SSD组成的高性能存储资源池,通过25Gb/40Gb RoCE组网,为金融核心交易系统、测绘航测建模系统、医疗HIS等场景提供稳定高性能的生产存储。
四、存储网络层优化
EDS的存储网络用来进行节点间数据同步,以多副本机制为例,由于存储的多个副本之间要保证强一致性和数据可靠性,多个副本必须同时写入到不同的存储节点,因此存储网络时延也是影响性能的关键因素之一。EDS通过RDMA技术来减少内存拷贝,降低CPU消耗,从而将存储网时延降低到10微秒以内。
在多项性能优化措施的加持下,EDS在块、文件、对象存储性能实现了进一步升级。
块存储性能优化
使用3节点混合盘配置的EDS集群(每节点配置2块SATA接口固态盘作为缓存盘,6块SATA 机械盘做数据盘)可提供43万IOPS 性能,发挥物理硬件性能的92%以上。
并且性能可以横向扩展,EDS集群规模扩展至8节点时,混合盘配置4KB随机读可达120万IOPS。
对象存储性能优化
EDS对象存储在3节点混合盘配置下可以承载100亿个小对象数据,且性能下降不超过5%。而开源CEPH在对象规模实测达到3亿时,性能下降已超过60%。
文件存储性能优化
使用3节点混合盘配置的EDS集群,EDS文件存储可提供6GB/s的读写吞吐能力。
对存储而言,性能优化可谓是一场没有终点的马拉松,持续在通用硬件上激发出更高、更稳定的存储性能,用户便可以用更低的成本投入获得可支撑核心业务运行的存储产品。基于性能优化,目前深信服EDS已经承载了广电非编、AI训练、医疗影像长期归档、人脸图像识别、制造业MES生产、金融交易清算等丰富的业务场景。EDS将持续通过大量的研发投入,和持续的版本迭代,让用户拥有更优的存储选择。