博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是Gelato?OpenSDS多云数据管理平台!
阅读量:2187 次
发布时间:2019-05-02

本文共 2475 字,大约阅读时间需要 8 分钟。

640?wx_fmt=jpeg

640?wx_fmt=gif&wxfrom=5&wx_lazy=1

01

什么是OpenSDS Gelato

随着云计算行业的空前发展,越来越多的企业开始采用多云IT架构。根据RightScale  “2019 State of the Cloud Report ”调查报告显示,在1000余家受访企业中有84%采用了多云战略。

而在多云应用中,企业又面临着云上云下数据统一管理,数据自由流动,以及跨云应用联动等问题。正是为了解决这类问题,OpenSDS多云数据管理平台项目应运而生(OpenSDS Gelato)。

Github链接: https://github.com/opensds/Multi-Cloud

02

当前我们做了什么

OpenSDS Gelato当前聚焦于多云场景中对象存储的统一管理,于2018年12月随OpenSDS BALI版本发布了基础能力,该版本主要实现了两个特性:

·      多云对象资源池化南向支持各类对象存储对接,如AWS OBS,Azure Blob,HuaweiCloud OBS等公有云对象存储服务,以及本地Ceph和FusionStorage对象存储。北向提供统一的S3接口,进行跨设备和云的对象数据统一读写。

·      对象数据跨云流动提供基于策略的数据流动功能,实现跨设备和云的数据流动和迁移。

OpenSDS Gelato中的整体架构如下图所示:

640?wx_fmt=png
后文将对图中各模块进行介绍。

2.1     多云对象资源池化

OpenSDS Gelato提供兼容S3的对象存储接口,通过这些接口用户可以进行桶的创建/删除,对象的上传/下载等操作。为了便于理解,在介绍我们的具体实现之前,有必要先介绍几个基本概念,以及他们之间的关系。

基本概念:

·      Backend:也称Storage Backend,与对象存储中的一个物理桶对应(比如AWS S3中的bucket,Azure Blob中的container),可理解为数据存储的仓库,是对象数据的物理存储地。

·      Bucket:即对象存储中通常所讲的桶,用户可通过OpenSDS提供的统一S3接口(PUT Bucket)创建,是用于存储对象的容器。

·      Object:即对象存储中通常所讲的对象,任一对象必须属于某一个Bucket。

Backend,Bucket和Object之间的关系,可由下图表示:640?wx_fmt=png

可以看到:

·      Bucket与Backend是多对多的关系,表示一个Bucket中的多个Object可以存储在不同的Backend中,多个Bucket中的对象可以存储在同一个Backend中。

注:如此设计的目的,是为了在数据迁移、生命周期管理等场景下,当对象从一个backend迁移到另一个backend后,用户视角看到的对象始终属于同一个桶,可以通过固定的URL进行访问。

·      Bucket和Object是一对多的关系,表示一个Bucket可以包含多个Object,一个Object必须属于某一个Bucket。

结合图 1:

·      Backend Service负责Backend的注册,注册过程中将判断信息的有效性,并将backend信息存入数据库。

·      S3 Service负责对外提供统一的S3接口

        ·   当用户创建bucket时,S3 Service将桶的元数据信息存入数据库。

        ·   S3 Service内部通过Adapter兼容不同的后端,当用户上传对象时可以指定backend,如果不指定则上传到bucket关联的默认backend。

2.2     对象数据跨云流动

在实际的应用场景中,云间以及云上/云下的数据流动涉及多种,比如备份、复制、迁移、归档、跨云生命周期管理等等。OpenSDS Gelato当前版本已实现了云间即云上/云下的数据迁移。

如图 1所示,数据迁移主要由Dataflow Service和Datamover两个模块配合完成,二者交互的细节可从以下图2中看出。

640?wx_fmt=png

如上图所示:

·      用户通过Dataflow Manager创建迁移计划,计划被存储在DB中;

·      Scheduler根据用户定义计划进行调度,产生迁移job,并将job通过kafka发送给Datamover;

·      Datamover从kafka接收job,执行实际的迁移操作,并实时更新job的执行状态和进度。

·      用户通过Dataflow Manager可以查询到job的状态和进度。

注:当前datamover的迁移通过基础的http请求实现,后续将考虑集成三方迁移工具实现迁移。

03

下一步计划做什么

OpenSDS Gelato将于2019年6月发布第二个版本,在这个版本中我们将实现跨云数据生命周期管理,即用户针对Bucket配置生命周期管理策略,Gelato将自动根据策略定义实现数据到期删除或迁移,迁移支持云内不同存储类别之间的迁移,以及云间的迁移。

除此之外,我们也在考虑或设计以下内容:

·      集成三方数据流动工具(备份、迁移、复制等)实现更丰富的数据流动;

·      引入自动编排工具,对任务进行编排,从而实现数据流动与云上应用的联动,比如,将本地数据传输到云上进行大数据分析,并将分析结果取回本地。

04

结语

OpenSDS Gelato 是Linux基金会下首个存储领域的顶级开源项目,我们的源代码完全开放,如果你对多云场景下数据统一、智能管理感兴趣,或者有这方面的需求,我们十分欢迎你参与到社区中来贡献代码或idea。

你可以通过以下方式进一步了解OpenSDS社区:

web: https://www.opensds.io

web: https://github.com/opensds

facebook: @opensds_io

slack: opensds.slack.com

05

作者简介

曾蜀芳: 华为高级软件工程师,从事灾备软件和存储管理软件研发工作多年,对数据保护领域和分布式存储系领域有丰富的设计开发经验。

来源: OpenSDS开源社区

温馨提示:

请识别二维码关注公众号,点击原文链接获取更多技术资料和文章

640?wx_fmt=jpeg

640?wx_fmt=gif&wxfrom=5&wx_lazy=1

转载地址:http://oxgkb.baihongyu.com/

你可能感兴趣的文章
(1129) Recommendation System 排序
查看>>
PAT1090 Highest Price in Supply Chain 树DFS
查看>>
(PAT 1096) Consecutive Factors (质因子分解)
查看>>
(PAT 1019) General Palindromic Number (进制转换)
查看>>
(PAT 1073) Scientific Notation (字符串模拟题)
查看>>
(PAT 1080) Graduate Admission (排序)
查看>>
Play on Words UVA - 10129 (欧拉路径)
查看>>
mininet+floodlight搭建sdn环境并创建简答topo
查看>>
【linux】nohup和&的作用
查看>>
Set、WeakSet、Map以及WeakMap结构基本知识点
查看>>
【NLP学习笔记】(一)Gensim基本使用方法
查看>>
【NLP学习笔记】(二)gensim使用之Topics and Transformations
查看>>
【深度学习】LSTM的架构及公式
查看>>
【python】re模块常用方法
查看>>
剑指offer 19.二叉树的镜像
查看>>
剑指offer 20.顺时针打印矩阵
查看>>
剑指offer 21.包含min函数的栈
查看>>
剑指offer 23.从上往下打印二叉树
查看>>
剑指offer 25.二叉树中和为某一值的路径
查看>>
剑指offer 60. 不用加减乘除做加法
查看>>