容器连接的存储-Container Attached Storage (CAS)

原创
2021/06/21 22:06
阅读数 65

容器连接的存储-Container Attached Storage (CAS)

译自:https://docs.openebs.io/docs/next/cas.html


在 CAS 或 Container Attached Storage architecture中,存储运行在容器内部,与存储绑定的应用紧密相关。存储作为微服务运行,没有核心模块的依赖。Orchestration systems 如 Kubernetes 集成提供存储卷,与其它的微服务或容器完全一样。CAS的提供获益于DAS 和 NAS。

PVs on monolithic systems

在non-CAS models,Kubernetes Persistent Volumes 与 Kernel modules紧密绑定,使 storage software on Kubernetes 节点 自然成为一个整体。

NON-CAS

 

PVs on CAS systems

与此相反,CAS 致力于提升云原生应用的灵活性和可扩展性。 Kubernetes PV (Persistent Volume)存储软件基于微服务架构。控制平面 (storage controller) 和数据平面作为 Kubernetes Pods 运行,使cloud-native to CAS的能力成为可能。

CAS

 

CAS的优点

敏捷性

在CAS中每一个storage volume都有容器化存储控制器和对应的容器化replicas。因此,资源的维护和调优是敏捷的。Kubernetes 滚动升级能力能够无缝地升级 storage controller 和 storage replicas。CPU 和 memory等资源,可以通过容器的cGroups进行调优。

Storage Policies的粒度

容器化存储软件以及贡献给每一个卷的存储控制器最大化storage policies的粒度。通过 CAS 架构,可以配置每一个卷的存储策略。除此之外,你可以监测每一个卷的参数、动态更新存储策略来优化工作负载的结果。存储的 throughput, IOPS, 和 latency 的控制可以增加额外的粒度。

避免Lock-in

避免云厂商的lock-in是恒多用户和企业的经常性目标。该目标促使更多地采用Kubernetes作为广泛接受的通用集成平台。但是,有状态应用的数据依赖于cloud provider 和 technology。通过CAS 方法,storage controller可以在后台迁移数据,在线迁移也成为一个更容易完成的任务。换句话说,有状态负载可以从一个Kubernetes负载移动到另一个集群,对用户来说以非中断业务过程的方式完成。

Cloud Native

CAS 容器化存储软件使用 Kubernetes Custom Resource Definitions (CRDs)代表 low-level storage resources,如disks 和 storage pools。该模型使存储可以被无缝整合到其它的cloud-native工具中。该 storage resources 可以被 provisioned, monitored, managed,使用 Prometheus, Grafana, Fluentd, Weavescope, Jaeger以及其它的工具。

PV 作为 CAS的微服务

CAS

如上图所示,在CAS 架构中,存储控制器和复制集软件完全是微服务,因此没有核心组件的依赖。典型地,storage controller POD 被调度到persistent volume 的同一个节点用于提升效率,replica pods 被调度到集群中的任何节点。每一个replica配置为完全独立于其它,使用各自的 local disks, SAN disks, 或 cloud disks等资源。这允许极大的灵活性,可以更好地管理 storage allocation for workloads,以及进行伸缩、扩容。

超级集成和 not Distributed

CAS 架构没有跟随目前典型的分布式架构,这些架构都有各自的限制性。通过 storage controller 到storage replicas的同步复制,存储具有高可用的特性。 卷复制的元数据在节点间不共享,由本地节点维护。如果一个节点失效,在无状态情况下,将会转向第二、第三个节点,数据仍然可用。因此,在 CAS里不会出现 Ceph, Glusterfs等等的节点失效的爆炸半径效果。

同样,对于超级集成系统, CAS的存储和性能是可扩展的。对于有自己的存储控制器的每一个volume,在接点容量受限时存储可以扩容。当容器应用数量增加,更多节点加入时,可以增加整个存储容量和性能,从而 storage对新的应用容器也能可用。该过程与成功的超级集成系统 Nutanix非常相似。

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部