金仓数据库KingbaseES RAC关键概念梳理
关键字:
KingbaseES、 rac、clusterware、人大金仓
KingbaseRAC集群
KingbaseRAC集群数据库软件用于构建采用共享存储架构的对等多写数据库集群,该软件核心是共享磁盘文件系统,同时通过缓存交换技术保持各个节点的一致性。所有节点可直接访问共享文件系统的存储,使得单个或多个节点失效不影响其他节点对文件系统地访问,共享磁盘文件系统可用于高可用集群。
集群中的所有节点能够访问所有数据、重做日志文件、控制文件和参数文件,数据磁盘必须是全局可用的,允许所有的节点访问数据库。此外,每个节点有自己的重做日志和控制文件。从逻辑上看,集群的每个节点都有一个独立的实例,访问同一个data。架构图:
RAC集群对硬件的要求是至少需要两台以上的服务器,还需要一个共享存储设备;需要两类软件:其一是集群软件,其二是数据库的RAC组件。同时,所有服务器上的OS都应该是同一类的,根据负载均衡策略,当一个服务器接收到来自客户端的请求时,请求可能被本机或是另一台服务器的RAC组件处理,处理结束后,rac通过集群软件来访问共享存储设备。
投票盘,共享磁盘或一个lan物理独立出来用作磁盘心跳, 各个节点都可以访问,主要用于解决脑裂问题。
KingbaseES Clusterware集群管理软件
RAC集群采用Clusterware管理数据库实例和节点的状态。要启动RAC,必须先启动Clusterware。Clusterware集群资源管理软件可提供集群成员管理、故障检测、处置调度等功能。通过Clusterware的管理,RAC集群可以自动把数据库实例重新配置到其他节点来保证高可用。
- cluster_manager,集群管理。
在集群系统中对其他模块进行整合,通过高速的内连接来提供集群节点之间的通信。各节点之间使用心跳互联,心跳线上的信息功能确定集群节点的成员信息和节点更新情况、节点在某个时间点的运行状态,保障集群系统地正常运行。
- Pacemaker,资源管理器,负责集群中各种资源的管理工作。
- Corosync,执行高可用应用程序的通信子系统。
- Qdevice,管理本地主机上的仲裁设备提供程序。
- Crmsh,本地资源管理器,通过crmsh可以很好的管理各类资源。
- gfs2,集群文件系统,允许集群节点间同时访问某个共享的块设备
- dlm-dlm,分布式锁管理,协调实例间对资源的竞争访问
- fence_agents,故障代理管理
- kronosnet,Corosync通信网络连接的依赖
KingbaseRAC重要进程
RAC集群中单个实例的进程如下,除了kes数据库通有的进程外,RAC有一些独特的后台进程。
Lmon线程:监控整个集群健康状况,监控非正常终止的进程和实例;当实例退出或加入集群时,锁和资源的重新配置,监控全局锁资源,处理死锁和阻塞。主要借助两种机制来完成健康检查:1.节点间的网络心跳2.控制文件的磁盘心跳
Lmsn线程:管理集群内数据库的访问,负责数据库在实例间的传递。