From 9eabf7592f5fec1943e1ec19d125ba7384c01660 Mon Sep 17 00:00:00 2001 From: Jimmy Song Date: Tue, 9 Jan 2018 14:04:24 +0800 Subject: [PATCH] OpenEBS architecture overview --- images/OpenEBS-Control-Plane.png | Bin 0 -> 54331 bytes images/OpenEBS-Data-Plane.png | Bin 0 -> 37263 bytes practice/openebs.md | 76 ++++++++++++++++++++++++++++++- 3 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 images/OpenEBS-Control-Plane.png create mode 100644 images/OpenEBS-Data-Plane.png diff --git a/images/OpenEBS-Control-Plane.png b/images/OpenEBS-Control-Plane.png new file mode 100644 index 0000000000000000000000000000000000000000..6db8043d88646bd5bdd92d52ef9de7a51f2546a4 GIT binary patch literal 54331 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 literal 0 HcmV?d00001 diff --git a/practice/openebs.md b/practice/openebs.md index e987c7095..bac63ddb9 100644 --- a/practice/openebs.md +++ b/practice/openebs.md @@ -2,4 +2,78 @@ [OpenEBS](https://github.com/openebs/openebs)是一款使用Go语言编写的基于容器的块存储开源软件。OpenEBS使得在容器中运行关键性任务和需要数据持久化的负载变得更可靠。 -我们知道AWS中提供了[EBS](https://amazonaws-china.com/cn/ebs/)(Elastic Block Storage),适用于 Amazon EC2 的持久性块存储,可以满足要求最苛刻的应用程序在功能和性能方面的要求,OpenEBS即其开源实现。 \ No newline at end of file +OpenEBS由[CloudByte](http://www.cloudbyte.com/)研发,这是一家专业做容器化存储的公司,OpenEBS是其一款开源产品,CloudByte将其在企业级容器存储的经验付诸到该项目中。这个项目的愿景也很简单,就是让需要持久化存储的工作负载中的存储服务能够直接集成在环境中,存储服务可以自动管理,将存储的细节隐藏起来,就像存储系统是另一套基础架构一样。 + +我们知道AWS中提供了[EBS](https://amazonaws-china.com/cn/ebs/)(Elastic Block Storage),适用于 Amazon EC2 的持久性块存储,可以满足要求最苛刻的应用程序在功能和性能方面的要求,OpenEBS即其开源实现。 + +## 简介 + +使用OpenEBS,你可以将有持久化数据的容器,像对待其他普通容器一样来对待。OpenEBS本身也是通过容器来部署的,支持Kubernetes、Swarm、Mesos、Rancher编排调度,存储服务可以分派给每个pod、应用程序、集群或者容器级别,包括: + +- 跨节点的数据持久化 +- 跨可用区和云厂商的数据同步 +- 使用商业硬件和容器引擎来提供高可扩展的块存储 +- 与容器编排引擎集成,开发者的应用程序可以自动的配置OpenEBS +- 基于CloudByte在BSD的容器化经验,为用户提供OpenEBS的QoS保证 + +## 架构 + +OpenEBS存储控制器本身就运行在容器中。OpenEBS Volume由一个或多个以微服务方式运行的容器组成。这种存储控制器功能基于微服务架构——每个卷的数据由其自己的一组容器来提供,而不是由一个统一的同时为多个卷提供控制的,单体(monolithic)存储控制器来提供。这就是OpenEBS与传统存储设备的本质区别。 + +OpenEBS的架构可以分为数据平面(Data Plane)和控制平面(Control Plane)两部分: + +- 数据平面:为应用程序提供数据存储 +- 控制平面:管理OpenEBS卷容器,这通常会用到容器编排软件的功能 + +### 数据平面 + +下图是OpenEBS对应在Kubernetes集群上部署的架构图。其中,黄色部分是OpenEBS持久化存储卷,通过Kubernetes的PV来创建,使用iSCSI来实现,数据保存在node节点上或者云中的卷(如EBS、GPD等),这取决于您的集群部署在哪里。OpenEBS的卷完全独立于用户的应用的生命周期来管理,这也是Kuberentes中的PV的基本思路。 + +![OpenEBS集群数据平面(图片来自https://github.com/openebs/openebs/blob/master/contribute/design/README.md)](../images/OpenEBS-Data-Plane.png) + +OpenEBS卷为容器提供持久化存储,具有针对系统故障的弹性,更快地访问存储,快照和备份功能。此外,它还提供了监控使用情况和执行QoS策略的机制。 + +存储数据的磁盘称为存储后端,可以是主机目录,附加块设备或远程磁盘。每个OpenEBS卷包含一个iSCSI目标容器(在上图中表示为openebs-vol1)和一个或多个副本容器(openebs-vol1-R1和openebs-vol1-R2)。 + +应用程序pod通过iSCSI目标容器访问存储,iSCSI目标容器将数据复制到其所有副本。在发生节点故障时,iSCSI目标容器将从剩余的其中一个在线节点上启动,并通过连接到可用副本容器来提供数据。 + +**源码** + +该部分的实现包括两个容器: + +- [openebs/jiva](https://github.com/openebs/jiva):存储控制功能,包括复制逻辑 +- [openebs/gotgt](https://github.com/openebs/gotgt):由openebs/jiva使用的iSCSI目标功能 + +### 控制平面 + +OpenEBS控制平面又叫做存储编排或maya。目的是为了创建超融合的OpenEBS,将其挂载到如Kubernetes、Swarm、Nomad等容器编排调度引擎上,用来扩展特定的容器编排系统提供的存储功能。 + +![OpenEBS集群的控制平面(图片来自https://github.com/openebs/openebs/blob/master/contribute/design/README.md)](../images/OpenEBS-Control-Plane.png) + +OpenEBS的控制平面也是基于微服务的,它的服务可以分成以下几个部分: + +- 容器编排插件,用于增加强容器编排框架的功能: + - **Kubernetes动态配置**:[openebs-provisioner](https://github.com/openebs/external-storage/tree/master/openebs) + - **Kubernetes-dashboard**:[openebs-dashboard](https://github.com/openebs/dashboard) + - **扩展的schema**:基于Kubernetes的CRD(自定义资源类型),存储OpenEBS相关的配置数据 +- 集群服务,提供OpenEBS特定的存储智能,如: + - **maya-apiserver**:包含执行卷操作的API,可将请求转换为容器编排系统特定的操作 + - **maya-mulebot**:使用收集的信息来建议优化的布局和事件处理提示 + - **maya-connect**:允许将监控数据上传到`maya-cloud`,以便进一步进行存储访问模式分析 +- 节点服务,提供OpenEBS特定的随kubelet一起运行的存储智能,如: + - **maya-agent**:包括存储管理功能 + +通过使用prometheus、heapster、grafana和jaegar进行上述服务,可以添加监控和跟踪功能。 + +**源码** + +- [openebs/maya](https://github.com/openebs/maya):所有特定的二进制代码(非插件)都存储在这个仓库中,比如`maya-apiserver`、`maya-agent`、`maya-mulebot`、`maya-connect`、`mayactl`等等。 +- [openebs-dashboard](https://github.com/openebs/dashboard):kubernetes-dashboard项目的分支,扩展了存储功能。 +- [openebs-provisioner](https://github.com/openebs/external-storage/tree/master/openebs):来自Kubernetes孵化器项目的OpenEBS K8s Provisioner。 + +## 参考 + +- https://www.openebs.io/ +- https://github.com/openebs/openebs +- [Data Scientists adopting tools and solutions that allow them to focus more on Data Science and less on the infrastructure around them](https://blog.openebs.io/data-scientists-adopting-tools-and-solutions-that-allow-them-to-focus-more-on-data-science-and-less-db9654063bd5) +