腾讯云全新云硬盘!百微秒时延、超百万IOPS是如何炼成的?

引言

随着越来越多的用户开始将关键业务迁移上云,部分关键业务的场景如大型 SQL 数据库、NoSQL、视频编解码、推理训练等业务对存储提出了稳定低时延、高性能的业务诉求,CBS 的产品矩阵并不能很好地满足这类场景。

因此为了满足 IO 密集场景对云硬盘的要求,在历经过超半年的用户线上业务压力后,基于最新一代 CBS 3.0 存储引擎的增强型 SSD 云硬盘和极速型 SSD 云硬盘终于正式上线和大家见面了。

下文将重点为大家介绍一下这次发布的最新产品系列和背后的黑科技。 

一、全新一代SSD产品系列

经过长期的迭代打磨和 VIP 客户线上业务超过半年的实际运营,CBS 于 8 月正式全量推出了增强型 SSD 云硬盘,并开启了极速型 SSD 云硬盘的内测:


1. 增强型SSD云硬盘

增强型 SSD 云硬盘是腾讯云 CBS 基于最新一代存储引擎 CBS 3.0 推出的高性能、低时延的新产品类型,纵向对比现有 SSD 云硬盘,时延指标有超过 50% 的优化, IOPS 性能提升 92% 。

2. 典型场景

  • 对数据可靠性要求高的时延敏感型业务(典型 case:数据库业务、docker 集群在线日志等);

  • 常规 SSD 云硬盘无法满足 IOPS 或吞吐需求、且对数据可靠性有要求的业务(典型 case:clickhouse 数据库业务、直播业务等);

  • IO 密集型业务(大数据处理等)、计算密集型业务(视频编解码等)、在线无状态业务(游戏业务逻辑等)等多种场景均适用。

3. 极速型SSD云硬盘

极速型 SSD 云硬盘是 CBS 基于最新的网络基础设施和最新一代存储引擎 CBS 3.0 推出的,进一步优化的低时延、高性能旗舰款产品。与增强型 SSD 云硬盘显著的不同点在于整个网络协议栈由 TCP 切换为了 RDMA,极大降低资源开销的同时提供极低的访问时延。

二、百微秒时延和超百万IOPS如何炼成

衡量块存储的性能主要有三个指标:IOPS(指单位时间能处理的IO个数)、吞吐(指单位时间能处理的数据量)和时延(指单个IO处理完成的时间)。

在 IO 密集型的业务场景中,需要存储提供足够低的稳定时延来达到用户业务读写的快速返回,并能支撑高并发的 IO 处理,使得用户业务能够效率进行。

如何提高 IO 处理的效率?我们首先需要知道子机的数据是如何被读写的:

 

如上图所示,子机数据读写将会经过以下步骤:

首先数据会经过 guest kernel 的一系列 IO 协议栈,通过块设备驱动将请求下发到vring 中并由 qemu 取出。此时由于用户空间没有访问硬件的权限,会触发 vm exit 进入内核空间。

qemu 将请求写入到母机上对应的设备,数据将继续经过母机内核的一系列 IO 协议栈发送给母机 cbs 组件。

cbs 组件在收到数据后会进行解析,查到到对应的路由信息后将数据发送到 CBS 集群的对应位置上,写三副本后返回成功。

返回请求继续按照原路径返回给 qemu,产生中断。子机触发 IO 中断并最终返回请求结果给子机中的应用程序。

 

可以看到,IO 链路要经过很多模块,并且频繁发生 vm exit 上下文切换,链路过长导致性能瓶颈。

1. 虚拟化层优化

我们首先把目光投向了虚拟化这里的消耗。存在以下问题导致整体性能较差:

  • 每次 IO 请求都会引起 vm exit,对子机性能影响较大;

  • 每次 IO 请求都会经过 qemu,导致 qemu 压力过大;

  • 每次 IO 请求都需要经过整个子机 IO 协议栈、Hypervisor IO 协议栈和母机 IO 协议栈;

  • 用户态内核态频繁切换。

因此我们采用了spdk作为代替方案,将架构简化成了如下图所示: 

spdk 会一直不停轮询,如果有请求就会将请求取出,然后查找路由转发到后端的 CBS 集群,请求执行完毕后直接返回。这样就缩短了 IO 路径,避免了频繁 vm exit 。并且,spdk vhost 读写数据无需经过系统调用,降低了整个链路的消耗。

 

除了架构上的改造外,还进行了多方面的优化:

  • 优化接入层逻辑,实现了组件内的内存零拷贝,减轻对 CPU 的压力;

  • 在组件架构上,实现了组件水平可扩展;

  • 在时延优化方面,除了轮询模式缩短io路径带来的时延优化,在组件内,让每个线程独占资源池,减少线程间的锁竞争,让请求处理更快;

  • 在稳定性方面,组件独占资源,避免被其他组件的干扰。同时做了软中断隔离,防止网络中断对时延抖动的影响。

 

2. 存储集群优化

软硬件的不断迭代发展使得存储得以有更多发挥空间。RDMA 技术支持在多个服务器进行通讯的时候,从一台机器的内存直接访问另一台主机的内存,而无需 CPU 的参与,大大降低了 CPU 的开销。并且可以绕过传统 TCP/IP 技术在处理数据时需要经过操作系统、内核和其他软件层的链路,降低了数据流的处理时延。

RDMA技术具备以下优势:

  • 应用程序能够直接执行数据传输,被发送到远端的缓冲区,而不需要进入网络协议;

  • 直接在用户态执行数据传输,无需走内核协议进行频繁上下文切换,极大优化了 IO 时延;

  • 直接访问远端内存而无需进程参与,大大提高了 CPU 性能。

 

经过 RDMA 适配改造后,进一步降低了整体链路的 IO 时延,提升了 CBS 的性能。

 

3. 用户态协议栈 ZTCP 架构升级

同时,我们也在进行腾讯云自研用户态 TCP/IP 协议栈 ZTCP(Tencent zero-copy TCP/IP stack)的改造工作。

数据全部经由用户态协议传输,无需内核参与。基于内存分配器 zbuf 改造协议栈和 spdk,涉及到网络发送和接收的数据都从 zbuf 上分配。

发送和接收时,zbuf 的数据和网卡直接 DMA,免除 CPU 开销。除了零拷贝外,ztcp 每个线程独占资源池,线程之间没有资源争抢,所以无需加锁,也有更好的可扩展性。

4. 硬件加速

得益于自研硬件的不断迭代更新,我们也将上面进行的软件优化迁移到了自研服务器硬件上,将软件硬件一体化的红利普惠给用户,预计将很快和大家见面。


结语

经过优化,CBS 在极致性能、持续稳定、高可用性等多方面都有了进一步提升,推出了增强型 SSD 云硬盘和极速型 SSD 云硬盘产品。单路 IO 时延优化到了无限接近本地存储的 100+ 微秒级别,单卷的性能可达到 110 万 IOPS、4GB/s 带宽。

后续我们依旧会围绕着稳定高性能存储建设产品能力,专注更多方面的提升优化,迎接更艰巨的挑战。

参考资料:

[1] 产品详情页:

https://cloud.tencent.com/act/pro/HSSD_TSSD_newarrival_activity

文章推荐

腾讯云物联网LoRa社区狂欢送鹅厂公仔,更有多款开发套件优惠购!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值