
数字化时代,各行业每天都会面对大量数据的使用与存放,如企业业务往来的订单数据、医院每天大量产生的医疗影像、政府机关单位各类电子档案、广电日常素材采集等,也包括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的加速能力。
版权声明:本文为原创文章,版权归 头条123 所有,欢迎 本文,转载请保留出处!