云存储技术和应用
Download
1 / 73

云存储技术和应用 - PowerPoint PPT Presentation


  • 296 Views
  • Uploaded on

云存储技术和应用. 提纲. 存储发展历史 云存储概念和技术 云存储应用. 存储的发展历史. 直连存储 DAS 存储区域网络 SAN 网络附着存储 NAS 对象存储设备 OSD. 存储发展历史 - 直连存储 DAS. Direct-Attached Storage 概念:存储设备是通过电缆(通常是 SCSI 接口)直接到服务器的, I/O (输入 / 输入)请求直接发送到存储设备。. 存储发展历史 - 直连存储 DAS. Direct-Attached Storage 备份和恢复:占用服务器资源,数据量越大,备份和恢复的时间就越长

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 云存储技术和应用' - kaya


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

提纲

  • 存储发展历史

  • 云存储概念和技术

  • 云存储应用


存储的发展历史

  • 直连存储DAS

  • 存储区域网络SAN

  • 网络附着存储NAS

  • 对象存储设备OSD


存储发展历史-直连存储DAS

  • Direct-Attached Storage

    • 概念:存储设备是通过电缆(通常是SCSI接口)直接到服务器的,I/O(输入/输入)请求直接发送到存储设备。


存储发展历史-直连存储DAS

  • Direct-Attached Storage

    • 备份和恢复:占用服务器资源,数据量越大,备份和恢复的时间就越长

    • CPU发展速度比存储发展速度快,磁盘阵列容量增大,IO成为瓶颈

    • 服务器或磁盘阵列扩展都需要停业务,电信和银行无法忍受

    • 服务器SCSI插槽数量有限,存储资源和数据无法服务器之间共享


存储发展历史-存储区域网络SAN

  • Storage Area Network 

    • 概念: SAN的概念是允许存储设备和CPU(服务器)之间建立直接的高速网络(与LAN相比)连接,通过这种连接实现只受光纤线路长度限制的集中式存储。

  • 光纤交换机


存储发展历史-存储区域网络SAN

  • Storage Area Network 

    • 独立于服务器网络的高速光纤存储网,适合大数据高速处理

    • 存储资源全局多主机动态共享

    • 备份与恢复:不需要服务器参与

    • IO带宽:多个服务器可以并行访问统一存储设备

    • 在线升级:在线增加服务器或存储设备

    • 扩展性:光纤交换机提供很多接口,也可以连接其他交换机




存储发展历史-网络附着存储NAS

  • Network Attached Storage

    • 概念NAS由SUN公司在上个世纪80年代中期推出NFS开始,是一种面向用户提供文件级服务的专用数据存储设备,存储系统不再通过I/O总线附属于某个特定的服务器或客户机,而是直接通过网络接口与网络直接相连,由用户通过网络访问。


存储发展历史-网络附着存储NAS

  • Network Attached Storage

    • 容易部署:不需要依赖任何其他设备,只要有一个网络端口就可以在任何能上网的设备上使用

    • 易于使用:文件接相对块接口更容易使用

    • 文件共享:方便多个主机共享数据

    • 长距离传输:基于IP网络

    • 易于扩展:简单的增加NAS设备到网络中即可

    • 低成本:相对SAN价格便宜


存储发展历史-文件访问


存储发展历史-文件访问

文件的Inode包含多个块,为了提高大文件操作效率还会将两个或三个块组合起来提供访问。


存储发展历史-本地文件系统

文件/目录管理 10%工作量

块管理90%工作量


存储发展历史-分布式文件系统

通过NFS/CIFS接口访问


存储发展历史-对象存储


存储发展历史-对象存储设备OSD

CPU

Applications

System Call Interface

CPU

File System

User Component

Applications

System Call Interface

File System

User Component

File System

Storage Component

File System

Storage Component

Block I/O Manager

Block I/O Manager

Storage Device

Storage Device

Object Interface

Block Interface

  • SCSI


存储发展历史-对象存储设备OSD

Access Request

DATA

SECRET

KEY

Validate Capability

SECRET

KEY

SECRET

KEY

Client

SAN

Eth switch

Managers

MANAGEMENT

Object-based Storage Devices


存储发展历史-对象存储vs块存储


存储发展历史-对象存储vs文件存储

  • 存储自治:

  • 容量扩展

  • 负载均衡

  • 备份

  • QoS、SLA

  • 感知和数据分组

  • 预取

  • 压缩/去冗余

  • 强安全/加密

  • Compliance、Retention、secure delete

  • 可用性、副本

  • 自治愈


存储发展历史-对象定义

  • 对象的定义

    • ObjectID:对象唯一标示

    • UserData:对象的数据

    • Metadata:元数据,空间管理信息

    • Attributes:对象属性



提纲

  • 存储发展历史

  • 云存储概念和技术

  • 云存储应用



云存储需求

2011年全球数据量将达1.8ZB,这人类将开始进入ZB时代


云存储需求

  • 高容量:海量,且可扩展

  • 高性能:快速的访问、定位

  • 高可用:个别磁盘失效,甚至整个中心被毁

  • 低成本:传统的NAS、SAN技术构建大规模存储系统成本很高


云存储概念和特点

  • 云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。

  • 高可用、可扩展、按需付费


云存储有哪些?

Google

Cloud

Amazon

Cloud

Microsoft

Azure

IBM

Blue Cloud

Google File System

S3

Live Services

Hadoop

BigTable

SimpleDB

SQL Services

DB2

Google App Engine

EC2

.NET Services

Xen & PowerVM

MapReduce

Simple Queue

Sharepoint Services

Websphere

EBS

Dynamic CRM Services

Tivoli Software


云存储的热点

  • 分布式文件系统(GoogleGFS、HadoopHDFS。。)

  • NoSQL数据库(GoogleBigTable、FacebookCassandra。。)

  • 对象存储(AmazonS3)

  • 分布式块存储(AmazonEBS)


分布式文件系统应用场景

  • Google:

    • 搜索、AppEngine、Gmail、Youtube、Map。。

  • Baidu:

    • HadoopHDFS搜索、数据分析

  • Taobao:

    • TFS存储图片网页

    • HadoopHDFS数据分析


GFS-需求分析

  • 组件失效是常态

  • 文件规模一般都在几个G以上

  • Write once read many负载模型

    • 文件写入后,基本不需要重写操作

    • 文件被大量地连续读操作,随机读很少发生

  • 允许大量客户端并行追加写同一个文件,追加写操作必须是原子操作

  • 对海量数据处理来说,带宽是稀缺资源


Gfs api
GFS-接口(API)

  • 提供文件系统接口

    • 非标准的POSIX API

    • 仅仅提供几种最基本的操作–create, delete, open, close, read, write

    • 利用写时拷贝( copy-on-write)技术实现快照功能


GFS-体系结构

  • 文件被切割成固定大小的块(Chunk)

  • 一个主Master,多个Shadow Master

  • 多个Chunkserver

  • 多client


Gfs master
GFS- Master设计

  • 主master

    • 将所有元数据保存在内存中,实现快速访问

    • 同时提供chunk令牌管理、孤立块垃圾回收、块迁移、副本管理功能

    • 定期与chunkserver发送心跳消息,收集chunkserver状态

    • 任何对元数据的写操作都会保存到日志中

    • 元数据在一段时间内会缓存在clients中

  • Shadow masters

    • Master的状态(checkpoint和log)会定期复制到shadow masters中,以保证系统的可靠性。

    • 当master失效后,系统会尝试从shadow master中读取checkpoint和log进行数据恢复,恢复周期一般为秒级

    • 即使master失效,shadow也能提供文件的只读访问。


Gfs chunkserver
GFS- ChunkServer设计

  • 在linux系统中以实体文件存放chunk

  • 默认放置3个chunk副本,2个在同一个机架的不同机器,1个在另外的机架

    • 平衡访问负载

    • 平衡存储空间

    • 提供可用性和可靠性

  • 块数据不缓存

  • 块大小为64MB

    • 减少元数据,每chunk对应64Bytes元数据,2P数据需要2G内存

    • 减少网络开销,因为client往往对一个chunk进行多次操作,所以chunkserver可以在一段时间之类保持住一个client和chunkserver之间的TCP连接

    • 小文件容易形成访问热点,解决方案:为小文件准备更多的副本


Gfs client
GFS- client设计

  • client是一组供上层应用调用文件系统的API,它向master请求元数据,向client请求数据

  • client在有限时间内缓存元数据

  • client不缓存数据,因为用户请求的数据往往很大或者是流式写操作,缓存没有意义


Amazon s3
AmazonS3

  • 概念

  • 数据模型

  • 接口


对象存储(应用场景)

  • Amazon S3

  • Facebookhystack

  • 盛大云分布式key-value存储

    • 各种媒体文件,如图片,音乐,视频等等;

    • 最终用户数据的存储,比如文档,数据表格,数据文件等;

    • 数据备份和存档,如交易数据,log数据,用户访问的数据等;

  • 阿里云

    • 基于OSS,用户可以搭建出各种多媒体分享网站、网盘、个人企业数据备份等基于大规模数据的服务。

    • 开通赠送5GB空间,按使用付费。

    • 提供类S3RESTAPI接


  • S3存储的发展

    1020

    数据来源:http://www.snia.org


    S3简介

    • S3(Simple Storage Service)是Amazon推出的简单存储服务,它提供简单的Web服务接口,随时随地地在网络上存取数据, 使得开发人员进行网络规模的计算更容易

    • S3基于高扩展性、可靠、快速、廉价的数据存储基础设施运行它自己的全球站点网络


    S3的价格


    容器

    容器

    容器

    容器

    • S3数据模型

    • 对象Objects

      • 存储数据的基本实体,包含

        对象数据部分和元数据部分

    • 桶Buckets

      • 容器是对象的集合,容器可以包含子容器

      • 一个容器可以包含多个对象和子容器

    • 关键字Keys

      • 桶或对象的唯一标识

    • 示例:访问容器photos下的对象family.jpg:

      • http://www.amazon.com/webdisk/photos/family.jpg

    对象存储

    客户端

    对象存储

    客户端

    对象存储

    客户端

    HTTP RESTfulRequest&Response

    数据对象

    容器

    云存储


    Objects
    Objects

    • 对象是存储在 Amazon S3上的基本实体,这一实体包含对象数据部分和元数据部分

      • 元数据是一套描述对象名-值(name-value)对。元数据包括一些默认的元数据和标准HTTP元数据,如:最后一次修改时间和内容类型等,开发人员可以在对象存储时指定自定义的元数据


    Buckets
    Buckets

    • 一个桶就是一个存储在Amazon S3上的对象的容器, 每个对象都包含在一个桶内。

    • 一个桶的所有权属于创建它的AWS帐户。每个AWS帐户能一次拥有多达100个桶,桶的所有权不可转移。但是,如果一个桶是空的,它可以被删除并且名字可以重新使用。

    • 一个桶中存储对象的数量没有限制而且使用多少个桶性能并没有变化。你可以把你所有的对象都存在一个桶中也可以把他们安排在多个桶中。

    • 桶不能嵌套,也就是说,不能在桶中创建桶。

    例如:

    如果名为photos/puppy.jpg的对象存储在johnsmith桶中,那么可以用http://johnsmith.s3.amazonaws.com/photos/puppy.jpg来访问它.


    Keys

    • 一个关键字是一个对象在一个桶中的唯一标识符。每一个Amazon S3中的对象都可以通过服务端点、桶名和关键字的组合唯一地找到

    例如:

    在 http://doc.s3.amazonaws.com/2006-03-01/AmazonS3.wsdl中,

    “doc”是一个桶名,"2006-03-01/AmazonS3.wsdl"是一个关键字


    S3 restful api
    S3接口:RESTfulAPI

    • HTTP协议不仅仅可以用来进行网络传输,而且可以用以下几种API来实现所有的Web操作

      • PUT = "here's some new info" (Create)

      • GET = "give me some info" (Retrieve)

      • POST = "here's some update info" (Update)

      • DELETE = "delete some info" (Delete)

    • HTTP API符合CRUD (Create, Retrieve, Update, and Delete)原则


    Rest get
    REST GET示例

    GET /Nelson HTTP/1.1

    Host: quotes.s3.amazonaws.com

    Date: Wed, 01 Jun 2010 12:00:00 GMT

    Authorization: AWS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=

    Request

    HTTP/1.1 200 OK

    x-amz-id-2: j5ULAWpFbJQJpukUsZ4tfXVOjVZExLtEyNTvY5fe+hHIegsN5p578JLTVpkFrpLx-amz-request-id: BE39A20848A0D52B

    Date: Wed, 01 Jun 2010 12:00:00 GMT

    x-amz-meta-family: Muntz

    Last-Modified: Sun, 1 Jan 2010 12:00:00 GMTE

    Tag: "828ef3fdfa96f00ad9f27c383fc9ac7f“

    Content-Type: text/plain

    Content-Length: 5

    Connection: close

    Server: AmazonS3

    ha-ha

    Response


    Nosql
    NOSQL数据库

    • 概念

    • Key-value

    • Column

    • Document

    • Graphy


    What is nosql
    What is NoSQL?

    • NoSQL=Non relational或者Not only SQL

    • NoSQL是相对于RDBMS的,具有以下特征

      • 非关系

      • 分布式

      • 开源

      • 水平扩展

      • schema-free

      • easy replication support

      • simple API

      • 最终一致性

      • 支持海量数据(Huge Data)

      • 不支持ACID

    • NoSQL于2009年发展迅速(http://nosql-database.org)


    Why nosql
    Why NoSQL?

    • web2.0时代,数据量激增,对数据库技术提出了新的需求:

      • High performance —— 对数据库高并发读写的需求

      • Huge Storage —— 对海量数据的高效率存储和访问的需求

      • High Scalability && High Availability —— 对数据库的高可扩展性和高可用性的需求

      • Low cost —— 对数据库低成本的需求

    • 传统RDBMS无法满足,而一些关系特性无用武之地却严重限制了性能:

      • 数据库事务一致性

      • 数据库的写实时性和读实时性

      • 复杂的SQL查询,特别是多表关联查询

    • NoSQL放弃关系模型,弱化RDBMS一些非必要功能,提高扩展性、可用性,实现海量存储


    Why nosql1
    Why NoSQL?

    Scaling up

    不可能无限制Scaling up

    RDBMS

    数据量激增,并发量大

    性能下降

    Sharding会丧失RDBMS的某些特性(ACID,实时性,表join困难)

    手工Sharding是件恶心的事,不灵活

    Scaling out

    在很多场合,关系数据库的某些特性无用武之地,

    反而限制性能:

    • 事务强一致性

    • 读写实时性

    • 复杂的SQL查询,尤其是跨表join

    NoSQL

    放弃关系型模型


    Nosql1
    NoSQL应用现状


    Nosql2
    NoSQL四大家族


    1 key value
    1)Key-Value

    • 数据模型:简单的键值对

    • 典型应用:

      • Cache

      • 高读写的简单存储

    • 优势:

      • 简单、读写速度快

    • 劣势:

      • 存储数据缺少结构化,只能存储Key-Value对

      • 复杂的结构需要上层应用处理


    Dynamo
    Dynamo

    • 购物车问题

    • 不开源,公布了paper

    • 技术特征:

      • 一致性哈希

      • 虚节点

      • Vector Clock

      • Hinted Handoff

      • Anti-entropy

      • Merkle Tree

      • Gossip


    Memcached
    Memcached

    • 用作大型网站缓存系统

    • 开源协议:BSD

    • 开发语言:C

    • 协议:memcached协议(自定义的基于TCP的文本协议)

    • 特性:

      • 协议简单

      • 基于libevent事件处理

      • 内存存储

      • 不相互通信的分布式


    2 column oriented
    2) Column-Oriented

    • 数据模型:BigTable式表格,稀疏矩阵

    • 典型应用:

      • 海量数据存储与分析

    • 优势:

      • 查找列速度快,可扩展性强,更容易进行分布式扩展

    • 劣势:

      • 功能相对局限,对于跨表的join性能不高


    3 document oriented
    3) Document-Oriented

    • 数据模型:灵感来源于Lotus Notes,JSON-like

    • 典型应用:

      • Web应用

    • 优势:

      • 数据结构要求不严格,灵活

    • 劣势:

      • 查询性能不高,而且缺乏统一的查询语法


    4 graph oriented
    4)Graph-Oriented

    • 数据模型:图模型

    • 典型应用:

      • 基于网络的应用,地理位置信息(用作GIS)、社交网络(SNS)、网络拓扑等

    • 优势:

      • 可以利用图结构相关算法

    • 劣势:

      • 需要对整个图做计算才能得出结果,不容易做分布式的集群方案


    提纲

    • 存储发展历史

    • 云存储概念和技术

    • 云存储应用


    设计一个网盘系统

    • 需求:

      • 海量用户,系统用户数上千万/上亿,由少到多

      • 系统并发访问用户数上十万

      • 用户访问可以通过PC、手机、Pad

      • 系统刚开始用户数少,投资有限,随着用户增加追加投资

      • 高可靠,7*24小时不中断

    • 设计:

      • 设计一个系统,描述由哪些部分组成,每个部分的功能是什么,可以使用哪些技术实现

      • 分组进行,每个小组出一个代表上来分享


    设计一个网盘系统

    • 提示,从下面列表中选择可能是用到的技术完成系统的设计:

      • iOS开发技术、Android开发技术、UI交互设计技术、美工、HTTP服务端技术、xml/jason技术、负载均衡技术、分布式缓存技术、分布式文件系统、分布式对象存储(类S3)、Oracle、mySQL、BerkerlyDB、DynamoDB、虚拟机技术、Java/C++/C/ObjectiveC、php、html、mongodb、redis、memcache、Nginx(web负载均衡)、


    总结

    • 存储概念:

      • 背景需求

      • 发展历史

      • 文件、块、对象存储

    • 存储技术:

      • 分布式文件系统GFS

      • 对象存储S3

      • 分布式数据库NoSQL

    • 存储应用:

      • Sina微博系统设计


    ad