容器附加存储CAS之OpenEBS快速入门

                                              作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.CAS之OpenEBS存储机制概述

1.什么是CAS

Kubernetes的卷通常是基于外部文件系统或块存储实现,这种存储方案称为共享存储(Shared Storage)。

所谓的CAS,全称为Container Attached Storage,翻译为中文是"容器附加存储"。

CAS则是将存储系统自身部署为Kubernetes集群上的一种较新的存储解决方案。存储在CAS中的数据可以直接从集群内的容器访问,从而能显著减少读/写时间。

2.什么是OpenEBS

OpenEBS是CAS存储机制的著名实现之一,最初由MayaData构建,后捐赠给了CNCF,目前是CNCF的沙箱级项目。

OpenEBS能够将Kubernetes工作节点上可用的任何存储转换为本地卷或分布式复制卷。
	本地卷:
		- 本地卷,即节点级卷,仅支持在卷所在的节点本地访问,因此,Pod也必须调度至卷所在的节点才能使用本地卷;
		- OpenEBS可基于本地块设备或分区、子目录或者LVM、ZFS、甚至是由文件模拟的设备来创建PV,这些可统称为本地卷;
		
	复制卷:
		- 是支持将数据同步复制到多个节点的卷,因而能实现节点容错,以及跨可用区进行数据复制;
		- OpenEBS可基于Mayastor、cStor 或Jiva三种引擎之一,为每个分布式复制卷创建一个微服务;
		- Pod通过iSCSI(san存储表示是块存储类型,cStor和Jiva)或NVMeoF(Mayastor)连接至卷上;
		
		
OpenEBS存在着众多组件,他们大体可以分以两大类:
    控制平面:
        负责管理节点上的存储、配置和管理数据引擎、管理卷的生命周期、集成到Prometheus进行遥测和监控等;
		
    数据引擎:
       - 1.数据引擎是OpenEBS 的核心,负责代表Pod对底层持久存储执行读写操作;
       - 2.OpenEBS支持存储引擎包括Mayastor、cStor、Jiva和OpenEBS LocalPV等;
       
       
参考链接:
	https://openebs.io/docs/concepts/architecture

3.OpenEBS数据引擎

数据引擎类似于存储控制器,OpenEBS提供了一系列的数据引擎,所有引擎都支持PV的动态置备和数据的强一致性。

数据引擎的分位本地引擎和复制引擎:
	本地引擎:
		- 1.可以从本地磁盘设备(依赖于NDM)或主机路径创建PV,也可基于集群节点上的LVM或ZFS创建PV;
		- 2.适合内置可用性和可扩展性功能的应用程序,或者作业类的有状态工作负载;
		- 3.基于节点上支持的存储机制,可选的动态Local PV包括"Local PV hostpath"、"Local PV device"、"ZFS Local PV"、"LVM Local 
PV"和"Rawfile Local PV"这五种;

	复制引擎
		- 1.复制卷,顾名思义,就是那些可以将数据同步复制到多个节点的卷;
		- 2.复制引擎允许从复制节点范围内的任一节点上进行数据访问,并支持跨可用区进行复制;
		- 3.复制卷通常还支持快照、克隆、扩展等功能;
		- 4.基于节点上支持的存储机制,可选的复制引擎包括Mayastor、cStor和Jiva;
		
如何选择数据引擎:
	- 1.应用程序处于生产状态且不需要存储级复制,则首选LocalPV;
	- 2.应用程序处于生产状态并且需要存储级复制,则首选cStor;
	- 3.应用程序较小、需要存储级复制但不需要快照或克隆,则首选Jiva;
	- 4.应用程序需要低延迟和接近磁盘的吞吐量,需要存储级复制,并且工作节点具有性能较高的CPU、RAM和NVME,那么Mayastor是首选;
	
参考链接:
	https://openebs.io/docs/concepts/architecture#data-engines

4.NDM(Node Disk Manager)

部署OpenEBS的过程中,NDM由专用DaemonSet编排运行于每个节点上
	- 1.负责发现裸设备并过滤掉不支持使用的设备,例如已经带有文件系统的磁盘;
	- 2.需要特权模式,访问/dev、/proc和/sys目录来监视连接的设备,并使用各种探测器获取这些设备的详细信息;
	
根据过滤器(filters)检测附加到节点上的裸磁盘设备,并将它们识别为“块设备CRD”
	- 1.NDM支持使用include filters或exclude filters;
	- 2.filter的配置保存于ConfigMap中;

基于节点上的裸磁盘设备提供PV的存储引擎,会依赖于NDM实现其功能,这包括Local PV device和cStor。

5.部署OpenEBS的基本流程

部署OpenEBS的基本流程:
	- 1.在各节点上部署iSCSI client;
	- 2.在Kubernetes集群上部署OpenEBS;
	- 3.选择要使用的数据引擎;
	- 4.为选择的数据引擎准备StorageClass;
	
部署文档:
	https://openebs.io/docs/quickstart-guide/installation

二.部署OpenEBS

推荐阅读:
	https://openebs.io/docs/quickstart-guide/installation#installation-via-helm
posted @ 2025-02-12 00:56  尹正杰  阅读(331)  评论(0)    收藏  举报