• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
RockStor -  A Cloud Object System based on Hadoop
 

RockStor - A Cloud Object System based on Hadoop

on

  • 888 views

RockStor - A Cloud Object System based on Hadoop.

RockStor - A Cloud Object System based on Hadoop.
It's a experimental prototype project.

Statistics

Views

Total Views
888
Views on SlideShare
888
Embed Views
0

Actions

Likes
1
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    RockStor -  A Cloud Object System based on Hadoop RockStor - A Cloud Object System based on Hadoop Presentation Transcript

    • RockStor基于Hadoop的云对象存储系统 Schubert Zhang 2012-02-10 This is a experimental prototype project.
    • Agenda• 背景和系统概述• 系统架构和实现• 主要业务流程和系统功能• 性能评估• 功能完善和应用开发
    • 第一部分:背景和系统概述
    • 什么是对象存储系统对象(Object)是对象存储的基本单元,每个Object是数据和数据属性集的综合体,数据属性可由系统用户自由扩充。对象存储系统是对象存储的载体,用户可通过对象存储系统完成对象的读写操作。用户通过对象存储系统保存数据的典型数据类型包括: 多媒体,音乐,图片 视频监控文件 电话录音文件 压缩log文件 备份文件 操作系统的镜像 ……
    • 设计对象存储系统面临的问题功能 数据的组织 对象存储系统需要合理组织对象数据在分布式文件系统上的存储结构,以满足生产系统 中大量随机读写对系统性能带来的挑战。 元数据的组织 合适的元数据存储引擎以及正确的Schema设计能使元数据的访问更加高效,此处的元数 据既包括对象本身的元数据又包括对象的存储信息。性能 吞吐 对象存储系统需要满足在高并发访问下的稳定性能,无论是元数据还是数据的访问都不 能成为系统性能的瓶颈。 稳定性 系统的性能不能随着系统运行时间的增长而下降,可靠稳定的系统实现应能够在系统长 期运行中保持稳定,并能够应对系统硬件故障。 可扩展性 系统扩容应简单易行,性能可线性增长。
    • Why HadoopHDFSHDFS是可靠稳定的分布式文件系统,具有高可靠,高并发等优点,且在一定条件下能够随着系统规模的扩大实现性能的线性增长。HBaseHBase架设在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 PebbleRowKey UserId RowKey BucketId RowKey PebbleIdCF CF CFBucketName1 Owner OwnerBucketName2 Etag PartPrefix…… Acl PartNum BucketId对应PebbleId是天然 Size 的映射,如: EtagRock Bucket=testBucket MimeRowKey RockId PebbleId=testbucket/pic/ MetaCF M 1.jpgCreateTime ChunkVersion ChunkId RowKey ChunkIdRetire =MD5(“testbucket/pic/ CFGarbageBytes 1.jpg”+0+(maxLong- RockIdDeletedBytes version)) ChunkOffsetCF G ChunkSizeGarbage Offset 1Garbage 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 JavaRockStor为用户提供开发SDK,Client以jar形式提供,一般命名方式为: bigdata-rockstor-{version}-client.jarPackage名为: 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:00Total 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:00Total 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 APIRockStor提供统一标准的云存储接口,云应用可以 的用户。通过该接口存储、读取、或操作这些数据对象。 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!