睿诚科技协会

Server SAN技术原理是什么?

理解什么是 Server SAN?

在深入原理之前,我们先给 Server SAN 一个清晰的定义。

Server SAN技术原理是什么?-图1
(图片来源网络,侵删)

Server SAN 是一种现代的、软件定义的存储架构,它将多台通用服务器(x86 架构)本地直连的硬盘(HDD、SSD)通过一个存储软件整合成一个统一的、共享的存储资源池,并以 SAN(存储区域网络)的风格(即块存储)提供给虚拟机或应用程序使用。

核心思想: 将计算和存储资源紧密地整合在一起,打破传统 SAN 中存储阵列和计算服务器之间的物理壁垒。

关键特征:

  1. 软件定义: 存储的所有功能(如数据复制、精简配置、快照、高可用等)都由软件实现,而不是依赖昂贵的专用硬件。
  2. 通用硬件: 使用标准的、成本低廉的 x86 服务器和硬盘,避免了厂商锁定的专有存储硬件。
  3. 分布式架构: 存储资源池由多台服务器共同提供,数据分散存储在这些服务器的本地硬盘上。
  4. 以服务器为中心: 架构的起点是服务器,存储是作为服务器的延伸和扩展而存在的,这与传统 SAN 以存储阵列为中心的理念完全相反。

核心技术原理剖析

Server SAN 的实现依赖于一系列关键技术,这些技术共同作用,构建了一个高效、可靠、可扩展的存储系统。

Server SAN技术原理是什么?-图2
(图片来源网络,侵删)

架构基础:计算与存储融合

这是 Server SAN 的基石,每台服务器(通常称为“节点”或“Node”)不仅运行虚拟化或应用程序,同时也作为存储节点贡献出自己的本地磁盘空间。

  • 节点组成:
    • CPU/内存: 运行虚拟机、应用程序和存储控制软件。
    • 本地磁盘: 通常分为两类:
      • 高性能 SSD (日志盘/缓存盘): 用于存储元数据、写日志和缓存,以提升随机 I/O 性能。
      • 大容量 HDD (数据盘): 用于存储实际的数据块。
    • 网络接口卡: 通常使用高速网络(如 10GbE, 25GbE, InfiniBand)连接所有节点,用于节点间的数据同步和客户端访问。

数据放置策略:分布式与一致性哈希

这是 Server SAN 实现横向扩展和高可用的核心,当有数据需要写入时,存储软件必须决定将其放在哪个节点的哪块磁盘上。

  • 传统方法的问题: 如果使用简单的哈希表,增加或减少一个节点都会导致哈希键的重新计算,从而引发大规模的数据迁移(“数据洗牌”),这在大型集群中是不可接受的。
  • 解决方案: 一致性哈希
    • 原理: 将整个哈希空间(0 到 2^32-1)组织成一个虚拟的环,每个节点根据其标识符(如 IP 地址)计算哈希值,并映射到环上的一个位置,每个数据块也通过其键计算哈希值,并顺时针找到距离它最近的节点进行存储。
    • 优势:
      • 平滑扩展: 当新增一个节点时,只会影响环上相邻节点的一小部分数据,而不是全局数据,大大减少了数据迁移量。
      • 高可用: 如果一个节点故障,其负责的数据会自动由环上的下一个“虚拟邻居”节点接管。

数据保护与高可用:数据复制机制

为了防止数据因硬盘或节点故障而丢失,Server SAN 必须有强大的数据保护机制,主流的两种技术是:

  • 副本:

    Server SAN技术原理是什么?-图3
    (图片来源网络,侵删)
    • 原理: 将同一个数据块的多个副本(通常是 3 个,分布在不同的物理节点上)存储在集群中,任何一个副本所在的硬盘或节点发生故障,其他副本仍然可以提供服务。
    • 写入过程: 客户端写入一个数据块,存储软件会将其同时复制到多个节点上,直到所有副本都写入成功才向客户端返回“写入成功”的确认。
    • 读过程: 客户端读取数据时,可以从任何一个拥有该数据副本的节点读取,最近的副本会被优先选择,以降低延迟。
    • 恢复: 当一个副本丢失后,系统会自动从其他副本创建一个新的副本,以维持设定的副本数量。
  • 纠删码:

    • 原理: 这是一种更节省空间的数据保护技术,它将一个数据块分割成多个数据块和校验块,并将它们分散存储在不同的节点上,一个典型的 k+m 纠删码方案(如 6+3)会将 6 个数据块和 3 个校验块共 9 个块分布到集群中,只要有任意 k(这里是 6)个块存在,就可以通过计算恢复出原始的 6 个数据块。
    • 优势: 存储开销远低于副本(3副本需要 200% 的额外空间,6+3 纠删码只需要 50%),非常适合用于“冷数据”或“归档数据”场景。
    • 劣势: 计算开销大,重建数据时的性能开销远高于副本,通常用于读多写少的场景。

性能优化:日志结构化 与缓存技术

为了提升随机 I/O 性能,特别是写性能,Server SAN 普遍采用以下技术:

  • 日志结构化文件系统:

    • 原理: 数据不是直接覆盖写入,而是顺序追加到一个“日志”或“写时复制”区域,当需要修改一个数据块时,系统会将其标记为无效,然后在新的位置写入修改后的版本,后台会有一个“垃圾回收”进程,将这些无效的数据块空间回收。
    • 优势: 极大地优化了 SSD 的写入性能,避免了 SSD 的“写放大”问题,并延长了 SSD 的寿命。
  • 分层缓存:

    • 原理: 利用高速的 SSD 作为缓存,来加速对慢速 HDD 的访问。
    • 读缓存: 热点数据(被频繁读取的数据)会被缓存在节点的 SSD 上,后续的读取请求可以直接从 SSD 响应,速度极快。
    • 写缓存: 写入请求首先被快速地记录在节点的 SSD 日志中,然后立即返回给客户端确认,后台的“后端线程”再将这些数据从 SSD 日志刷到最终的 HDD 数据盘中,这极大地降低了写入延迟。

元数据管理:集中式与分布式

元数据是关于数据的数据,如文件名、位置、大小、权限、数据块映射信息等,元数据管理的性能直接影响整个存储系统的效率。

  • 集中式元数据:

    • 原理: 指定一个或少数几个节点作为“主节点”或“元数据服务器”,负责管理所有的元数据。
    • 优势: 管理简单,元数据查询速度快。
    • 劣势: 存在单点性能瓶颈和单点故障风险,成为整个集群的扩展瓶颈。
  • 分布式元数据:

    • 原理: 元数据被分散存储在集群中的多个节点上,没有一个中心化的管理者。
    • 优势: 没有单点瓶颈,可以随着集群规模的扩大而线性扩展。
    • 劣势: 设计和实现复杂,需要解决元数据的一致性问题(通常使用 Paxos 或 Raft 等一致性协议)。

主流 Server SAN 产品实例

理解了以上原理,我们再来看看市场上的主流产品,你会发现它们都遵循了这些设计思路:

产品/技术 核心原理
VMware vSAN - 架构: 融合架构,vSAN 软件作为 ESXi 内核的一部分。
- 数据放置: 分布式。
- 数据保护: 副本策略(允许 RAID 配置,本质是副本的一种)。
- 性能优化: 使用日志设备(SSD)和缓存设备(SSD/PMem)。
- 元数据: 分布式管理。
Nutanix AHV / NDFS - 架构: 超融合,Nutanix Controller Virtual Machine (CVM) 负责存储功能。
- 数据放置: 一致性哈希。
- 数据保护: 副本策略(可配置副本数)。
- 性能优化: 使用 Write-Back Cache 和 Read Cache。
- 元数据: 分布式。
Microsoft Storage Spaces Direct (S2D) - 架构: 软件定义,运行在 Windows Server 之上。
- 数据放置: 分布式。
- 数据保护: 副本(本地/跨节点/机架)和纠删码。
- 性能优化: 支持缓存加速(使用 SSD/PMem)。
- 元数据: 分布式。
Ceph - 架构: 开源的、高度分布式的对象存储、块存储和文件存储系统。
- 数据放置: CRUSH 算法(一种实现一致性哈希的算法)。
- 数据保护: 副本和纠删码(非常灵活)。
- 性能优化: 使用 BlueStore 后端(日志结构化)和 RADOS 缓存。
- 元数据: 分布式。

Server SAN 的核心优势

  1. 成本效益: 使用通用硬件,降低了采购成本;通过软件定义,减少了昂贵的授权和维护费用。
  2. 高性能: 计算和存储融合,减少了网络延迟;通过缓存、日志结构化等技术优化了 I/O 性能。
  3. 高可用与数据安全: 分布式架构和副本/纠删码机制确保了数据和服务的持续可用性。
  4. 无缝横向扩展: 可以像搭积木一样,通过简单地增加新节点来线性地扩展存储容量和性能,而无需中断服务。
  5. 简化运维: 将存储资源池化,通过统一的管理界面进行管理,大大简化了传统 SAN 复杂的 LUN、 zoning、映射等配置工作。

Server SAN 的技术原理就是“软件定义 + 分布式架构 + 融合硬件”,通过一系列精心设计的算法和技术(如一致性哈希、副本/EC、日志结构化等),将大量廉价的服务器硬盘整合成一个强大、灵活、可靠的共享存储系统,完美契合了云计算和虚拟化时代的需求。

分享:
扫描分享到社交APP
上一篇
下一篇