作者:佚名 2018-04-23 15:14:02
云计算
混合云 基于Ceph对象存储的分级混合云存储方案能够很好的满足使用者的需求,但是在支持数据双向同步、代理读写等功能上还要继续完善。
我们提供的服务有:网站建设、做网站、微信公众号开发、网站优化、网站认证、堆龙德庆ssl等。为上1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的堆龙德庆网站制作公司
混合云存储方案的趋势
公有云存储
私有云存储
以上两方面,就导致了私有云存储相较于公有云存储成本较高的问题。
混合云存储
现有解决方案的局限性
混合云存储相较于公有云存储和私有云存储会更加全面,更加完善。Ceph 的对象存储针对混合云的场景,也相应的提供了解决方案,即云同步Cloud Sync 功能。Ceph RGW 的 Cloud Sync 功能是基于 RGW Multisite 机制实现的,先看下RGW Multisite 机制。
RGW Multisite
Ceph RGW 的 Multisite 机制用于实现多个 Ceph 对象存储集群间数据同步,其涉及到的核心概念包括:
Multisite 的工作机制如下:
因为 Multisite 是一个 zone 层面的功能处理机制,所以默认情况下,是 zone 级的数据同步,即配置了 Multisite 之后,整个 zone 当中的数据都会被进行同步处理。
整个 zone 层面的数据同步,操作粒度过于粗糙,在很多场景下都是非常不适用的。当前,Ceph RGW 还支持通过 bucket sync enable/disable 来启用/禁用 存储桶级的数据同步,操作粒度更细,灵活度也更高。
RGW Cloud Sync
基于 RGW multisite 实现了 Cloud Sync,支持将 Ceph 中的对象数据同步到支持 S3 接口的公有云存储中,默认为 zone 级的数据同步。由上面的介绍可知,RGW 的 Multisite 机制是用于实现多个 Ceph 对象存储集群之间、多数据中心之间数据同步的。而 zone 本身是一个抽象 的概念,那么从一个抽象程度更高的角度来看,它不单单可以代表一个 Ceph 对象存储集群。
RGW Cloud Sync 功能正是基于这样的思想所实现的。在 Cloud Sync 框架中,slave zone 不再仅仅对应一个 Ceph 对象存储集群,而是一个抽象程度更高的概念,即可以代表任何一个集群,而这个集群可以是 Ceph 对象存储集群,当然,也可以是 AWS 的 S3。 Cloud Sync 功能正是将支持 S3 接口的存储集群,抽象为 slave zone 的概念,然后通过 Multisite 机制,实现将 Ceph 中的对象数据同步到外部对象存储中。
可以通过 bucket sync enable/disable 启用/禁用存储桶级的数据同步。
Cloud Sync 的局限性
在使用 Ceph 对象存储时, RGW 的 Cloud Sync 功能实际上是基本可以满足混合云存储的应用场景的,但就当前 RGW Cloud Sync 功能的实现来说,还存在如下的局限性:
基于Ceph的分级混合云存储方案UMStor
有了上面这诸多局限性,我们开始考虑能否实现一种管理粒度更细、时间可控性更好的机制,来提供一种更为灵活的数据管理和迁移方案。通过对象数据存储分级、对象生命周期管理、自动生成迁移等系列实践,我们开发了一款基于Ceph的分级混合云存储解决方案UMStor。
解决方案一:对象数据存储分级
首先,我会介绍我们如何在 Ceph 对象存储中实现 Storage Class,对对象数据进行存储分级。
对存储系统分级
为什么要对存储系统进行分级?我觉得可以从如下三方面进行考虑。
存储介质
首先,在存储集群当中,出于对访问性能、成本等因素的考虑,我们可能会同时引入 SSD 和 HDD。在这种情况下,如果不进行存储分级,就可能会导致 某些对访问性能要求不高的数据,或是归档数据,被存储在 SSD 中,而某些对访问性能要求较高的数据则被存储在了 HDD 中,这无疑会影响数据的访问 性能,同时也提高了数据的存储成本。
存储策略
那有的数据对可靠性要求很高,我们才会将其以三副本的形式进行存储。可能有的数据,我们对它的可靠性要求没那么高,那我们可以考虑将其以两副本的形式进行存储,节省存储空间。
存储提供商
所以说,对存储系统进行存储分级,实际上是非常必要的。
RGW 数据存放规则
本身在 RGW 中,是存在 placement rule概念的,即数据的存放规则。可以在 placement rule 中定义存储桶索引数据存放的存储池 index pool, 对象数据存放的存储池 data pool,以及通过 Multipart 上传大文件时临时数据存放的存储池 data extra pool。
因为 placement rule 是针对所使用的存储池进行定义,而存储池是位于 zone 之下的概念,所以在 RGW 中将 placement rule 作为一个 zone 级别的配置, 其作用影响的粒度为存储桶级,即可以指定存储桶所使用的 placement rule ,那所有上传到该存储桶中的对象数据都会按照该存储桶的 placement rule 定义的存放规则进行存放。用户可以通过为不同的存储桶配置不同的 placement rule 来实现将不同存储桶中的对象数据存放在不同的存储介质中或是使用不同的存储策略。
然而,存储桶级的数据存放规则,显然不够灵活,无法满足某些应用场景的需求。
对象数据存储策略
Storage Class 这一概念,本身是 AWS S3 中的一个重要的特性。在 S3 中,每个对象都具有 “storage-class” 这一属性,用于定义该对象数据的存储策略。 在 S3 中 Storage Class 特性支持如下几个预定义的存储策略:
结合上面介绍的分布式存储系统对存储分级的需求,以及当前 RGW 中所支持的 data placement rule 的机制,我们在 Ceph 对象存储中引入了 object storage class 的概念。
• 将 RGW zone 的 placement rule 的作用范围进行了细粒度化的处理,使其作用到对象级别,实现了对象级别的存储分级, 即使是同一个存储桶中,不同的对象数据也可以保存在不同的存储池中。
解决方案二:对象生命周期管理
在实现了对象级别的 Storage Class 功能之后,我们开始考虑,如何实现数据迁移时间的可控性。 这也就是下面我们要介绍的内容。
AWS S3 对象生命周期管理
对象生命周期管理也是 AWS S3 中一个非常重要的特性,通过为存储桶设置生命周期管理规则,可以对存储桶中特定的对象集进行生命周期 管理。 当前,AWS S3 的对象生命周期管理支持;
RGW 对象生命周期管理
当前,Ceph RGW 对象存储实际上也支持 LC 对象生命周期管理。但是,因为 RGW 本身并不支持 object storage class / placement rule,因此其对象生命周期管理目前只支持 Expiration actions 过期删除处理。
实现完整的对象生命周期管理
基于上面实现的 Object Storage Class,在 RGW 现有 LC 实现的基础上,我们对 RGW LC 的处理逻辑进行了扩展,实现了 LC 迁移功能,支持通过对象生命周期管理,将对象数据迁移到其他存储类别 storage class 中,例如支持从 SSD 迁移到 HDD,从 3 副本池迁移到 2 副本池,从副 本池迁移到纠删码池,从 Ceph 集群中迁移到外部 Ufile 公有云存储等等,从而实现了完整的对象生命周期管理。
相较于 RGW 的 Cloud Sync 功能,通过配置 LC 迁移规则将 Ceph 集群中的对象数据迁移到外部云存储具有如下优点:
至此,我们已经在 Ceph 对象存储的基础上,实现了一套完整的、全粒度支持的数据迁移处理机制,从 zone 级、到 bucket 级、再到 object 级、基本可以覆盖所有应用场景的常见需求。
解决方案三:自动生成迁移策略
存储桶日志
存储桶日志是用于记录追踪对某一特定存储桶的操作和访问的功能特性。存储桶日志的每条日志记录都记录了一次对相应存储桶的操作访问请求的细节,例如请求的发起者、存储桶名字、请求时间、请求的操作、返回的状态码等等。
自动生成迁移策略
根据存储桶日志中的操作记录、以及可配置的标尺参数,对存储桶中的对象数据的热度进行分析,并按照分析结果自动生成迁移策略,对对象数据进行管理。
一张图来概要介绍下处理流程:
未来
基于Ceph对象存储的分级混合云存储方案能够很好的满足使用者的需求,但是在支持数据双向同步、代理读写等功能上还要继续完善。
本文题目:基于Ceph对象存储的分级混合云存储方案
网站网址:http://www.gawzjz.com/qtweb/news15/199715.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联