分布式存储是相对集中存储来说的一个概念。

集中存储是一个控制器(机头,即使多个也是起冗余作用)来管理一系列的磁盘。要访问磁盘中的数据,都需要通过一个机头来访问,要管理海量的数据对机头的性能要求也是极高的。

所以,很多年前,大容量集中存储价格比较高,都是emc这种巨头的天下。集中存储配小型机是当时解决大并发高容量存储的唯一解决方案。

后面服务器成本太高google坐不住了,开始思考一个问题,能不能用廉价的pc组成计算集群来解决大规模存储及运算呢?就是把每一台pc(或者普通服务器)作为一个计算节点,然后组合多台达到性能和存储空间的提升。

后面google成功了,提出了分布式计算系统,利用多台廉价服务器组网实现了以前只有小型机➕集中存储的性能。分布式存储就是其中的一部分,简称HDFS。

google把分布式集群的服务器分为两类,一种负责管理数据(元数据),一种负责存储数据,所以最早的分布式存储概念里其实还是有中心的,就是管理数据的服务器,这台服务器记录了文件的元数据便于查询到文件在存储服务器的位置(一个文件被打成碎片的话还要记录每一个块的位置)。一台管理数据的服务器可以扩展大量的存储数据服务器。但都可以用普通的pc(廉价服务器)实现。

后面去中心化概念越来越盛行,而且从安全角度大家开始思考一个问题,就是如果少数的中心节点被破坏了,系统怎么恢复呢?能不能每个节点保存节点的元数据并互相通讯或者干脆让客户端(业务服务器)直接访问每个节点通过某种固定算法找到数据呢?

这个思路派生出两个分布式存储的算法或者流派,一个叫Ceph,一个叫Swift。

目前的分布式系统大多数是基于Ceph或Swift开发的。

所以,分布式存储系统可以利用多台普通服务器加上分布式软件的形式实现大型存储系统才能达到的性能和存储容量。并且因为使用了普通的服务器(便宜货)所以扩展容易,并不需要专用的存储硬件。

如果还没听懂,用一个不准确但应该有助于理解的比喻,集中存储是串联的,分布式存储是并联的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注