前言
Forrester 预测到2022年, 全球组织/公司在生产环境中运行容器化应用的比例将大幅度提升到超过75%,企业应用容器化的趋势势不可挡。本蓝皮书将在这样的背景下,讨论容器对存储的现实需求以及阿里云文件存储在云原生和容器等领域,不断进行适配和迭代的具体实践,并最终帮助用户更好的应对云原生时代的挑战。
一、容器与存储
1、云原生的快速增长
来自CNCF(云原生计算基金会)的观点认为,。“云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。”
此外,容器集群管理系统Kubernetes的快速发展也对容器的使用带来了极大便利,通过对网络,存储,计算进行了编排,给用户展现了一个新的界面,极大的简化了用户的运维,提升了资源的弹性,真正的做到了按需使用,降低了用户的成本。Kubernetes已经成为了云原生的操作系统。
容器在生产环境的应用的比例快速上涨,从2016年首次调查的23%,到2018年上涨到73%,实际到2020年已经上涨到84%。
云原生应用正在引领各个应用领域实现云原生化,同时也在深刻改变着应用服务的方方面面。存储作为应用运行的基石,也在服务云原生化过程中提出了更多的需求。云原生存储为了满足云原生特性的要求,可用性、稳定性、扩展性、性能等核心能力都有大幅的优化。
与网络、计算的编排不同的是,存储需要考虑如何无缝的接入到Kubernetes中进行编排和调度。Kubernetes推出了CSI,通过统一的标准将存储和Kubernetes进行了无缝的对接。
2、容器存储的挑战
新型工作负载容器化、迁云在存储方面遇到的性能、弹性、高可用、安全及生命周期等方面的问题,不但需要存储产品层次的改进,还需要在云原生的控制和数据层次的改进,推进云原生存储的技术演进。
1)存储弹性挑战
业务有明显的波峰波谷,如直播、互联网和大型金融服务商等突发应用要求弹性扩容大量只读容器,短时间内启动数千个容器,对资源的弹性伸缩的能力要求非常高。云原生的极致弹性对存储的极致弹性能力带来了新的挑战。
2)存储高可用挑战
海量容器对数据共享读写能力要求较高,多节点之间,不同可用区和不同VPC之间缺乏数据共享。当Pod故障时,数据能否灵活切换实现容器应用的高可用,保证业务的连续性的高可用挑战。
3)存储性能挑战
云原生应用在大数据分析、AI 等场景得到广泛应用,这些场景对存储吞吐和IOPS的需求也非常高。在容器集群集中处理海量数据,同时启动数千Pod,弹出海量Pod对共享文件系统进行读写的场景下,重负载导致时延增加,高延迟毛刺增多,读写稳定性不足,同时云原生应用的快速扩容、极致伸缩等特性也会考验存储服务在短时间内迎接峰值流量的能力。
-集中式高吞吐对共享存储池冲击:高性能计算场景中,集中处理批量数据,同一个存储集群中带宽挤占,造成访问质量下降。
-峰值吞吐不足:大规模数据处理,文件数目少,峰值吞吐高,请求密集,接近独占集群的极限带宽。
-时延增加导致 GPU 等待:多机多卡 GPU 训练,读密集型的场景下,时延增加导致 IOwait 和 GPU wait。
4)存储的安全挑战:面向的容器隔离性要求场景,主要是多应用共享,文件系统多租户环境的容量配合,集群级文件系统共享访问的权限控制,用户应用的全链路数据加密等安全挑战。
5)存储的生命周期管理挑战:海量容器集群持久化数据存储面临数据冷热分级和成本挑战。
二、阿里云文件存储
1、文件存储与容器
作为国内最大的云产商,阿里云提供了丰富的云原生服务。阿里云在云原生布局上提供托管、Serverless 的容器编排平台,阿里云存储提供CSI、Flexvolume插件,和云原生无缝对接。
阿里云文件存储NAS为非结构化数据提供存储服务。随着云原生的快速发展,越来愈多的容器化应用程序开始使用NAS来存储数据,甚至存储的数据量达到了PB级。阿里云在云原生布局上提供容器Kubernetes服务(ACK)和弹性容器实例(ECI),容器实例使用NAS文件系统作为持久化存储。阿里云文件存储同时满足容器应用场景对持久化存储弹性伸缩、共享访问、高可用、高性能的需求。
阿里云文件存储NAS是容器存储的自然选择,因为它是一种完全托管的服务,配置简单,添加或删除数据时自动扩展,和容器基础架构一样灵活便捷。
2、阿里云文件存储产品优势
阿里云存储服务也在云原生应用适配做了很多优化,阿里云文件存储支持 CSI 、Flexvolume存储驱动无缝的衔接了云原生应用和存储服务之间的数据接口。实现了用户使用存储资源时对底层存储无感知,而专注于自己的业务开发。
阿里云文件存储为云原生提供了一个完全弹性和共享的文件系统,按需使用,满足云原生极致的弹性。阿里云文件存储从弹性,高可用,性能,安全,生命周期管理等方面对云原生存储进行了打造和演进。
1)极致弹性,按需自动扩展
阿里云文件存储支持自由扩缩容,按需使用,适配容器的弹性能力,是完全托管的文件系统。在金融,互联网等典型的突发弹性场景中,能够在几分钟内启动数千个容器,并完成数据的极速加载、卸载。
2)共享持久化数据,容器应用高可用
文件存储具备多节点共享访问能力,文件存储还可以在不同可用区(不支持跨地域)、不同VPC之间共享。多Pod间通过NAS共享持久化数据,在POD故障时可以进行故障切换,实现容器应用高可用。
3)高性能加速,移除容器存储I/O瓶颈
文件存储基于分布式存储架构,具备性能水平扩展能力。提供不同类型、不同规格存储产品,充分满足各类应用的吞吐、延迟、IOPS和小文件等性能需求。文件存储CPFS 刚性交付100GBps吞吐,支持AI、HPC应用;文件存储NAS极速型 IOPS 20万,时延200us,小文件时延敏感应用最佳选择。高性能文件存储在容器批量加载时实时读取数据,支撑有状态应用、AI数据智能应用。
4)无缝对接容器存储插件,简化的云原生体验
文件存储基于POSIX/NFS/SMB文件接口,现有应用无需任何改造,可直接从本地磁盘平滑迁移至文件存储。针对容器编排,文件存储提供了CSI、Flexvolume存储插件,简化部署和使用,拥有完整的云原生体验。
5)企业级应用特性,Pod存储安全可靠
文件存储支持副本技术,同时通过备份、快照提供完整的数据保护和恢复机制。支持传输、落盘加密,确保数据不会被任何人窃取和篡改。支持海量pod存储隔离和统一管理。
6)数据生命周期管理,优化成本
文件存储提供按量付费模式,只需为正在使用的存储空间付费,不需要提前配置存储,并且不存在最低费用或设置费用。借助文件存储的共享能力可以节约大量的冗余数据拷贝和同步费用。数据生命周期管理,支持冷热分层,自动归档冷数据,降低成本90%。
3、阿里云文件存储产品规格
阿里云文件存储是云原生、高可用、成本优化的完全托管的文件系统。阿里云文件存储有三款产品,通用型NAS,极速型NAS和并行文件系统CPFS。其中:
- 通用型NAS具有高性价比,通常是交互式应用程序的最佳选择,诸如内容管理系统,容器应用的吞吐量和存储量线性相关。
- 极速型NAS具有低延时,通常是时延敏感应用的最佳选择,如开发人员工具在每次低延时操作中受益。
- 并行文件系统CPFS具有高吞吐和高IOPS,通常适用于分析和AI机器学习等计算密集型场景,能支撑数千个容器并行操作,也是高性能计算工作负载的理想选择。
三、容器存储的典型应用场景
随着新技术的发展,极致弹性、AI、Devops持续集成交付和容器集成镜像构建、基因处理等大量使用容器文件存储。
1、极致弹性的容器存储应用场景
视频、5G、直播、大型金融服务商等突发应用弹性扩容大量只读容器,对资源弹性的能力要求非常高,文件存储需具备极致弹性和极速伸缩能力的应用场景:
● NAS 为海量容器提供共享读写能力
● NAS 自动化极速伸缩,在短时间内启动数千个容器,毫秒级挂载NAS
● 利用极速型NAS低时延和强大小文件能力,分钟级别实现快速启动,解决扩容的并发启动对存储性能的高要求
方案优势:
● 敏捷,极致的弹性,对存储来说,容量和性能扩展完全按需
● 单个文件系统支持数万Pod共享,毫秒挂载和卸载,极速迁移
2、AI 容器存储应用场景
CPFS/NAS 文件存储面向AI 训练、AI 推理的容器存储解决方案:
● CPFS/NAS 灵活整合容器环境的GPU云服务器、SCC、弹性裸金属等计算集群,通过容器化部署服务实现资源弹性调度,快速构建AI 基础环境。
● CPFS/NAS 文件存储作为高性能共享存储,与AI场景完美结合,支持海量小文件访问,加速AI训练、推理性能。
● CPFS混合云存储+云上CPFS/NAS/OSS多级存储池,数据云上和云下流转,支持分层存储。
方案优势:
● 超高性能存储提高了计算资源的利用率
● 良好扩展能力,减少运维管理成本
● 生命周期管理,与云上无缝对接,数据冷热分层,降低成本
3、DevOps容器镜像构建应用场景
DevOps持续集成工具交付和容器镜像构建应用场景的容器存储解决方案:
● 持续集成工具Jenkins结合容器服务,实现自动测试和镜像构建推送。
● 开发人员提高代码GitLab,CI Server从NAS读取代码进行编译构建、集成测试和打包,CI Server从NAS读取镜像包推送镜像服务,由CD Server镜像发布。
● 通过NAS共享存储,可以在开发环境和测试环境方便的共享代码,维护一套代码库,可以在开发环境完成开发,然后编译并加载到CI持续集成,最后代码发布上线,全流程打通,无需繁琐的代码拷贝。
方案优势:
共享访问:不同的业务容器可以在一致性状态下共享访问同一份数据
高可用:容器故障后需要在不同宿主节点进行切换,共享NAS存储可以保证在容器的持久化数据在切换过程中不丢失。
4、基因计算容器存储解决方案
二代、三代基因数据分析提供云上数据分析和高速数据上传、交付的容器存储方案:
文件存储对接AGS、ACK搭建极速、低成本、高精度的容器基因计算环境,满足基因测序的计算和数据共享需求;
NAS为基因行业用户提供低时延、高 IOPS 的文件存储,用于基因数据分析中的共享存储,保存下机数据和组装后的数据,以及过程中的中间数据;
NAS计算结果数据会同步到 OSS 存储,文件存储集成OSS 提供海量存储空间,同时通过冷数据归档存储,降低存储成本。保存测序仪下机数据和组装后数据以及分析结果数据,用于数据的分发、归档、交付。保证10000+用户同时上传、下载数据,提高数据交付效率。
方案优势:
敏捷,按需使用,弹性扩展
超高性能存储提高基因计算的高性能和效率
数据冷热分层,降低成本
四、总结
以容器和云原生计算被企业快速接纳,Kubernetes 逐渐成为云原生时代的基础设施,容器服务成为云原生时代基础设施。新的工作负载推进云原生存储和云存储的演进,云存储继续夯实性能,容量,弹性,密度等基础能力,共建云原生环境下的存储生态。
阿里云文件存储是容器存储的自然选择,完美应对云原生存储在性能,弹性,高可用,安全,生命周期等方面的数据挑战。阿里云基于云原生文件存储技术的快速演进将不断赋能云原生和容器领域的快速发展。