IBM DB2 pureScale集群化数据库架构和技术概述

来源:互联网 发布:狸窝照片制作软件 编辑:程序博客网 时间:2024/06/10 20:20

本系列文章共分为两个部分,第 1 部分介绍了 DB2 pureScale 的架构和技术,第 2 部分将介绍 DB2 pureScale 应用程序配置。

持续可用性、应用程序集群透明度和极限容量:无论在怎样的市场营销资料中,这些热门关键词总是与 IBM DB2 pureScale 密不可分。但它们真正的含义是什么?

DB2 pureScale 绝不只是一项特性,而是一种观察 DB2 数据库的全新方式。您在访问数据时不再受限于单独一个主机,不再需要为了保证每个主机都拥有一个分区而划分数据分区。DB2 pureScale 提供了一种集群化的解决方案,利用多个主机来访问相同的数据分区,从而提高了容量,加强了持续可用性。

DB2 pureScale 技术

IBM DB2 pureScale集群化数据库架构和技术概述
图 1. DB2 pureScale 架构

图字:

Automatic workload balancing:自动工作负载平衡
Leverages the global lock and memory manager technology from z/OS:利用 z/OS 提供的全局锁和内存管理器技术
Integrated Cluster manager:集成化集群管理器
Shared data:共享数据
InfiniBand network and db2 cluster services:InfiniBand 网络和 DB2 集群服务
Clusters of DB2 nodes:DB2节点集群
DB2 pureScale 特性基于业界领先的 IBM System z 数据共享架构。

DB2 pureScale是一种紧密集成的数据库集群化解决方案,它利用 IBM DB2 for Linux, UNIX and Windows 作为核心引擎,运行于 IBM POWER 和 IBM System x 硬件服务器之上。DB2 pureScale 可安装在 AIX、SUSE Linux Enterprise Server 或 Redhat Enterprise Linux 上。对于支持网络基础架构,必须对客户端/服务器连接采用以太网。成员和集群缓存设施之间的高速度、低延迟的通信要求采用 Infiniband (IB) 或 10 Gigabit 以太网 (10 GigE)。

集群最多可包含 128 个成员,可提供 24/7 全天候的数据库应用程序可用性。集群可以通过添加服务器而水平外扩,也可以通过添加处理器或内存垂直扩展。DB2 pureScale 是一种主动/主动故障转移解决方案,无需干预即可处理某个成员或者缓存设施 (CF) 遇到的软件故障。整个集群可从任意主机进行配置和安装,该主机也将成为 DB2 pureScale 集群的一部分。

DB2 pureScale 架构

IBM DB2 pureScale集群化数据库架构和技术概述

图 2. DB2 pureScale 集群,其中包含四个成员和两个集群缓存设施

图字:
Single database view:单一数据库视图
member:成员
db2sysc process:db2sysc 进程
db2 agents and other threads:db2代理和其他线程
log buffer\dbheap and other heaps:日志缓冲区、dbheap 和其他堆
bufferpool(s):缓冲池
primary cf:主 CF
Secodary cf:辅助 CF
log:日志
Shared storage access:共享存储访问
database:数据库

为了理解 DB2 pureScale 如何提供应用程序所需的数据库弹性,首先您需要大体了解集群化环境以及此类环境在遇到意外故障时如何提供解决方案弹性。


DB2 pureScale 集群成员

DB2 成员属于“引擎”(db2sysc 进程),它们接受客户端连接,并为应用程序处理信息。每个 DB2 成员都能够访问数据库和其中的任何数据,但每个成员也有自己的本地存储,其中包含缓冲池、包缓存、实用工具堆、排序堆和锁列表等内容。无论需要访问哪些数据,事务都可以在集群的任意成员上运行。每个成员在共享文件系统中都有自己的事务日志流。

集群缓存设施 (CF)

集群缓存设施是 DB2 pureScale 的一个重要组件,它提供了许多关键服务,其主要目标是管理成员间共享的中央资源。这些共享资源包括全局缓冲池和全局锁管理器。

全局缓冲池 (GBP)

CF 的这个部分存放着所有脏页(包含 DB2 pureScale 实例中已更新、插入或删除的行的页面)。DB2 pureScale 实例中的内存管理不再是单层式的,而是分为两层。每个成员都有本地缓冲池,具有该成员所需的全部页面的副本。除了每个脏页的副本之外,GBP 还存储着哪些成员具有当前页副本的信息。

全局锁管理器 (GLM)

全局锁管理器服务用于管理成员的本地锁。任何成员在更新任何页中的行时都必须先与全局锁管理器进行磋商,获取该行和该页的恰当锁。在获取和释放锁后,如果有必要,所有成员上的页面都可以失效。举例来说,只要一个成员对某个页面做出了修改,那么在通过远程直接内存访问 (RDMA) 来释放锁时,该页上属于其他成员的其他所有副本都会自动失效。

每个集群缓存设施都被指定给一个角色。典型情况下,一个 CF 会被指派为 PRIMARY(主)角色,而另一个则可用于故障转移。PRIMARY 角色是所有锁信息的主要持有者,而 PEER(对等)角色仅需要此信息的子集(双工处理所有锁信息会给性能带来压力,造成不必要的事务处理开销)。因此,DB2 仅对 PEER 集群缓存设施接管 PRIMARY 角色时所需的锁信息进行双工处理。任何可以在短时间内迅速重建的锁信息无需采用双工处理方式。

DB2 集群服务

在出现计划内或计划外停机时,可以使用 pureScale 的这个组件来协调和编排恢复过程。DB2 pureScale 包含的 Tivioli System Automation for Multi-Platforms (TSAMP) 能帮助检测系统中
的问题,并从故障中自动恢复。这个子系统包含可靠可伸缩集群技术 (RSCT),该项技术监控系统中的硬件组件,包括网络适配器(以太网和 InfiniBand 的适配器)。RSCT 还会提供集群管理能力,并在任何主机的硬件发生问题时避免磁盘脱机,以避免断开与该主机间的通信。TSAMP 将会监控成员、CF 和数据库使用的通用并行文件系统 (GPFS),确保其始终可用。

集群互联

集群成员通过 Infiniband (IB) 或 RDMA over Converged Ethernet (RoCE) 彼此相连。无论采用哪种连接标准,主机之间均采用 RDMA 协议,通过网络适配器以一种直接的方式进行通信。RDMA 可使用直接访问程序库 (uDAPL) 进行访问。RDMA 为主机提供了一种低延迟的方法,支持主机远程更改另一台主机中的内存页状态。这种方法不需中断其他主机的内核,因此为 DB2 提供了在成员与 CF 之间快速移动脏页的方法。

集群文件系统

集群文件系统基于缓存一致的 IBM 文件系统(称为 GPFS)。GPFS 允许我们从任何主机写入文件系统,并在其他所有主机上即时看到更改。GPFS 提供了一种易于管理的分布式文件系统,允许所有 DB2 成员同时访问同一个数据库。
上述组件是 DB2 pureScale 架构的核心。这种综合全面的数据库解决方案提供了高速度、低延迟的事务吞吐量,同时还提供了出色的恢复能力、可伸缩性和可用性。DB2 pureScale 特性包含我们介绍的所有 pureScale 组件。DB2 pureScale 在常规安装过程中安装这些组件,在 DB2 pureScale 实例创建步骤中配置这些组件。

DB2 pureScale 至少需要使用独立硬件组件运行的两个 DB2 成员和两个 CF(任何组件少于两个均无法提供硬件或软件故障的冗余能力)。您可以在单独一台主机系统上运行一个 CF 和一个成员,但主机级的故障会同时给相同主机上的成员和 CF 造成影响。