开发者学堂课程【容器持久化储存训练营:容器网络文件系统 CNFS 在容器计算领域的最佳实践】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/889/detail/14193
容器网络文件系统 CNFS 在容器计算领域的最佳实践
内容介绍:
一. 容器环境中数据存储面临新的挑战
二. 阿里云 NAS 赋予容器计算新的数据引擎
一. 容器环境中数据存储面临新的挑战
1. 容器环境中数据存储面临新的挑战
容器环境中,数据存储面临了很多新的挑战,那这些挑战到底有哪些呢?
从物理机时代到虚拟机,从虚拟化到云原生,计算规模不断增大。从过去的应用在 CPU 里边独占一个 CPU 内存,到今天的在 Serverless 里,在函数的层面去为用户去提供服务。
⑴基础设施面向应用不断演进,轻量化,规模化
⑵资源调度粒度大幅细化,使用愈加灵活
⑶资源隔离从物理资源视角转向应用视角
2. 使用存储的界面出现新的变化
⑴系统盘和临时数据逐步被托管,用户只关注应用和持久化数据
⑵持久化数据需要面向应用视角进行重构:高密、弹性、隔离
①高密:
过去一个虚拟机去面对是一个存储空间,它可以供整个存储解决单个应用所需要的存储的所有的数据相关的访问和存储需求。
但在 k8s 和 Serverless 里面,我们是共享的,这种存储就需要多个,可能是从十个、数百个、数千个 fc 的函数或者容器,去访问一个存储,这就导致它的密度非常的高。对同时访问同一个存储的能力的要求也变得很高。
②弹性:
过去创建一个物理机或者虚拟机,基本上变化不会特别大。通常都在一个相当比较稳定的周期之内的去访问和使用这种存储、这个介质。
但是当今 Serverless 或者 k8s 容器环境里, 它的前端的计算服务的弹性是伸缩非常大的,可能从数十台到几百台弹性伸缩变化非常快,所以对于弹性存储的要求也变得非常高。
③数据隔离:
过去很多资源我们是独享独占的,在一些物理分区里面甚至可以做到 cpu 的独占、内存的独占和存储资源的独占。
但今天在 k8s 和 Serverless 里,却很难做到这一点。因为存储资源、计算资源、操作系统层,甚至于依赖的一些基础包都已经是共享的。这时,我们如何在基础架构层面实现一种安全的隔离?正在基础架构层面上,同样在上层的应用层面怎么通过一些很好的安全的策略手段,去实现这种数据隔离呢?这是当今一个非常大的一个挑战。
3、容器计算需要什么样的存储系统
⑴应用兼容
特点:大量应用程序基于本地磁盘文件系统开发
挑战:上云后如何最快速的实现容器化
需求原因: 在传统的企业应用场景里面,绝大多数的应用还是面向于文件存储去开发的。底层这种文件存储有的是来自于本地磁盘格式化成一个本地的文件系统,也有一些是分布式的应用。而使用共享的文件存储或者分布式的文件存储集群,这些无一例外的都是使用原生的文件存储的方式,去返还我的应用。今天我们很难快速把整个企业里面的应用做一些转变,甚至是一些应用场景和对文件的诉求,它是最贴切最符合场景的需求的。所以在第一个场景里面,就是我们的应用的兼容性能不能和传统的在一些非容器的环境里面保持一致,让应用的改造变得更少,甚至于不需要改造。这是我们需要去面临的第一个需求,就是应用的兼容。
⑵极致弹性
特点:弹性伸缩是云原生应用的核心能力,应用通过快速扩容满足业务需求
挑战:应用的弹性依赖存储容量和性能的弹性能力
需求原因:刚讲到过的容器,它一个很大的特点就是,要随着业务的峰值和低谷,需要有一个非常快速的一种弹性的要求能力。上层的计算发生一些弹性之后,底下的存储能不能很快的去跟进呢?如果需要访问1GB 或者一个1TB 的数据,当我去弹性一个新的计算的时候,如果需要拷贝1TB 的数据的时候,那这个这个所谓的弹性的这个能力其实也是很重要的。因为需要很长的时间去做底层数据的同步,所以不但计算对于极速弹性有要求,存储同样也有着非常大的诉求。
⑶共享高可用
特点:应用快速迭代,频繁更新重启,出现大量短生命期容器
挑战:存储快速挂载/卸载,数据需要跟随容器迀移
需求原因:如果频繁的去拷贝的话,如果只有1GB的数据,其实影响和压力是不大的,但是对于一些自动驾驶,或者一些多媒体,它的数据级是非常庞大的,动辄都是TB级别的,十几个TB的,甚至于有些应用场景达到了几百个TB。如果这种规格的数据我们无法共享,需要去在弹性的环境下去供这个拷贝传输的话,那这对于成本的压力和实效性,几乎是无法保障的。
⑷安全可靠
特点:核心应用云原生化,对数据安全、权限控制、租户隔离提出要求
挑战:强大的安全能力保护核心数据资产
需求原因:无论基础架构怎么改变,无论是硬件物理机,还是虚拟机、k8s、Serverless,无论怎么抽象,我们要得到的最根本的要求一定是安全。不能让应用之间互相串,相互之间不应该看到却看到,那这就是一个非常不可靠、非常不安全的一套系统。
⑸优化的成本
特点:云原生应用通过弹性伸缩来削峰填谷,有效降低成本是核心诉求之一
挑战:计算成本降低的同时,如何大幅降低存储成本
需求原因:对于成本的追求,所有的应用场景里几乎是孜孜不倦的。即使是在最核心的应用场景里面,我们依然需要控制成本。因为今天我们的业务增长很快,数据的增速也很快,怎么在这种快速的增长里同时有一个成本的优化,这是对我们的要求,也是这个非常大的一个挑战。
二、阿里云 NAS 赋予容器计算新的数据引擎
1. 存储计算分商赋予容器弹性与高可用
⑴ 传统方案的问题
①数据重复存储,存储效率低
②扩展或 Failover 时需要复制数据到新的位置,
影响弹性速度
⑵ 阿里云 NAS 方案的优势
①同地域任意容器可以随时访问全量数据,
毫秒级挂载,赋予计算瞬间拉齐能力
②数据集中管理,轻松运维
③性能随容量弹性扩展
2. 强大目录配额和 ACL 能力保障数据安全隔离
⑴ 典型场景
①不同应用使用统一存储管理,统一规划各应用存储用量
②有状态应用使用独立目录,限制应用的存储用量
③本应用只能访问自己的数据
⑵ 阿里云 NAS 的优势
①支持目录配额可以在文件系统子目录级别上统计和限制存储用量,支持 uid / gid 管理
②支持 ACL 权限设置,提供细粒度权限控制,实现应用级数据隔离
3. 智规数据分层大辐降低存徒成本
⑴生命周期功能
①基于文件的 Access time 访问时间计算迁移策略,支持对7/14/30/60天未访问的文件迁移到低频介质
②迁移不改变文件目录位置,无需应用改造
③支持从低频介质手动取回至正常介质
④可以方便的通过控制台或者 OpenAPI 列出低频介质中的文件
⑤支持 NFS \ SMB 协议文件系统,实现对 Linux 和 Windows 平台的全面覆盖
⑵阿里云 NAS 方案的优势
①数据迁移至低频介质不会变更文件目录位置,应用无感知,直接降成本
②低频介质中的文件可正常读写,系统自动缓存保障读写性能
③实现精细计量,按照实际读写数据量收取费用,非读取文件的大小
举例:10个100GB 文件,在低频介质中存储1个月,每天读取这些文件中的1GB 数据。每月花费为=0.15×1000+0.06×1×30=1518元。和存储在容量型中比较节省将近200元。