学习笔记 | DB2 pureScale 架构知识梳理
DB2 pureScale 架构
(图片来自社区专家孔在华文章)
DB2 pureScale 集群环境逻辑架构
1、应用程序:
如图,对于连接至数据库的多个应用来说,它们看到的只是一个单独的“逻辑数据库”,并不关心数据库背后复杂的purescale集群环境。这些应用程序数据请求会根据 连接级别 或 事务级别 的负载均衡方式,被负载均衡到 purescale 集群内的 member 主机进行处理。
2、DB2 pureScale 集群中的服务器有两种角色:member 和 CF
应用是连接到 member 的,每个 member 可以看成是一个单独的数据库实例提供者,每个成员都会运行它自己的 db2sysc 进程及其线程,并且每个成员都包含其自己的缓冲池、内存区域和日志文件。Member 进行数据库的处理,处理能力可以通过增加更多的 member 来扩展。(高可伸缩性、可横向扩展计算能力)
CF 可以看作是整个集群的大脑,主管全局的缓冲池,锁和通信等。CF 使用共享通信区域 (SCA),与集群中的member和备用CF进行通信。CF 通过全局锁定管理器协调锁定,以防止不同成员对同一表数据访问而发生冲突。CF 还用来通过共享组缓冲池在所有 member上使页面缓存保持一致。
为了保证集群的高可用性,可以配置一个备用的 CF。那样如果主 CF 出现异常,备用 CF 会接管工作,整个集群依旧正常运行。
member 和 CF 都推荐放在 DB2 pureScale 集群里单独的服务器上。DB2 会根据角色在这些服务器启动不同的数据库进程来工作。
3、通信网络
DB2 pureScale 集群 Member 和 CF 之间需要通信,彼此之间用高速的网络相连。DB2 pureScale 集群需要配置两种网络环境:以太网和无限带宽网(Infiniband network, 简称 IB 网)。所以 DB2 pureScale 集群里的每台服务器都需要配置这两种网络,任何网络出现问题,都会导致异常。
4、共享存储
DB2 pureScale 集群是使用共享存储的工作方式。所有 member 和 CF 都需要连接到共享存储。
共享存储上存放着数据库本身(数据、元数据、日志等)、各个member 的实例配置,member 与CF的诊断日志等。
DB2 pureScale 集群使用 GPFS 管理共享存储。GPFS 既是一种共享文件系统,也是一个文件系统集群管理者。如果 member 或者 CF 连接共享存储出问题,DB2 pureScale 集群就需要对此进行异常处理。DB2 pureScale 集成了管理 GPFS 集群环境的工具,当然用户也可以直接使用 GPFS 提供的工具。GPFS 需要在集群里所有的服务器上安装。
5、集群服务
集群环境最核心的是图中红色的 CS,集群服务。CS 主要负责集群资源的自动监控,故障自动检测,故障后的自动恢复。它包括 DB2 pureScale 的 TSAMP 集群软件(IBM Tivoli System Automation for Multiplatforms 下面简称 TSA)、底层的 RSCT及 IBM General Parallel File System (GPFS™) 软件的技术。TSA 会将前面所述的数据库进程,网络,GPFS 等创建为整个集群的 resource 并监控。一旦集群里面哪个资源出现问题,集群服务就会很快检测到,并控制数据库集群做出反应。
DB2 pureScale 集群技术特点
1、高可伸缩性
DB2 purescale 集群的应用负载处理能力可以通过添加 member 近乎线性地横向扩展。
例如,DB2 pureScale环境的可伸缩性。其他成员一加入实例就开始处理入局数据库请求。当成员数增加一倍时,总体吞吐量也几乎增加一倍。
.
2、连续可用性
无论是计划内的系统维护,还是多个 purescale 集群组件同时故障,DB2 purescale 都能继续处理数据库请求而不会因此中断。
组件故障
健壮的心跳信号检测确保能够快速确定并隔离发生故障的组件。从组件故障中进行恢复是完全自动的,不需要进行任何干预。
如果某个成员在处理数据库请求时发生故障,那么会立即将它与系统的其余部分隔离开。在故障期间,共享磁盘存储器上的大部分数据仍然可供处理数据库请求的活动成员使用。只有发生故障的成员上传送的数据由保留锁临时暂挂,直到 Db2 pureScale Feature 完成自动成员崩溃恢复为止。
在发生软件故障后,成员将在其 Home 主机上重新启动,然后执行恢复。只要一完成恢复,成员就会恢复事务处理。在发生硬件故障后,成员将在另一个主机上重新启动(这是一个称为快速重新启动的过程),以便可以恢复数据。只要其 Home 主机再次可用,成员就会故障恢复到该主机、重新启动并恢复处理。
在主集群高速缓存设施上发生软件或硬件故障后,一个辅助双工集群高速缓存设施将自动接管主角色。此接管过程对于应用程序是透明的,它只会引起很短的延迟,这是因为将在集群高速缓存设施之间继续传输锁定和高速缓存信息。该实例仍然可用。
系统维护
Db2 pureScale环境中的系统维护旨在使中断时间尽可能短。可以在不停止DB2 pureScale实例或不影响数据库可用性的情况下,进行系统升级。
要对成员执行系统维护,请将其停顿。在完成该成员上的现有事务后,请使该成员脱机,然后执行系统维护。在维护期间,新的事务请求将自动定向至其他活动成员,这是一个对应用程序透明的过程。
在完成维护且重新启动成员后,只要该成员重新加入实例,它就会开始再次处理数据库事务。
3、应用程序透明性
应用程序看到的只是一个单独的“逻辑数据库”,对 purescale集群的维护活动、故障组件自动恢复,是不可见的。
*本公众号所发布内容仅代表作者观点,不代表社区立场