分布式存储的概念及特性

分布式存储系统顾名思义就是将大量的普通服务器,通过网络互联,对外作为一个整体提供存储服务。具有可扩展性、可用性、可靠性、 高性能、易维护、低成本等特性。

百度百科的定义是这样的,本人觉得这个好理解一些:

分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

分布式存储系统具有以下的几个特性:

  • 可扩展 。分布式存储系统可以扩展到几百台甚至几千台这样的一个集群规模,系统的整体性能线性增长。
  • 低成本。分布式存储系统的自动容错、自动负载均衡的特性,允许分布式存储系统可以构建在低成本的服务器上。另外,线性的扩展能力也使得增加、减少服务器的成本低,实现分布式存储系统的自动运维。
  • 高性能。无论是针对单台服务器,还是针对整个分布式的存储集群,都要求分布式存储系统具备高性能。
  • 易用。分布式存储系统需要对外提供方便易用的接口,另外,也需要具备完善的监控、运维工具,并且可以方便的与其他的系统进行集成。

分布式存储系统的挑战主要在于数据和状态信息的持久化,要求在自动迁移、自动容错和并发读写的过程中,保证数据的一致性。

分布式存储所涉及到的技术主要来自于两个领域:分布式系统以及数据库,要考虑的问题:

  • 数据分布:如何将数据均匀的分布到整个分布式存储集群中的各台服务器?如何从分布式存储集群中读取数据?
  • 一致性:如何将数据的多个副本复制到多台服务器,即使在异常情况下,也能保证不同副本之间的数据一致性。
  • 容错:如何可以快速检测到服务器故障,并自动的将在故障服务器上的数据进行迁移
  • 负载均衡:新增的服务器如何在集群中保障负载均衡?数据迁移过程中如何保障不影响现有的服务。
  • 事务与并发控制:如何实现分布式事务。
  • 易用性:如何设计对外接口,使得设计的系统易于使用
  • 压缩/加压缩:如何根据数据的特点设计合理的压缩/解压缩算法?如何平衡压缩/解压缩算法带来的空间和CPU计算资源?

猜你喜欢

转载自blog.csdn.net/master_ning/article/details/80880164