华瑞指数云ExponTech WiDE极速IO引擎背后的故事播报文章

WiDE无量数据引擎第一版本的开发,ExponTech华瑞指数云几乎完成了不可能完成的任务。WiDE诞生背后有哪些故事?

01ExponTech为什么要做WiDE?

简单说,当前的存储技术和时代、用户需求有些脱节了。

存储技术发展至今历经多代,大家最为熟悉的两个阶段,一个是2010年以前的传统存储技术,标志是硬件绑定,厂家生产什么,用户买什么,如今的高端存储市场,传统存储依旧占据主流。

另一个是分布式存储技术的出现,标志是软件定义,对存储硬件不再强求,可以是专用存储,也可以是通用服务器,现在主要应用于中低端数据存储场景。

一个高高在上,放不下身段,传统高端存储技术性能好,但价格昂贵,承载冷数据或者温数据是杀鸡用牛刀;一个苦苦挣扎,却难以突破,分布式存储由于诞生的时代早,2010年主存以HDD机械硬盘为主,SSD技术还处于早期,甚至网络还是以TCP/IP为主,所以软件栈设计有很大的局限性,这直接导致分布式存储软件技术与硬件发展形成了断档。

传统高端存储无法飞入寻常百姓家,分布式存储1.0又难以扛起高端存储的大旗,在数据驱动发展的今天,给时代、用户带来诸多困扰。

正是出于这样的考量,ExponTech决心开发一款全新的产品来弥合传统高端存储与分布式存储之间的鸿沟,于是有了WiDE。

伴随WiDE的发布,其既具备SDS 1.0灵活的扩展性和软硬解耦的纯软产品结构,又具备当前定制硬件高端存储产品的所有特性,并且还拥有适应未来数据平台基础设施的全新能力,一石激起千层浪,对WiDE核心技术的讨论,对ExponTech开发团队的探讨不绝于耳。

02 Astrapi极速I/O引擎催生一群强迫症

WiDE作为整个软件定义存储的引擎,它的问世宣告着SDS 2.0时代的到来。Astrapi极速IO引擎作为WiDE最核心的技术之一,意味着IO引擎的再一次突破,代表着IO引擎创新大门的再次开启,宣告着新时代新硬件能力真正有了用武之地。

之所以这么说,是因为Astrapi极速I/O引擎拥有很多核心技术能力,比如全无锁的IO栈设计、全预分配内存管理、端到端实现全栈零拷贝的能力,对于CPU充分并且精准利用的能力等,每一种技术的实现都体现了整个团队对技术的极致追求。

重点讲两项技术,一个是IO栈无锁化设计,一个是内存管理机制。

上图是Astrapi IO流一个比较形象的示意图,由上到下是存储服务层及协议层、网络层和数据持久化层。Astrapi相当于修建了贯穿三层的许多条数据管道,每一条管道都会绑定自己专属的CPU核,从协议层开始,IO就会按照一定的Sharding机制,分配到某一个数据管道上,而每一条数据管道对进入管道的IO端到端负责到底,这些数据管道就像一条条高速真空隧道,许多的IO在里面穿梭,里面没有红绿灯,没有检查站,没有阻力,沿途也没有站需要停靠,也就是说每一个IO都可以没有任何等待和减速的过程,直接全速冲向目的地。

用专业的术语,这样的机制被称之为RTC, Run to completion,以及无锁数据通道。传统的IO管理方式之所以慢,是因为机制上是层层转发传递IO,依赖于操作系统内核调度和资源分配,依赖于锁机制实现资源的协同共享,依赖于中断机制实现层与层之间的异步消息传递。IO转发,线程上下文切换,IO中断,锁机制等都是需要消耗系统资源的,也就是增加了油耗。

Astrapi使用端到端无锁数据管道以及IO Sharding, 彻底改变了这一传统模式,让每个IO跑得快一些,再快一些的同时,消耗的资源也越来越少,完成了既让马儿跑的快,又让马儿少吃草的任务。

再看Astrapi极速I/O引擎中自研的内存管理机制。内存是计算机系统中仅次于CPU和CPU Cache的高速设备,所以很多人认为读写和拷贝几次内存,时间消耗可以忽略不计。中断是传统IO流程中必不可少的机制,用于协调高速的CPU对慢速的各种系统外部事件的处理,通常情况下中断开销占整个I/O时间很小的比例,但是释放了更多的CPU时间,因此中断给系统带来了效率提升。

但是,在一个极高速的IO处理系统中,每秒要处理几百万个IO, 每一个IO处理过程中所引入的内存拷贝及中断,其开销已经成为整个I/O处理时间中不可忽视的部分。

通过自研内存管理机制,计算侧:从协议侧IO接收,申请内存,IO处理,再到网卡发送,存储侧:网卡接收到IO,再到IO下盘,全路径没有任何内存拷贝,消除了用户态与内核态之间的内存拷贝,网卡缓存与系统内存之间的内存拷贝,消除了线程切换带来的上下文拷贝,也相应的消除了这些机制所依赖的中断调用,每秒消除数百万个类似开销,可以较大幅度提升系统的IO处理效率,还能够节省额外的CPU资源消耗。

极致效率,极致代码,一行都不能多余。近乎完美的要求,几乎把开发团队逼出了强迫症、代码洁癖。正是这样的精神,奠定了WiDE引擎高性能的基础。举个例子,WiDE单卷峰值IOPS能够轻松超过100w,而并发时延只有不到500 μs,要知道这是很多高端存储都达不到的能力。Astrapi极速I/O引擎在WiDE中的价值,可想而知。

03中国存储的引领者再次引领中国存储

事实上,ExponTech的高端专家团队都具有着存储或分布式存储行业10年以上的经验,他们可以说是中国存储行业的引领者和见证者,深知整个存储行业到了技术和产品的拐点,而现在他们正在再次引领中国存储行业。

听起来,这样的目标令人兴奋、血脉贲张,但整个过程面临的挑战、困难,恐怕也只有他们知道。试想一个名不见经传的手机公司上来就说要挑战苹果,其它人会怎么想?疯子、碰瓷、看笑话。

ExponTech面临着同样的问题,这其中最大的挑战有两个,一是行业的质疑,二是时间不等人。拿什么击碎行业的质疑?凭什么短时间内攻克即便大厂都需要更长时间才能攻下的难题?靠打嘴仗?没戏。两大法宝,一是经验积累,二是热情。

只要产品出来了,一切质疑就烟消云散了,这其中凝聚了ExponTech整个研发团队的经验、热情和汗水。

ExponTech研发团队的很多人都完成过行业多款明星存储产品的全产品化,对包括产品调研、原型开发、产品开发,质量测试全流程周期熟稔于心,对于很多行业的前沿架构和设计信手拈来,每一个架构设计和技术点,每个人都曾经在自己的脑子里推演过无数次,再加上大家都想做技术革命者的心态,这才使得整个开发时间极大缩短,只用一年就完成了其它团队2年,甚至3、5年才能完成的任务。

每一次突破背后都有很多故事,对于ExponTech这样的初创团队尤是,汗水、泪水交织,关于Astrapi极速I/O引擎的故事,就先讲到这里。