开发者学堂课程【容器持久化储存训练营:何种数据存储才能助力容器计算】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/889/detail/14192
何种数据存储才能助力容器计算
内容介绍:
一、Kubernetes 逐渐成为云原生时代的基础设施
二、容器持久化存储方案对比
三、容器中使用文件存储的优势:
四、容器中使用文件存储的挑战
五、容器网络文件系统 CNFS:云原生时代的容器共享存储方案
六、容器网络文件系统 CNFS:极致弹性的容器应用场景
七、容器网络文件系统 CNFS:AI容器应用场景
八、容器网络文件系统 CNFS:基因计算容器应用场景
九、CNFS 示例介绍
一. Kubernetes 逐渐成为云原生时代的基础设施
今天为大家带来最新发布的产品容器网络文件系统 CNFS。
云原生时代,我们如何解决海量容器的编排和存储?如何提升容器存储的性能和稳定性?
下面一起了解 CNFS 如何将容器和存储技术更好的结合 ,如何定义云原生时代的容器文件存储方案。
目前,应用容器化比例正在快速增长。
Forrester 预测:到2022年,全球组织/公司在生产环境运行容器化应用,从今天不足30%的比例将大幅度提升到超过75%,企业应用容器化的趋势势不可挡;容器在生产环填的应用比例快速上涨,从2016年首次调查的23%,到2018年上涨到73%,实际到2020年已经上涨到84%。
从云原生体系来看,Kubernetes 逐渐成为云原生时代的基础设施。
而云上托管的 Kubernetes 成为企业上云运行容器的优先选择。另外,用户使用容器的方式也在改变,从无状态应用到核心企业应用到数据智能应用。
越来越多的企业使用容器来部署生产级别,复杂度高和高性能计算的有状态应用。
有哪些应用需要在容器中使用持久化存储?
1. Web服务:nginx,httpd,tomcat,php,主要存储图片、视频、html、 js、css、flash.
2. 内容资料库:Wordpress,drupal,nextcloud,owncloud,主要存储文档、图片、音频、视频等。
3. 数据库:MySQL, PostgreSQL, redis,主要存储业务结构化数据。
4. Devops:Jenkins,maven,Gitlab,Puppet,主要存储代码库、镜像库。
5. AI/大数据分析: spark,TensorFlow,kafka,ClickHouse,主要存储自动驾驶、基因等。
二. 容器持久化存储方案对比
1. 块存储
· 不支持跨主机容器的数据共享
· 适用于数据库等数据存储场景
· 低延时:更低延时保障数据库访问效率
· 灵活性:独占的裸数据块,自主利用
2. 文件存储
· 共享、高可用:多容器实例共享数据,Pod 故障实现容器应用高可用
· 弹性:快速扩大或收缩容量,适用于大规模数据存储场景
· 性价比:兼顾高性能和低价格
3. 对象存储
· 低成本:更低价格存储数据
· 基础架构解耦:RESTAPI直接访问存储资源
不同的存储在访问方式上也有差异,块存储通常支持 RWO,PV 可以由单个 Pod 以读写方式挂载。
而文件存储和对象存储可以支持单个多个 Pod 进行读写方式挂载。
ROX,PV 可以由多个 Pod 以只读方式挂载
RWX,PV 可以由多个Pod 以读写方式挂载
针对以上三种存储,阿里云提供了云盘,nas,cpfs,oss 等云产品, 可以跟阿里云容器服务 ack 很好的结合使用。
使用不同的存储类型,有着不同的场景和优势。
三. 容器中使用文件存储的优势:
1. 高可用
⑴使用块存储:
·适合于数据库/缓存等场晨
·与传统的数据副本方式一样,通过双写的方式实现数据副本保护
·双写的控制及数据的高可用性由应用完成
·部署时,注意选择不同的底层可用区
·扩容时,需娄增加挂戴/扩容虚拟本地盘
⑵使用文件存储:
· 适合于大规模数据存储场景,弹性能力强,单文件系统可以支持10k 以上的 Pod 挂载。
· 数据副本由后端文件存储完成,应用无需干预
· 底层文件存储自动在多可用区写入副本,应用无需指定
· 海量存储空间,自动扩容,应用无需感知
可以看到文件存储在弹性伸缩和高可用上有优势,用户无需关心容器和存储之间高可用的配合,无需关心双写、扩容等细节。
2. 数据分发/共享
⑴使用块存储:
·因为每个 block volume 一次只能被挂就到一个容器,所以没办法直接实现数据共享
·需要通过外部手段将需要的更新的数据同步分发到所有容器中。例如更新一个 Nginx 中的网页。
⑵使用文件存储: ·一个文件挂载点可以同时被多个容器挂载,模式支持数据共享访问(读写)
·在文件系统中更新数据后 所有节点可实时访问最新数据。原生的文件目录形式读写。例如更新一个 Nginx 中的网页。
应用无需感知存储的实现,这种便捷的数据分发/共享,为大数据、高性能计算、基因计算等场景提供了和容器结合的优势。
四. 容器中使用文件存储的挑战
1. 极致弹性
特点:弹性伸缩是云原生应用的核心能力,应用通过快速扩容满足业务需求。
挑战:文件存储快速挂载/卸载。
2. 高可用
特点:应用高可用,故障节点 Pod 自动迁移拉起。
挑战:文件存储需要提供数据保护,随容器迁移。
3. 高性能
特点:云原生应用在大数据分析、AI、DevOps 等场景得到广泛应用。
挑战:考验文件存储的吞吐、IOPS,延迟。
4.安全可靠
特点:核心应用云原生化对数据安全、权限控制、租户隔商提出要求。
挑战:强大的安全能力保护核心数据资产。
5.低成本
特点:云原生应用通过弹性伸缩来削峰填谷,有效
降低成本是核心诉求之一。
挑战:如何大幅降低存储成本,需要提供海量存储的成本优势。
五. 容器网络文件系统 CNFS:云原生时代的容器共享存储方案
针对容器中使用文件存储的优势和挑战,阿里云推出了容器网络文件系统 CNFS,CNFS 在以下方面针对容器存储提供了优化。
弹性伸缩
性能优化
可访问性
可观测性
数据保护
声明式
通过 CNFS 用户可以享受容器使用文件存储带来的便捷,同时提高文件存储的性能和数据安全,并提供容器一致的声明式管理。
以下是 CNFS核心的特性和友商,及开源共享文件存储的对比:
1. 在存储类型方面,CNFS 支持文件存储和对象存储,目前支持阿里云的 NAS、CPFS、OSS 等云产品。
2. 支持 Kubernetes 兼容的声明式生命周期管理,可以一站式管理容器和存储。
3. 支持 PV 的在线扩容,自动扩容,针对容器弹性伸缩特性优化。
4. 支持更好的和Kubernetes的结合的数据保护,包括PV快照,回收站,删除保护,数据加密,数据灾备等。
5. 支持应用保护的应用一致性快照,自动分析应用配置及存储依赖,一键备份,一键还原。
6. 支持 PV 监控,支持更好的访问控制。
7. 提供共享文件系统的全线安全,包括目录及 Quota、ACL等。
8. 提供性能优化针对为电存储的小文件读写提供微秒级的性能优化
9. 成本优化,提供低频介质及转换策略,降低存储成本。
六、容器网络文件系统 CNFS:极致弹性的容器应用场景
1. 场景描述
互联网和大型金融服务等突发应用,需短时间内弹性扩容大量容器,对资源弹性伸缩。能力的要求非常高,容器存储需具备极致弹性和极速伸缩能力的应用场景。
典型的应用:媒体和娱乐、Web 服务和内容管理、大型金融服务、开发运营、机器。学习、有状态的微服务。
2. 用户痛点
底层存储的性能和容量无法线性扩展,存储扩展能力无法适配容器的弹性伸缩。
Pod需要灵活的挂载卸载存储,存储不能匹配容器快速启动的速度,I/O性能瓶颈。
海量容器持久化数据快速增长,成本压力大。
3. 解决方案(推荐产品组合:ACK+CNFS+文件存储 NAS)
· CNFS 内置文件存储类,在短时间内启动数千个容器,毫秒级挂载文件系统 PV。
· CNFS 内置文件系统,为海量容器提供共享读写能力,实现容器应用高可用
· CNFS 低时延和小文件优化,实现微秒级读写性能,解决容器的并发访问对存储性能的高要求。
· CNFS 提供文件存储生命周期管理,自动冷热分层,访问方式不变,分层至低频型。
4. 价值收益
· 弹性:敏捷,极致的弹性,对存储来说,容量和性能扩展完全按需。
· 高性能:小文件性能极致优化至微秒级延迟。
· 共享:单个文件系统支持数万Pod共享,毫秒挂载和卸载,极速迁移。
· 低成本:自动化生命周期管理,优化成本。
七. 容器网络文件系统 CNFS:AI容器应用场景
1. 场景描述
· 文件存储 CPFS 面向 AI 训练、AI 推理的容器存储解决方案
2. 用户痛点
· AI 数据流复杂,存储系统 IO 存在瓶颈
· AI 训练、推理需要高性能的计算和存储
· AI 算力协同,云和 IDC 资源/应用统一调度
3. 解决方案(推荐产品组合:ACK 纳管集群+CNFS+文件存储 NAS/CPFS)
·文件存储 CPFS 作为高性能共享存储,与 AI 场景完美结合,支持海量小文件访问,加速 AI 训练、推理性能。
·文件存储 CPFS 灵活整合容器环境的 GPU 云服务器、弹性裸金属服务器(神龙)等计算集群,提供超高吞吐和超高 IOPS 能力,支持混合云线下+云上部署,快速构建 AI 基础环境。云上和云下数据流转和生命周期管理,满足快速高效计算和成本优化需求。
·ACK 纳管集群,云上/云下形成统一的资源池,异构资源弹性调度,最大化的利用云上海量基础设施的优势
4. 价值收益
· 超高性能存储提高了计算资源的利用率
· 超强性能和容量扩展能力,减少运维管理成本
· 生命周期管理,与云上无缝对接,数据冷热分层,降低成本
八. 容器网络文件系统 CNFS:基因计算容器应用场景
1. 场景描述
· 二代、三代基因数据分析优化,提供云上数据分析和高速数据上传、交付方案。
2. 用户痛点
· 大规模样本的数据挖掘需要海量计算资源,数据增长快,存储费用高,管理困难。
· 海量数据需要快速、安全的分发到国内多地,多数据中心需要共享访问。
· 批量样本处理时间长,性能需求高,资源需求峰谷明显,难以规划。
3. 解决方案(推荐产品组合:ACK+AGS+CNFS+文件存储 CPFS+OSS)
· 文件存储 CPFS 对接容器服务 ACK、基因计算 AGS,搭建极速、低成本、高精度的基因计算容器环境,满足基因测序计算和数据共享需求。
· 文件存储 CPFS 用于基因数据分析中的共享存储,保存下机数据和组装后的数据,以及过程中的中间数据,满足基因行业用户的低时延、高 IOPS 的存储需求,减少数据拷贝/传输。
· 文件存储 CPFS 计算结果数据会同步到对象存储 OSS,CPFS 集成 OSS 提供海量存储空间,同时通过生命周期管理,将冷数据归档存储,降低存储成本。
· 对象存储 OSS 保存测序仪下机数据和组装后数据以及分析结果数据,用于数据的分发、归档、交付,保证10000+用户同时上传、下载数据,提高数据交付效率。
4. 价值收益
· 敏捷,按需使用,弹性扩展
· 超高性能存储提高基因计算的高性能和效率
· 数据冷热分层,降低成本
九、CNFS 示例介绍
1. 集群创建:
阿里云控制台创建 ACK 集群
在存储插件栏:选择创建 NAS 文件系
统和动态存储类型;
2. CNFS检查:
到集群中查看是否默认创建 CNFS;
查看是否创建默认 StorageClass;
3. 创建应用:
创建 PVC,动态创建 NAS 子目录卷;
创建应用,使用动态创建的 NASPV;
4. 数据管理:
删除 PVC,根据回收策略 PV 会被自动
删除;对应的 NAS 数据也会被清理;
(此处具体操作同上一节课的【实战体验】一步一步搭建容器弹性 Web 与内容管理系统)