引言
随着云原生应用对可迁移性、扩展性和动态特性的需求,对云原生存储也带来了相应的密度、速度、混合度的要求,所以对云存储基本能力之上又提出了在效率、弹性、自治、稳定、应用低耦合、GuestOS 优化和安全等方面的诉求。
新的企业负载/智能工作负载容器化、迁云、存储方面遇到的性能、弹性、高可用、加密、隔离、可观测性及生命周期等方面的问题,不但需要存储产品层次的改进,还需要在云原生的控制/数据平面的改进,推进云原生存储和云存储的演进。下文将分别介绍一下问题场景及问题,探讨可行的解决方案,最终可以得出云原生存储、云存储目前可以做什么和未来还需要做什么。
存储性能
1. 长时延增加
场景
高性能计算场景中,集中处理批量数据,通过容器集群,同时启动数千 Pod,弹出数百 ECS 对共享性文件系统读写。
问题
重负载终负载下时延增加,高延迟毛刺增多,读写稳定性不足。
解决方案
2. 集中式高吞吐写对共享存储池冲击
场景
高性能计算场景中,集中处理批量数据,10Gbps 读写请求进入同一存储集群。
问题
同一存储集群中的带宽挤占,造成访问质量下降。
解决方案
**3. 峰值吞吐不足**
场景
大规模生物数据处理,文件数目少,峰值吞吐高 10Gbps-30Gbps,请求密集 1W/s。
问题
接近独占集群的极限带宽。
解决方案
时延增加导致 GPU 等待
场景
多机多卡 GPU 训练,直接读取 OSS 数据,读密集型。
问题
时延增加导致 IOwait 和 GPU 等待。
解决方案
存储弹性
数据库扩容, MySQL and etc;元数据管理应用在线扩容 Zookeeper/etcd;本地盘存储容量无法扩容。
存储高可用
应用运维,系统运维;块存储随容器迁移的稳定性和可发现性。
控制平面声明式存储快照,备份,定时快照备份,本地快照加速备份和恢复;控制平面云盘 SerialNum 的可发现性改造。
存储的加密
用户应用的全链路数据加密需求;操作系统盘加密。
产品存储的 CMK,BYOK 支持控制平面的加密声明支持RAM 权限的最小化控制
存储的隔离性
存储的可观测性
多租户 Zookeeper/etcd,租户/应用级的 IO 指标监控和预警。
存储的生命周期
共享文件系统/缓存系统的声明式创建和删除。
云原生存储 v2
针对以上在新的计算模式下,存储方面遇到的性能,弹性,高可用,加密,隔离,可观测性,生命周期等方面的问题,不但是需要存储产品层次的改进,更需要在云原生的控制/数据平面的改进,在不久的将来实现稳定,安全,自治,和效率并举的云原生存储 v2。
稳定:阿里云存储的全品类支持可观测性, Flexvolume and CSI plugins/IO metrics (CSI for 1.14);安全:全连路数据存储的可靠/可信存储支持,CSI 快照加密,系统盘加密;自治:云盘快照 /本地快照 ,离线在线的存储扩容能力, 元数据自动发现;效率:I/O 隔离 、可伸缩性/云盘再次分割提升密度/分布式存储缓存。
需要在云原生应用层、存储云产品层、底层存储适配和存储核心层都需要做相应的改进和提升才有可能提供更加稳定,安全,自治和高效的面向应用的云原生存储。
总结
云原生存储是云存储 UI 和效率等能力的集合;分层存储,不重新发明轮子;新的工作负载推进云原生存储和云存储的演进,云原生控制平面实现效率,自治方面能力,从数据面提升存储稳定和减小安全隐患,云存储继续夯实性能,容量,弹性,密度等基础能力,共建云原生环境下的存储生态。
在云原生存储 v2 的演进过程中,仍然需要容器团队和存储团队,通力合作,共同提升的云原生时代的存储能力。