Abstract
新的企业负载/智能工作负载容器化,迁云,存储方面遇到的性能,弹性,高可用,加密,隔离,可观测性,生命周期等方面的问题,不但是需要存储产品层次的改进,更需要在云原生的控制/数据平面的改进,推进云原生存储和云存储的演进。以下分别介绍一下问题场景,问题,探讨可行的解决方案,最终可以得出云原生存储,云存储目前可以做什么和未来还需要做什么。
存储性能
长时延增加
场景:高性能计算场景中,集中处理批量数据,通过容器集群,同时启动数千Pod,弹出数百ECS对共享性文件系统读写
问题:重负载终负载下时延增加,高延迟毛刺增多,读写稳定性不足
解决方案:
- 分散负载到多文件系统,通过容器编排分散IO到多文件系统
- 存储产品的盘古2.0改造
集中式高吞吐写对共享存储池冲击
场景:高性能计算场景中,集中处理批量数据,10Gbps读写请求进入同一存储集群
问题:同一存储集群中的带宽挤占,造成访问质量下降
解决方案:
- 分散负载到多文件系统和多个存储集群/多个可用区,通过容器编排分散IO到多文件系统
- 使用独占高性能并行文件系统
峰值吞吐不足
场景:大规模生物数据处理, 文件数目少,峰值吞吐高10Gbps-30Gbps,请求密集1W/s
问题:接近独占集群的极限带宽
解决方案:
- 读写分流,分流读请求到OSS,写请求负载分流到独占文件系统和本地/远程块存储,通过容器编排分散IO到多文件系统
- 使用应用层分布式缓存降低网络读IO
- 存储产品的盘古2.0改造
时延增加导致GPU等待
场景:多机多卡GPU训练,直接读取OSS数据,读密集型
问题:时延增加导致IOwait, 和GPU等待
解决方案:
- 应用层透明POSIX读访问OSS
- 使用应用层分布式缓存降低网络读IO
存储弹性
场景:
- 数据库扩容, MySQL and etc
- 元数据管理应用在线扩容 Zookeeper/etcd
- 本地盘存储容量无法扩容
解决方案:
- 云盘在线扩容,应用控制面文件系统/逻辑卷离线,在线扩容能力
单机云盘挂载密度 - 存储产品ESSD的替换使用
存储高可用
场景:
- 应用运维,系统运维
- 块存储随容器迁移的稳定性和可发现性
解决方案:
- 控制平面声明式存储快照,备份,定时快照备份,本地快照加速备份和恢复
- 控制平面云盘SerialNum的可发现性改造
存储的加密
场景:
- 用户应用的全链路数据加密需求
- 操作系统盘加密
解决方案:
- 产品存储的CMK,BYOK支持
- 控制平面的加密声明支持
- RAM权限的最小化控制
存储的隔离性
场景:
- 单盘多应用共享,单机日志盘块存储切分
- 单块本地盘/云盘吞吐能力不足
- 文件系统多租户环境的容量配额
- 集群级文件系统共享访问的权限控制
解决方案:
- 控制面LVM切分,控制面块存储blkio buffer IO应用级限速
- 控制面LVM多盘聚合和条带
- 存储产品共享文件系统的目录级Quota
- 控制面文件系统的目录级ACL
存储的可观测性
场景:
- 多租户Zookeeper/etcd,租户/应用级的IO指标监控和预警
解决方案:
- 控制面应用级IO Metrics采集能力
- 控制面设备级 IO Metrics采集能力
- 控制面挂载点级 IO Metrics采集能力
存储的生命周期
场景:
- 共享文件系统/缓存系统的声明式创建和删除
解决方案:
- Operator: 云盘/本地盘 (TiDB)
- Operator: 文件系统, CPFS
- Operator: 对象存储
云原生存储 v2
针对以上在新的计算模式下,存储方面遇到的性能,弹性,高可用,加密,隔离,可观测性,生命周期等方面的问题,不但是需要存储产品层次的改进,更需要在云原生的控制/数据平面的改进,在不久的将来实现稳定,安全,自治,和效率并举的云原生存储v2
- 稳定:阿里云存储的全品类支持可观测性, Flexvolume and CSI plugins/IO metrics (CSI for 1.14)
- 安全:全连路数据存储的可靠/可信存储支持,CSI 快照加密,系统盘加密。
- 自治:云盘快照 /本地快照 ,离线在线的存储扩容能力, 元数据自动发现
- 效率:I/O隔离 、可伸缩性/云盘再次分割提升密度/分布式存储缓存
总结
- 云原生存储是云存储UI
- 分层存储,不重新发明轮子
- 新的工作负载推进云原生存储和云存储的演进,云原生控制平面实现效率,自治方面能力,从数据面提升存储稳定和减小安全隐患,云存储继续夯实性能,容量,弹性,密度等基础能力,共建云原生环境下的存储生态。