目前CPU的速度已经很快了,但是我们近年来面临的一个大问题是想办法最大限度地减少等待时间,快速获取结果,从而使系统整体效率保持在最佳水平。最近的熔断和幽灵漏洞不仅带来了很多安全问题,从另一方面,它们也暴露了现代CPU的工作原理、优化程度以及数据损耗问题。
传统的通过CPU优化数据流的方法已经达到了极限,目前大家开始将方向转移到用存储平台运行某些计算任务。
将数据和CPU紧密结合
多年来,由于技术发展的限制,存储行业只能通过缓存和自动分层来加速存储访问。不过这种办法是在成本和效率之间的折中,延迟和吞吐量并不能完全满足CPU、RAM和网络的需求。
闪存改变了这一状况,其延迟、吞吐量和IOPS都不是问题,闪存的出现让数据比以往任何时候都要接近CPU。如:NVMe消除了传统接口的复杂性和局限性,现在则可以将存储设备直接连接到服务器的PCIe总线。
最近,随着新型存储设备的引入,延迟大幅降低,已经可以满足CPU对延迟的要求。但是问题解决了吗?并不完全是。
现在我们面临的问题是数据大量增加,并且增长速度极快,数据在大型共享设备之间进行传输的时候产生了新的瓶颈,如网络带宽。当硬件出现故障时更会引发一系列别的问题。目前广泛使用的仍然是横向扩展架构,这种架构增加了延迟,并且使数据迁移变得更加复杂,成本更高。
让CPU更接近数据
之前就有人提出将CPU任务卸载到存储基础架构这一概念,自从RAID控制器及其提供的数据服务兴起依赖,这一概念更是得到了广泛应用。例如卷克隆之类的功能都是通过在阵列内部复制数据来消除服务器和存储阵列之间的流量。
现在芯片技术发展很快,通过在设备上执行一些过去在CPU上执行的一些计算任务可以减少数据迁移,节省带宽,提高整体并行性从而提高整个系统的效率。
我们无法将最新的Intel X86 CPU和小型双核ARM设备进行比较,但是我们可以拥有数十个小的CPU,通过足够的RAM和连接让他们执行许多简单的任务。由存储设备执行的这些操作可以将数据保持在本地,将延迟降到最低,同时可以提高整体并行性和系统效率。另外由于故障域较小,可以提高整个基础架构的可扩展性。
OpenIO是一家计算存储公司,它们把开源软件运行在标准的硬件上,已经在计算存储方面取得了巨大进展,nano-node就是一个例子。
最近,OpenIO正在与硬件公司合作,工作成果很快就可以展示出来。目前一些初创公司已经在设计旨在加速特定工作负载的计算存储设备,不过这只是一个开始。这方面的明星创业公司包括ScaleFlux和NGD System。
Serverless成为计算存储的关键
为了使计算存储能够广泛使用,我们必须将它简单化。目前最简单的编程模型就是Serverless计算。
其函数是一小段代码,它的运行时间很短,通常由事件触发。它们通常对底层硬件一无所知。另外对象存储非常适合Serverless计算。如果有支持KV存储的SSD,就更方便了。
计算存储的过程非常简单。设备读取或删除的每个数据位都可以创建可触发功能的事件。功能暂时存在于缓存容器中,并执行简单的任务,如检查数据的有效性,过滤不必要的信息,扫描特定的模式,甚至进行更复杂的操作,如图像识别,视频采样等。应用程序范围很广,这样就可以通过隐藏基础架构的复杂性来解决可伸缩性问题。
开发人员只需编写于特定文件类型、事件或操作相关联的几行代码即可,存储结构件在有需要时部署此代码完成相应的工作。
让CPU接近数据和让数据接近CPU还是有很大不同的。
未来已来
目前这些设备已经可以投入使用,而且这些强大的开发软件是开源的。
我们坚信对象存储和Serverless计算的结合是对可扩展性,性能优化和效率问题的最好解决方案。对象存储带来了可靠的分布式存储层,Serverless计算以轻量级和超级扩展的方式在本地对数据进行操作,这不止是超融合(hyperconvergence)。
可惜的是上述模型仅仅适用于非结构化数据,不过一些初创公司已经采取类似的方法在具有嵌入式计算功能的主板设备上进行计算工作。
闭环操作
计算存储还没有被广泛使用,目前它只被应用于大规模基础设施中。但是相关应用程序的数量正在迅速增长。如工业物联网和边缘计算需要简单但功能强大的基础设施,同时必须具有持久、可靠的传感器数据存储,还需要CPU来验证数据,对其进行优化,同时决定应将那些内容发送到用于长期存储,大数据分析或其他操作的云。
在不久的将来,随着价格的降低和闪存技术的成熟,相信我们会看到越来越多的计算存储设备和无服务器框架,纳米节点、微服务器和专用PCIe卡只是一个开始。
全部0条评论
快来发表一下你的评论吧 !