共享无架构与共享磁盘架构的区别

2025 年 1 月 7 日 | 阅读 9 分钟

在本文中,我们将讨论共享Nothing架构共享Disk架构之间的区别。但在讨论它们的区别之前,我们必须了解共享Nothing架构和共享Disk架构。

什么是共享Nothing架构?

共享Nothing架构(SN)是一种应用程序架构,其中系统中运行的每个节点都可以独立运行,无需与其他节点协作。节点之间不共享任何硬件资源,如磁盘存储、内存和带宽。节点中的每个成员都有其自己的专用内存空间和磁盘驱动器,这些驱动器连接到中央网络。

基本原则

  • 数据分区:在共享Nothing架构中,数据被分割到多个节点上。每个节点负责处理一部分数据,这也能提高并行性并解决资源争用问题。
  • 独立处理节点:每个节点独立运行。它有自己的处理器、内存和存储。不同的节点不共享任何物理硬件资源。这使得所有节点都能平稳运行,而不会出现像共享资源那样通常发生的拥塞。
  • 网络通信:节点之间通过网络以数据包的形式交换数据。相反,节点不共享磁盘和内存,这意味着所有内部通信都必须通过网络进行。在数据共享期间,数据加密可能涉及数据洗牌、查询处理和数据同步等任务。

什么是共享Disk架构?

共享Disk架构(SD)是一种分布式计算模型,其中多个处理单元通过共享磁盘卷访问单个磁盘。尽管每个节点的私有内存和处理器不同,但所有节点都可以访问相同的存储空间,这可以集中式地促进数据服务。

基本原则

  • 集中式存储:在共享Disk架构中,所有处理节点在系统运行期间共享对中央磁盘存储系统的访问。这些存储形式可以是SAN或NAS中的虚拟化。
  • 多节点共享访问:通过多个节点访问共享存储空间,每个节点都可以作为读取者或写入者,从而实现并发。
  • 协调机制:多个进程共享数据库,因此共享Disk系统可以通过使用分布式锁定协议、缓存一致性协议和事务管理或系统化等协调机制来管理并发访问。这些机制确保了节点之间同步和协作执行操作。
  • 数据一致性:在共享Disk架构中,数据一致性的管理是一个明显的优势。因为每个节点都拥有相同的数据,一个节点所做的更改会立即显示给所有其他节点。
Difference between Shared Nothing Architecture and Shared Disk Architecture

共享Nothing架构和共享Disk架构之间的主要区别

这些架构之间存在几个区别。一些主要区别如下:

架构图和插图

  • 共享Nothing(SN):在大多数情况下,网络看起来像一个多节点图,其中每个节点都与其自己的数据和内存分离连接。节点之间的连接方式是,每个节点资源的独立性体现了它们的相互依赖性。
  • 共享Disk(SD):它被描绘成每个网络由多个节点共享,这些节点拥有一个公共的存储系统。节点拥有独立的CPU和内存,能够通过高速网络或SAN/NAS与中央存储交换数据。

数据分布与管理

  • 共享Nothing:数据被分散到一组节点中,每个节点分配一部分数据。实现这些目标需要复杂的数据分发策略,以实现负载均衡,避免出现热点。
  • 共享Disk:数据位于分布式系统中所有节点的共享空间中。这将简化数据管理,因为所有节点都处理相同的条目。然而,并发访问需要实现强大的多用户数据一致性机制来确保一致性。

处理与计算模型

  • 共享Nothing:每个节点独立处理自己分配的数据部分。各种拓扑结构允许在不同节点上进行并行处理,对本地数据执行操作。在许多任务中,例如大规模数据处理,该模型非常适合并行化。
  • 共享Disk:在网络计算中,节点可以处理中央存储库中的任何数据段。该模型考虑了普遍访问共享数据的负载,但节点在争夺共享存储单元的空间时可能会遇到竞争。

网络通信

  • 共享Nothing:极度依赖数据集、命令和控制的网络传输。响应延迟是网络问题引起的常见问题之一,特别是当工作负载量巨大,并且需要在节点之间移动数据时。
  • 共享Disk:网络通信旨在连接节点之间的共享内存,并确保数据的一致性。作为回报,它极大地减少了内部处理通信的需求。然而,它可能导致存储层系统的中央集线器成为瓶颈。

可扩展性

  • 共享Nothing:此外,它支持在不同服务器上分布的节点数量的大规模扩展。节点级别的资源可以通过额外的存储和RAM进行补充,从而为系统提供线性可扩展性。当系统扩展时,数据流循环和流量会变得复杂。
  • 共享Disk:在共享Disk中,可扩展性受限于共享存储的带宽和容量。向网络添加更多节点可能会增加中央存储的负载,从而降低系统性能。很多时候,扩展会带来昂贵的硬件升级,并且由于增加了复杂性,必须使用强大的网络解决方案。

容错和可靠性

  • 共享Nothing:由于处理单元独立于中央处理单元,因此具有节点网络容错能力。当某些节点发生故障时,其他节点将继续运行。如果故障节点的负载超过其处理能力,则可以重新分配负载。该架构的本质,即分布式设计,将自然地支持冗余。
  • 共享Disk:由于节点独立工作,可靠性取决于集中式存储内的数据备份、冗余和复制是否强大。

绩效指标

  • 共享Nothing:只要数据一致性得到保持并且网络效率得到保证,就可以通过在操作期间添加更多节点来确保性能。每个单元的处理规格都可以快速工作,但如果增加的网络延迟和开销超过了收益,则总体效率可能会下降。
  • 共享Disk:它表明共享存储系统的吞吐量积极决定了性能。吞吐量和低延迟是中央存储功能的关键。

资源分配和利用

  • 共享Nothing(SN):每个节点单独负责其资源,包括CPU、内存和存储(磁盘I/O),这些资源将根据任务需求分配给每个节点。因此,促进了资源利用的空间效率,因为多个节点不会争夺资源。
  • 共享Disk(SD):节点的CPU和内存容量有限,但磁盘I/O是共享的。这可能导致多个节点在磁盘访问期间资源利用率低下,从而在重负载下导致队列和性能下降。

性能分析差异

基准和指标

  • 共享Nothing(SN):SN架构的许多性能标准都侧重于其可扩展性、吞吐量和延迟问题。基准测试方案可以表示为系统处理大量数据或并发用户请求的能力的集合,且响应速度较低。最常测量的指标包括每单位时间处理的事务数(吞吐量)、单个事务的完成时间(延迟),以及性能随负载或资源增长的扩展方式(可扩展性)。
  • 共享Disk(SD):尽管共享Disk架构的基准测试涉及对共享存储系统的评估,但需要考虑一些特定方面,例如吞吐量、延迟和IOPS(每秒输入/输出操作)。度量系统可以通过测量多个节点从存储系统并发访问对存储性能水平的影响来扩展。基准测试通常通过查看读写吞吐量、它们在负载下的变化以及不同类型数据操作的存储延迟差异来进行。

负载和压力测试下的性能

  • 共享Nothing(SN):SN架构在负载测试下往往表现出良好的可扩展性,因为每个节点都可以独立处理一部分负载。压力测试是一种实验,其中对研究中的系统进行干扰,并检查系统抵抗干扰的能力,以确定潜在的瓶颈。基于SN的架构可能会表现出渐近行为,在此期间性能会下降。但是,系统能够保持稳定。因此,当流量超过系统的允许阈值时,性能可能会急剧下降,从而夺走响应时间,在极端情况下甚至导致系统崩溃。
  • 共享Disk(SD):SD架构的负载测试涉及在来自多个计算节点的负载下评估共享存储系统的速度。跟踪输入和输出等容量,以便识别性能问题并确保存储系统能够处理任何峰值负载。这种压力测试意味着它正在运行到其功能的极限,从而揭示了系统的薄弱环节以及在极端条件下运行的能力。考虑到中央存储可能会成为一个薄弱环节,或者网络基础设施无法处理更高的负载,SD系统最终可能会出现性能下降的风险。

独特考虑

  • 共享Nothing架构:SN模型的性能评级通常同时考虑数据分区策略的执行和节点间通信的效率。这些基准测试建议监控节点之间的数据移动,并测试网络延迟如何影响系统的整体性能。SN架构在负载和压力测试期间遇到非线性扩展,这会导致节点数量达到临界点时,由于额外的协调和通信开销,性能水平预计会下降。
  • 共享Disk架构:对于共享分布式存储系统(SD),评估标准基于两个方面:可扩展性和可靠性。基准测试可能包含不同的假设,包括缓存一致性协议和分布式锁定方法对存储性能的影响。在对SD架构进行的重要测试——负载和压力测试的情况下,当使用共享存储的节点数量增加(在SD中很常见)时,存储吞吐量通常会下降,延迟会增加。唯一能够缩小存储系统内处理资源冲突的方法是识别和避免潜在的竞态条件。

事务处理模型

  • 共享Nothing:SN系统中的分布式事务处理通常通过两阶段提交协议进行,该协议协调数据节点(并确保并发性)。在发生故障的情况下,通过复杂的事务管理工具来实现分布式数据分区的事务完整性。
  • 共享Disk:在这里,事务可以通过CS共享访问存储系统RAM来集中处理。大多数具有SD的数据库系统通过固有的ACID(原子性、一致性、隔离性、持久性)属性来保证事务的原子性、一致性和持久性。SD设计支持事务处理,从而提高了协调性,并促进了事务管理,因为可以维护强一致性保证。

数据迁移与移动性

  • 共享Nothing:与SN并行,可以通过数据分区方法(多节点)来描述分布在许多节点上的数据。因此,数据可能会在节点之间迁移,甚至超出关键边界,这非常复杂且难以重新分配。在SN架构中,需要仔细的安排和协调才能确保数据一致性并最大程度地减少数据迁移期间的停机时间。
  • 共享Disk:在SD架构中,数据移动性是默认的,因为所有数据都存储在中央位置。数据不需要从一个节点传输到另一个节点,并且可以从任何节点使用共享数据条目或修改平台进行修改。此外,协调SD中的并发访问和维护数据一致性非常复杂,尤其是在处理高流量时。