共计 2948 个字符,预计需要花费 8 分钟才能阅读完成。
集群术语须知
- 服务硬件:指提供计算服务的硬件,比方 PC 机、PC 服务器。
- 服务实体:服务实体通常指服务软体和服务硬体。
- 节点(NODE):运行 Heartbeat 过程的一个独立主机称为节点,节点是 HA 的外围组成部分,每个节点上运行着操作系统和 Heartbeat 软件服务。
- 资源(RESOURCE):资源是一个节点能够管制的实体,当节点产生故障时,这些资源可能被其余节点接管。如:磁盘分区、文件系统、IP 地址、应用程序服务、共享存储。
- 事件(EVENT):事件也就是集群中可能产生的事件,例如节点系统故障、网络连通故障、网卡故障和应用程序故障等。这些事件都会导致节点的资源产生转移,HA 的测试也是基于这些事件进行的。
什么是集群
集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源,这些单个的计算机系统就是集群的节点(node)。集群提供了以下要害的个性。
- 可扩展性。集群的性能不限于繁多的服务实体,新的服务实体能够动静的退出到集群,从而加强集群的性能。
- 高可用性。集群通过服务实体冗余使客户端免于轻易遭逢到“out of service”正告。当一台节点服务器产生故障的时候,这台服务器上所运行的应用程序将在另一节点服务器上被主动接管。打消单点故障对于加强数据可用性、可达性和可靠性是十分重要的。
- 负载平衡。负载平衡能把工作比拟平均的散布到集群环境下的计算和网络资源,以便进步数据吞吐量。
- 谬误复原。如果集群中的某一台服务器因为故障或者保护须要而无奈应用,资源和应用程序将转移到可用的集群节点上。这种因为某个节点中的资源不能工作,另一个可用节点中的资源可能通明的接管并持续实现工作的过程叫做谬误复原。
分布式与集群的分割与区别如下:
- 分布式是指将不同的业务散布在不同的中央。
- 而集群指的是将几台服务器集中在一起,实现同一业务。
- 分布式的每一个节点,都能够做集群,而集群并不一定就是分布式的。而分布式,从广义上了解,也与集群差不多,然而它的组织比拟涣散,不像集群,有肯定组织性,一台服务器宕了,其余的服务器能够顶上来。分布式的每一个节点,都实现不同的业务,一个节点宕了,这个业务就不可拜访了。
集群次要分成三大类:
- HA:高可用集群(High Availability Cluster)。
- LBC:负载平衡集群 / 负载平衡零碎(Load Balance Cluster)
- HPC:科学计算集群(High Performance Computing Cluster)/ 高性能计算(High Performance Computing)集群。
为什么搭建数据库集群
随着经济的高速倒退,企业规模的迅猛扩张,企业用户的数量、数据量的爆炸式增长,对数据库提出了严厉的考验。对于所有的数据库而言,除了记录正确的处理结果之外,还面临着以下几方面的挑战。
- 如何进步处理速度,实现数据库的平衡负载。
- 如何保障数据库的可用性、数据安全性、以及如何实现数据集群可扩性。
- 怎么综合解决这些问题成为泛滥企业关注的焦点。
在数据库上,组建集群也是同样的情理,次要有以下几个起因:
- 随同着企业的成长,业务量进步,数据库的访问量和数据量快速增长,其解决能力和计算速度也相应增大,使得繁多的设施根本无法承当。
- 在以上状况下,若扔掉现有设施,做大量的硬件降级,势必造成现有资源的节约,而且下一次业务量晋升时,又将面临再一次硬件降级的高额投入。于是,人们心愿通过几个中小型服务器组建集群,实现数据库的负载平衡及继续扩大;在须要更高数据库处理速度时,只有简略的减少数据库服务器就能够失去扩大。
- 数据库作为信息系统的外围,起着十分重要的作用,繁多设施根本无法保证系统的下继续运行,若产生系统故障,将重大影响零碎的失常运行,甚至带来微小的经济损失。于是,人们心愿通过组建数据库集群,实现数据库的高可用,当某节点产生故障时,零碎会自动检测并转移故障节点的利用,保障数据库的继续工作。
- 企业的数据库保留着企业的重要信息,一些外围数据甚至关系着企业的命根子,繁多设施根本无法保障数据库的安全性,一旦产生失落,很难再找回来。于是,人们心愿通过组建数据库集群,实现数据集的冗余,通过备份数据来保障安全性。
数据库集群的分类
数据库集群技术是将多台服务器联结起来组成集群来实现综合性能优于单个大型服务器的技术,这种技术岂但能满足利用的须要,而且大幅度的节约了投资老本。数据库集群技术分属两类体系:基于数据库引擎的集群技术和基于数据库网关(中间件)的集群技术。在数据库集群产品方面,其中次要包含基于数据库引擎的集群技术的 Oracle RAC、Microsoft MSCS、IBM DB2UDB、Sybase ASE,以及基于数据库网关(中间件)的集群技术的 ICX-UDS 等产品。
一般来讲,数据库集群软件偏重的方向和试图解决的问题划分为三大类:
- 负载平衡集群(LOAD BALANCE CLUSTER,LBC)侧重于数据库的横向扩大,晋升数据库的性能。
- 高可用性集群(HIGH AVAILABILITY CLUSTER,HAC)偏重保障数据库利用继续一直。大部分的数据库集群偏重与此。
- 高安全性集群(HIGH SECURITY CLUSTER,HSC)侧重于容灾。
只有 ORACLE RAC 能实现以上三方面
可扩大的分布式数据库架构
ORACLE RAC
其架构的最大特点是共享存储架构(SHARED-STORAGE),整个 RAC 集群是建设在一个共享的存储设备之上的,节点之间采纳高速网络互联。OracleRAC 提供了十分好的高可用个性,比方负载平衡和利用通明切块(TAF),其最大的劣势在于对利用齐全通明,利用无需批改便可切换到 RAC 集群。然而 RAC 的可扩大能力无限,首先因为整个集群都依赖于底层的共享存储,所以共享存储的 I/O 能力和可用性决定了整个集群的能够提供的能力,对于 I/O 密集型的利用,这样的机制决定后续扩容只能是 Scale up(向上扩大)类型,对于硬件老本、开发人员的要求、保护老本都绝对比拟高。Oracle 显然也意识到了这个问题,在 Oracle 的 MAA(Maximum Availability Architecture)架构中,采纳 ASM 来整合多个存储设备的能力,使得 RAC 底层的共享存储设备具备线性扩大的能力,整个集群不再依赖于大型存储的解决能力和可用性。
RAC 的另外一个问题是,随着节点数的一直减少,节点间通信的老本也会随之减少,当到某个限度时,减少节点可能不会再带来性能上的进步,甚至可能造成性能降落。这个问题的次要起因是 Oracle RAC 对利用通明,利用能够连贯集群中的任意节点进行解决,当不同节点上的利用争用资源时,RAC 节点间的通信开销会重大影响集群的解决能力。所以对于应用 ORACLE RAC 有以下两个倡议:
- 节点间通信应用高速互联网络;
- 尽可能将不同的利用散布在不同的节点上。
基于这个起因,Oracle RAC 通常在 DSS 环境(决策支持系统 Decision Support System,简称 DSS) 中能够做到很好的扩展性,因为 DSS 环境很容易将不同的工作散布在不同计算节点上,而对于 OLTP 利用(On-Line Transaction Processing 联机事务处理零碎),Oracle RAC 更多状况下用来进步可用性,而不是为了进步扩展性。