返回
ZStack Cloud Vhost主存储架构揭秘,实现单盘百万IOPS与百微秒级延迟的完美融合
2024-05-24 11:38

ZStack Cloud 5.0.0 版本支持新一代高性能全闪分布式存储。本文主要从技术实现角度,带你探索ZStack Cloud Vhost主存储对接架构。

引言

随着人工智能浪潮的来临,企业对于数据存储系统的需求已不再局限于基本的容量与稳定性,而是聚焦于性能、高并发处理能力和灵活扩展性。特别在金融、医疗、制造等行业,当前正面临着前所未有的数据存储压力。

金融行业一直以稳健为主,但其应用系统对性能的要求也同样严苛,比如交易、风控、资管等典型业务在面对当下互联网业务的大规模并发、实时数据分析等场景时,对存储性能无论在带宽还是延迟方面都提出了新的挑战。

医疗行业中,据统计医疗存储数据中有超过80%源自高速增长的医学影像数据,年增速约30%~40%。同时,医疗机构还必须长期保存住院电子病历至少30年,门急诊电子病历至少15年,且不同临床科室对数据存储还有各自的时效要求,这就对现有数据存储架构提出了更高标准。

工业4.0对现代制造业的影响是巨大的,尤其MES(制造执行系统)这类实时业务场景,整个产线非常依赖其存储性能表现,任何容忍范围外的延迟或可能导致生产事故,直接影响企业发展。

传统的存储解决方案,如SAN,在处理这类繁杂且高频访问的数据时,常会遭遇性能瓶颈、延迟过高、以及扩展困难等问题,导致用户业务发展受阻。为打破这一困境,一种基于vhost-user协议构建的高性能全闪分布式存储系统应运而生,该系统以其创新的设计理念与先进的技术特性,为金融、医疗、制造等行业及各类企业提供了一种高性能、高可扩展、且具成本效益的高性能解决方案。

技术原理

当前主流的virtio方案作为专为虚拟化环境量身定制的一套设备模型,为虚拟I/O设备提供了一套标准接口和实现。virtio驱动在设计和实现时,就尽可能减少触发host后端操作(vmexit)的指令,以提升I/O效率。尽管virtio相较于原始的全虚拟化方案已显著优化,但I/O在QEMU IO thread中的处理依然低效。以backend为file的virtio-blk为例,其I/O路径为:



该路径涉及两次host用户态与内核态的切换,增加了延迟。


图 1 virtio方案

而vhost技术将virtio设备后端数据设备后端数据处理功能转移至QEMU进程之外,避免了QEMU内部的状态切换和系统调用,通过直接调用host上的设备驱动(如块设备读写或网络收发)完成实际I/O操作,大大提升了后端性能。

vhost-user协议作为vhost高性能存储的核心技术之一,在用户空间实现了用户态应用程序与虚拟机间的直接数据传输,大幅减少了内核态与用户态之间的切换,有效降低了CPU中断处理开销,提升整体性能。相较于传统的virtio方案,vhost-user技术将I/O路径简化为:




图 2 vhost-user方案

vhost-user作为vhost的用户态实现,通过Unix socket与QEMU进程通信,获取virtqueue的配置信息和内存布局,再通过mmap实现QMU/Guest间的共享内存通信。这种机制使得host上的用户态应用(如存储网关)能够直接访问virtio设备的virtqueue,无需经过其他队列中转,从而显著提升I/O性能。

技术特色

然而,仅靠vhost-user协议尚不足以实现单盘百万级IOPS和单队列百微秒延迟的。为此,ZStack Cloud还实现了多项关键技术:

全无锁架构

通过ID Sharding将I/O任务分发至不同的处理通道,实现资源Sharding,构建无锁架构,有效降低I/O延迟。ZStack Cloud采用全用户态无锁数据通道,结合RTC IO处理模型,实现端到端无上下文切换、无锁零中断、全用户态、网络I/O处理等,辅以绑核与异步轮询策略,发挥单核(虚拟线程核)处理能力,将软件栈时延压低至20~40μs,较传统分布式I/O栈的400μs有了数量级提升,充分释放新一代硬件和网络技术的能力。


图 3 全无锁架构

全栈内存零拷贝

ZStack Cloud利用零拷贝技术优化数据传输过程,避免了数据在用户空间与内核空间之间的多次复制,实现数据从发送方缓冲区直接传输至接收方缓冲区,无需CPU介入,大幅降低了数据处理时间和系统资源消耗。通过大页共享内存与RDMA网络支持,实现从虚拟机I/O内存到存储网关直至OSD全程零拷贝,同时集中管理大页内存,确保内存分配时考虑跨NUMA访问性能,实现同NUMA节点内分配。


图 4 全栈内存零拷贝

减少GuestOS通知backend开销

存储网关中实现的vhost backend通过polling机制,避免了虚拟机每次I/O操作时kick后端存储,提升系统性能。


图 5 vhost backend polling机制

多核并发

ZStack Cloud利用现代多核CPU的强大处理能力,实现多队列支持。通过均衡算法将virtqueue均匀分布在各个核上,实现高并发能力,有效平衡负载的同时,显著提高了Guest单盘I/O操作的吞吐量和响应速度。

性能验证

为了验证Vhost主存储的实际效能,我们采用了典型的服务器集群配置,并利用了高效能的RDMA网络环境进行连接。具体测试环境配置如下:

RDMA网络配置如下:



三台服务器配置如下:



测试过程中,Vhost主存储展现了卓越的性能表现:

低延迟性能

在严苛的延迟测试条件下,我们将fio测试设置为depth=1,numjob=1时,虚拟机内部执行的随机4KB读写操作延迟控制在了约100微秒级别。


图 6 fio测试depth=1 numjob=1


图 7 单深度场景友商对比

高吞吐量能力

为验证系统的高并发处理能力,我们将fio测试参数调整为depth=64,numjob=8,此时系统在保证一定性能水平的前提下,成功实现了百万级别的随机小IOPS,读写性能均达到业界领先水平。


图 8 fio测试depth=64 numjob=8


图 9 多深度场景友商对比

高效CPU利用

通过采用多队列(queues=4)设计,进一步提高了IOPS性能,相比于单队列模式,性能翻了2至3倍,且在保障高吞吐量的同时,系统延迟仍保持在较高竞争水平。


图 10 fio测试-单队列


图 11 fio测试-多队列

数据库测试

在MySQL 5.7的8核16G测试规格下,通过对等的测试数据集进行比较,相比于传统分布式存储,使用32个线程的Vhost主存储的测试数据在TPS提升了30%,95%的延迟降低了约3倍。当线程数增至96个时,QPS提升了38%。


图 12 数据库测试1


图 13 数据库测试2

在Oracle 19c版本的8核16G规格下,相比于传统分布式存储,Vhost主存储在TPM提升了6倍,达到42万TPM。


图 14 数据库测试3

场景实践

某金融机构跑批业务实践

在国家大力发展金融服务业的大背景下,某金融机构响应政策号召,不断加大数字化转型力度,旨在提升服务水平和效率。通过构建具备行业领先优势的数字化平台,该金融机构致力于为客户提供更加便捷、高效的金融服务体验。跑批作为金融机构核心业务场景之一,其效率的提升对于整体服务水平的提升至关重要,能够有效增强服务效果,提升客户满意度。

某金融机构位于长三角地区,作为该地区的重点股份制农商行,其地理位置优越,紧邻经济发达地区,有着良好的发展前景。在ZStack Cloud 5.0.0版本发布之际,迅速进行了POC测试,并选择使用Vhost主存储作为存储方案。与某国外产品在相同配置条件下进行比较,跑批处理时间实际上降低62%,这项数据的提升为运营效率带来了显著的改善和优势。

某高端制造业客户性能测试实践

在高端制造行业,位于中部的某车辆制造企业致力于提升生产效率和产品质量,通过引入先进的数字化技术和智能制造解决方案,以打造具备行业领先优势的生产平台,从而实现生产效率和产品质量的双重提升。

该制造企业位于工业重镇,是当地重要的高端制造企业之一,拥有先进的生产设备和技术团队。在ZStack Cloud 5.0.0推出后,立即进行了性能跑分场景测试。在测试中,Vhost主存储在集群读写性能上达到行业头部水平,相较于高端存储阵列产品,提升约21%。

某三甲医院挂号并发场景测试

在医疗行业,天津某三甲医院积极响应国家政策,致力于提升就诊体验和医疗服务效率。在国家大力推动医疗健康服务数字化转型的大背景下,该医院通过引入先进的数字化医疗平台和智能挂号系统,旨在打造具备行业领先优势的医疗服务平台,从而实现就诊便捷性和医疗服务质量的双重提升。

该医院拥有专业的医护团队和先进的医疗设备。在ZStack Cloud 5.0.0推出后,使用刚刚新推出的智能挂号系统挂载Vhost主存储进行测试。在测试中,相较传统的物理机+存储阵列解决方案,可支撑的挂号并发量提升63%,患者可以通过手机App或小程序预约挂号,无需排队等候,大大节省了患者的时间。实际挂号等候时间缩短了30%,患者就诊体验可以得到显著改善。

结语

新一代Vhost主存储系统以其创新的技术原理与显著的业务价值,为各行各业提供了高效、可靠且具成本效益的数据存储解决方案,有力推动各类企业应对现代数据挑战,实现技术突破。

云轴科技ZStack作为一家自主创新、专注产品化的云计算公司,打造好用的云产品,降低用户云计算使用门槛,是我们一直以来秉持的理念和践行方向。Vhost主存储功能的推出便是这一理念的有力实践。未来,我们会继续推出更多丰富好用的云计算产品功能,为用户创造价值。

升级提醒

若您选择升级至4.0.0及之后版本,请注意以下功能调整:

1. 云路由器全面升级为VPC路由器,云路由网络全面升级为VPC网络,不再单独设云路由器页面。升级全程无感知,相关业务不受任何影响。

2. 企业管理账号体系取代用户组与用户,不再单独设用户/用户组页面,不可再使用用户/用户组账号登录云平台。升级前,请先将“用户组与用户”纳管的账号数据妥善迁移至“企业管理”纳管,再执行升级操作。注意:对于admin创建并具备admin权限的用户账号同步取消,如有需要,可使用企业管理账号体系中的平台管理员实现相同功能。

3. 调整AD/LDAP与账户的对接管理方式,统一由企业管理纳管,不再单独设AD/LDAP页面。升级前,请先将“账户”对接纳管的AD/LDAP账号数据妥善迁移至“企业管理”纳管,再执行升级操作。

如对上述升级提醒有任何疑问或需要升级帮助,请联系ZStack官方技术支持

下载ZStack企业版

您已填写过基本信息?点击这里

姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

下载链接将会通过邮件形式发送至您的邮箱,请谨慎填写。

同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

下载ZStack企业版

还未填写过基本信息?点击这里

邮箱或手机号码格式错误
同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

验证手机号
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

登录观看培训视频
仅对注册用户开放,请 登录 观看培训视频

业务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

其他(漏洞提交、投诉举报等)

400-962-2212 转 3
ZStack认证培训咨询
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

业务咨询:

400-962-2212 转 1

ZStack学院:

training@zstack.io
申请ZStack多机版
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

业务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

其他(漏洞提交、投诉举报等)

400-962-2212 转 3
立即咨询
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

业务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

其他(漏洞提交、投诉举报等)

400-962-2212 转 3
培训认证合作伙伴申请
姓名应该不少于2个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
邮箱格式错误
城市名称不应该少于2个字符
公司名称不应该少于4个字符
职位名称不应该少于2个字符

同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

业务咨询:

400-962-2212 转 1

商务联系:

channel@zstack.io
ZStack&工信人才联合证书申请
已获得ZStack原厂证书
未获得ZStack原厂证书
请填写您的基本信息
姓名应该不少于2个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
邮箱格式错误
城市名称不应该少于2个字符
公司/学校名称不应该少于4个字符
证书类型
ZCCT
ZCCE
ZCCA
ZCPC-ISP
申请ZStack&工信人才联合证书须支付工本费,是否可以接受
同意 不同意

我已阅读并同意云轴科技 《法律声明》《隐私政策》用户管理规则及公约

业务咨询:

400-962-2212 转 1

商务联系:

channel@zstack.io

下载链接已发送至您的邮箱。

如未收到,请查看您的垃圾邮件、订阅邮件、广告邮件。 当您收到电子邮件后,请点击 URL 链接,以完成下载。

下载链接已发送至您的邮箱。

如未收到,请查看您的垃圾邮件、订阅邮件、广告邮件。
或点击下方URL链接 (IE内核浏览器请右键另存为), 完成下载:

感谢您使用 ZStack 产品和服务。

成功提交申请。

我们将安排工作人员尽快与您取得联系。

感谢您使用 ZStack 产品和服务。

信息提交成功。

我们将安排工作人员尽快与您取得联系,请保持电话畅通。

感谢您使用 ZStack 产品和服务。

预约沟通

联系我们

业务咨询
400-962-2212 转 1
售后咨询
400-962-2212 转 2
其他业务(漏洞提交、投诉举报等)
400-962-2212 转 3

联系我们

回到顶部

产品试用申请
请选择您要试用的产品
ZStack Cloud 企业版
ZStack Cloud 混合云版
ZStack Cloud 基础版
ZStack Cloud 标准版
请填写您的基本信息
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io

成功提交申请。

我们将安排工作人员尽快与您取得联系。

感谢您使用 ZStack 产品和服务。