CNCC-2017-存储系统专题

阅前须知
本文分享内容来自CNCC存储系统相关的论坛内容,论坛名称为“下一代数据中心存储技术与系统”,此篇博文主要关注的是云计算环境下文件系统的发展趋势及研究点。
关键词:RDMA,bypass
阿里云高级总监,吴博士分享了阿里云存储几年来的经验教训,并讲述了存储系统的机遇。
个人感觉,吴博士之前的一位讲者肖教授总结得非常好,所以分享下他的Slide。
summary-xiao
在CNCC大会上,频繁听到的一个词是RDMA(Remote Direct Memory Access),这是种低延迟的通信解决方案,是高性能计算环境中的标配,正逐渐被cloud等多种环境采纳借鉴;另外一个高频度词是bypass,通过将不必要的软件操作短路(通常是内核)来降低软件栈开销。这两个词在吴博士的分享中也被提到多次。
吴博士首先概述了阿里云存储提供的几种类型的存储服务,包括对象存储,块存储,日志存储等,并提到盘古的分层架构。接下来我将按照吴博士阐述的几个方面,进行简单介绍。
pangu
Storage Disaggregation
随着网络带宽的提高,从网络上直接存取数据的延迟比从disk上存取数据的延迟更低,因此存储计算分离的设计被越来越多的公司采用,因为这可以进一步提高大规模计算的扩展性,可靠性。我们需要意识到的是,网络是云计算的根本。因此,从网络上研究,如何更好地支持存储,是一个很好的方向及研究点。
storageDisaggregation
Centralized Metadata Management
中心化的元数据管理,比分布式的管理效率更高,但前提是要保证避免spof(single point of failure)。
centralizedMetadata
控制平面与数据平面的分离
尽量将正交的操作分离,避免相互影响。提到这个方面,我想到了针对Spark Streaming进行的一个优化,就是将控制平面与数据平面进行了分离,传送门
Predictability
性能具有可预期性,是系统的一个非常好的表现,也是做系统的人的不懈追求。
predictability
When Software becomes the BottleNect
从传统的软件中可以看到时代的背影,当年对内存是像对待黄金一样珍惜,而随着技术的发展,内存越来越大,价格越来越低,应用可以更多地将数据置于内存,而不用精心设计如何与磁盘打好交道来提高效率。类似的道理,传统的软件栈可能在新时代的场景下不再是最优的方案,内核的TCP/IP协议栈对每个tcp连接都需要插手管理,低延迟,高并发的应用是不能忍受频繁的内核态、用户态切换,数据copy等开销的,所以利用RDMASPDKDPDK等技术进行性能的提升成为了一种趋势。此外,面临新型存储介质及其他设备如何才能更好地发挥他们的价值,如何重构现有的软件栈以适应新事物,这些都是要考虑的问题。
softwareAsBottleneck
重要的经验
吴博士参与设计开发过多个系统,遇到过许多坑,分享了许多重要的经验,包括:
1)系统及性能的可调试性,系统的debugability是非常重要的一个属性,Twitter开发的新一代流处理计算平台Heron的一个很重要的设计目标就是便于跟踪、监控,我们需要的是白盒,尽量避免使用黑盒,系统人员要能看到底,不希望眼前都是透明的。
2)动态参数的调整,避免重新发布来调整参数
3)自我调整及自我检测以提高自适应能力
4)硬件+软件+App(ml,db,IoT等)codesign,高效率的系统肯定要考虑全局,当贯通了必要信息,一个决策才是比较优化的。Motivation是进行设计的出发点,结合需求/workload/场景来设计是重要原则。吴博士当时极力推荐阅读一篇论文,那是一篇2017年4月的论文,Attack of the Killer Microseconds,提出要跟随技术的发展,对微妙级延迟进行多加关注。
5)Intelligence,ML,IoT things,Serverless computing
存储系统作为计算机领域中的系统,不能只专注于存储系统自身的发展,需要及时跟进吸收计算机其他领域的知识,乃至跟计算机无关的领域。整个世界的联系越来越紧密,交叉学科、思维借鉴、组合创新,均不可或缺。
本人不是单纯地复述吴博士的观点,某些内容包含了个人的一些见解,还是希望感兴趣的去看下会议记录的直播回放,内容更加详细完整,视频地址为:https://www.yizhibo.com/l/MZDn3Rtut0Fy-ViZ.html,感谢东南大学参会学生提供的直播视频。
上一篇cncc专题文章:2017CNCC开幕日特邀报告