基于引擎的集群系统有两种结构:共享磁盘和独立磁盘。RAC, MSCS 可以认为是共享磁盘的集群系统。UDB和ASE 是独立磁盘的集群系统。共享磁盘集群系统的通讯的冗余度最小。
【点评】通讯链路级的冗余具有容错功能。
软件级冗余:由于现代操作系统和引擎的高度并发性,由竞争条件、死锁、以及时间相关引发的错误占据了非正常停机服务的绝大多数原因。采用多个冗余的运行进程能屏蔽瞬时和永久的软件错误。基于引擎的集群系统都用多个处理器来实现一个逻辑,它们只能提供部分软件冗余,因为每一瞬间每个处理器执行的都是不同的任务。
【点评】改善软件设计来提高冗余性能和屏蔽软件级错误是每个技术开发商的梦想。传统的集群系统只能提供部分软件冗余。
数据冗余:
1. 被动更新数据集:所有目前的数据复制技术(同步或异步),例如磁盘镜像、文件复制以及厂商自带的备份工具都只能产生被动复制数据集。它一般只用于灾难恢复。
【点评】大多数应用都是采用被动更新数据集的方法。这种方法容灾能力差,资源占用多,已面临淘汰和革新。
2. 主动更新数据集:这种数据集需要一台或多台备份服务器来管理,它可用于报表生成,数据挖掘,灾难恢复甚至低质量负载均衡。分同步和异步两种。
异步主动复制数据集:先把事务处理交给主服务器来完成,然后事务处理再被串行地交给备份服务器以执行同样操作来保证数据一致性。所有的商用都支持异步主动复制技术。
同步主动复制数据集:要求所有并发事务处理在所有服务器上同时完成。直接好处就是解决了队列管理问题,同时通过负载均衡实现更高性能和可用性。RAC, UDB, MSCS 和 ASE是用完全串行化并结合两阶段提交协议来实现的,设计目标就是为了获得一份可用于快速灾难恢复的数据集。
【点评】主动更新数据集是目前比较先进的数据冗余方法。人员还可以进行更底层的技术细节比较。底层技术的差异直接影响着一些重要指标。
提高安全和数据集可扩性的技术
在提高安全性和数据集可扩性这两方面,可以创新的空间是很小的。最常见的安全办法是口令保护,要么是分布式的,要么是集中式的。在前面增加防火墙会增加额外的延迟,因此,尽管许多安全侵犯事件是来自于公司内部,但是防火墙还是很少被采用。如果集群技术是基于中间件技术实现的,就有可能在不增加额外延迟的情况下,在数据经过的路径上实现防火墙功能。数据集的可扩性只能通过将数据分布到多个独立的物理服务器上来实现。
主流产品
在集群产品方面,其中主要包括基于引擎的集群技术的Oracle RAC、Microsoft MSCS、IBM DB2 UDB、Sybase ASE,以及基于网关(中间件)的集群技术的ICX-UDS等产品。
Oracle RAC
Oracle RAC 支持 Oracle 在集群上运行的所有类型的主流商业应用程序。这包括流行的封装产品,如 SAP、PeopleSoft 和 Oracle E-Business Suite 等,以及自主研发的应用程序,其中包括 OLTP 和 DSS,以及 Oracle 有效支持混合 OLTP/DSS 环境的独有能力。Oracle 是唯一提供具备这一功能的开放系统的厂商。 Oracle RAC 运行于集群之上,为 Oracle 提供了最高级别的可用性、可伸缩性和低成本计算能力。如果集群内的一个节点发生故障,Oracle 将可以继续在其余的节点上运行。如果需要更高的处理能力,新的节点可轻松添加至集群。为了保持低成本,即使最高端的系统也可以从采用标准化商用组件的小型低成本集群开始逐步构建而成。
Oracle 的主要创新是一项称为高速缓存合并的技术,它最初是针对 Oracle9i 真正应用集群开发的。高速缓存合并使得集群中的节点可以通过高速集群互联高效地同步其内存高速缓存,从而最大限度地低降低磁盘 I/O。高速缓存最重要的优势在于它能够使集群中所有节点的磁盘共享对所有数据的访问。数据无需在节点间进行分区。Oracle RAC 支持企业网格。Oracle RAC 的高速缓存合并技术提供了最高等级的可用性和可伸缩性。Oracle RAC能显著降低了运营成本,增强了灵活性,从而赋予了系统更卓越的适应性、前瞻性和灵活性。动态提供节点、存储器、CPU 和内存可以在实现所需服务级别的同时,通过提高的利用率不断降低成本。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-822-2.html
伊拉克都被搞成这样了
我都是喝可乐的