---
title: 存储技术简史
taxonomy:
    category: docs
---

既然数据库的单点就是磁盘，那么接下来我们就来了解一下存储技术的发展简史。

### 集中式存储

集中式存储是一种采用独立的控制器（即计算机）控制大量的硬盘，并通过控制器对外提供多种不同层级的接口（硬件层面的 SAS/FC，软件层面的 SCSI/iSCSI/InfiniBand 等），以满足多个客户端、多种不同存储需求的产品。

集中式存储的兴起让 IOE 中的 E（EMC 存储公司）大放异彩：就像前面提到的那台价值百万的负载均衡设备一样，EMC 的集中式存储通过双控制器开机热备+全冗余网络连接，再配合 SAN 交换机和双 HBA 卡，实现了全冗余的存储网络架构。它性能出色，可以支持多台服务器连接使用，并且非常稳定。唯一的缺点就是价格昂贵。光是一个普通的 16 口 16G SAN 交换机，价格就已经超过了 40G 以太网交换机（交换容量甚至可以达到 50Tbps 以上）。更不用说一年也卖不出去几片的 HBA 卡了。而且，集中式存储设备本身更贵，非常贵，比两台标准 x86 服务器还要贵。

为什么集中式存储这么贵呢？因为它使用了非常高的硬件成本和服务成本，真正解决了大多数企业面临的存储问题：厂家负责上门部署，定期维护，你只需要出高价即可。集中式存储的本质是利用高水平的硬件+硬件级全冗余+保姆式的技术服务，彻底解决了存储这个难题。

### 分布式存储

进入云计算时代，分布式存储大放异彩：既然海量的 x86 服务器已经在机柜里运行着了，为什么不拿出一点点计算资源构建一个省钱的分布式存储呢？而且从需求的角度来看，云计算的规模正在快速增长，集中式存储很难满足如此快速的规模扩张。这时候就需要分布式存储登场了。

分布式存储选择通过海量普通可靠性的硬件+软件+数据冗余的方式，将一群 x86 服务器通过以太网或者 InfiniBand 相互连接，将分散在每一台服务器上的机械磁盘和固态磁盘组织到一起，形成一个庞大的硬盘资源池。这个软件定义的存储集群可以做到与集中式存储一样的三高：高可靠性、高可用率、高性能。

### 两者之间的差异

![](/media/1697696015.png)
<center>图 7-1 集中式存储和分布式存储的结构差异</center>

如图 7-1 所示就是集中式存储和分布式存储的结构差异。集中式存储将数据集中存储在单一的节点上，而分布式存储则将数据分散存储在多个节点上。这导致了它们各有优劣。

### 集中式存储的优缺点

集中式存储的优点包括：

1. 部署简单、管理方便：所有的数据都存储在单一的节点上，只需要管理一个设备或服务器。
2. 数据一致性高：数据存储在单一的节点上，一致性非常高。
3. 存取速度快：直接通过磁盘硬件接口传输数据，不需要跨越网络传输数据。

集中式存储的缺点包括：

1. 单点故障：如果集中式存储的节点出现故障，整个系统将无法访问数据，导致服务中断。
2. 扩展性差：随着数据量的增加，集中式存储的性能可能会变差，难以实现横向扩展。
3. 高成本：为了提高性能和可靠性，集中式存储通常需要昂贵的硬件设备和专业的维护人员。

### 分布式存储的优缺点

分布式存储的优点包括：

1. 可扩展性好：由于数据存储在多个节点上，系统可以根据需要动态添加或删除存储节点，从而具有更好的可扩展性。
2. 容错性强：分布式存储通过复制和分散数据存储来提高系统的容错性。如果某个节点发生故障，系统可以从其他节点中恢复丢失的数据。
3. 读性能更好：分布式存储具有更好的性能，因为数据可以并行读取，减少了瓶颈和延迟。但是需要注意的是，由于需要数据校验，写性能更差。

分布式存储的缺点包括：

1. 数据一致性：在分布式存储系统中，数据分布在多个节点上，可能导致数据一致性问题，需要进行额外的一致性协议来保证数据的一致性。
2. 写入性能差：分布式存储的数据需要在写入之后进行跨节点校验，需要消耗额外的时间来达成一致，所以写入性能往往大幅落后于单块磁盘。
3. 复杂性：分布式存储系统的设计和管理相对复杂，需要考虑网络、数据分片、数据复制等多个方面的问题。
4. 延迟：由于数据需要在多个节点之间传输，分布式存储可能会导致较高的延迟，尤其是在跨地域的情况下。

#### 我们正站在 x86 I/O 性能爆发的前夜

虽然我们说分布式存储也有高性能特性，但是，x86 架构下磁盘的性能其实并不出众。近年来，随着分布式存储的市场占有率越来越高，单系统规模也越来越大，从云计算厂商到服务器厂商，都在努力提升分布式存储各个部分的性能。除了“网络性能”和“缓存”在快速进步之外，x86 I/O 系统的“绝对性能”也在迅速提升，如今（2023 年），我们正站在 x86 I/O 性能爆发的前夜。
