分布式存储是相对于单机存储而言,之所以要分布自然是因为互联网时代信息数据大爆炸,单机已经难以满足大型应用的数据存储需求。
存储系统的关注点
关于存储系统,一般我们关注下面几个方面:
- 数据分布与负载均衡
- 数据存储的可靠性与一致性
- 数据访问性能
- 系统容错能力
- 系统扩展能力
在单机存储系统中有一种独立磁盘冗余阵列(RAID,redundant array of independent disks)技术,
是把相同的数据存储在多个硬盘不同地方的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。
这个技术基本解决了我们上面提到的前三点,数据可以通过磁盘阵列控制程序均匀分布在多个硬盘上,
以实现负载均衡,并通过冗余来保障可靠性。类似单机挂载多磁盘,数据在磁盘阵列上的冗余副本要保持一致也容易。
存储系统的访问性能基本受制于磁盘的性能,通过分散到多磁盘确实达到了提升性能的效果。
真正的问题难点在于后两点:
磁盘阵列解决了单一磁盘的脆弱性,但并不能提升存储子系统整体的可用性,或者说容错能力。
同理扩展能力同样受制于磁盘阵列的物理扩展槽的限制。
分布式存储的定义与分类
所以分布式存储应运而生,作为存储系统它同样需要面对上述问题。
先来看下它的定义:
分布式存储系统是大量普通 PC 服务器通过网络互联,对外作为一个整体提供存储服务。
从上面的定义看,更多时候我们把分布式存储作为一种服务面向各种不同的数据存储需求。