SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Downloaden Sie, um offline zu lesen
RockStor
基于Hadoop的云对象存储系统
            Schubert Zhang
              2012-02-10
 This is a experimental prototype project.
Agenda
•   背景和系统概述
•   系统架构和实现
•   主要业务流程和系统功能
•   性能评估
•   功能完善和应用开发
第一部分:

背景和系统概述
什么是对象存储系统
对象(Object)是对象存储的基本单元,每个Object是数据和数据属性集的综合体,
数据属性可由系统用户自由扩充。

对象存储系统是对象存储的载体,用户可通过对象存储系统完成对象的读写操作。

用户通过对象存储系统保存数据的典型数据类型包括:

  多媒体,音乐,图片
  视频监控文件
  电话录音文件
  压缩log文件
  备份文件
  操作系统的镜像
  ……
设计对象存储系统面临的问题
功能
 数据的组织
 对象存储系统需要合理组织对象数据在分布式文件系统上的存储结构,以满足生产系统
 中大量随机读写对系统性能带来的挑战。
 元数据的组织
 合适的元数据存储引擎以及正确的Schema设计能使元数据的访问更加高效,此处的元数
 据既包括对象本身的元数据又包括对象的存储信息。

性能
 吞吐
 对象存储系统需要满足在高并发访问下的稳定性能,无论是元数据还是数据的访问都不
 能成为系统性能的瓶颈。
 稳定性
 系统的性能不能随着系统运行时间的增长而下降,可靠稳定的系统实现应能够在系统长
 期运行中保持稳定,并能够应对系统硬件故障。
 可扩展性
 系统扩容应简单易行,性能可线性增长。
Why Hadoop
HDFS
HDFS是可靠稳定的分布式文件系统,具有高可靠,高并发等优点,且在一定条件下能够随着
系统规模的扩大实现性能的线性增长。

HBase
HBase架设在HDFS之上,利用HDFS的特性保证数据的稳定可靠,HBase负责数据的组织和管理,
在Key-Value存储之上实现松散离散的数据表结构。

ZooKeeper
实现了全局锁服务,协调管理集群内各个计算和存储资源的状态,是大规模集群内部全局数
据资源管理的绝佳工具。

MapReduce
分布式并行计算框架和数据并行处理的实现,使得对大数据的处理变得简单易行,随着计算
节点的增加,分析处理的延时会大大降低。

Hadoop生态环境的各个组件为我们实现分布式对象存储提供了基础架构。
系统概述
• 产品名称:RockStor (暂定)
  – 为产品确定名称,以方便编码、文档描述、用户界面等的各种命名要求。

• 开发背景
  – 以Hadoop、HBase为基础;
  – 学习和参考Amazon AWS S3的功能和接口;
  – 结合业界比较成熟的“分布式存储”、“对象存储系统和服务”的理念和设计思
    路;
  – 这是一个实验性开发项目,目的是快速实现对象存储原型,验证技术和思路,同
    时熟悉Hadoop、HBase等开源产品。

• 对象存储系统 - RockStor
  – 采用分布式存储技术,为用户提供高可靠、大容量、易扩展的存储平台系统,采
    用云存储服务技术为用户提供简单易用的使用接口。用户可在不关心系统的分布
    式实现的情况下,通过系统提供的接口使用该对象存储系统。
对象和对象存储
•   对象和对象存储
    – 对象(Object)是对一个数据单元的原始抽象,是最初级的概念。
    – 对象存储系统就是用来存储和管理这些对象的。
    – 在一个对象存储系统中,一个对象一般包含对象数据(Data)和对象元数据(Metadata)。对象数据是对象的主
      体,而对象元数据是用来描述这个对象的一些参数。
    – 从存储平台的角度看,我们一般认为对象数据是非结构化的(即存储平台不关心其内部结构)。例如,一
      个网页的HTML内容可以作为对象数据,而该网页的访问权限、URL、大小等可以作为其元数据。再例如,一
      张图片的图像内容可以作为对象数据,而该图片的格式(JPEG或BMP)、大小、作者、主题等可以作为其元数
      据。

•   对象存储系统一般可以存储许多对象,并可以根据每个对象的唯一标识来定位该对象在实际
    物理存储介质上的位置。在分布式对象存储系统中,位置信息还包括了分布式的节点位置等。
    对象存储系统还提供对象的元数据存储来保存对象的元数据。一般来说,系统会定义一些通
    用的元数据,例如:对象所有者、大小、ACL(Access Control Lists,访问权限控制列表)等。
    同时,用户也可以添加一些自定义的元数据,例如上面提到的图片的作者和主题等。

•   对象存储系统一般只提供通过对象的唯一标识来读写对象数据及其元数据的机制。
系统关键特性
•   功能方面
    –   RockStor是一个用于存储和管理海量对象数据的存储系统。系统建立在分布式存储集群上,实现海量对象存储能力和逻辑,提供REST访问接口。

•   结构方面
    –   RockStor以分布式数据存储和分布式元数据存储为基础,实现了元数据和存储的逻辑分离。实现上使用了线程池-资源池的编程架构,提供高性能保
        证。

•   接口方面
    –   RockStor仿效Amazon S3,提供REST API服务接口。该接口可以作为RockStor的统一基准接口,对外提供存储服务,也可以作为其他接口的下层接口。
        系统基于该REST接口封装了基于Java语言的SDK,方便开发者使用。

•   特点方面
    –   Scalability:以分布式存储系统作为底层存储系统的强大Scalable能力,满足大规模数据的存储和扩展要求。
    –   High Availability:底层分布式存储系统的分布式架构和数据副本支持系统的稳定性和健壮性。
    –   Real-Time/Low-Latency:数据实时生效可见(Available)。
    –   High Throughput:强大的分布式系统支持很高的吞吐率。
    –   Multi Part Upload:提供了Multi Part的并发上传功能,提高大对象上传速度;
    –   Range Based Download: 提供基于Range的多点并发下载功能,极大的提高了下载速度。
    –   Simple Data Model:存储的对象特点是一次写多次读,向用户提供对象的原子操作,简化了存储逻辑。用户可以由基本操作组合自己的业务逻辑。
    –   REST API:提供基于HTTP的Web访问接口,方便用户随时随地访问系统。接口采用先进的REST风格。

•   应用方面
    –   RockStor主要面向海量对象存储。适用于互联网、企业用户的数据存储业务。可面向大规模用户、企业提供存储服务。可使用RockStor作为平台基
        础构建完整的类似Amazon S3的云存储服务和企业内部存储服务。
RockStor基本术语和概念
Terminology
                                                                      User
  User
  用户,即RockStor的使用者,User可以在RockStor上创建Bucket,然
  后在Bucket中存取Pebble。
  Bucket
  Pebble的容器,Bucket与User是多对一的关系,Bucket只能由User删
  除。
                                                 Bucket1    Bucket2          Bucket3      Bucket4
  Pebble(Object)
  RockStor中的基本存储对象(Object),对User提供的最小存储单元,
  Pebble必须存放在Bucket中。
  Chunk
  Pebble实体数据的数据块,是Rock的组成单元,一个Pebble视其大小,
  可以有1个或多个Chunk组成。                                Object   Object     Object     Object    Object
  Rock
  用来存储Pebble的实体数据块的容器,每个Rock对应分布式文件系统
  上一个文件,每个Rock文件的大小根据配置有一个较大的上限,该文
                                                  Object   Object     Object     Object    Object
  件用来存储大量的Chunk数据。
  Garbages                                       Rock
                                                  &
  被删除或者未完成写操作的Chunk的管理容器。                       Chunks
第二部分:

系统架构和实现
系统逻辑架构
                开发环境 (SDK for Developers)                  •   物理存储层

                    服务接口层 (Access)           系
                                             统
                                                           •   数据分布层
  用                                          管
  户                                          理
  管                元数据层 (Metadata)           和
  理                                          工
                                                           •   元数据层
 (User) & AAA




                                             具




                                            (Management)
                数据分布层 (Data Distribution)

                                                           •   服务接口层
                   物理存储层 (Storage)


                                                           •   用户管理和AAA
对象存储系统在逻辑上由物理存储层、数据分布层、元数据层、服务
接口层以及整体的系统管理构成。同时,为了对外提供服务,还提供
基于用户管理的AAA(认证Authentication,授权Authorization,记帐             •   系统管理和工具
Accounting)功能。除此之外,为了系统展示和管理方便,还提供方便
的管理工具等。基于分布式存储平台所提供的服务接口,提供方便开
发者开发的SDK (Software Development Kit)。                       •   开发环境SDK
系统实现总体架构
                        SDK (Java) for Developers
                                                                            • 提供完整的云对象存储平
                                                                              台系统和云对象存储服务
                                        RESTful API
                                      (Cloud Service)
                                                                              能力。该系统和服务能力
分布式云对象存储系统
                     RockStor Service Load Balancers
                                                                              可以用于构建一个较为完
  Management
                    (访问请求负载均衡器,多点部署,LVS)                                      整的类似Amazon S3的云
    Console
                                                               RockMaster     对象存储系统和服务(例
   AAA, CAS                     RESTful API
                                 (Internal)
                                                                              如针对Internet提供共有
                                                                              云存储服务)。同时,也
  RockServer       RockServer                 RockServer       RockServer     可以在企业内部私网中对
                                                                              企业内部应用提供存储服
                                                                              务。
        分布式存储系统集群 Hadoop                            分布式数据库集群 HBase
         (存储和管理Rock文件)                               (存储和管理元数据)
主要模块
•   分布式存储系统集群和分布式数据库集
     – 作为数据分布式存储的基础,可以使得RockStor在存储层面实现强大和灵活的分布式,从而实现海量存储和
       灵活扩展。
     – 倾向于使用和定制HDFS和NoSQL/HBase等开源软件。
•   分布式实现的RockServer集群
     – 用于接收业务请求,实现了云对象存储服务的业务流程和逻辑,并实现数据块的组织。
     – 分布式存储系统集群、分布式数据库集群和RockServer集群可以共用同一物理服务器集群。
•   RockMaster
     – 负载很轻,主要实现一些RockServer集群管理和垃圾清理服务调度工作。
•   AAA和CAS服务器
     – 实现用户管理数据库和安全认证功能。
•   Management Console
     – 为用户提供一个通过Web浏览器管理自己的存储系统的窗口。
•   REST API接口
     – 提供类似Amazon S3的REST API接口。
•   SDK for Java
     – 提供了基于Java语言的SDK包,方便开发者应用编程。
系统分层逻辑
                                 RockServer        RockServer

                                                                    AAA, CAS     Management Console
                 Web Interface     RESTful           RESTful
                                     API               API

                                 Service Logics   Service Logics

                                   Storage           Storage
                Storage Layout     Module            Module         RockMaster




                 存储和分布式                              DFS             DDB
                 系统支撑层            ZooKeeper                                          MapReduce
                                                  分布式文件系统          分布式数据库




•   存储和分布式系统支撑
     – 为RockStor提供分布式集群系统支撑架构,如集群节点管理、集群通讯、故障检测、负载均衡等。同时提供
       可扩展的持久化存储服务,包括分布式文件系统DFS和分布式数据库系统DDB。我们采用HDFS和
       NoSQL/HBase。

•   Storage Layout
     – RockStor存储逻辑实现层。该层实现了如何存储和管理用户上载的对象数据和元数据。

•   Web Interface
     – RockStor的Web服务访问层。用户可通过REST API,通过互联网访问RockStor,进行数据存取。系统还提供了
       Management Console服务器,为用户提供直观的浏览器访问页面。AAA/CAS提供用户管理和安全认证服务。
数据管理模型
对象存储系统


          用户
         User-1



                   对象集
                  Bucket-11


                                对象
                              Object-111


                                对象
                              Object-112


                                对象
                              Object-113

                   对象集
                  Bucket-12


                                对象
                              Object-121


                                对象
                              Object-122
          用户
         User-2
数据存储引擎
存储在哪里?
HDFS是可靠稳定的数据存储容器,具有高可靠性高可扩展性等优点,适合大数据写入和读取,
对于大规模数据中心的部署亦提供了高可扩展性的保证。

有什么问题?
HDFS并不完美,可能并不能直接使用HDFS作为底层存储引擎
1. HDFS的设计初衷只是面向大文件的文件系统(Part of Nutch);
2. 单一的NameNode设计使得整个系统的NameSpace非常有限;
3. 这不是一个实时的系统;
4. ……

如何解决?
HDFS为数据的稳定可靠提供了保证,我们可以通过应用层实现封装,实现对大规模小文件的
读写操作。

HDFS是RockStor的数据存储引擎。
存储模型设计
          Logic            Physical
                                             DFS       Rock    •   Bucket = 对象集
Bucket            Pebble              Part             Chunk

                                              Rock     Chunk
                                                               •   Pebble = Object = 对象
 Pebble            Part           Chunk
                                               Chunk   Chunk
                                                               •   Chunk = 数据块
 Pebble            Part           Chunk        Chunk   Rock

 Pebble            Part           Chunk
                                               Chunk   Chunk   •   Rock = 数据块的存储容器
                                                       Chunk

                                                       Chunk   •   Part = 从编程客户端角度的数据上
                                                                   传分块

RockStor涉及到的存储单元有Bucket、Pebble、Rock、Part以及Chunk。存储单元间的逻辑
关系如上图所示。Bucket、Pebble和Part是逻辑存储单元,没有实体数据文件。每个
Bucket可容纳指定容量的Pebble。Pebble由一个或多个Part组成。Part由一个或多个Chunk
组成。Rock和Chunk是物理存储单元,存储Pebble的实体数据。Rock对应DFS上的内部文
件,Chunk是Rock文件中的组成部分。所有存储单元的元数据信息都保存在DDB中。
元数据存储
存储在哪里?
相对于数据存储来讲,对象的元数据更加结构化。
HBase提供了稳定可靠的Key-Value存储机制,并能够根据用户创建的Schema提供丰富的上层
表示,是可靠的结构化数据存储引擎。
HBase的顺序写入性能和随机读取性能可以满足元数据读取的需求,并能够长期可靠的提供
服务。

HBase有什么不足?
HBase底层采用Key-Value存储,虽然提供了数据表的Schema描述,但其本身无法提供RDMBS
的所有功能。
HBase和HDFS一样,存在单节点失效的问题(HMaster是单节点)。

怎么处理?
在相当一部分应用中,DBMS并不需要非常强的关系型数据库的特性,就像RockStor一样,读
写性能是我们关注的关键。

HBase是RockStor的元数据存储引擎。
元数据模型
User               Bucket                          Pebble
RowKey UserId      RowKey BucketId                 RowKey PebbleId
CF                 CF                              CF
BucketName1        Owner                           Owner
BucketName2        Etag                            PartPrefix
……                 Acl                             PartNum
                        BucketId对应PebbleId是天然
                                                   Size
                        的映射,如:                     Etag
Rock
                        Bucket=testBucket          Mime
RowKey RockId           PebbleId=testbucket/pic/   Meta
CF M                    1.jpg
CreateTime
                        Chunk
Version                                            ChunkId
                        RowKey ChunkId
Retire                                             =MD5(“testbucket/pic/
                        CF
GarbageBytes                                       1.jpg”+0+(maxLong-
                        RockId
DeletedBytes                                       version))
                        ChunkOffset
CF G
                        ChunkSize
Garbage Offset 1
Garbage Offset 2
……
基于SEDA+Reactor+FSM
                           技术的软件设计
                                           RockServer                                         •   SEDA(Staged Event-Driven Architecture)
                                             Jetty Continuation Queue                             框架是为了支持高并发的操作。采用
RESTFul                                                                                           基于事件驱动和线程驱动的混合并发
  API                                               ReactorPool
                       Request              Meta          Rock Data     HTTP Data                 模式。核心思想是将服务器的处理划
                      Dispatcher           Reader           Reader       Reader
                                                                                       Time       分为各个Stage,利用queue链接起来
            Jetty     Response             Meta          Rock Data      HTTP Data
                                                                                       Out        形成一个pipeline的处理链;在Stage中
           Servlet    Dispatcher           Writer         Writer         Writer                   利用控制器进行资源的调控,资源的
          Container
                                                                                                  调度依据运行时的状态监视的数据来
                      Platform Interface                              System Monitor              进行,从而形成一种反应控制的机制。
HTTP                   MapReduce              Zookeeper
                                                                             JMX                  通过queue和每个stage的线程池来分担
                         Interface             Interface
                                                                                                  高并发请求并保持吞吐量和响应时间
                      DDB Interface          DFS Interface                   ……
                                                                                                  的平衡。

                                                                                              •   Reactor是一种事件消息驱动的异步通
                                                                                                  讯和该并发处理模型。

                                                                                              •   FSM (Finite State Machine)即有限状态
                                                                                                  机,途中的每个Stage内部以FSM的方
                                                                                                  式实现。
实现流程示例:GetObject
    Jetty HTTP Message        ReqDispatch           MetaReader               RockDataReader    HttpDataWriter   RespDispatch

  GetObject

                     GetObject                                                        连续从Rock中读取
                                                                                      数据,并写入HTTP
                             生成                                                       Response
                        GetObjectTask
响应用户的
REST消息         生成Task在不同
               的状态间切换,                            读取元数据
               每个状态会有不                            找到对应的
               同的Reactor进                         Rock和Chunk                                               返回操作成功
               行处理


                                                                                  Read OK
        Req Dispatch          Meta      Valid Req               Rock Data                     HTTP Data
                             Reader                              Reader           More Data    Writer

                                                            d
                     Invalid Req
                                                    F   aile
                                            R   ead

                                                                        ta
                                                                   re Da
                                                            N o Mo ailed
          Send Rsp                                                eF
                            Response                         /Writ
                            Dispatch
实现流程示例:GetObject
    Jetty HTTP Message        ReqDispatch        MetaReader            RockDataReader    HttpDataWriter   RespDispatch

  GetObject

                     GetObject                                                  连续从Rock中读取
                                                                                数据,并写入HTTP
                             生成                                                 Response
                        GetObjectTask
响应用户的
REST消息         生成Task在不同
               的状态间切换,                          读取元数据
               每个状态会有不                          找到对应的
               同的Reactor进                       Rock和Chunk                                           返回操作成功
               行处理


                                                                            Read OK
        Req Dispatch          Meta      Valid Req         Rock Data                     HTTP Data
                             Reader                        Reader           More Data    Writer


                     Invalid Req                    led
                                                 Fai
                                              ad
                                            Re
                                                                 ata
                                                           ore D
                                                      No M Failed
          Send Rsp                                          e
                            Response                   /Writ
                            Dispatch
RESTful API
• RockStor系统提供的API和Amazon AWS S3类似。如下图。
第四部分:

主要业务流程和系统功能
主要业务流程
   注册用户
                                                添加对象                              观察对象
     登录            创建对象集
                                             (Put an Object to                   (List Objects
 创建Access Key对   (Create Bucket)
                                                 a Bucket)                     from a Bucket)
   (Sign Up)



                                                删除对象
                  删除对象集                                                           获取对象
                                                (Delete an
                   (Delete a                                                   (Get an Object
                                               Object from a
                    Bucket)                                                    from a Bucket)
                                                 Bucket)


                           •       业务操作
• 用户认证                             –   Bucket/对象集
  – NoAuth                               •
                                         •
                                             Put/Get/Delete Bucket
                                             Put/Get/Delete Bucket ACL
  – SimpleAuth                     –   Pebble/Object/对象
                                         •   Put/Get/Delete Pebble
                                         •   Put/Get/Delete Pebble ACL
                                         •   Put/Get/Delete Pebble Attribute
• 垃圾回收(后台维护)                             •
                                         •
                                             Get MultiPart Uploads
                                             Copy
                                         •   Move
                                         •   …
                                   –   限于篇幅:详见设计文档的业务操作和
                                       流程列表!
基于公钥+密钥的账户认证机制
       •   RockStor采用类似Amazon S3的公钥(Access Key)和密
           钥(Secret Access Key)的方式实现用户认证,每个注
           册用户需创建自己的Access Key和Secret Access Key
           对,才能使用RockStor的REST API访问RockStor提供
           的云存储服务。Access Key和Secret Access Key对存
           储在AAA服务起的用户数据库中。其中Access Key是
           可以公开在消息中传递的,而用户必须对Secret
           Access Key保密(就像密码),以防泄漏。

       •   每个REST API请求的消息头中都必须携带
           Authorization字段,其中包含Access Ke和用Secret
           Access Key对消息头字符串加密编码过的数字签名
           (signature)。

       •   在RockServer收到请求,开始处理业务流程之前,
           RockServer需要根据REST请求消息头中的
           Authorization得到用户认证请求信息。

       •   RockServer的认证模块可以在配置文件中配置,目
           前支持NoAuth和SimpleAuth。
基于CAS的用户管理和登录技术
        RockStor采用CAS实现集中登录认证支撑。
        CAS旨在为 Web 应用系统提供一种可靠的
        单点登录方法。从结构上看,CAS 包含两
        个部分: CAS Server 和 CAS Client。CAS
        Server 需要独立部署,主要负责对用户的
        认证工作;CAS Client 负责处理对客户端受
        保护资源的访问请求,需要登录时,重定
        向到 CAS Server。

        http://www.jasig.org/cas
Management Console
• 和Amazon AWS S3的AWS Management Console类似,RockStor提供一个辅助的
  Management Console供用户管理自己的云存储系统和其中的对象数据。
        创建Bucket    新建目录   上传对象   刷新列表   查看属性   操作记录       用户名




                                                   右键菜单

     对象集列表            对象列表

                    对象基本属性描述
                                     点击进入详细属性描述,包括对象下载地址
                                     点击进入ACL权限管理
SDK for Java
RockStor为用户提供开发SDK,Client以jar形式提供,一般
命名方式为:
   bigdata-rockstor-{version}-client.jar
Package名为:
  com.rockstor.client

举例如下:
分布式集群系统管理




基于Web的集群管理监控
基于配置文件和脚本命令的系统维护管理工具
第五部分:

性能评估
测试环境
•   硬件                                                                      •   软件
    –    8个服务器节点(两种服务器型号)                                                       –    支撑软件
          •   4个节点                                                                     •   Linux: RedHat EL 5.3, Kernel=2.6.18-128.el5
                –   DELL PowerEdge R710                                                •   File System: Ext3
                –   CPU: Intel(R) Xeon(R) CPU E5520 @ 2.27GHz, cache                   •   JDK: Sun Java 1.6.0_12-b04
                    size=8192 KB
                –   Core: 2x 4core CPU, HyperThread, => 16 cores
                –   RAM: 16GB                                                   –    RockStor
                –   Hard Disk: 2x 1TB SATA 7.2k rpm, RAID0                             •   bigdata-rockstor-1.0.2-bin.tar.gz
          •   4个节点
                –   DELL PowerEdge 2970
                –   CPU: Quad-Core AMD Opteron (tm) Processor 2378, cache
                    size=512 KB
                –
                –
                    Core: 2x 4core CPU, => 8 cores
                    RAM: 16GB
                                                                            •   RockStor集群部署
                –   Hard Disk: 2x 1TB STAT 7.2k rpm, RAID0                      –    1个Master节点
          •   总配置                                                                      •   分布式存储管理的Master和RockMaster, CAS/AAA服务复用
                –   8 nodes, 104 cores, 128GB RAM, 16(16TB) Hard Disks                     一个节点
                                                                                –    7个数据存储/RockServer节点
    –    网络                                                                            •   数据存储、元数据存储、RockServer服务复用7个节点
          •   单个1Gbps交换机.                                                       –    数据冗余备份:3份

                                                                            •   并行测试客户端
                                                                                –    7个物理节点
                                                                                –    每个节点64线程并发
性能指标说明
•   吞吐率(Throughput)                                    • Total
    – tThrou : Total Throughput (operation count) (总      – 指的是从Benchmark开始到结束
      体吞吐率)
    – dThrou : Delta Throughput (operation count)
      (瞬时吞吐率)                                          • Delta
                                                          – 指的是一个统计周期内(测试用的是2分
•   响应时间(Latency)                                           钟的统计周期)
    – dMaxLat : Delta Maximum Latency (ms) (瞬时
      最大延迟)
                                                       • Benchmark程序
    – dMinLat : Delta Minimum Latency (ms) (瞬时最
      小延迟)                                                – 并行压力测试程序。
    – delayRatio: 响应时间概率分布
写操作性能评估
                                            Object Size (对象大小)
                              8KB                    16KB                 64KB
     Start time       2011-09-22 09:34:00    2011-09-21 15:36:00   2011-09-23 09:40:00
     Stop time        2011-09-22 14:30:00    2011-09-21 19:00:00   2011-09-23 13:08:00
Total Data size(GB)        1024.023                1024.023             1024.023
 Total operations
                          134220800               67110400              16777600
       count
     Total used
                             4.93                   3.4                   3.467
    time(hour)
        Total
                           7084.320               5429.644              1331.556
 throughput/sec
   Total MB/sec              58.04                 88.96                  87.26
   Total average
                           132.230                184.174               751.001
    latency(us)
 Total miss count              0                     0                      0
  Total err count              0                     0                      0
0
                                                                1000
                                                                                  2000
                                                                                                     3000
                                                                                                                   5000
                                                                                                                          6000
                                                                                                                                 7000




                                                                                                            4000
                                            1305963360000
                                            1305963600000
                                            1305963840000
                                            1305964080000
                                            1305964320000
                                            1305964560000
                                            1305964800000
                                            1305965040000
                                            1305965280000
                                            1305965520000
                                            1305965760000
                                            1305966000000
                                            1305966240000
                                            1305966480000
                                            1305966720000
                                            1305966960000
                                            1305967200000
                                            1305967440000
                                            1305967680000
                                            1305967920000
                                            1305968160000
                                            1305968400000
                                            1305968640000
                                            1305968880000
                                            1305969120000
                                            1305969360000
                                            1305969600000
                                            1305969840000
                                            1305970080000
                                            1305970320000
                                            1305970560000
                                            1305970800000
                                            1305971040000
                                            1305971280000
                                            1305971520000
                                            1305971760000
                                            1305972000000
                                            1305972240000
                                                                tThrou(ops/sec)
                                                                                   dThrou(ops/sec)




                                            1305972480000
                                                                                                                                           (以16KB大小对象为例)




                                            1305972720000
                                            1305972960000
                                            1305973200000
                                            1305973440000
                                            1305973680000
                                            1305973920000
                                            1305974160000
吞吐率保持平稳,尾部下降是并行的Benchmark客户端不同时结束造成的压力下降。




                                            1305974400000
                                                                                                                                        写操作吞吐率(Throughput)性能分析




                                            1305974640000
                                            1305974880000
                                            1305975120000
                                            1305975360000
                                            1305975600000
50
                                    0
                                              100
                                                     150
                                                           200
                                                                 250
                                                                       300
                                                                             350
                                                                                   400
                                                                                                                        0
                                                                                                                    10000
                                                                                                                    20000
                                                                                                                    30000
                                                                                                                    40000
                                                                                                                    50000
                                                                                                                    60000




                               1
                                                                                                            130596336…
                                                                                                            130596360…




                               2
                                                                                                            130596384…
                                                                                                            130596408…
                                                                                                            130596432…




                               3
                                                                                                            130596456…
                                                                                                            130596480…




                               4
                                                                                                            130596504…
                                                                                                            130596528…




                               5
                                                                                                            130596552…
                                                                                                            130596576…




                               6
                                                                                                            130596600…
                                                                                                            130596624…
                                                                                                            130596648…




                               7
                                                                                                            130596672…
                                                                                                            130596696…




                               8
                                                                                                            130596720…
                                                                                                            130596744…




                               9
                                                                                                            130596768…
                                                                                                            130596792…
                                                                                         delayRatio




                               10
                                                                                                            130596816…
                                                                                                            130596840…
                                                                                                            130596864…




                               11
                                                                                                            130596888…
                                                                                                            130596912…


                               12
                                                                                                            130596936…
                                                                                                            130596960…
                               13
                                                                                                            130596984…
                                                                                                            130597008…
                                                                                                                                       dMaxLat(ms)




                               14


                                                                                                            130597032…
                                                                                                            130597056…
对该曲线做数学积分处理,95%以上的操作在70ms以内。
                                                                                                            130597080…
                               15




                                                                                                            130597104…
                                                                                                            130597128…
                               16




                                                                                                            130597152…
                                                                                                            130597176…
                               17




                                                                                                            130597200…
                                                                                                            130597224…
                               18




                                                                                                            130597248…
                                                                                                                                                        (以16KB大小对象为例)




                                                                                                            130597272…
                                                                                            delayRatio(‰)




                               19




                                                                                                            130597296…
                                                                                                            130597320…
                                                                                                            130597344…
                               20




                                                                                                            130597368…
                                                                                                                         dMaxLat(ms)




                                                                                                            130597392…
                               21




                                                                                                            130597416…
                                                                                                            130597440…
                                                                                                                                                     写操作响应时间(Latency)性能分析




                               22




                                                                                                            130597464…
                                         X轴单位为10ms




                                                                                                            130597488…
                               23




                                                                                                            130597512…
                                                                                                            130597536…
                                                                                                            130597560…
                               24
读操作性能评估
                                            Object Size (对象大小)
                              8KB                    16KB                 64KB
     Start time       2011-09-22 14:30:00    2011-09-21 19:02:00   2011-09-23 13:28:00
     Stop time        2011-09-23 07:46:00    2011-09-22 00:24:00   2011-09-23 15:56:00
Total Data size(GB)        1024.023                1024.023             1024.023
 Total operations
                          134220800               67110400              16777600
       count
     Total used
                            17.267                 4.933                  2.467
    time(hour)
        Total
                           2155.119               3452.181              1864.178
 throughput/sec
   Total MB/sec              17.65                 56.56                 122.17
   Total average
                           464.012                289.672               536.429
    latency(us)
 Total miss count              0                     0                      0
  Total err count              0                     0                      0
读操作吞吐率(Throughput)性能分析
   (以64KB大小对象为例)




    吞吐率保持基本平稳
读操作响应时间(Latency)性能分析
   (以64KB大小对象为例)
第六部分:

功能完善和应用开发
新功能和系统完善
                                             (系统级管理功能)
•   只对系统管理员开放
     –  admin用户

•   系统级资源统计
     –   用户/租户数
     –   Bucket数
     –   Object数
     –   已用系统存储空间
     –   总系统存储空间

•   用户/租户空间配额管理
     –   查看配额
     –   设置/修改配额

•   用户/租户使用情况统计
     –   Bucket数
     –   Object数
     –   已用存储空间
     –   操作次数

•   系统管理API
     –   RockStorAdmin(address,
         adminAccessKey, adminSecurityKey)
     –   getSystemSts()
     –   getUserSts(userId)
     –   getUserList()
     –   setUserQuota()
新功能和系统完善
                   (用户/租户级管理功能)
• 用户/租户级统计
  –   Bucket数
  –   Object数
  –   已用存储空间
  –   存储空间配额
  –   操作次数


• 用户/租户级统计
  API
  – getUserSts()
系统运行维护
• 分布式存储资
  源状态
  – 存储资源使
    用情况
  – 分布式存储
    集群状态

• 集群监控
 – 节点状态
 – 负载监控
 – 性能指标
应用与RockStor的集成框架
                             云应用服务的用户




                                                                云应用作为RockStor
                                                                对象云存储的用户,
                                                                通过RockStor提供的
                                                                统一标准的接口存
                              云应用服务                             储、读取和操作数据
                                                                对象,界面和逻辑关
                                           云应用即是RockStor云存储
                                                                系清晰简洁。
                                REST API
RockStor提供统一标准的云存储接口,云应用可以                 的用户。
通过该接口存储、读取、或操作这些数据对象。




                         RockStor对象云存储服务


                      RockStor是一个弹性的对象云存储系统,可类比Amazon AWS S3。
                      为教育云提供视频、音频、图片、文档等数据的存储服务。
RockStor提供的接口

                                             • 人机操作接口
   App-1                App-2
                                              –   Web Portal
   SDK                            注册、登录、      –   Web Console
                           REST    Console
           REST


                  RockStor云存储服务              • 开发接口
                                              – REST API
                                              – SDK(Java, C++, Python,
RockStor作为一个对象云存储服务整体对外                         PHP等)
提供访问地址(例如统一域名),云应用不
必关心其内部分布式架构。
实验室Demo环境
•   系统中已经注册5个用户方便测试                         •   编程例子程序代码和运行环境
    – 测试用户                                      –   安装位置:192.168.1.3的/home/tester/test-api
        •   tester1@test.com / password         –   编译:
                                                     •   javac -cp lib/bigdata-rockstor-0.2.3-client.jar
        •   tester2@test.com / password                  com/rockstor/clientsample/Sample.java
        •   tester3@test.com / password         –   运行:
        •   tester4@test.com / password              •   java -cp .:lib/bigdata-rockstor-0.2.3-client.jar
                                                         com.rockstor.clientsample.Sample
        •   tester5@test.com / password         –   编程样例代码文件:
    – 完整的注册流程需要邮件确认                                  •   com/rockstor/clientsample/Sample.java
        •   须能访问外网或部署内部邮件系统                          •   注意因为需要用户认证,编程前须先登录用户信息界面查看,
                                                         没有凭证的须先创建凭证。


•   相关Web URL
    – 用户注册和登录界面:http://192.168.1.3:18080
      或https://192.168.1.3:18443
    – 用户Console界面:http://192.168.1.3:8080

•   相关SDK编程URL
    – REST API 地址: 192.168.1.3:48080
    – Object REST URL: 见用使用手册API中描述的格式。
SDK编程样例
• 程序片段开头
Thank You!

Weitere ähnliche Inhalte

Was ist angesagt?

Jdbc4 0 规范技术预研
Jdbc4 0 规范技术预研Jdbc4 0 规范技术预研
Jdbc4 0 规范技术预研lorisjand
 
Nosql及其主要产品简介
Nosql及其主要产品简介Nosql及其主要产品简介
Nosql及其主要产品简介振林 谭
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Wensong Zhang
 
Zh Tw Introduction To H Base
Zh Tw Introduction To H BaseZh Tw Introduction To H Base
Zh Tw Introduction To H Basekevin liao
 
淘宝 任卿 打造高效能的Cdn系统
淘宝 任卿 打造高效能的Cdn系统淘宝 任卿 打造高效能的Cdn系统
淘宝 任卿 打造高效能的Cdn系统guiyingshenxia
 
Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照Shaoning Pan
 
我对后端优化的一点想法
我对后端优化的一点想法我对后端优化的一点想法
我对后端优化的一点想法mysqlops
 
第4章 数据库管理
第4章 数据库管理第4章 数据库管理
第4章 数据库管理zhang shuren
 
Zh Tw Introduction To Map Reduce
Zh Tw Introduction To Map ReduceZh Tw Introduction To Map Reduce
Zh Tw Introduction To Map Reducekevin liao
 
Zh Tw Introduction To Hadoop And Hdfs
Zh Tw Introduction To Hadoop And HdfsZh Tw Introduction To Hadoop And Hdfs
Zh Tw Introduction To Hadoop And Hdfskevin liao
 
Mysql企业备份发展及实践
Mysql企业备份发展及实践Mysql企业备份发展及实践
Mysql企业备份发展及实践maclean liu
 
务实技术讲座系列
务实技术讲座系列务实技术讲座系列
务实技术讲座系列webhostingguy
 
分区表基础知识培训
分区表基础知识培训分区表基础知识培训
分区表基础知识培训maclean liu
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践drewz lin
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践Wensong Zhang
 
淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统Dai Jun
 

Was ist angesagt? (16)

Jdbc4 0 规范技术预研
Jdbc4 0 规范技术预研Jdbc4 0 规范技术预研
Jdbc4 0 规范技术预研
 
Nosql及其主要产品简介
Nosql及其主要产品简介Nosql及其主要产品简介
Nosql及其主要产品简介
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务
 
Zh Tw Introduction To H Base
Zh Tw Introduction To H BaseZh Tw Introduction To H Base
Zh Tw Introduction To H Base
 
淘宝 任卿 打造高效能的Cdn系统
淘宝 任卿 打造高效能的Cdn系统淘宝 任卿 打造高效能的Cdn系统
淘宝 任卿 打造高效能的Cdn系统
 
Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照Ocean base 千亿级海量数据库-日照
Ocean base 千亿级海量数据库-日照
 
我对后端优化的一点想法
我对后端优化的一点想法我对后端优化的一点想法
我对后端优化的一点想法
 
第4章 数据库管理
第4章 数据库管理第4章 数据库管理
第4章 数据库管理
 
Zh Tw Introduction To Map Reduce
Zh Tw Introduction To Map ReduceZh Tw Introduction To Map Reduce
Zh Tw Introduction To Map Reduce
 
Zh Tw Introduction To Hadoop And Hdfs
Zh Tw Introduction To Hadoop And HdfsZh Tw Introduction To Hadoop And Hdfs
Zh Tw Introduction To Hadoop And Hdfs
 
Mysql企业备份发展及实践
Mysql企业备份发展及实践Mysql企业备份发展及实践
Mysql企业备份发展及实践
 
务实技术讲座系列
务实技术讲座系列务实技术讲座系列
务实技术讲座系列
 
分区表基础知识培训
分区表基础知识培训分区表基础知识培训
分区表基础知识培训
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统淘宝图片存储与Cdn系统
淘宝图片存储与Cdn系统
 

Ähnlich wie RockStor - A Cloud Object System based on Hadoop

淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)vanadies10
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华zhuozhe
 
大型互联网广告应用系统架构
大型互联网广告应用系统架构大型互联网广告应用系统架构
大型互联网广告应用系统架构Shaoning Pan
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务drewz lin
 
OpenStack Resource Scheduling
OpenStack Resource SchedulingOpenStack Resource Scheduling
OpenStack Resource SchedulingGuangya Liu
 
Accelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraAccelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraJunchi Zhang
 
Oracle北大青鸟完全教程
Oracle北大青鸟完全教程Oracle北大青鸟完全教程
Oracle北大青鸟完全教程yiditushe
 
零到千万可扩展架构 AWS Architecture Overview
零到千万可扩展架构 AWS Architecture Overview零到千万可扩展架构 AWS Architecture Overview
零到千万可扩展架构 AWS Architecture OverviewLeon Li
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介Herman Wu
 
大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路jeffz
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)Shanda innovation institute
 
分布式系统日志处理调研
分布式系统日志处理调研分布式系统日志处理调研
分布式系统日志处理调研klandor
 
Paas研究介绍
Paas研究介绍Paas研究介绍
Paas研究介绍snakebbf
 
大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京vanadies10
 
Altibase管理培训 管理篇
Altibase管理培训 管理篇Altibase管理培训 管理篇
Altibase管理培训 管理篇小新 制造
 
淘宝Java中间件之路 it168
淘宝Java中间件之路 it168淘宝Java中间件之路 it168
淘宝Java中间件之路 it168vanadies10
 
华为软件定义存储架构分析
华为软件定义存储架构分析华为软件定义存储架构分析
华为软件定义存储架构分析Liang Ming
 
Oracle 全方位云解决方案概要
Oracle 全方位云解决方案概要Oracle 全方位云解决方案概要
Oracle 全方位云解决方案概要Ethan M. Liu
 

Ähnlich wie RockStor - A Cloud Object System based on Hadoop (20)

内存数据库[1]
内存数据库[1]内存数据库[1]
内存数据库[1]
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
 
大型互联网广告应用系统架构
大型互联网广告应用系统架构大型互联网广告应用系统架构
大型互联网广告应用系统架构
 
淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务淘宝对象存储与Cdn系统到服务
淘宝对象存储与Cdn系统到服务
 
OpenStack Resource Scheduling
OpenStack Resource SchedulingOpenStack Resource Scheduling
OpenStack Resource Scheduling
 
Accelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraAccelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud era
 
Oracle北大青鸟完全教程
Oracle北大青鸟完全教程Oracle北大青鸟完全教程
Oracle北大青鸟完全教程
 
零到千万可扩展架构 AWS Architecture Overview
零到千万可扩展架构 AWS Architecture Overview零到千万可扩展架构 AWS Architecture Overview
零到千万可扩展架构 AWS Architecture Overview
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介
 
Java@taobao
Java@taobaoJava@taobao
Java@taobao
 
大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
 
分布式系统日志处理调研
分布式系统日志处理调研分布式系统日志处理调研
分布式系统日志处理调研
 
Paas研究介绍
Paas研究介绍Paas研究介绍
Paas研究介绍
 
大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京大型系统的Java中间件实践q con北京
大型系统的Java中间件实践q con北京
 
Altibase管理培训 管理篇
Altibase管理培训 管理篇Altibase管理培训 管理篇
Altibase管理培训 管理篇
 
淘宝Java中间件之路 it168
淘宝Java中间件之路 it168淘宝Java中间件之路 it168
淘宝Java中间件之路 it168
 
华为软件定义存储架构分析
华为软件定义存储架构分析华为软件定义存储架构分析
华为软件定义存储架构分析
 
Oracle 全方位云解决方案概要
Oracle 全方位云解决方案概要Oracle 全方位云解决方案概要
Oracle 全方位云解决方案概要
 

Mehr von Schubert Zhang

Engineering Culture and Infrastructure
Engineering Culture and InfrastructureEngineering Culture and Infrastructure
Engineering Culture and InfrastructureSchubert Zhang
 
Simple practices in performance monitoring and evaluation
Simple practices in performance monitoring and evaluationSimple practices in performance monitoring and evaluation
Simple practices in performance monitoring and evaluationSchubert Zhang
 
Scrum Agile Development
Scrum Agile DevelopmentScrum Agile Development
Scrum Agile DevelopmentSchubert Zhang
 
Engineering practices in big data storage and processing
Engineering practices in big data storage and processingEngineering practices in big data storage and processing
Engineering practices in big data storage and processingSchubert Zhang
 
Bigtable数据模型解决CDR清单存储问题的资源估算
Bigtable数据模型解决CDR清单存储问题的资源估算Bigtable数据模型解决CDR清单存储问题的资源估算
Bigtable数据模型解决CDR清单存储问题的资源估算Schubert Zhang
 
Big Data Engineering Team Meeting 20120223a
Big Data Engineering Team Meeting 20120223aBig Data Engineering Team Meeting 20120223a
Big Data Engineering Team Meeting 20120223aSchubert Zhang
 
HBase Coprocessor Introduction
HBase Coprocessor IntroductionHBase Coprocessor Introduction
HBase Coprocessor IntroductionSchubert Zhang
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验Schubert Zhang
 
Wild Thinking of BigdataBase
Wild Thinking of BigdataBaseWild Thinking of BigdataBase
Wild Thinking of BigdataBaseSchubert Zhang
 
Hadoop compress-stream
Hadoop compress-streamHadoop compress-stream
Hadoop compress-streamSchubert Zhang
 
Ganglia轻度使用指南
Ganglia轻度使用指南Ganglia轻度使用指南
Ganglia轻度使用指南Schubert Zhang
 
DaStor/Cassandra report for CDR solution
DaStor/Cassandra report for CDR solutionDaStor/Cassandra report for CDR solution
DaStor/Cassandra report for CDR solutionSchubert Zhang
 
Learning from google megastore (Part-1)
Learning from google megastore (Part-1)Learning from google megastore (Part-1)
Learning from google megastore (Part-1)Schubert Zhang
 

Mehr von Schubert Zhang (20)

Blockchain in Action
Blockchain in ActionBlockchain in Action
Blockchain in Action
 
科普区块链
科普区块链科普区块链
科普区块链
 
Engineering Culture and Infrastructure
Engineering Culture and InfrastructureEngineering Culture and Infrastructure
Engineering Culture and Infrastructure
 
Simple practices in performance monitoring and evaluation
Simple practices in performance monitoring and evaluationSimple practices in performance monitoring and evaluation
Simple practices in performance monitoring and evaluation
 
Scrum Agile Development
Scrum Agile DevelopmentScrum Agile Development
Scrum Agile Development
 
Career Advice
Career AdviceCareer Advice
Career Advice
 
Engineering practices in big data storage and processing
Engineering practices in big data storage and processingEngineering practices in big data storage and processing
Engineering practices in big data storage and processing
 
HiveServer2
HiveServer2HiveServer2
HiveServer2
 
Horizon for Big Data
Horizon for Big DataHorizon for Big Data
Horizon for Big Data
 
Bigtable数据模型解决CDR清单存储问题的资源估算
Bigtable数据模型解决CDR清单存储问题的资源估算Bigtable数据模型解决CDR清单存储问题的资源估算
Bigtable数据模型解决CDR清单存储问题的资源估算
 
Big Data Engineering Team Meeting 20120223a
Big Data Engineering Team Meeting 20120223aBig Data Engineering Team Meeting 20120223a
Big Data Engineering Team Meeting 20120223a
 
HBase Coprocessor Introduction
HBase Coprocessor IntroductionHBase Coprocessor Introduction
HBase Coprocessor Introduction
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验
 
Wild Thinking of BigdataBase
Wild Thinking of BigdataBaseWild Thinking of BigdataBase
Wild Thinking of BigdataBase
 
Fans of running gump
Fans of running gumpFans of running gump
Fans of running gump
 
Hadoop compress-stream
Hadoop compress-streamHadoop compress-stream
Hadoop compress-stream
 
Ganglia轻度使用指南
Ganglia轻度使用指南Ganglia轻度使用指南
Ganglia轻度使用指南
 
DaStor/Cassandra report for CDR solution
DaStor/Cassandra report for CDR solutionDaStor/Cassandra report for CDR solution
DaStor/Cassandra report for CDR solution
 
Big data and cloud
Big data and cloudBig data and cloud
Big data and cloud
 
Learning from google megastore (Part-1)
Learning from google megastore (Part-1)Learning from google megastore (Part-1)
Learning from google megastore (Part-1)
 

RockStor - A Cloud Object System based on Hadoop

  • 1. RockStor 基于Hadoop的云对象存储系统 Schubert Zhang 2012-02-10 This is a experimental prototype project.
  • 2. Agenda • 背景和系统概述 • 系统架构和实现 • 主要业务流程和系统功能 • 性能评估 • 功能完善和应用开发
  • 5. 设计对象存储系统面临的问题 功能 数据的组织 对象存储系统需要合理组织对象数据在分布式文件系统上的存储结构,以满足生产系统 中大量随机读写对系统性能带来的挑战。 元数据的组织 合适的元数据存储引擎以及正确的Schema设计能使元数据的访问更加高效,此处的元数 据既包括对象本身的元数据又包括对象的存储信息。 性能 吞吐 对象存储系统需要满足在高并发访问下的稳定性能,无论是元数据还是数据的访问都不 能成为系统性能的瓶颈。 稳定性 系统的性能不能随着系统运行时间的增长而下降,可靠稳定的系统实现应能够在系统长 期运行中保持稳定,并能够应对系统硬件故障。 可扩展性 系统扩容应简单易行,性能可线性增长。
  • 6. Why Hadoop HDFS HDFS是可靠稳定的分布式文件系统,具有高可靠,高并发等优点,且在一定条件下能够随着 系统规模的扩大实现性能的线性增长。 HBase HBase架设在HDFS之上,利用HDFS的特性保证数据的稳定可靠,HBase负责数据的组织和管理, 在Key-Value存储之上实现松散离散的数据表结构。 ZooKeeper 实现了全局锁服务,协调管理集群内各个计算和存储资源的状态,是大规模集群内部全局数 据资源管理的绝佳工具。 MapReduce 分布式并行计算框架和数据并行处理的实现,使得对大数据的处理变得简单易行,随着计算 节点的增加,分析处理的延时会大大降低。 Hadoop生态环境的各个组件为我们实现分布式对象存储提供了基础架构。
  • 7. 系统概述 • 产品名称:RockStor (暂定) – 为产品确定名称,以方便编码、文档描述、用户界面等的各种命名要求。 • 开发背景 – 以Hadoop、HBase为基础; – 学习和参考Amazon AWS S3的功能和接口; – 结合业界比较成熟的“分布式存储”、“对象存储系统和服务”的理念和设计思 路; – 这是一个实验性开发项目,目的是快速实现对象存储原型,验证技术和思路,同 时熟悉Hadoop、HBase等开源产品。 • 对象存储系统 - RockStor – 采用分布式存储技术,为用户提供高可靠、大容量、易扩展的存储平台系统,采 用云存储服务技术为用户提供简单易用的使用接口。用户可在不关心系统的分布 式实现的情况下,通过系统提供的接口使用该对象存储系统。
  • 8. 对象和对象存储 • 对象和对象存储 – 对象(Object)是对一个数据单元的原始抽象,是最初级的概念。 – 对象存储系统就是用来存储和管理这些对象的。 – 在一个对象存储系统中,一个对象一般包含对象数据(Data)和对象元数据(Metadata)。对象数据是对象的主 体,而对象元数据是用来描述这个对象的一些参数。 – 从存储平台的角度看,我们一般认为对象数据是非结构化的(即存储平台不关心其内部结构)。例如,一 个网页的HTML内容可以作为对象数据,而该网页的访问权限、URL、大小等可以作为其元数据。再例如,一 张图片的图像内容可以作为对象数据,而该图片的格式(JPEG或BMP)、大小、作者、主题等可以作为其元数 据。 • 对象存储系统一般可以存储许多对象,并可以根据每个对象的唯一标识来定位该对象在实际 物理存储介质上的位置。在分布式对象存储系统中,位置信息还包括了分布式的节点位置等。 对象存储系统还提供对象的元数据存储来保存对象的元数据。一般来说,系统会定义一些通 用的元数据,例如:对象所有者、大小、ACL(Access Control Lists,访问权限控制列表)等。 同时,用户也可以添加一些自定义的元数据,例如上面提到的图片的作者和主题等。 • 对象存储系统一般只提供通过对象的唯一标识来读写对象数据及其元数据的机制。
  • 9. 系统关键特性 • 功能方面 – RockStor是一个用于存储和管理海量对象数据的存储系统。系统建立在分布式存储集群上,实现海量对象存储能力和逻辑,提供REST访问接口。 • 结构方面 – RockStor以分布式数据存储和分布式元数据存储为基础,实现了元数据和存储的逻辑分离。实现上使用了线程池-资源池的编程架构,提供高性能保 证。 • 接口方面 – RockStor仿效Amazon S3,提供REST API服务接口。该接口可以作为RockStor的统一基准接口,对外提供存储服务,也可以作为其他接口的下层接口。 系统基于该REST接口封装了基于Java语言的SDK,方便开发者使用。 • 特点方面 – Scalability:以分布式存储系统作为底层存储系统的强大Scalable能力,满足大规模数据的存储和扩展要求。 – High Availability:底层分布式存储系统的分布式架构和数据副本支持系统的稳定性和健壮性。 – Real-Time/Low-Latency:数据实时生效可见(Available)。 – High Throughput:强大的分布式系统支持很高的吞吐率。 – Multi Part Upload:提供了Multi Part的并发上传功能,提高大对象上传速度; – Range Based Download: 提供基于Range的多点并发下载功能,极大的提高了下载速度。 – Simple Data Model:存储的对象特点是一次写多次读,向用户提供对象的原子操作,简化了存储逻辑。用户可以由基本操作组合自己的业务逻辑。 – REST API:提供基于HTTP的Web访问接口,方便用户随时随地访问系统。接口采用先进的REST风格。 • 应用方面 – RockStor主要面向海量对象存储。适用于互联网、企业用户的数据存储业务。可面向大规模用户、企业提供存储服务。可使用RockStor作为平台基 础构建完整的类似Amazon S3的云存储服务和企业内部存储服务。
  • 10. RockStor基本术语和概念 Terminology User User 用户,即RockStor的使用者,User可以在RockStor上创建Bucket,然 后在Bucket中存取Pebble。 Bucket Pebble的容器,Bucket与User是多对一的关系,Bucket只能由User删 除。 Bucket1 Bucket2 Bucket3 Bucket4 Pebble(Object) RockStor中的基本存储对象(Object),对User提供的最小存储单元, Pebble必须存放在Bucket中。 Chunk Pebble实体数据的数据块,是Rock的组成单元,一个Pebble视其大小, 可以有1个或多个Chunk组成。 Object Object Object Object Object Rock 用来存储Pebble的实体数据块的容器,每个Rock对应分布式文件系统 上一个文件,每个Rock文件的大小根据配置有一个较大的上限,该文 Object Object Object Object Object 件用来存储大量的Chunk数据。 Garbages Rock & 被删除或者未完成写操作的Chunk的管理容器。 Chunks
  • 12. 系统逻辑架构 开发环境 (SDK for Developers) • 物理存储层 服务接口层 (Access) 系 统 • 数据分布层 用 管 户 理 管 元数据层 (Metadata) 和 理 工 • 元数据层 (User) & AAA 具 (Management) 数据分布层 (Data Distribution) • 服务接口层 物理存储层 (Storage) • 用户管理和AAA 对象存储系统在逻辑上由物理存储层、数据分布层、元数据层、服务 接口层以及整体的系统管理构成。同时,为了对外提供服务,还提供 基于用户管理的AAA(认证Authentication,授权Authorization,记帐 • 系统管理和工具 Accounting)功能。除此之外,为了系统展示和管理方便,还提供方便 的管理工具等。基于分布式存储平台所提供的服务接口,提供方便开 发者开发的SDK (Software Development Kit)。 • 开发环境SDK
  • 13. 系统实现总体架构 SDK (Java) for Developers • 提供完整的云对象存储平 台系统和云对象存储服务 RESTful API (Cloud Service) 能力。该系统和服务能力 分布式云对象存储系统 RockStor Service Load Balancers 可以用于构建一个较为完 Management (访问请求负载均衡器,多点部署,LVS) 整的类似Amazon S3的云 Console RockMaster 对象存储系统和服务(例 AAA, CAS RESTful API (Internal) 如针对Internet提供共有 云存储服务)。同时,也 RockServer RockServer RockServer RockServer 可以在企业内部私网中对 企业内部应用提供存储服 务。 分布式存储系统集群 Hadoop 分布式数据库集群 HBase (存储和管理Rock文件) (存储和管理元数据)
  • 14. 主要模块 • 分布式存储系统集群和分布式数据库集 – 作为数据分布式存储的基础,可以使得RockStor在存储层面实现强大和灵活的分布式,从而实现海量存储和 灵活扩展。 – 倾向于使用和定制HDFS和NoSQL/HBase等开源软件。 • 分布式实现的RockServer集群 – 用于接收业务请求,实现了云对象存储服务的业务流程和逻辑,并实现数据块的组织。 – 分布式存储系统集群、分布式数据库集群和RockServer集群可以共用同一物理服务器集群。 • RockMaster – 负载很轻,主要实现一些RockServer集群管理和垃圾清理服务调度工作。 • AAA和CAS服务器 – 实现用户管理数据库和安全认证功能。 • Management Console – 为用户提供一个通过Web浏览器管理自己的存储系统的窗口。 • REST API接口 – 提供类似Amazon S3的REST API接口。 • SDK for Java – 提供了基于Java语言的SDK包,方便开发者应用编程。
  • 15. 系统分层逻辑 RockServer RockServer AAA, CAS Management Console Web Interface RESTful RESTful API API Service Logics Service Logics Storage Storage Storage Layout Module Module RockMaster 存储和分布式 DFS DDB 系统支撑层 ZooKeeper MapReduce 分布式文件系统 分布式数据库 • 存储和分布式系统支撑 – 为RockStor提供分布式集群系统支撑架构,如集群节点管理、集群通讯、故障检测、负载均衡等。同时提供 可扩展的持久化存储服务,包括分布式文件系统DFS和分布式数据库系统DDB。我们采用HDFS和 NoSQL/HBase。 • Storage Layout – RockStor存储逻辑实现层。该层实现了如何存储和管理用户上载的对象数据和元数据。 • Web Interface – RockStor的Web服务访问层。用户可通过REST API,通过互联网访问RockStor,进行数据存取。系统还提供了 Management Console服务器,为用户提供直观的浏览器访问页面。AAA/CAS提供用户管理和安全认证服务。
  • 16. 数据管理模型 对象存储系统 用户 User-1 对象集 Bucket-11 对象 Object-111 对象 Object-112 对象 Object-113 对象集 Bucket-12 对象 Object-121 对象 Object-122 用户 User-2
  • 17. 数据存储引擎 存储在哪里? HDFS是可靠稳定的数据存储容器,具有高可靠性高可扩展性等优点,适合大数据写入和读取, 对于大规模数据中心的部署亦提供了高可扩展性的保证。 有什么问题? HDFS并不完美,可能并不能直接使用HDFS作为底层存储引擎 1. HDFS的设计初衷只是面向大文件的文件系统(Part of Nutch); 2. 单一的NameNode设计使得整个系统的NameSpace非常有限; 3. 这不是一个实时的系统; 4. …… 如何解决? HDFS为数据的稳定可靠提供了保证,我们可以通过应用层实现封装,实现对大规模小文件的 读写操作。 HDFS是RockStor的数据存储引擎。
  • 18. 存储模型设计 Logic Physical DFS Rock • Bucket = 对象集 Bucket Pebble Part Chunk Rock Chunk • Pebble = Object = 对象 Pebble Part Chunk Chunk Chunk • Chunk = 数据块 Pebble Part Chunk Chunk Rock Pebble Part Chunk Chunk Chunk • Rock = 数据块的存储容器 Chunk Chunk • Part = 从编程客户端角度的数据上 传分块 RockStor涉及到的存储单元有Bucket、Pebble、Rock、Part以及Chunk。存储单元间的逻辑 关系如上图所示。Bucket、Pebble和Part是逻辑存储单元,没有实体数据文件。每个 Bucket可容纳指定容量的Pebble。Pebble由一个或多个Part组成。Part由一个或多个Chunk 组成。Rock和Chunk是物理存储单元,存储Pebble的实体数据。Rock对应DFS上的内部文 件,Chunk是Rock文件中的组成部分。所有存储单元的元数据信息都保存在DDB中。
  • 19. 元数据存储 存储在哪里? 相对于数据存储来讲,对象的元数据更加结构化。 HBase提供了稳定可靠的Key-Value存储机制,并能够根据用户创建的Schema提供丰富的上层 表示,是可靠的结构化数据存储引擎。 HBase的顺序写入性能和随机读取性能可以满足元数据读取的需求,并能够长期可靠的提供 服务。 HBase有什么不足? HBase底层采用Key-Value存储,虽然提供了数据表的Schema描述,但其本身无法提供RDMBS 的所有功能。 HBase和HDFS一样,存在单节点失效的问题(HMaster是单节点)。 怎么处理? 在相当一部分应用中,DBMS并不需要非常强的关系型数据库的特性,就像RockStor一样,读 写性能是我们关注的关键。 HBase是RockStor的元数据存储引擎。
  • 20. 元数据模型 User Bucket Pebble RowKey UserId RowKey BucketId RowKey PebbleId CF CF CF BucketName1 Owner Owner BucketName2 Etag PartPrefix …… Acl PartNum BucketId对应PebbleId是天然 Size 的映射,如: Etag Rock Bucket=testBucket Mime RowKey RockId PebbleId=testbucket/pic/ Meta CF M 1.jpg CreateTime Chunk Version ChunkId RowKey ChunkId Retire =MD5(“testbucket/pic/ CF GarbageBytes 1.jpg”+0+(maxLong- RockId DeletedBytes version)) ChunkOffset CF G ChunkSize Garbage Offset 1 Garbage Offset 2 ……
  • 21. 基于SEDA+Reactor+FSM 技术的软件设计 RockServer • SEDA(Staged Event-Driven Architecture) Jetty Continuation Queue 框架是为了支持高并发的操作。采用 RESTFul 基于事件驱动和线程驱动的混合并发 API ReactorPool Request Meta Rock Data HTTP Data 模式。核心思想是将服务器的处理划 Dispatcher Reader Reader Reader Time 分为各个Stage,利用queue链接起来 Jetty Response Meta Rock Data HTTP Data Out 形成一个pipeline的处理链;在Stage中 Servlet Dispatcher Writer Writer Writer 利用控制器进行资源的调控,资源的 Container 调度依据运行时的状态监视的数据来 Platform Interface System Monitor 进行,从而形成一种反应控制的机制。 HTTP MapReduce Zookeeper JMX 通过queue和每个stage的线程池来分担 Interface Interface 高并发请求并保持吞吐量和响应时间 DDB Interface DFS Interface …… 的平衡。 • Reactor是一种事件消息驱动的异步通 讯和该并发处理模型。 • FSM (Finite State Machine)即有限状态 机,途中的每个Stage内部以FSM的方 式实现。
  • 22. 实现流程示例:GetObject Jetty HTTP Message ReqDispatch MetaReader RockDataReader HttpDataWriter RespDispatch GetObject GetObject 连续从Rock中读取 数据,并写入HTTP 生成 Response GetObjectTask 响应用户的 REST消息 生成Task在不同 的状态间切换, 读取元数据 每个状态会有不 找到对应的 同的Reactor进 Rock和Chunk 返回操作成功 行处理 Read OK Req Dispatch Meta Valid Req Rock Data HTTP Data Reader Reader More Data Writer d Invalid Req F aile R ead ta re Da N o Mo ailed Send Rsp eF Response /Writ Dispatch
  • 23. 实现流程示例:GetObject Jetty HTTP Message ReqDispatch MetaReader RockDataReader HttpDataWriter RespDispatch GetObject GetObject 连续从Rock中读取 数据,并写入HTTP 生成 Response GetObjectTask 响应用户的 REST消息 生成Task在不同 的状态间切换, 读取元数据 每个状态会有不 找到对应的 同的Reactor进 Rock和Chunk 返回操作成功 行处理 Read OK Req Dispatch Meta Valid Req Rock Data HTTP Data Reader Reader More Data Writer Invalid Req led Fai ad Re ata ore D No M Failed Send Rsp e Response /Writ Dispatch
  • 26. 主要业务流程 注册用户 添加对象 观察对象 登录 创建对象集 (Put an Object to (List Objects 创建Access Key对 (Create Bucket) a Bucket) from a Bucket) (Sign Up) 删除对象 删除对象集 获取对象 (Delete an (Delete a (Get an Object Object from a Bucket) from a Bucket) Bucket) • 业务操作 • 用户认证 – Bucket/对象集 – NoAuth • • Put/Get/Delete Bucket Put/Get/Delete Bucket ACL – SimpleAuth – Pebble/Object/对象 • Put/Get/Delete Pebble • Put/Get/Delete Pebble ACL • Put/Get/Delete Pebble Attribute • 垃圾回收(后台维护) • • Get MultiPart Uploads Copy • Move • … – 限于篇幅:详见设计文档的业务操作和 流程列表!
  • 27. 基于公钥+密钥的账户认证机制 • RockStor采用类似Amazon S3的公钥(Access Key)和密 钥(Secret Access Key)的方式实现用户认证,每个注 册用户需创建自己的Access Key和Secret Access Key 对,才能使用RockStor的REST API访问RockStor提供 的云存储服务。Access Key和Secret Access Key对存 储在AAA服务起的用户数据库中。其中Access Key是 可以公开在消息中传递的,而用户必须对Secret Access Key保密(就像密码),以防泄漏。 • 每个REST API请求的消息头中都必须携带 Authorization字段,其中包含Access Ke和用Secret Access Key对消息头字符串加密编码过的数字签名 (signature)。 • 在RockServer收到请求,开始处理业务流程之前, RockServer需要根据REST请求消息头中的 Authorization得到用户认证请求信息。 • RockServer的认证模块可以在配置文件中配置,目 前支持NoAuth和SimpleAuth。
  • 28. 基于CAS的用户管理和登录技术 RockStor采用CAS实现集中登录认证支撑。 CAS旨在为 Web 应用系统提供一种可靠的 单点登录方法。从结构上看,CAS 包含两 个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的 认证工作;CAS Client 负责处理对客户端受 保护资源的访问请求,需要登录时,重定 向到 CAS Server。 http://www.jasig.org/cas
  • 29. Management Console • 和Amazon AWS S3的AWS Management Console类似,RockStor提供一个辅助的 Management Console供用户管理自己的云存储系统和其中的对象数据。 创建Bucket 新建目录 上传对象 刷新列表 查看属性 操作记录 用户名 右键菜单 对象集列表 对象列表 对象基本属性描述 点击进入详细属性描述,包括对象下载地址 点击进入ACL权限管理
  • 30. SDK for Java RockStor为用户提供开发SDK,Client以jar形式提供,一般 命名方式为: bigdata-rockstor-{version}-client.jar Package名为: com.rockstor.client 举例如下:
  • 33. 测试环境 • 硬件 • 软件 – 8个服务器节点(两种服务器型号) – 支撑软件 • 4个节点 • Linux: RedHat EL 5.3, Kernel=2.6.18-128.el5 – DELL PowerEdge R710 • File System: Ext3 – CPU: Intel(R) Xeon(R) CPU E5520 @ 2.27GHz, cache • JDK: Sun Java 1.6.0_12-b04 size=8192 KB – Core: 2x 4core CPU, HyperThread, => 16 cores – RAM: 16GB – RockStor – Hard Disk: 2x 1TB SATA 7.2k rpm, RAID0 • bigdata-rockstor-1.0.2-bin.tar.gz • 4个节点 – DELL PowerEdge 2970 – CPU: Quad-Core AMD Opteron (tm) Processor 2378, cache size=512 KB – – Core: 2x 4core CPU, => 8 cores RAM: 16GB • RockStor集群部署 – Hard Disk: 2x 1TB STAT 7.2k rpm, RAID0 – 1个Master节点 • 总配置 • 分布式存储管理的Master和RockMaster, CAS/AAA服务复用 – 8 nodes, 104 cores, 128GB RAM, 16(16TB) Hard Disks 一个节点 – 7个数据存储/RockServer节点 – 网络 • 数据存储、元数据存储、RockServer服务复用7个节点 • 单个1Gbps交换机. – 数据冗余备份:3份 • 并行测试客户端 – 7个物理节点 – 每个节点64线程并发
  • 34. 性能指标说明 • 吞吐率(Throughput) • Total – tThrou : Total Throughput (operation count) (总 – 指的是从Benchmark开始到结束 体吞吐率) – dThrou : Delta Throughput (operation count) (瞬时吞吐率) • Delta – 指的是一个统计周期内(测试用的是2分 • 响应时间(Latency) 钟的统计周期) – dMaxLat : Delta Maximum Latency (ms) (瞬时 最大延迟) • Benchmark程序 – dMinLat : Delta Minimum Latency (ms) (瞬时最 小延迟) – 并行压力测试程序。 – delayRatio: 响应时间概率分布
  • 35. 写操作性能评估 Object Size (对象大小) 8KB 16KB 64KB Start time 2011-09-22 09:34:00 2011-09-21 15:36:00 2011-09-23 09:40:00 Stop time 2011-09-22 14:30:00 2011-09-21 19:00:00 2011-09-23 13:08:00 Total Data size(GB) 1024.023 1024.023 1024.023 Total operations 134220800 67110400 16777600 count Total used 4.93 3.4 3.467 time(hour) Total 7084.320 5429.644 1331.556 throughput/sec Total MB/sec 58.04 88.96 87.26 Total average 132.230 184.174 751.001 latency(us) Total miss count 0 0 0 Total err count 0 0 0
  • 36. 0 1000 2000 3000 5000 6000 7000 4000 1305963360000 1305963600000 1305963840000 1305964080000 1305964320000 1305964560000 1305964800000 1305965040000 1305965280000 1305965520000 1305965760000 1305966000000 1305966240000 1305966480000 1305966720000 1305966960000 1305967200000 1305967440000 1305967680000 1305967920000 1305968160000 1305968400000 1305968640000 1305968880000 1305969120000 1305969360000 1305969600000 1305969840000 1305970080000 1305970320000 1305970560000 1305970800000 1305971040000 1305971280000 1305971520000 1305971760000 1305972000000 1305972240000 tThrou(ops/sec) dThrou(ops/sec) 1305972480000 (以16KB大小对象为例) 1305972720000 1305972960000 1305973200000 1305973440000 1305973680000 1305973920000 1305974160000 吞吐率保持平稳,尾部下降是并行的Benchmark客户端不同时结束造成的压力下降。 1305974400000 写操作吞吐率(Throughput)性能分析 1305974640000 1305974880000 1305975120000 1305975360000 1305975600000
  • 37. 50 0 100 150 200 250 300 350 400 0 10000 20000 30000 40000 50000 60000 1 130596336… 130596360… 2 130596384… 130596408… 130596432… 3 130596456… 130596480… 4 130596504… 130596528… 5 130596552… 130596576… 6 130596600… 130596624… 130596648… 7 130596672… 130596696… 8 130596720… 130596744… 9 130596768… 130596792… delayRatio 10 130596816… 130596840… 130596864… 11 130596888… 130596912… 12 130596936… 130596960… 13 130596984… 130597008… dMaxLat(ms) 14 130597032… 130597056… 对该曲线做数学积分处理,95%以上的操作在70ms以内。 130597080… 15 130597104… 130597128… 16 130597152… 130597176… 17 130597200… 130597224… 18 130597248… (以16KB大小对象为例) 130597272… delayRatio(‰) 19 130597296… 130597320… 130597344… 20 130597368… dMaxLat(ms) 130597392… 21 130597416… 130597440… 写操作响应时间(Latency)性能分析 22 130597464… X轴单位为10ms 130597488… 23 130597512… 130597536… 130597560… 24
  • 38. 读操作性能评估 Object Size (对象大小) 8KB 16KB 64KB Start time 2011-09-22 14:30:00 2011-09-21 19:02:00 2011-09-23 13:28:00 Stop time 2011-09-23 07:46:00 2011-09-22 00:24:00 2011-09-23 15:56:00 Total Data size(GB) 1024.023 1024.023 1024.023 Total operations 134220800 67110400 16777600 count Total used 17.267 4.933 2.467 time(hour) Total 2155.119 3452.181 1864.178 throughput/sec Total MB/sec 17.65 56.56 122.17 Total average 464.012 289.672 536.429 latency(us) Total miss count 0 0 0 Total err count 0 0 0
  • 39. 读操作吞吐率(Throughput)性能分析 (以64KB大小对象为例) 吞吐率保持基本平稳
  • 40. 读操作响应时间(Latency)性能分析 (以64KB大小对象为例)
  • 42. 新功能和系统完善 (系统级管理功能) • 只对系统管理员开放 – admin用户 • 系统级资源统计 – 用户/租户数 – Bucket数 – Object数 – 已用系统存储空间 – 总系统存储空间 • 用户/租户空间配额管理 – 查看配额 – 设置/修改配额 • 用户/租户使用情况统计 – Bucket数 – Object数 – 已用存储空间 – 操作次数 • 系统管理API – RockStorAdmin(address, adminAccessKey, adminSecurityKey) – getSystemSts() – getUserSts(userId) – getUserList() – setUserQuota()
  • 43. 新功能和系统完善 (用户/租户级管理功能) • 用户/租户级统计 – Bucket数 – Object数 – 已用存储空间 – 存储空间配额 – 操作次数 • 用户/租户级统计 API – getUserSts()
  • 44. 系统运行维护 • 分布式存储资 源状态 – 存储资源使 用情况 – 分布式存储 集群状态 • 集群监控 – 节点状态 – 负载监控 – 性能指标
  • 45. 应用与RockStor的集成框架 云应用服务的用户 云应用作为RockStor 对象云存储的用户, 通过RockStor提供的 统一标准的接口存 云应用服务 储、读取和操作数据 对象,界面和逻辑关 云应用即是RockStor云存储 系清晰简洁。 REST API RockStor提供统一标准的云存储接口,云应用可以 的用户。 通过该接口存储、读取、或操作这些数据对象。 RockStor对象云存储服务 RockStor是一个弹性的对象云存储系统,可类比Amazon AWS S3。 为教育云提供视频、音频、图片、文档等数据的存储服务。
  • 46. RockStor提供的接口 • 人机操作接口 App-1 App-2 – Web Portal SDK 注册、登录、 – Web Console REST Console REST RockStor云存储服务 • 开发接口 – REST API – SDK(Java, C++, Python, RockStor作为一个对象云存储服务整体对外 PHP等) 提供访问地址(例如统一域名),云应用不 必关心其内部分布式架构。
  • 47. 实验室Demo环境 • 系统中已经注册5个用户方便测试 • 编程例子程序代码和运行环境 – 测试用户 – 安装位置:192.168.1.3的/home/tester/test-api • tester1@test.com / password – 编译: • javac -cp lib/bigdata-rockstor-0.2.3-client.jar • tester2@test.com / password com/rockstor/clientsample/Sample.java • tester3@test.com / password – 运行: • tester4@test.com / password • java -cp .:lib/bigdata-rockstor-0.2.3-client.jar com.rockstor.clientsample.Sample • tester5@test.com / password – 编程样例代码文件: – 完整的注册流程需要邮件确认 • com/rockstor/clientsample/Sample.java • 须能访问外网或部署内部邮件系统 • 注意因为需要用户认证,编程前须先登录用户信息界面查看, 没有凭证的须先创建凭证。 • 相关Web URL – 用户注册和登录界面:http://192.168.1.3:18080 或https://192.168.1.3:18443 – 用户Console界面:http://192.168.1.3:8080 • 相关SDK编程URL – REST API 地址: 192.168.1.3:48080 – Object REST URL: 见用使用手册API中描述的格式。