实际场景中,云原生存储面临的 7 个挑战
作者 | Eric Li (壮怀) 阿里巴巴云原生存储负责人
引言
随着云原生应用对可迁移性、扩展性和动态特性的需求,对云原生存储也带来了相应的密度、速度、混合度的要求,所以对云存储基本能力之上又提出了在效率、弹性、自治、稳定、应用低耦合、GuestOS 优化和安全等方面的诉求。参考《云原生存储和云存储有什么区别?》
新的企业负载/智能工作负载容器化、迁云、存储方面遇到的性能、弹性、高可用、加密、隔离、可观测性及生命周期等方面的问题,不但需要存储产品层次的改进,还需要在云原生的控制/数据平面的改进,推进云原生存储和云存储的演进。下文将分别介绍一下问题场景及问题,探讨可行的解决方案,最终可以得出云原生存储、云存储目前可以做什么和未来还需要做什么。
存储性能
长时延增加
场景
高性能计算场景中,集中处理批量数据,通过容器集群,同时启动数千 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 和效率等能力的集合;
- 分层存储,不重新发明轮子;
- 新的工作负载推进云原生存储和云存储的演进,云原生控制平面实现效率,自治方面能力,从数据面提升存储稳定和减小安全隐患,云存储继续夯实性能,容量,弹性,密度等基础能力,共建云原生环境下的存储生态。
在云原生存储 v2 的演进过程中,仍然需要容器团队和存储团队,通力合作,共同提升的云原生时代的存储能力。
“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的公众号。”
实际场景中,云原生存储面临的 7 个挑战相关推荐
- 云原生存储系列文章(一):云原生应用的基石
作者| 郡宝 阿里云技术专家 参与文末留言互动,即有机会获得赠书福利! 导读:存储服务支撑了应用的状态.数据的持久化,是计算机系统中的重要组成部分,也是所有应用得以运行的基础,其重要性不言而喻.在存储 ...
- 在 KubeSphere 中使用 Rook 构建云原生存储环境
作者:尹珉 Rook 介绍 Rook 是一个开源的云原生存储编排器,为各种存储解决方案提供平台.框架和支持,以便与云原生环境进行原生集成. Rook 将分布式存储系统转变为自管理.自扩展.自修复的存储 ...
- 打破云原生时代存储瓶颈,SmartX 发布 K8s 云原生存储 IOMesh
编辑 | 宋 慧 供稿 | SmartX 头图 | 付费下载于视觉中国 专业超融合与分布式存储产品与解决方案提供商 SmartX 发布为 Kubernetes 设计和开发的云原生存储产品 IOMesh ...
- 分布式,集中式,云原生存储技术
分布式,集中式,云原生存储技术 分布式存储软件是真正的统一存储,实现同一套存储系统为上层应用提供块.文件和对象三种数据服务,满足业务对结构化和非结构化数据的存放需求,内置数据保护功能,例如:备份.容灾 ...
- 云原生存储详解:容器存储与 K8s 存储卷
作者 | 阚俊宝 阿里云技术专家 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新的机遇与挑战.本文为该系列文章的第二篇,会对容 ...
- k8s挂载目录_云原生存储详解:容器存储与 K8s 存储卷
作者 | 阚俊宝 阿里云技术专家 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新的机遇与挑战.本文为该系列文章的第二篇,会对容 ...
- 聊一聊单机、集中式、分布式和云原生存储
点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 背景 本文主要对 ...
- docker修改镜像的存储位置_云原生存储详解:容器存储与 K8s 存储卷(内含赠书福利)...
作者 | 阚俊宝 阿里巴巴技术专家 参与文末留言互动,即有机会获得赠书福利! 导读:云原生存储详解系列文章将从云原生存储服务的概念.特点.需求.原理.使用及案例等方面,和大家一起探讨云原生存储技术新 ...
- 图文存储常识:单机、集中、分布式、云、云原生存储
背景 本文主要对杨传辉(日照)<大规模分布式存储系统原理解析与架构实战>.大话存储.网络资源(具体参考文末链接)及个人理解进行整理,意在构建出存储发展基本轨迹和一些基本常识,让更多像我一样 ...
最新文章
- 面试题之在字符串中查找出第一个只出现一次的字符的位置
- vue中搜索关键词,使文本标红
- python卸载不了怎么办说目录有错_错误:无法在安装目录中创建或删除文件
- Tomcat集群---Cluster节点配置(转)
- docker 查看容器_Docker介绍
- python wand安装_安装PythonMagick和pythonmagickwand 步骤
- linux mysql revoke_Linux环境下MySQL基础命令(4)----数据库的用户授权
- 【OJ】洛谷试炼场の新手村整合(Java语言描述)
- LogManager分析
- android百度地图地址解析失败怎么办,【百度地图API】当地址解析失败时,如何调用search方法查找地址...
- Android 串口开发
- matlab进行分子动力学模拟,一种基于分子动力学模拟测试碳纳米管力学性能的方法与流程...
- overleaf使用指南以及最基本LaTeX语法回顾(二)
- 摩尔庄园怎么显示全部服务器,摩尔庄园手游怎么看自己玩的什么服,服务器查看区别方法...
- Outlook分组后,为什么桌面和收件箱无提示
- Beyond 预训练语言模型,NLP还需要什么样的知识?
- Syntax error parameterized types are only available if sourc
- Lua-cjson使用笔记
- windows8 文件属性没有“安全”选项卡
- QMessageBox 调整大小
热门文章
- Windbg新手入坑指南
- Python利用pymysql连接Mysql数据库
- 【PAT乙级】1001 害死人不偿命的(3n+1)猜想 (15 分)
- 数据控制语言(DCL)语法合集
- Java之String,StringBuffer,StringBuilder
- 太炫酷了!逼格高的键盘敲代码贼爽!包邮送到家!
- 送一台电脑显示器,我每天办公都用它,安利!
- java使用websocket前后端通信实现
- 2021-9-下旬 数据结构-线性表-双向链表-java代码实现(复习用)
- Android之内存管理-内存监测-内存优化