无共享架构指南介绍
为什么 Google 和 Facebook 等公司使用无共享架构(Shared Nothing Architecture),它与其他模型有何不同?
继续阅读以了解什么是无共享架构,它与其他架构的比较,以及它的优点和缺点。
什么是无共享架构?
无共享架构(Shared Nothing Architecture (SNA) )是一种分布式计算架构,由多个不共享资源的独立节点组成。节点是独立和自给自足的,因为它们有自己的磁盘空间和内存。
在这样的系统中,数据集/工作负载被分成更小的集(节点),分布到系统的不同部分。每个节点都有自己的内存、存储和独立的输入/输出接口。它通过高速互连网络与其他节点进行通信和同步。这样的连接确保了低延迟、高带宽和高可用性(在主节点出现故障时可以使用备份互连)。
由于数据是水平分区的,系统支持增量增长。你可以添加新节点来横向扩展分布式系统并增加传输容量。
无共享架构图
无共享架构解释:理解无共享模型架构的最好方法是将它与其他类型的架构并排查看。
下面你将看到不同模型中共享组件与非共享组件的区别 - Shared Everything、Shared Storage和Shared Nothing。
与其他的不同,SNA 没有共享资源。唯一连接节点的是网络层,它管理系统和节点之间的通信。
其他共享架构类型说明
什么是无共享架构?“无共享”的概念由 Michael Stonebraker 在 1986 年的研究论文中首次提出,他在论文中对比了共享磁盘和共享内存架构。在比较这两个选项时,Stonebraker 考虑了创建一个既不共享内存也不共享存储的系统的可能性。
在决定 SNA 是否适合你的用例时,最好将其与其他集群类型进行比较。替代选项包括:
- 共享磁盘架构
- 共享内存架构
- 共享一切架构
无共享架构指南:共享磁盘架构
共享磁盘是一种分布式计算架构,系统中的所有节点都链接到同一个磁盘设备,但拥有自己的私有内存。共享数据可从所有集群节点访问,通常代表共享磁盘(如数据库)或共享文件系统(如存储区域网络或网络附加存储)。共享磁盘架构最适合无法进行数据分区的用例。与 SNA 相比,它的可扩展性要差得多。
共享内存架构
无共享架构解释:共享内存是一种体系结构模型,其中系统内的节点使用一个共享内存资源。这种设置提供了简单性和负载平衡,因为它包括设备和主存储器之间的点对点连接。处理器之间快速高效的通信是确保数据高效传输和避免冗余的关键。这种通信是通过互连网络进行的,并由单个操作系统进行管理。
注意:负载平衡是一种在池中的多个服务器之间分配网络流量的方法,可提高性能并防止出现瓶颈。了解有关负载平衡和不同类型的负载平衡器的更多信息。
共享一切架构
在频谱的另一边,有共享的一切架构。该架构模型由共享系统内所有资源的节点组成。每个节点都可以访问相同的计算资源和共享存储。这种系统背后的主要思想是最大限度地利用资源。缺点是共享资源也会因为争用而导致性能下降。
无共享架构指南:无共享架构的优缺点
与上面提到的不同共享架构相比,Shared Nothing 架构显然有很多好处。看看这种模型的一些优点和缺点。
好处
SNA 有很多优点,主要是可扩展性、容错性和更少的停机时间。
更容易扩展
在无共享模型中扩展时没有限制。无限的可扩展性是此类架构的最佳特性之一。由于节点是独立的并且不共享资源,因此扩展应用程序不会中断整个系统或导致资源争用。
消除单点故障
如果应用程序中的一个节点出现故障,它不会影响其他节点的功能,因为每个节点都是独立的。尽管节点故障会影响性能,但它不会破坏整个应用程序的整体行为。
简化升级并防止停机
无共享架构解释:在处理或升级单个节点时无需关闭系统。由于冗余,一次升级一个节点不会影响其他节点的效率。此外,在不同节点上拥有冗余数据副本可防止因磁盘故障或数据丢失而导致的意外停机。
缺点
一旦你考虑了 SNA 的好处,请查看一些可以帮助你确定它是否是你的最佳选择的缺点。
成本
节点由其单独的处理器、内存和磁盘组成。在设置系统时,拥有专用资源本质上意味着更高的成本。此外,与共享磁盘空间和/或内存的架构相比,传输需要软件交互的数据的成本更高。
性能下降
如果交叉通信层设置不正确,扩展系统最终会影响整体性能。
无共享架构指南结论
什么是无共享架构?阅读本文后,你应该对无共享架构(Shared Nothing Architecture )及其工作原理有更好的了解。在为你的应用程序决定架构之前,请考虑模型的所有优点和缺点。