V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qingcloud
V2EX  ›  推广

对象存储,你不知道的事

  •  
  •   qingcloud · 2017-06-19 09:31:44 +08:00 · 4904 次点击
    这是一个创建于 2749 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前不久,青云 QingCloud 杨锦涛(Osier Yang) 在 QingCloud 实践课堂·深圳站上分享了《 QingStor™ 对象存储开发实践》,他从产品视角和场景视角详细介绍了 QingStor™ 对象存储,分享了关于 QingStor™ 对象存储产品的核心价值、系统架构及应用场景、在私有云和公有云的用户案例、以及其 SDK 和产品体系未来的发展。全文 3388字,建议阅读时间 13 分钟.

    QingStor™ 对象存储产品核心价值

    img

    QingStor™ 对象存储的使命是解决非结构化数据的存储,它具有以下几个特点:

    1、海量。一方面是指数量的海量,另一方面是指容量的海量。

    2、通用。QingStor™对象存储是一个通用的非结构化存储,作为 Public Service 提供给用户,它可以不用考虑用户的业务场景具体是什么,会产生什么类型的数据。

    3、平台。一方面是从狭义的角度来理解,QingStor™对象存储会提供给用户 API 及 SDK。从广义的角度来理解的话,QingStor™ 对象存储会构建很多工具在其本身及相关周边之上,以此走向用户的具体业务。

    QingStor™ 对象存储全局架构

    img

    QingStor™ 对象存储是多区域架构,由 Global 管控 Zone (区域),Zone 可以任意多个,在每个 Zone 下面有任意多个 Bucket (存储空间),在 Bucket 之下有 Object,Object 的类型各种各样。整个存储对象分为四级,从架构上来看趋于一个扁平的结构。从全局的角度来说,对象存储可以作为一个容量无限扩展的系统,因为可以有无限个 Zone。

    QingStor™ 对象存储高度可扩展的区域架构

    img

    区域架构包含以下几个子系统:

    第一个是接入子系统,它负责直接面对来自用户的请求,它是无状态的,因此可无限水平扩展。

    第二个是索引子系统,在对象存储系统的设计里,索引层次非常重要,因为其存储的是海量数据,因此会产生海量的索引数据,比如,每一个文件都有其元数据信息,每一个文件的存储,都会涉及到存放位置的记录。

    为此,QingStor™ 对象存储做了一个类似分布式关系型数据库的系统,该数据库和真正的分布式数据库唯一的区别是不支持分布式事务。因为在对象存储的场景下,没有必要支持分布式事务,但整个索引子系统可以做到无限的水平扩展。

    第三个是存储子系统。QingStor™ 对象存储做了多集群调度的方案,其目的是为了让存储容量能够无限地扩展,因为分布式系统,尤其是分布式存储中,当一个集群增长到一定程度时,集群的运维程度或者说可维护性都会降低。

    同时,在多集群调度的架构设计下,底层的存储集群可以很容易做异构,比如说,用户有一些业务场景是存取非常频繁,还有一些是访问比较低频,甚至有一些是数据接近于冷存储,而这些场景在多集群调度的架构设计下,很容易实现。

    第四个是调度子系统,负责调度多个集群,其对每一个存储集群进行各种维度的实时地监控,监控数据被用来做调度的决策因子,在用户上传文件时,由调度子系统来决策它应该存储到哪里。

    接入子系统、索引子系统、及存储子系统都可以无限水平地扩展,调度子系统本身无扩展性需求。因此,通过这样的架构,QingStor™ 对象存储的每一个区域可以达到容量无限可扩展及文件数量无限的目的。

    QingStor™ 对象存储应用场景

    对象存储作为应用数据的持久化存储

    img

    上图为对象存储作为应用数据的持久化存储架构图,包括负载均衡、应用服务器,遇到结构化的数据库存储到关系型数据库,非结构化的数据往对象存储里存。该场景的结构非常简单,但却非常通用,可同时应用到一些青云之外的场景,比如在私有场景下部署了 QingStor™ 对象存储,但是没有部署 QingCloud IaaS,这种使用方式仍然适用。

    企业各类数据的备份和归档

    img

    QingStor™ 对象存储兼容 AWS S3 接口,在这种场景下很多企业级备份软件,例如 CommVault、英方 i2dot,都可以通过 QingStor™ 对象存储 AWSS3 兼容的通道,将数据备份到 QingStor™ 对象存储上。

    QingStor™ 对象存储为了帮助用户完成实时数据增量的备份,开源了 qsctl 这样的工具。今年 QingStor™ 对象存储会进一步通过渠道、合作伙伴来对接更多家做数据备份和归档的厂商。

    企业网盘和文档管理的存储后端

    img

    对象存储解决的是底层系统的问题,它面向的是开发者,而企业网盘解决了很多上层逻辑的问题。也就是说,企业网盘是面向人的,企业网盘中做文件的共享、协作、打标签、收藏等等这样的功能对象存储不会提供。对象存储,一个空间中往往用户可能会放十亿、二十亿、上百亿的文件,这些文件如果人类去管控的话,几乎不可能。

    随着 AppCenter 的发布,QingStor™对象存储推出了一款基于开源的网盘系统 NextCloud 制作而成的 APP,用户可以借助这个 APP 很快地部署一个企业级网盘应用。

    对象存储和 CDN 加速服务的整合

    img

    从对象存储这个行业发展的趋势来看,对象存储的未来一定是外延的,这个外延是指向用户去延伸。对象存储本身是集中的系统,虽然它有多区域的部署模型,但是本质上是一个集中式的存储系统。而对象存储向外延伸的第一站便是 CDN。

    去年,青云 QingCloud 开发了融合的 CDN,所谓的融合 CDN 是我们要将接入到系统中的各家第三方的 CDN 厂商统一地调度。融合 CDN 的好处是:

    · 第一,地域覆盖更广。每一家 CDN 覆盖的线路、地域、运营商都不同,但是如果说把它们统一地调度起来,我们的覆盖率会很高。

    · 第二,通过智能的调度算法,提供更低价格的 CDN 服务,帮助用户在延时上获得更好的体验,此两点为融合 CDN 的核心使命。

    同时青云 QingCloud 还在做自建的 CDN,它分为两方面:一是公有云上会投入运营,二是在私有云场景下也有用户有 CDN 的需求。比如客户在私有云的场景下用了我们的对象存储,它的办公室可能遍布全国,它想尽可能地节省流量。也就是说,在私有云的场景下,青云 QingCloud 会把 CDN 逐渐地产品化,推向市场。

    静态网站托管

    img

    青云 QingCloud 鼓励用户在青云之上做这种动静分离的部署,静态的数据放在对象存储里,通过静态网站托管的方式和外挂 CDN 的方式做加速;剩下的动态资源,可以以结构化数据的形式,在关系型数据库如:MongoDB、MySQL 上存储,并且可以和大数据分析业务进行集成。

    视频存储和处理

    img

    该案例基于一个私有云客户,它的原理很简单,客户的业务场景里有很多摄像头,实时地进行视频监控。监控摄像头每天产生的数据量非常大,如果用户在本地存下来,然后再上传,本地存储的成本就会很高。所以,首先要解决的一个问题是视频流的实时传输。上图中视频服务器,它首先是接视频流,然后做一些相应的处理(如转码),最终把数据存在 QingStor™ 对象存储中。

    对象存储和大数据平台无缝集成

    img

    QingStor™ 对象存储和青云 QingCloud 的大数据平台,例如 Hadoop、Spark、Elasticsarch、Hive,全都可以进行无缝地集成,它集成的方式也是通过 AWS S3 的兼容。同时,我们也在为大数据平台开发插件,以将 QingStor™ 对象存储的 Bucket 作为大数据平台的原生存储。

    对象存储数据迁移方案

    img

    数据迁移方案其实也是很多用户关心的一个问题,针对存储在其他对象存储平台上和存在自己的数据中心里面的数据,QingStor™ 对象存储提供了以下两种迁移方式:

    一是被动迁移,在 QingStor™ 对象存储上创建了一个 Bucket,可以给这个 Bucket 设置一个属性,指向一个外部的源站。当访问 QingStor™ 对象存储 Bucket 里的数据时,如果它不存在,就会源站去拉取并存储到 QingStor™ 对象存储 Bucket 中,该功能称作“外部镜像”。

    二是主动迁移,以命令行工具 qscamel 完成,qscamel 可主动地将数据从指定的 URL 拉取到 QingStor™ 对象存储的 Bucket 中。被动迁移和主动迁移可配合使用,以对源站数据完成全部迁移。

    对象存储作为舆情系统的海量数据保存场所

    img

    该案例是 QingStor™ 对象存储作为舆情系统的海量数据存储的实际应用,首先通过爬虫爬取网页,将关系型的数据存在 QingCloud 的 RDB 里,将非结构化的数据存在 QingStor™ 对象存储里,同时用 Spark 对非结构化数据进行分析。分析完产生的数据可以回填,如果是结构化的数据,继续回填到青云的结构化数据服务里,产生的非结构化数据,回填至 QingStor™ 对象存储。最终,在展示层通过 CDN 加速做分发。

    SDK

    img

    QingStor™ 对象存储覆盖了七种语言的 SDK (注:截至目前,QingStor™ 对象存储新增.Net SDK、Scala SDK )

    QingStor™ 对象存储产品体系

    img

    1、点播 /直播

    视频、短视频作为人们沟通的新型媒介,它会很长一段时间持续地存在,整个直播行业最终会趋于理性化。

    2、Event Bus

    举例来讲,假设我是一个用户,上传一个图片到对象 Bucket 中。我想完成一个需求是,凡是以.JPG 为后缀的文件均打一个水印,这个需求看起来简单,其实会涉及到规则的匹配、事件的触发、事件入队列、事件订阅、时间处理等环节。QingStor™对象存储支持官方的数据服务 (音视频的处理、图形图像的处理)、第三方的数据处理、及用户自定义的数据处理。

    其中用户自定义的数据处理存在一个特征,和操作系统里的进程类似,进程可分为两类:一类是长时间运行的进程,另一类是生命周期比较短的进程。用户自定义数据处理中的特征生命周期就比较短,因此需要一个弹性的运行时环境。

    3、大数据

    大数据分为两个阶段:

    第一个阶段通过 AWS S3 的方式完成第一步的集成;

    第二步把对象存储做成大数据平台的 NativeStorage。

    4、Open Source

    QingStor™ 对象存储产品从去年开始为一些开源项目或者工具添加我们的插件,这样做的目的有两个:

    一是推行对象存储的接口,这个接口是一个广义上的说法,包括我们 API、SDK ;

    二是 QingStor™ 对象存储产品会在 Open Source 领域持续不断地构建生态。

    5、Portal

    Portal 的产品定位是帮助用户做对象存储的日志系统、监控系统、用户管理系统、对象存储里的常用监控指标( Object 信息等)、告警系统,把这些系统集成进来,以图形化的方式交付给用户,尤其是私有云用户,会非常关心。

    6、存储网关

    存储网关的一个非常重要的产品使命是存储分层,用户看到的是一个本地 NAS 设备,但较冷的数据会被异步地往远端的 QingStor™ 对象存储里备份,近而达到冷热数据分层的目的。也因此,存储网关在让用户在几乎无性能影响感知的情况下,将基于文件系统接口的应用所产生的数据源源不断的存储到 QingStor™ 对象存储中来。

    获取更多对象存储的应用实例、解决企业中数据同步的问题、探寻对象存储如何与大数据分析业务无缝集成、和 QingStor™ 对象存储研发工程师直接交流。

    这一切,尽在 QingCloud Insight2017

    QingCloud Insight 2017 云计算峰会将于 2017 年 7 月 28 日 - 29 日在北京国际饭店会议中心盛大举行。届时,青云 QingCloud 将发布一系列重要产品和功能,承接企业核心生产系统,并携手人工智能、IoT 及区块链领域的前沿技术所有者与领先的应用提供商共同发布「云+应用」的联合解决方案,重新诠释「云之基石」的全新定义,助您的业务加速进入智能与数据时代。

    7 月 28 - 29 日,让我们相约北京国际饭店 - 建国国际会议中心 ,扫描二维码即刻报名,一起洞见未来!

    img

    3 条回复    2017-06-19 11:55:21 +08:00
    xuchenkai
        1
    xuchenkai  
       2017-06-19 09:45:02 +08:00
    没有耐心看,楼下能总结下吗
    oott123
        2
    oott123  
       2017-06-19 09:57:05 +08:00
    qingcloud
        3
    qingcloud  
    OP
       2017-06-19 11:55:21 +08:00
    @oott123 为啥啊 老铁。。。 我真的是从这篇文章,了解对象存储的,还是有帮助的吧~ ( PS 报名活动吧~ )
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   947 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:03 · PVG 06:03 · LAX 14:03 · JFK 17:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.