全球旧事资料 分类
云存储的故事元数据归来
云存储服务是云计算的重要组成部分。技术上,云存储属于大型分布式在线存储范畴。云存储是一大类特殊的共享存储。作为提供存储资源的服务,云存储需要保证用户存放的数据可靠,不丢失。同时,云存储必须确保实时在线,任何宕机都会给用户造成损失。因而,云存储的基本要求是高可靠和高可用。此外,云存储是海量数据的存储,规模巨大。而且,出于成本和现金流量的考虑,云存储的集群规模必须随着用户数据量的不断增加而扩展。云存储的架构,设计和技术运用都是围绕这四个基本要求展开。反之,无论多么漂亮先进的技术,只要可能影响这些目标的实现,都不能应用于云存储。在我开始接触存储的时候,一致性哈希(以及著名的Dy
amo)是非常热门的技术。技术上一致性哈希很漂亮,简洁,并且高效。但在实际应用中,却是另一种表现。本文将对集中式的元数据存储方案和一致性哈希作对比分析,以期说明元数据是更加适合云存储的选择。
1对象存储,块存储
实用的云存储可以分作两类:对象存储和块存储。对象存储存储是地道的数据仓储,仅仅存放keyvalue数据:用户有一个数据对象,需要存储起来,他就给这个对象起一个名字(key),然后将对象连同名字一起存放入对象存储。当需要的时候,用这个名字作为key,向存储系统索要。而对象存储系统必须在需要的时候将数据返还给用户,除非用户已将此数据从存储系统中删除。块存储则是充当操作系统底下的块设备(笼统地说,就是磁盘),供系统使用。块存储实际上就是一种SAN(StorageAttachNetwork),将集群的存储空间分配给用户,挂载到操作系统,作为磁盘使用。因为块存储需要模拟磁盘的行为,因此必须确保低延迟。尽管两种云存储有完全不同的目标、用途和特性,但在分布式存储基本特性方面都面临着相同的问题,这里的讨论对两者都有意义。为了简便起见,这里只讨论对象存储的情况。但很多内容和结论可以外推到块存储。
2存储的基础
云存储功能非常简单,存储用户的数据而已。但简单归简单,几个要点还是需要做的。当用户将一个keyvalue对上传至存储时,存储系统必须找合适的服务器,保存数据。通常会保存在多台服务器上,以防止数据丢失。这叫多副本。于是,一个关键的问题就是如何选择存放数据的服务器。服务器的选择是很有技术含量的事,需要兼顾到几个要点:首先,数据必须在服务器之间平衡。不能把数据集中到少数几台服务器,造成一部分服务器撑死,而另一部分饿死。其次,在r
好听全球资料 返回顶部