明明是全闪存阵列,为何存储性能仍然不够快

简介:

软件定义的超融合虽然有着诸多的优势,但对软件开发商提出了非常高的要求,他们非但要精通各种语言、系统和架构,还必须要熟悉硬件本身的性能,这样才能够保证开发出来的软件能够全部发挥硬件的性能。

软件定义基础架构,软件定义存储,软件定义存储。目前,用软件定义超融合的方式替代专用服务器、专用网络、专用存储设备等传统基础架构的方法,已经成为了行业的热点。英特尔系统架构师朱海峰先生曾在某超融合大会上公开表示,未来的大型数据中心的建设,将采用标准X86硬件构建作为整个数据中心的基础架构,通过软件厂商比较强的软件定义能力来实现存储、网络和计算等功能,并通过各种软件定义的解决方案来实现超融合。这也就意味着,软件定义已经成为行业的重点技术。

软件定义的主要目的是减化部署流程,提高易用性,降低运维成本。当然,最重要的是能够发挥硬件的全部性能,合理分配利用硬件资源,节省硬件开支。

不过,软件定义的超融合虽然有着诸多的优势,但对软件开发商提出了非常高的要求,他们非但要精通各种语言、系统和架构,还必须要熟悉硬件本身的性能,这样才能够保证开发出来的软件能够全部发挥硬件的性能。

关于软件定义带来的硬件性能的损失,比较典型的例子就是软件定义存储导致的磁盘性能的下降,这主要是在全闪存时代背景下,磁盘性能有了非常大的提升,如果在软件定义的过程中还是按照传统机械硬盘的性能还编写系统,那就完全无法发挥闪存的性能。笔者在某超融合的大会上,就曾遇到过一家专门作软件定义存储解决方案的厂商,它们针对Flash时代开发出了裸金属软件定义存储技术,非常好的解决了软件定义存储无法充分发挥全闪存硬件性能的问题。

这里,笔者与大家共同分享一下他们的解决方案和研发思路,希望对大家有所启发。

我们知道,在Flash之前,存储性能的发展是严重滞后于其它硬件性能的发展的,虽然大家通过各种方法来提高磁盘的存储性能,但相较于其它硬件的发展,存储的性能提升并不理想。在Flash时代,存储硬件性能的问题迎刃而解。不过,很多厂商在替换全闪存阵列后,发现存储的性能并没有提高多少,这主要是软件和系统出现了问题。

由于Linux标准的API并没有提供高性能的场景设计,因此操作系统成为了影响系统整体性能的瓶颈,无论你在一个设备上插入多少硬件,调用多少资源,都会发现一个节点一二十万iops就到了这些软件定义存储的上限了,这是因为Linux系统的任务调度,内存管理,以及系统调用,都是非常缓慢,完全不适合Flash时代的需求。

如何解决这一问题呢,裸金属软件定义存储技术是通过以下两种方法解决的:

一是硬件访问要绕过操作系统(stack-bypass);

二是软件运行要绕过操作系统(os-bypass)。

对于硬件的访问要绕过操作系统(stack-bypass)这种技术业内已经有相对比较成熟了,也比较容易实现。比如英特尔提供的DPDK/SPDK,Mellanox的RDMA,都不需要经过操作系统就可以直接访问硬件。但是,软件运行绕过操作系统(os-bypass)的难度却比较大。首先,要绕过操作系统的内存管理,直接访问物理内存,自己来实现内存管理,这中间要考虑NUMA,染色等问题,工程量非常大。其次,任务调度也要考虑的非常清楚,过去解决高并发问题的时候大家就会采用多线程的机制,但是多线程一般在数百并发的时候会变得比较困难,通过引入了协程技术,把任务之间的协作来分配时间片,每个任务处理完之后自动放弃时间片,而不是操作系统让他强制放弃时间片。另外,在事件处理上过去通过操作系统标准来实现,每个事件都跟时间有关,包括硬件系统的时钟中断。但是这个技术并不是非常的高效,在这方面可以采用polling技术,没有时间延期的。

在多核同步上,目前 CPU的核数越来越多,过去编程的时候大家会采用生产者、消费者模型,用线程用来处理任务,但是到现在多核同步并不是一个非常高效的方案,这主要是因为NUMA和cachemiss问题,虽然说NUMA问题CPU解决的还可以,但是仍然不够理想,这时可以采用run-complete模型,每个CPU的核从他接受到任务,到完成任务中间不再任何跳转,避免隐性的CPU开销。

通过以上的方案,能够拿掉尽可能多的环节,包括进出Linux的网络堆栈、Linux的存储堆栈,这样就能够让剩下的流程全是在硬件上运行的。最后,通过这些技术的运用,能够让存储的性能与硬件性能几乎完全一致,不带来硬件性能的任何衰减。

以上,是某厂商针对全闪存时代在软件定义过程中出现的影响硬件性能的解决方案,笔者分享给大家,希望提供一些参考。

本文转自d1net(转载)

目录
相关文章
|
14天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
6天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
9天前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
848 25
|
8天前
|
机器学习/深度学习 人工智能 搜索推荐
万字长文深度解析最新Deep Research技术:前沿架构、核心技术与未来展望
近期发生了什么自 2025 年 2 月 OpenAI 正式发布Deep Research以来,深度研究/深度搜索(Deep Research / Deep Search)正在成为信息检索与知识工作的全新范式:系统以多步推理驱动大规模联网检索、跨源证据。
583 46
|
2天前
|
监控 BI 数据库
打工人救星!来看看这两家企业如何用Quick BI让业务更高效
Quick BI专业版监控告警助力企业高效运作,通过灵活配置规则与多渠道推送,让数据异常早发现、快响应,推动业务敏捷决策与持续增长。
打工人救星!来看看这两家企业如何用Quick BI让业务更高效
|
8天前
|
人工智能 Java Nacos
基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南
本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。
565 42