云存储浅析

GFS/BigTable/App Engine
HDFS/HBase/
Dynamo/S3/SimpleDB/EC2

比较Google和Amazon各自的存储模型,是很有趣的事情,他们的这些工作是目前云计算圈子里技术灵感的源泉,也是几十年来分布式系统理论研究应用的一个集大成之作。

存储虚拟化

文件系统抽象
数据库系统抽象

分布式存储系统

分布式文件系统
分布式数据库系统

key-value存储是更抽象的接口,或者叫对象存储系统,对象OID索引到对象
比较BigTable/HBase/Dynamo???

问题的关键在于:

功能性要求
性能要求(high throughput, low latency).
非功能性要求(容错,伸缩性,存储系统暂不考虑信息安全性)

解决思路在于大规模集群技术。
replication cluster
load balance cluster

由replication自然引起consistency模型的问题,这是整个存储系统中最困难的一个地方。再加上concurrency control的考虑,整个问题的复杂度倍增,这是个组合问题。

replication * concurrency = consistency.

相比于传统数据库ACID的要求,云存储主要是加入了replication的因素。

进一步的考虑,需要对数据进行partition,或者说hash.一个大文件划分成多个数据块,一个大表划分成几个部分。系统需要维护这种映射关系。在google和hadoop架构下,是通过中心服务器来管理的,master server,这就导致系统单点问题。amazon则通过分布式dht来做,节点是虚拟的,所有虚拟节点构成ring。

replication同步机制
GFS是同步模型
Dynamo是异步模型

同步模型的一致性易于做到些(考虑到容错,其实也不那么直接),异步模型必然要引出多版本的概念

failure detector

Google chubby闪亮登场
解决分布式系统中必须解决的一个全局状态问题。
SPOF问题
集群配置

API和协议

NFS
Fuse
CIFS

key-value存储系统接口

SOAP
RESTful

云存储解决了数据存储的问题,如何在如此大量的数据里面,进行必要的分析,挖掘到有用的信息,就进入并行计算的领域,这方面Map/Reduce独领风骚。这个思想是受FP的启发而出现的。FP在并行计算领域有独特优势(?),现在许多FPL的社区慢慢的热闹起来,这是一个重要原因。





猜你喜欢

转载自ecloud.iteye.com/blog/599581