2018存储半导体大会上,阿里云高级技术专家袁经凯带来了题为《混合云场景下的的高性能存储》的主题演讲,介绍了阿里云在混合云场景下高性能存储的实践。
其核心的内容是:如何将本地传统的存储系统与公共云更好地融合在一起,使得用户无需关心数据的物理位置,只需要聚焦具体的业务实现。为此,不得不从技术手段克服很多问题,特别是本地和云端的数据自由流动,以及面向应用的存储性能一致性等。在具体实践中,阿里云实现了分布式的高性能存储网关,但这个网关跟我们原来认识的网关又不一样,究竟有什么不一样呢?我们还是来看看,他是怎么说的吧。
以下是现场速记:
大家好,我叫袁经凯,我来自阿里云,主要负责阿里云混合云存储架构方面的一些工作。这两天我们听到了许多关于高性能存储介质和Fabric优化的内容。今天我的主题是混合云场景下的的高性能存储,尝试从另外一个角度看待不断演进的高性能介质,也即是在具体场景下,特别是在和云结合的场景下,如何拥抱高性能存储带来的变化?以及相衍生的新的存储产品形态等,这是我们当前考虑的问题。
我们首先回顾一下过去存储介质的发展,从早期的Hard Drive,到后来的SSD,以及最新的Persistent Memory(持久内存)。Hard Drive大概在十毫秒左右的时延,到SSD是亚毫秒的时延,到Persistent Memory(持久内存)直接到了纳秒级的时延表现,可以看到整个存储介质是在快速的进化当中。而从另外一个角度讲,我们对存储介质的性能行为定义也在发生着变化。不光是单纯的IOPS或者Throughput,现在也更加关注性能的可靠性和稳定性方面。
而存储介质只是存储系统的一部分,存储系统的不同的部署形态对整个存储性能也有很大的影响或约束。早期单机的类似DAS直连的形态,性能受限于外部总线的发展;在数据中心的部署下,会看到SAN或者NAS的存储形态,性能行为也受到Fabric的影响,如Ethernet、FC,InfiniBand和NVMe over fabric等;而在云环境下,特别是在混合云环境下,数据在公共云和专有云中之间自由流动,如何从用户的角度实现统一的数据视图以及统一的存储性能表现,是一个比较大的挑战。
我们看一下云环境下工作负载的部署策略。从传统的观点来说,云端提供计算和存储的弹性,适合动态或较难预测的工作负载,同时提供更好的运维管理能力;而私有的数据中心更多是IO或计算密集的场景,或者是对时延要求比较高的形态,这也是传统架构的特点。
而如今,公共云在快速的演进当中,整个公共云的存储生态也在不断的扩展,覆盖更丰富的业务负载。例如,性能上阿里云发布了百万IOPS和亚毫秒时延的ESSD;而存储形态上,提供OSS对象存储,容量型及性能型NAS,弹性的块存储服务等;而从上层的数据层面来看,提供缓存、消息队列,以及RDS,NoSQL等多样的数据服务。
但显而易见的是,未来很长时间都会是公共云、专有云共存的形态。所以,如何实现公共云和专有云之间数据的自由流动,如何做到业务无感知,用户不需要关注数据的位置,实现数据的融合和自由迁移非常重要。
理想状态下,公共云和专有云之间的连接应该是如图所示的状态,使得公共云的计算侧能访问线下的数据,线下计算能访问线上的存储,存储和存储之间能实现统一的管理,这是我们需要做到的。
这是当前最常见的线下存储和线上存储之间的互联状态。将传统的存储阵列进行扩展,提供了与云相集成的能力,从而充分利用云端存储在弹性和低成本,以及安全和高可靠性上的优势,使得存储阵列承载高性能场景之外更多的业务形态,这是非常直观的需求。
传统存储有分层和缓存的概念,以及容量层和性能层等这样的分层结构。很自然,我们可以把当前云端存储,例如阿里云OSS存储看作新的存储层次。通过引入云缓存、云分层、云备份等服务,可以按策略实现数据在本地的高性能存储以及云端的自由放置,从而实现存储在成本,安全和高可用上的优化,这是一个直接的云集成解决方案。
另外,我们经常会遇到的“Cloud Burst”问题,需要云上弹性的计算能力解决云下动态的数据处理需求。这时候线上的计算和线下的存储如何互联,如何保持像线下计算访问线下存储那样的一致的性能行为,是要解决的一个问题。
当前的一个解决方案是“Colocation”的部署方式。线下的IDC实现企业托管的高性能存储阵列和公共云高速连接PoP点的直接互联,从而保证云上计算服务对线下存储的低时延访问,使得计算能平滑迁移到云端。
当然,这种场景有一些限制,受限于公共云高速连接以及IDC机房的地域分布限制,同时也无法支持跨域访问。而且还需要了解用户的用户场景对SLA的要求,然后根据链路时延进行评估和可行性分析。
这是一个基于“Colocation“的典型的云分析业务场景。用户在边缘侧(Edge Storage)进行数据收集;边缘侧与Colocation服务下的高性能存储通过数据复制服务进行数据交互;而高性能存储和ECS计算实例之间,基于高速的数据访问,反复迭代计算生成训练模型,然后将模型同步到边缘侧,在边缘进行推断。
上面的云集成和“Colocation”两个方案解决了线上存储和线下存储以及线下存储和线上计算的集成,但是离我们理想情况还有一定的距离,也即如何把线上线下存储作为资源池做统一的管理,从而对计算来说,如何做到存储无差别,这也正是我们混合云需要解决的问题。
我们提出高性能的混合云存储网关的概念。
新兴技术成熟度曲线(编者注图)
Gartner在新兴技术成熟度曲线中认为云存储网关是一个淡化中的存储形态,这里其实是把存储网关单纯的当成传统的协议桥接。而我们将网关看作一个演进的存储形态:一方面,它会比其他存储更靠近计算侧,它会拥抱高性能存储介质带来的变化,比如SSD或者Persistent Memory,从而作为一个高性能Cache形态;
而另一个方面,云存储网关承载传统SDS(软件定义存储)的业务,作为存储虚拟化的一部分,帮助我们把线上线下的异构存储形态集成起来,让用户的存储成为一个整体。
我们实现了这样的云存储网关,它可以看做是云存储生态的一部分。对外的前端支持不同的存储协议,包括iSCSI,对象或者NAS,后端对接我们的传统数据中心和公共云。通过实现了一个虚拟化的存储层次,既可以对接线上的不同的存储生态,像我们的云端OSS和NAS,也可以对接线下的存储生态,最终形成统一的Storage Pool(存储池)的概念。我们也支持灵活的部署方式,既有Virtual Appliance(虚拟化设备),也有Bare metal(裸金属)的部署。
整体上它实现了一个全局的缓存服务,这种缓存服务与我们现有的分布式缓存在实现上有不一样的地方。举个例子,针对不同客户的场景我们会有不同的一致性实现,比如在多点协同的场景,很多只需要最终一致性的语义。所以云存储网关会考虑混合云场景下性能和一致性间的多种权衡和实现策略,以适应的不同业务需求。
所以,从宏观的角度看云存储网关的形态,它可以支持线上线下部署,靠近线上线下计算侧。用户看到的是Global Name Space(全局命名空间),它将线上线下存储结合起来形成统一的数据视图,从而接入传统的企业存储和线上的存储生态,形成完整的生命周期管理。并以此解决混合云场景下的各种问题,比如数据及应用的平滑迁移,基于策略的成本管理控制等。
最后,我们看一下整个阿里云混合云存储全景实现。
首先,我们支持云上云下快速的离线和在线的数据迁移。实际应用中,我们帮助115网盘完成百PB级的数据迁移;我们支持数据和应用在云上云下的备份和容灾,提供容灾一体机以及BaaS(Backup as a Service)和DRaaS(Disaster Recovery as a Service)服务;我们提供硬件和软件形态的云存储网关和云存储阵列,作为企业存储生态的一个重要组成部分;同时,我们和第三方的存储阵列厂商进行合作,提供灵活的集成策略,像SDK或VM,Container的等方式的集成,帮助传统厂商快速实现云集成能力。
以上是整个阿里云混合云存储的简单介绍。混合云存储生态以及云存储网关在不断演进当中,我们后续会继续关注如何针对现有的SSD和持久内存做进一步的优化,这是我演讲的主要内容,谢谢大家!