云原生存储和云存储有什么区别?

作者 |?李鹏(壮怀) 阿里云智能事业群高级技术专家

导读:新的企业负载/智能工作负载容器化、迁云、存储方面遇到的性能、弹性、高可用、加密、隔离、可观测性以及生命周期等方面的问题,不但需要存储产品层次的改进,更需要在云原生的控制/数据平面的改进,推进云原生存储和云存储的演进。本文将介绍一下问题场景,探讨可行的解决方案,最终得出云原生存储以及云存储目前可以做什么和未来还需要做什么。

引言

最近有幸参加了由 Infra Meetup 联合 Kubernetes & Cloud Native Meetup 共同组织的面向云原生持久化应用的 Meetup,结合最近对云存储、开源存储、云原生存储的思考,对云原生存储到底是什么,需要做些什么,云原生存储未来挑战是什么,做了更多的反思和梳理,一家之言,分享了几个初步观点。

随着云原生应用对可迁移性、扩展性和动态特性的需求,相应的,对云原生存储也带来了密度、速度、混合度的要求,所以对云存储基本能力又提出了在效率、弹性、自治、稳定、应用低耦合、GuestOS 优化、安全等方面的诉求。

云原生现状

容器和云原生计算被企业快速接纳

Forrester 预测:到 2022 年, 全球组织/公司在生成环境运行容器化应用,从今天不足 30% 的比例将大幅度提升到超过 75%,企业应用容器化的趋势势不可挡。

另一方面,根据 IDC 对未来企业级存储市场的增长趋势预测:云存储的需求相比于 2015 年,到 2020 将会有 3 倍以上的增长,企业存储市场中,数据管理类企业核心数据消耗的存储所占的比例将从 15% 提升到 23%,结构化数据和 DBMS 数据在企业存储市场中将进一步加强。

对云原生来说,核心企业应用/智能应用,使用云原生存储来部署生产可用的有状态应用,呈现加速上升趋势。海外存储巨头 EMC、NetApp 拥抱云原生,积极布局 REX-Ray flexrex、Trident 等云原生存储编排方案。

Kubernetes 逐渐成为云原生时代的基础设施

过去的一年(2018-2019)中,Kubernetes 逐渐成为云原生时代的基础设施,越来越多的互联网、数据库、消息队列等有状态企业核心应用,逐步迁移到云原生平台 Kubernetes,对不同的云上块存储的性能在时延和吞吐,以及稳定性提出了不同的要求,比如:

  1. 毫秒级 NvME SSD 级别的稳定时延,来满足高性能 KVstore 和数据库需求;
  2. 随着应用单机部署密度的提升,对块存储单机密度的挑战;
  3. 本地块存储共享,对块存储的弹性和隔离性也提出了更高需求。

在云原生环境下,如何以声明方式来满足不同的业务场景,成为了云原生存储在实现控制面和数据面上的挑战。

在智能应用 AI 场景下,高性能计算、流式计算也尝试通过 Kubernetes 云原生平台来部署,使用云存储方式来完成训练、计算、推理等方面的工作,这对云存储在 Kubernetes 环境的选择及使用方面提出了挑战。比如,有证据表明 Spark 生态正在逐步从 Hadoop YARN 向 Kubernetes 原生的调度器以及扩展调度器 e.g. Gang Scheuler 迁移。

在云计算环境中:由于成本和存储计算分离的模型,HDFS 仍然会以存储协议的方式存在,但存储方式会逐步从 HDFS 的 3 副本向对象存储(OSS,S3)迁移;GPU 多机多卡 MPI 计算、Flink 流式计算的 Kubernetes 化已经逐步成为主流,存储访问方式也多以对象存储方式呈现。

但是在使用对象存储过程中,大数据/AI 应用的计算效率仍面临着严峻的挑战:

  1. 减少同一节点对同一 Block 的反复拉起产生的网络 IO;
  2. 减少数据的 Shuffle 产生的写 IO;
  3. 实现计算对数据感知,计算向数据迁移的就近计算。

目前的 Kubernetes 调度器以及云存储特性并未给出好的解决方案,所以这也给云原生存储在加速大数据计算、弥补 IO 吞吐不足方面提供了发挥的舞台。

大数据离线计算比如基因计算,已经通过 Kubernetes 云原生平台来大规模的运行计算任务:对文件存储峰值吞吐 10GBps - 30GBps 的峰值刚性兑付,需要独立的高吞吐的文件存储形态和交付方式在云原生环境下的演进和变革。

容器服务成为云原生时代基础设施

随着企业应用上云越来越多地选择使用容器化方式,容器服务在不同的云厂商中都有大幅度的业务增长,容器服务已经逐步成为云原生时代新的基础设施和最佳使用云资源的入口。云原生存储对云计算/云存储来说也有了新的内涵,有必要重新思考云存储和云原生存储的本质区别和联系。

云原生存储和云存储的思考

Cloud Native Storage vs Cloud Storage:

  • 对立还是统一?
  • 两者之间的联系?
  • 差异和侧重点?

1. 云原生存储 = 云存储 UI,面向应用的申明式应用层存储 + 效率等能力组合

云原生存储声明的六要素:

  1. 容量 Size;
  2. 性能 IOPS,、吞吐、时延;
  3. 可访问性,共享/独享;
  4. IO 可观测性;
  5. QoS;
  6. 多租户隔离。

2. 分层存储,重用基础设施红利,不重新发明轮子,针对新的负载类型部分存储形态上移

3. 在控制平面实现效率、自治方面能力,最大化存储稳定和安全

市场上的云原生存储

为了更好的理解在云环境中如何构建云原生存储,先看几个在 Kubernetes 企业环境中部署主流的云原生存储,以及对比云存储的形态:

  1. Ceph on Kubernetes with Rook
  2. Portworx
  3. OpenEBS

Ceph on Kubernetes with Rook

Ceph 是圣克鲁兹加利福尼亚大学的 Sage Weil 在 2003 年开发的,也是他博士学位项目中的一部分。Ceph LTS 成熟稳定、高可用、生态强大,在云原生时代和 Kubernets 紧密集成。Ceph 基于 RADOS(Reliable Autonomic Distributed Object Store )的高可用存储,在云原生时代之前 2003 年发行起,已经广泛生产部署的高可用存储,支持最广泛的块存储 RBD、文件 POSIX Cephfs,以及对象存储访问协议。

RedHat/SUSE 目前是 Ceph 最主要的商业化支持者,在多个容器平台落地案例中,RBD、CephFS 都被采用作为容器平台实施的主要存储,用来弥补基础云存储的缺失。

Rook 目前是在 Kubernetes 产品级可用的部署和运维 Ceph 编排工具。

Ceph 的基本架构由数据面 OSDs(RADOS) 和控制面 MON/RBD/RADOSGW/CEPHFS 组成,以 CRUSH Algorithm 作为核心算法处理数据冗余和高可用, 上层的应用存储通过 librados 同数据面 OSDs 直接完成数据的读写,能够支持快照、备份、监控可观测性等能力,可以通过 Rook 直接通过 Kubernetes 输出,RedHat/SUSE 也提供独立的集群安装能力。

Ceph 的一些基本架构特征和能力:

  • 控制面:MON/RBD/RADOSGW/CEPHFS;
  • 数据面:OSDs(RADOS);
  • 快照、备份、支持 IO 监控等存储性能监控,支持 RBD QoS 的服务端限速能力。

Portworx

Portworx 以容器服务的方式部署,每个节点称为 PX,向下对接各种公有云的块存储或者裸金属服务器,向上提供块或文件服务。

不绑定硬件形态和厂商,可接入任何一家公有云或者自建服务器集群(只需支持 iSCSI 或 FC 协议),目前 Portworx 主打能力云灾备 DR、多云复制,具备完备的快照(ROW)、多云管理、同步复制(RTO,秒级)异步复制(RPO<=15min),可以通过 Kubernetes CRD 申明方式,优雅实现持久化云下应用带数据自动迁移云上能力。PX 可以独立部署,并不强依赖 Kubernetes 的容器网络。

Portworx 的一些基本功能/性能特征:

  • 弹性扩展, PX 自动识别服务器节点的能力,可动态调度 IO
  • 控制面
    • 支持主流容器编排工具:Kubernetes、Mesos、Swarm 等
    • 支持 IO 级别的性能监控
  • IO面
    • 数据块和元数据打散到不同的节点
    • 使用了缓存和高性能RPC
    • QOS隔离:不支持
    • 根据底层存储的特性IOPS(4k) 768 - 65024
    • 时延(4k): 0.58ms - 23ms
  • 增值特性
    • 加密(三方秘钥托管,传输加密,落盘加密),支持云厂商KMS集成和Vault
    • 快照(ROW),多云管理,同步复制(RTO,秒级),异步复制(RPO<=15min)
    • 可扩展性 >1000个节点,>10000个Volume
    • 支持拓扑感知计算

OpenEBS

OpenEBS 基于 Kubernetes 构建的开源版 EBS,软件定义 PV:将各种介质,包括本地磁盘、云等各种存储统一池化和管理。使用 iSCSI 作为存储协议。没有绑定某一个厂商的存储,可以灵活的接入各种存储的一个原因。从某种意义上也是更加灵活,轻量。但是强依赖容器网络,增加了抽象层 OpenEBS layer, 写入操作要通过抽象层,并且每个卷 PV 都有独立的 controller,增加了额外的开销,虽然可以做到更灵活,但相比于 Portworx、Ceph 来说,其在性能上有比较大的劣势。

OpenEBS 的一些基本功能/性能特征:

  • 控制面:扩展容器编排系统,支持超融合。相比块而言,卷的数量多且卷的大小任意配置,更加灵活;
  • 高可用:每个卷可以有多副本,数据实时同步,数据同步是在不同的存储池间进行同步;
  • 快照、备份、监控存储性能功能;
  • 和 Cloud-Native Tools 有很好的集成:可以使用云原生工具(如 Prometheus,Grafana,Fluentd,Weavescope,Jaeger 等)来配置,监控和管理存储资源。

理解云存储

盘古 vs RADOS

对比以上三种开源/企业存储,为了更容易的理解云存储架构,我们把盘古的分层架构和 Ceph 存储的分层做一个对比。

可以把 CS(Chunk Server)类比 Ceph OSDs 服务进程,把盘古的 Master 进程类比于 Ceph MDSs 进程。

把云产品块存储类比于 Ceph RBD, 文件存储类别于 CephFS, 对象存储类比于 RADOSGW,本地块存储/高性能文件存储 CPFS 产品暂没有对应。

随着盘古架构的演进,和盘古 2.0 的全面推广、用户态 TCP 网络协议栈的推广、全面的 RDMA 存储网络、全面优化的 RPC 性能,上层产品存储也享受到了底层存储变革的巨大红利,进入了亚毫秒级别时延,和百万 IOPS 的时代,云原生存储也必然是要在产品存储层次之上,能够继承这些能力。

云原生存储在公有云和专(私)有云中的差异

通过分析了市场上云原生存储,我们可以发现这些存储都有共同的特征就是支持声明化的 API,可以实现对性能、容量、功能等方面的度量和声明,或多或少对质量/稳定/安全都有不同支持。

进一步来说,云原生负载可以直接通过数据平面无损耗的使用产品存储在容量、性能、可访问性的能力,在控制平面继续提升面向用户应用的 IO 可观测性、应用级的 QoS、多租户的隔离能力,通过控制平面接口实现 CSI/Flexvolume 等可声明的存储接口,并提供对部分存储生命周期的 Operator,容器编排把业务应用和存储粘合成为实际的负载声明,可能是更加正确使用云存储的姿势。

由于公有云的基础设施产品存储的完备,可以使用更加轻量化的数据平面(virtio, nfs-utils, cpfs-sdk, oss-sdk)来访问产品存储。

专有云环境差异较大,部分虚拟化或者无虚拟化环境,SAN 和裸盘是主要存储方式,需要通过类似构建 ceph RADOS 或者盘古实现 SDS,然后通过数据平面(librados/px/pv-controller)实现存储的访问。

针对 vSphere,OpenStack,飞天所构建的专有云,有接近于公有云的存储提供方式,但因为部署模块的差异,也存在不同的控制/数据平面支持能力的差异。

简单来说就是:

  • 公有云 ? Cloud Native Storage = Declarative API + Cloud Storage
  • 专有云 ? Cloud Native Storage = Declarative API + Native Storage

公有云中的云原生存储

  1. 存储分层,重用基础设施红利,不重新发明轮子。

  1. 云原生存储
  • 提升数据平面的一致性(kernel/OS/net/client/sdk 优化参数和版本控制);
  • 构建统一的控制平面 CSI/Flexvolume/Operator, 提供面向客户声明 API;
  • 在调度编排层面实现拓扑感知,实现云盘的 zone awareness, 本地盘的 node awareness。

块存储

在控制平面通过与 Aliyun Linux 2 OS 结合使用 Kernel Cgroup blkio 实现进程级别的 buffer IO 控制,提升了在应用层对本地盘、云盘的 QoS 控制的粒度。通过对本地盘的 LVM 切分可以实现对单机云盘的密度提升。通过对挂载点/设备 IO 指标测采集能力,实现 IO 的可观测性。

云原生存储- 块存储的主要特征指标:

  • 容量: 单盘 32TB
  • 时延:0.2ms – 10ms
  • IOPS: 5K – 1M
  • 吞吐: 300Mbps - 4Gbps (本地 NvME ESSD: 2GBps)
  • 可访问性: 单可用区独占
  • QoS:单盘隔离,进程隔离
  • 多租户: 单盘隔离

详情见:云盘性能

文件存储

在控制平面可以通过对 Pod Security Policy 和 SecuritContext 的控制,实现应用的强制 UID/GID 控制,实现应用对文件系统的 ACL 控制。控制平面实现对文件系统生命周期的控制,通过对挂载点 IO 指标测采集能力,实现 IO 的可观测性。

云原生存储- 文件存储的主要特征指标:

  • 容量:单文件系统 10PB
  • 时延:100 微妙 – 10ms
  • IOPS: 15K – 50K
  • 吞吐: 150Mbps - 20GBps
  • 可访问性: 多集群多可用区共享
  • QoS:IO 争抢
  • 多租户: PSP ACL (namespace)

CPFS 并行文件系统

在控制平面实现对文件系统 ACL 控制,对 QoS 提供客户端限速的可配置性,文件系统提供生命周期的声明式管理能力 Operator,再进一步,在云原生环境内实现 CPFS 文件系统的声明式部署。

云原生存储- 高性能文件存储的主要特征指标:

  • 容量:单文件系统 100PB
  • 时延:0.5ms – 10ms
  • IOPS: 50K – 1M
  • 吞吐: 10Gbps - 1000GBps
  • 可访问性: 多集群多可用区共享
  • QoS:支持客户端限速
  • 多租户: PSP ACL (namespace)

总结:云原生存储 v1 – 功能性

今天的云原生存储已经实现了在控制平面/控制平面接口对阿里云产品存储的全品类支持,在数据平面也完成了大部分系统级和客户端层的优化。但随着大量的持久化企业应用和智能化应用的容器化迁移,我们依然面临着更多的问题和挑战。



在整个云原生存储 v1 的开发过程中,感谢阿里云存储团队,在文件存储、块存储和对象存储的通力合作和帮助,共同打造的云原生时代的存储。

随着云原生应用对可迁移性,扩展性和动态特性的需求,对云原生存储也带来了相应的密度,速度,混合度的要求,所以对云存储基本能力之上又提出了在效率,弹性,自治,稳定,应用低耦合,GuestOS优化,安全等方面的诉求。新的企业负载/智能工作负载容器化,迁云,存储方面遇到的性能,弹性,高可用,加密,隔离,可观测性,生命周期等方面的问题,不但是需要存储产品层次的改进,更需要在云原生的控制/数据平面的改进,推进云原生存储和云存储的演进,这是对云原生存储v2的展望和规划,我们会在后续文章进一步揭示这些新的场景,需求,方案以及发展方向。

“ 阿里巴巴云原生微信公众号(ID:Alicloudnative)关注微服务、Serverless、容器、Service Mesh等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术公众号。”

原文地址:https://www.cnblogs.com/alisystemsoftware/p/11806014.html

时间: 2024-10-15 20:41:00

云原生存储和云存储有什么区别?的相关文章

实际场景中,云原生存储面临的 7 个挑战

作者 | Eric Li (壮怀)? 阿里巴巴云原生存储负责人 引言 随着云原生应用对可迁移性.扩展性和动态特性的需求,对云原生存储也带来了相应的密度.速度.混合度的要求,所以对云存储基本能力之上又提出了在效率.弹性.自治.稳定.应用低耦合.GuestOS 优化和安全等方面的诉求.参考<云原生存储和云存储有什么区别?> 新的企业负载/智能工作负载容器化.迁云.存储方面遇到的性能.弹性.高可用.加密.隔离.可观测性及生命周期等方面的问题,不但需要存储产品层次的改进,还需要在云原生的控制/数据平面

微服务架构与实践及云原生等相关概念

微服务架构与实践 笔记:<微服务架构与实践> 王磊 著 一 单块架构 1 定义:对于这种功能集中.代码和数据中心化.一个发布包.部署后运行在同一进程的应用程序,我们通常称之为单块架构应用,并非物理上的分层. 2 单层架构:数据 逻辑 页面 混合 3 三层架构: 1)表示层:数据显示和用户交互 2)业务逻辑层:业务逻辑处理 3)数据访问层:数据存储访问 4 优势: 比较适合小项目 易于开发:开发简单直接,集中式管理,基本不会重复开发,集成工具适合 易于测试:单进程 易于部署:单项目包,功能都在本

360&#176;透视:云原生架构及设计原则

欢迎访问网易云社区,了解更多网易技术产品运营经验. 云原生(Cloud Native)的概念,由来自Pivotal的MattStine于2013年首次提出,被一直延续使用至今.这个概念是Matt Stine根据其多年的架构和咨询经验总结出来的一个思想集合,并得到了社区的不断完善,内容非常多,包括DevOps.持续交付(Continuous Delivery).微服务(MicroServices).敏捷基础设施(Agile Infrastructure)和12要素(TheTwelve-Factor

云原生生态周报 Vol. 2

摘要: Cloud Native Weekly China Vol. 2 业界要闻 Kubernetes External Secrets 近日,世界上最大的域名托管公司 Godaddy公司,正式宣布并详细解读了其开源的K8s外部 Secrets 管理项目:Kubernetes External Secrets,简称KES.这个项目定义了ExternalSecrets API,让开发者可以在K8s内部以和使用内部Secret相似的方式使用外部系统提供的Secrets,大大简化了开发者为了让应用获

Knative 暂时不会捐给任何基金会 | 云原生生态周报 Vol. 22

作者 | 新胜.心贵.进超.元毅.衷源 业界要闻 谷歌:不会向任何基金会捐赠 Knative 自 Knative 项目开始以来,一直存在关于是否将 Knative 捐赠给基金会(例如 CNCF)的疑问. Google 领导层已经考虑了这一点,并决定在可预见的未来不向任何基金会捐赠 Knative. containerd v1.3 正式发布 CNCF 毕业后首个版本,功能扩展主要包括对 Windows v2 runtime 的支持以及 Plugins 相关支持(如允许 Plugin 注册为一个 T

如何保障云上数据安全?一文详解云原生全链路加密

点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者李鹏(壮怀)阿里云容器服务高级技术专家黄瑞瑞? 阿里云技术架构部资深技术专家 导读:对于云上客户而言,其云上数据被妥善的安全保护是其最重要的安全需求,也是云上综合安全能力最具象的体现.本文作者将从云安全体系出发,到云数据安全,再到云原生安全体系对全链路加密进行一次梳理,从而回答:在云原生时代,全链路加密需要做什么?如何做到?以

2020云原生7大趋势预测!

2020云原生7大趋势预测! 过去的几年,是云原生技术和理念得到广泛接受的几年.在这个快速发展的领域,预测未来显得尤其困难,但是我们又有着一些坚定的信念,相信以开放创新为支撑的云原生领域会持续重塑软件生命周期,带来不断的价值. 2019,在众多热门技术趋势中,云原生的关注度居高不下,很多开发者都对由此而兴起的一众技术十分追捧,众多企业开始探索云原生架构转型落地.在中国,开发者们经历了从关注“云原生概念”到关注“云原生落地实践”的转变. 在筹备阿里云首届云原生实践峰会的过程中,我们展开了对云原生技

云原生计算基金会宣布 JFrog 为金牌会员

DevOps Expert 加入 CNCF 以进一步实现云原生操作的最佳实践. 2017年12月4日 - 支持和集成 Kubernetes? 和 Prometheus? 等开源技术的云原生计算基金 ?(CNCF?)今天宣布,JFrog 作为金牌会员加入基金会.作为开源和云原生技术的大力支持者,JFrog 利用 Kubernetes 等技术帮助 4000 多名客户以快速,可靠和安全的方式构建和发布软件. "云原生本地计算基金会执行总监 Dan Kohn 表示:"CNCF 很高兴 JFro

云原生:云计算时代命题之终极解决方案

云原生:云计算时代命题之终极解决方案 https://blog.csdn.net/broadview2006/article/details/80131068 2017年08月17日 14:35:05 Cloud Native?云原生?很多人一看到这个词就懵了,到底什么是云原生? 云原生这个词其实由来已久,IT行业永远也不缺乏新概念.2015 年,Pivotal公司的Matt Stine提出Cloud Native这一概念,并结合这个概念包装了自己的新产品Pivotal Web Service和

云计算的下半场:云原生

是否上云已经很少被提及,如何它已经成为一个热门话题,因为它已经***到各行各业,和后半云计算时代,它的未来发展将走向,云计算市场发生了哪些变化值得考虑.接下来,云容科技将带你们一起分析: 云计算的下半场:云原生近年来,在政策的大力支持下,云计算在全国各地蓬勃发展,像雨后春笋般涌现出私有云,完成了传统IT基础设施向云架构的转型.如何更好地利用云是企业面临的另一个问题.传统的应用升级速度慢.体系结构臃肿.迭代速度慢.不能快速定位故障.快速响应不及时等.云原生概念的出现有助于企业快速.持续.可靠和大规