当前位置:文档之家› 云存储现状及其关键技术

云存储现状及其关键技术

可靠性:任一进程、计算机和网络都有可能独立的发生故障,因此每个 云存储组件需要清楚所依赖的组件可能出现故障的方式,组件要设计成 能适当的处理每个故障。
效率:用户访问云存储系统中共享数据的算法应该避免性能瓶颈,频繁 访问的数据需要复制更多的副本,用户能够就近获得最快的访问时间, 同时用户使用云存储服务的接口应该尽可能简单。
性能测试
设计分布式文件系统的一些经验
不同的分布式文件系统有不同的应用场景,往往需要为了特定应用量身定制; 规模越大,不可预见的问题就越多; 小文件IO存在严重问题; 具有突破性的技术:
带外模式 半同步/半异步并发模型 缓存与预取策略 条带分片存储策略 写时拷贝技术(Copy-on-Write) 异步IO技术
多机热备 多台master为一组 元数据互为备份 同时提供服务
监管机制 发现master失效 启动备用master
数据完整性
chunkserver利用CRC校验检查数据完整性 每个chunks被切割成绩64KB的block,每个block有一个32bit的校验 和
当每一个block被读的时候,检查该校验和。如果发现数据错误,由 master发起通知,重新创建chunk,并通知chunkserver删除错误的 chunk。 当新的block被写或者追加写时时,只校验新的数据,计算开销很低 对于重复写操作,CRC的开销非常大,所有的校验和都需要重新计算
分布式文件系统HDFS随机访问
机械硬盘的物理构造决定了seek problem无法解决
The Google File System SOSP 2003
GFS的需求分析
组件失效是常态 文件规模一般都在几个G以上 Write once read many负载模型
文件写入后,基本不需要重写操作 文件被大量地连续读操作,随机读很少发生 允许大量客户端并行追加写同一个文件,追加写操作必须 是原子操作 对海量数据处理来说,带宽是稀缺资源
典型的况
HDFS GFS KFS Sector S3 SkyDrive Upline Atoms
是 IBM,Yahoo, FaceBook 否 Google 是 CloudStore 是 Sector-Sphere 否 Amazon 否 Microsoft 否 HP 否 Sun 否 EMC
应用范围: 大规模数据处理: MapReduce 数据共享与分发: GigaVox Media、Jamglue、SmugMug、…... 数据归档与备份:37signals、Altexa、BeInSync、Sonian、Zmanda、......
已有的商业应用: Amazon S3、 Microsoft Live SkyDrive、EMC Atmos、……
MapReduce
存储 数据库 计算 虚拟化
Simple Queue EBS
Sharepoint Services
Dynamic CRM Services
Websphere Tivoli Software
什么是云存储?
云存储专注于向用户提供以互联网为基础,几乎可以 无限扩展的高可靠在线存储服务,很好的满足了新兴 Web2.0应用的存储需求
Chunkserver设计特点
在linux系统中以实体文件存放chunk 默认放置3个chunk副本,2个在同一个机架的不同机器,1个在另外的机架
平衡访问负载 平衡存储空间 提供可用性和可靠性 块数据不缓存 块大小为64MB 优点:
减少元数据,每chunk对应64Bytes元数据,2P数据需要2G内存 减少网络开销,因为client往往对一个chunk进行多次操作,所以chunkserver可以在一 段时间之类保持住一个client和chunkserver之间的TCP连接 缺点: 小文件容易形成访问热点 解决方案:为小文件准备更多的副本
云存储关键技术
分布式文件系统 服务等级协议(SLA) 云服务接口技术 云安全技术
分布式文件系统
最常用的分布式系统之一 共性目标:以分布式方式实现统一的文件逻辑视图 实例:
NFS (Sun’s Network File System) Andrew File System (AFS) Google File System & others, ......
云存储现状与关键技术
概要
云存储背景与发展现状 云存储中的关键技术
分布式文件系统 服务等级协议(SLA) 云服务接口技术 云安全技术 云@清华大学
云存储背景与发展现状
什么是云?
X as a Service (XaaS)
Software as a Service Hardware as a service Infrastructure as a service Platform as a service Utility Computing
SLA
用户按照QoS选择和使用云服务 相同功能的云服务 相同功能但不同服务质量 可用性、可靠性、性能、价格、基本架构
使用合约(SLA) 描述服务 描述QoS 描述资源 描述责任
云服务接口技术
Web浏览器 网络磁盘 传统标准接口
HTTP FTP 其他接口 RESTfull/JSON SOAP/XML
位置无关 文件经常由于节点的失效、增加或者副本的改变或者重新均衡等进行着复 制或者移动,对系统来说,物理存储位置改变无需改变逻辑文件名,使文 件在服务器之间自由移动而不影响到客户端程序的运行 达到平衡服务器负载的目的
DFS- 元数据管理
元数据是关于数据的数据 包括文件名、文件大小、时间戳、访问控制信息、用 户、组、...... In-band Mode(带内模式)-元数据与数据放在一起 元数据访问效率低 大数据量操作容易形成瓶颈 Out-of-band Mode(带外模式)-使用专门的服务其存 放元数据
E.g., 预读取数据、文件Handle、文件锁 需要更多的服务器开销
DFS-副本
副本 - 将同一文件在不同的机器上放置多份实现数据冗余 保证可靠性 保证可用性 实现负载均衡 副本位置对用户透明
同样面临一致性问题,系统可以选择性使用: 强一致性 弱一致性
DFS- Seek Problem
内存文件系统随机访问
云安全技术
安全的基本要求: 私密性:防止用户的信息被其他非认证 用户查看 完整性:用户的数据不被会其他用户改 动 可用性:用户的数据不会受到恶意攻击 的影响 可认性:SLA是可以认证的
用户无需考虑存储容量的大小、数据存储的位置、以 及数据的可用性、可靠性和安全性等繁琐的技术细节
用户只需要按需付费就可以从云存储服务提供商那里 获得近乎无限大的存储空间和可靠的服务质量,即用 即付,节约投资, 从而完全专注于自身应用与业务的 发展
云存储的基本特征和应用领域
基本特征 分布于网络(互联网或局域网、公有云和私有云) 易于扩展 易于管理
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
是否使用廉价 设备
主要用途
是(PC) 是(PC) 是(PC) 是(PC) 是(NAS) 未知 未知 未知 是(NAS)
大规模数据存储与处理 大规模数据存储与处理 大规模数据存储与处理 大规模数据存储与处理 数据存储(文件<5GB) 数据存储 数据存储 数据处理 数据存储
云存储关键技术
云存储体系结构
接口(API)
提供文件系统接口 非标准的POSIX API 仅仅提供几种最基本的操作–create, delete, open, close, read, write 利用写时拷贝( copy-on-write)技术实现快照功能
GFS体系结构
文件被切割成固定大小的块(Chunk) 一个主Master,多个Shadow Master 多个chunkserver 多client
DFS – 文件访问性能
本地或者服务器缓存元数据 优化元数据操作效率 提高并发度
本地或者服务器缓存数据 优化数据访问效率 减少网络流量
带来严重的一致性问题
DFS-数据缓存
内存缓存 访问速度快 开销大
硬盘缓存 支持文件离线访问(e.g., AFS、SVN、GIT) 支持大文件
DFS-缓存一致性
当缓存中的数据与服务器中的版本不一致时,如何解决? Client-initiated approach Client发起有效性检测,由Server进行仲裁。 E.g., 时间戳, 版本号, ....... Server-initiated approach 由服务器端记录所有被缓存的数据记录。 当服务器探测到潜在的不一致时,发起通知。
扩展性:简单高效的存储空间扩容是云存储系统的基本特点,存储节点 的加入和退出必须以热插拔的方式进行;
透明性:包括存储位置透明和用户访问透明,用户不需要关心数据存储 的具体位置,就能够就近访问到数据的副本,对于用户而言,数据总是 可用的。
并发性:云存储系统中多个用户可能会对共享数据资源产生并发请求, 每个云存储组件必须被设计成在并发环境中是安全的。
client设计特点
client是一组供上层应用调用文件系统的API,它向 master请求元数据,向client请求数据 client在有限时间内缓存元数据 client不缓存数据,因为用户请求的数据往往很大或 者是流式写操作,缓存没有意义
对于N Masters的考虑
层次结构 按目录划分、按id划分、按区域划分… 限制每个master的规模
相关主题