什么是服务器集群?服务器集群的缺点和优点是什么?

什么是服务器集群?服务器集群的缺点和优点是什么?,第1张

出现任何故障,如:硬盘、内存、CPU、主板、I/O板以及电源故障,运行在这台服务器上的应用就会切换到其它的服务器上。
二、集群系统可解决软件系统问题,我们知道,在计算机系统中,用户所使用的是应用程序和数据,而应用系统运行在 *** 作系统之上, *** 作系统又运行在服务器上。这样,只要应用系统、 *** 作系统、服务器三者中的任何一个出现故障,系统实际上就停止了向客户端提供服务,比如我们常见的软件死机,就是这种情况之一,尽管服务器硬件完好,但服务器仍旧不能向客户端提供服务。而集群的最大优势在于对故障服务器的监控是基于应用的,也就是说,只要服务器的应用停止运行,其它的相关服务器就会接管这个应用,而不必理会应用停止运行的原因是什么。
三、集群系统可以解决人为失误造成的应用系统停止工作的情况,例如,当管理员对某台服务器 *** 作不当导致该服务器停机,因此运行在这台服务器上的应用系统也就停止了运行。由于集群是对应用进行监控,因此其它的相关服务器就会接管这个应用。
集群系统的不足之处在于:
我们知道集群中的应用只在一台服务器上运行,如果这个应用出现故障,其它的某台服务器会重新启动这个应用,接管位于共享磁盘柜上的数据区,进而使应用重新正常运转。我们知道整个应用的接管过程大体需要三个步骤:侦测并确认故障、后备服务器重新启动该应用、接管共享的数据区。因此在切换的过程中需要花费一定的时间,原则上根据应用的大小不同切换的时间也会不同,越大的应用切换的时间越长。

由二台或更多物理上独立的服务器共同组成的"虚拟"服务器称之为集群服务器 一项称做MicroSoft集群服务(MSCS)的微软服务可对集群服务器进行管理 一个SQL Server集群是由二台或更多运行SQL Server的服务器(节点)组成的虚拟服务器 如果集群中的一个节点发生故障 集群中的另一个节点就承担这个故障节点的责任

认为一个 SQL Server集群能够给集群中的两个节点带来负载平衡 这是一种常见的误解 虽然这似乎很有用 但却是不正确的 这也意味着集束SQL Server不能真正提高性能 集束SQL Server只能提供故障转移功能 故障转移就是当系统中的一台机器发生故障失去其功能时 另一台机器将接手运行它的SQL Server实例 这种功能失效可能是由于硬件故障 服务故障 人工故障或各种其它原因

为何要集束SQL Server环境

在实用性方面 集群SQL Server环境令人满意 在进行故障转移时 将数据库实例由一台服务器转移到另一台服务器的时间非常短暂 一般只需要 至 秒钟 虽然需要重建连接 但对数据库的终端用户而言 故障转移处理通常是透明的 低廉的故障转移成本还可帮助你对集群中的节点进行维护 而不会造成服务器完全无法访问

SQL Server集群类型

一共有两种类型的SQL Server集群 主动/被动集群和主动/主动集群 下面分别对它们进行说明(说明以两个节点的SQL Server集群为基础)

主动/被动集群

在这种类型的集群中 一次只有一个节点控制SQL Server资源 另一个节点一直处于备用模式 等待故障发生 进行故障转移时 备用的节点即取得SQL Server资源的控制权

优点 由于服务器上只有一个实例在运行 所以在进行故障转移时 不需要另外的服务器来接管两个SQL Server实例 性能也不会因此降低

缺点 由于虚拟服务器上只有一个SQL Server实例在运行 另一台服务器总是处理备用模式与空闲状态 这意味着你并没有充分利用你购买的硬件

主动/主动集群

在这种类型的集群中 集群中的每个节点运行一个独立且主动的SQL Server实例 发生节点故障时 另一个节点能够控制发生故障节点的SQL Server实例 然后这个正常的节点将运行两个SQL Server实例 它自己的实例和发生故障的实例

优点 通过这种配置 你能够充分利用你的硬件 在这样的系统中 两个服务器都在运行 而不是只有一台服务器运行 而另一台处于等待故障发生的备用模式 因此你能够充分利用你购买的机器

缺点 如果进行故障转移 一台服务器运行两个SQL Server实例 性能就会受到不利影响 然而 性能降低总比虚拟服务器完全失灵要强得多 这种配置的另一故障在于它要求购买的许可要比主动/被动集群多一些 因为集群在运行两个主动SQL Server实例 这要求你购买两个单独的服务器许可 在某些情况下 这也可能对你形成阻碍

集群考虑

在高实用性方面 集群SQL Server环境有一定的优势 然而 高实用性也确实伴随某种折衷

首先 建立一个集群SQL Server环境非常昂贵 这是因为集群中的节点必须遵照集群节点的兼容性列表 而且 还需要建立一个复杂的网络 机器的配置必须几乎相同 同时需要实现数据库文件磁盘子系统共享 存储区网络(SAN)是建立这种子系统的不错选择 但SAN并非必要 而且十分昂贵 另外 如果你正在运行一个主动/主动集群 你需要为集群中运行SQL Server实例的每台机器的处理器购买一个许可

lishixinzhi/Article/program/SQLServer/201311/22276

从群集中的其它节点和群集服务管理接口的角度看,当形成群集时,群集中的每个节点可能处于三种不同状态中的一种。事件处理器会记录这些状态,而事件日志管理器会将这些状态复制到群集的其它节点。群集服务状态包括:
脱机。此时的节点不是完全有效的群集成员。该节点及其群集服务器可能在运行,也可能未运行。
联机。此时的节点是完全有效的群集成员。它遵从群集数据库的更新、对仲裁算法施加自己的影响、维护心跳通讯,并可以拥有和运行资源组。
暂停。它只能支持它当前已拥有的那些资源组。之所以提供暂停状态,是为了允许执行某些维护。大多数服务器群集组件会将联机和暂停视为等价的状态。

我们知道集群中的应用只在一台服务器上运行,如果这个应用出现故障,其它的某台服务器会重新启动这个应用,接管位于共享磁盘柜上的数据区,进而使应用重新正常运转。我们知道整个应用的接管过程大体需要三个步骤:侦测并确认故障、后备服务器重新启动该应用、接管共享的数据区。因此在切换的过程中需要花费一定的时间,原则上根据应用的大小不同切换的时间也会不同,越大的应用切换的时间越长。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10770811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存