集群术语须知
- 服务硬件:指提供计算服务的硬件,比如 PC 机、PC 服务器。
- 服务实体:服务实体通常指服务软体和服务硬体。
- 节点(NODE):运行 Heartbeat 进程的一个独立主机称为节点,节点是 HA 的核心组成部分,每个节点上运行着操作系统和Heartbeat 软件服务。
- 资源(RESOURCE):资源是一个节点可以控制的实体,当节点发生故障时,这些资源能够被其他节点接管。如: 磁盘分区、文件系统、IP 地址、应用程序服务、共享存储。
- 事件(EVENT):事件也就是集群中可能发生的事情,例如节点系统故障、网络连通故障、网卡故障和应用程序故障等。这些事件都会导致节点的资源发生转移,HA 的测试也是基于这些事件进行的。
- 可扩展性。集群的性能不限于单一的服务实体,新的服务实体可以动态的加入到集群,从而增强集群的性能。
- 高可用性。集群通过服务实体冗余使客户端免于轻易遭遇到“out of service”警告。当一台节点服务器发生故障的时候,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。消除单点故障对于增强数据可用性、可达性和可靠性是非常重要的。
- 负载均衡。负载均衡能把任务比较均匀的分布到集群环境下的计算和网络资源,以便提高数据吞吐量。
- 错误恢复。如果集群中的某一台服务器由于故障或者维护需要而无法使用,资源和应用程序将转移到可用的集群节点上。这种由于某个节点中的资源不能工作,另一个可用节点中的资源能够透明的接管并继续完成任务的过程叫做错误恢复。
- 分布式是指将不同的业务分布在不同的地方。
- 而集群指的是将几台服务器集中在一起,实现同一业务。
- 分布式的每一个节点,都可以做集群,而集群并不一定就是分布式的。而分布式,从狭义上理解,也与集群差不多,但是它的组织比较松散,不像集群,有一定组织性,一台服务器宕了,其他的服务器可以顶上来。分布式的每一个节点,都完成不同的业务,一个节点宕了,这个业务就不可访问了。
- HA:高可用集群(High Availability Cluster)。
- LBC:负载均衡集群/负载均衡系统(Load Balance Cluster)
- HPC:科学计算集群(High Performance Computing Cluster)/高性能计算(High Performance Computing)集群。
- 如何提高处理速度,实现数据库的均衡负载。
- 如何保证数据库的可用性、数据安全性、以及如何实现数据集群可扩性。
- 怎么综合解决这些问题成为众多企业关注的焦点。
- 伴随着企业的成长,业务量提高,数据库的访问量和数据量快速增长,其处理能力和计算速度也相应增大,使得单一的设备根本无法承担。
- 在以上情况下,若扔掉现有设备,做大量的硬件升级,势必造成现有资源的浪费,而且下一次业务量提升时,又将面临再一次硬件升级的高额投入。于是,人们希望通过几个中小型服务器组建集群,实现数据库的负载均衡及持续扩展;在需要更高数据库处理速度时,只要简单的增加数据库服务器就可以得到扩展。
- 数据库作为信息系统的核心,起着非常重要的作用,单一设备根本无法保证系统的下持续运行,若发生系统故障,将严重影响系统的正常运行,甚至带来巨大的经济损失。于是,人们希望通过组建数据库集群,实现数据库的高可用,当某节点发生故障时,系统会自动检测并转移故障节点的应用,保证数据库的持续工作。
- 企业的数据库保存着企业的重要信息,一些核心数据甚至关系着企业的命脉,单一设备根本无法保证数据库的安全性,一旦发生丢失,很难再找回来。于是,人们希望通过组建数据库集群,实现数据集的冗余,通过备份数据来保证安全性。
一般来讲,数据库集群软件侧重的方向和试图解决的问题划分为三大类:
- 负载均衡集群(LOAD BALANCE CLUSTER,LBC)侧重于数据库的横向扩展,提升数据库的性能。
- 高可用性集群(HIGH AVAILABILITY CLUSTER,HAC)侧重保证数据库应用持续不断。大部分的数据库集群侧重与此。
- 高安全性集群(HIGH SECURITY CLUSTER,HSC)侧重于容灾。
可扩展的分布式数据库架构 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数据库|Oracle数据库(表、查询语句、条件查询)的使用
- Oracle数据库|Oracle数据库-表设计(三范式)的使用
- 数据库数据恢复ASM磁盘组掉线,ASM实例不能mount的Oracle数据库数据恢复案例
- 服务器数据恢复IBM存储服务器硬盘坏道离线oracle数据库损坏的数据恢复案例
- DBeaver连接oracle数据库
- 北亚数据恢复服务器断电导致Oracle数据库报错(“system01.dbf需要更多的恢复来保持一致性”的数据恢复案例)
- Oracle数据库的增删改,索引视图以及序列的创建和销毁
- 北亚数据恢复异常断电导致Oracle数据库报错(ORA-01110错误)且没有备份的数据恢复
- Oracle数据库基本操作第一章