在 Linux 上部署 DB2 pureScale Feature

像 1-2-3 那样简单

IBM® DB2® pureScale™ Feature 允许您轻松添加机器到集群中,进而向外扩展您的数据库系统。本文逐步指导您了解在 SUSE Linux® 上部署 DB2 pureScale Feature 的流程。在一个具有两个 System x 3850 X5s 服务器的配置中使用一个 10 千兆以太网基础架构,该配置连接到 DS5100 存储控制器。本文还包括安装后步骤和使用 DB2 pureScale 的基本信息,比如如何添加和删除成员,以及如何确保为高可用性和灾难恢复做好准备。

Aslam Nomani, 质量保证经理, IBM

Aslam Nomani 的照片Aslam Nomani 在 IBM 的 14 年工作生涯中,大部分的时间都在质量保证团队工作。他关注的主要领域是高可用性和灾难恢复解决方案。在过去的几年里Aslam 一直是 DB2 pureScale Feature 的质量保证架构师。



Pandu Mutyala, DB2 系统验证测试, IBM

Pandu Mutyala 的照片Pandu Mutyala 持有密苏里科技大学的信息科学和技术硕士学位。自 2010 年以来他一直是 DB2 质量保证团队的一员,负责在 Linux 系统上测试 DB2 pureScale 软件。



Yugandhra Rayanki, DB2 系统验证测试, IBM

Yugandhra Rayanki 在 IBM 工作已经有 6 年多了,在 DB2 质量保证小组内的不同团队呆过。他目前致力于针对 DB2 pureScale 的系统验证测试,是一名 IBM DB2 认证的高级 DBA。他特别关注 HADR、备份和恢复领域。



Aimin Wu, DB2 软件开发, IBM

Aimin Wu 的照片Aimin Wu 致力于 IBM System Optimization Competency Center (SOCC) 的可用性焦点,包括管理、维护和监控。她在 IBM 职业生涯中的前 10 年是在 DB2 安装团队中度过的,最初是从事 Platform Installer on UNIX and Linux 方面。在调到 SOCC 之前,她是 DB2 Install: Up & Running on UNIX and Linux 的架构师。



2011 年 7 月 04 日

免费下载:IBM® DB2® Express-C 9.7.2 免费版 或者 DB2® 9.7 for Linux®, UNIX®, and Windows® 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

在当今竞争激烈的市场中,您需要部署这样一个数据处理架构,即不仅可以满足您的即时战术需求,而且具有适应未来战略需求的灵活性。

在 2009 年 12 月,IBM 引入了 DB2 pureScale Feature for Enterprise Server Edition(也称为 ESE 的数据共享特性),通过利用一种基于 DB2 for z/OS 数据共享架构的主动-主动式共享磁盘数据库实现将该技术带向开放式系统。

在使用 DB2 pureScale Feature 时您会获得以下好处:

  • 近乎无限的容量:您可以轻松添加机器到集群中,进而向外扩展您的系统。DB2 pureScale Feature 可扩展到包含 128 个成员,且具有一个集中管理工具,支持高效的向外扩展功能。它使用一种称为 Remote Direct Memory Access (RDMA) 的技术,提供一种效率很高的节点间通信机制来辅助其扩展功能。
  • 应用程序透明性:您可以原封不动地使用现有应用程序。在一个 DB2 pureScale 环境中的运行的应用程序不需要了解集群中的不同成员,也不需要关注数据分区。DB2 pureScale Feature 会自动将应用程序路由到最合适的成员。
    DB2 pureScale Feature 对其他数据库供应商使用的大量语法提供本机支持,允许这些应用程序在变动最小或没有变动的情况下在 DB2 pureScale 环境中运行。事实上,在很多情况下,无需修改您的应用程序就可实现 DB2 pureScale Feature 的好处。
  • 持续可用性:DB2 pureScale Feature 提供一种具有内部冗余的主动-主动式架构。如果一个成员出现故障,可以继续处理余下的主动成员。在故障期间,只有在发生故障的成员上修改的数据暂时不可用,直至为该组数据完成数据库恢复。该方法与其他竞争性解决方案完全相反,后者在数据库恢复期间整个系统可能会冻结。
  • 降低总拥有成本(TCO):DB2 pureScale Feature 降低 TCO,因为接口处理集成部件的部署和维护,这将减少与一些竞争性技术相关的陡峭的学习曲线。

为更好地理解 DB2 pureScale Feature 如何提供这些特性,您应当多了解一点架构相关内容。图 1 显示一个 DB2 pureScale 配置的不同组件。尽管有多个高级组件,该配置的很大一部分对于终端用户是透明的,因为 DB2 pureScale Feature 部署和管理这些组件。

图 1. DB2 pureScale Feature 拓扑概述
客户端可连接任何成员,DB2 成员运行在若干主机上,集成的集群服务,低延迟高速互连,集群缓存工具,数据共享架构

注意,图中部署了 4 个成员和两个集群缓存工具(CF)。客户端可连接到任何成员,且 DB2 pureScale Feature 可基于机器使用情况自动跨不同成员对客户端进行负载均衡。如果配置中的任何主机发生故障,DB2 pureScale Feature 会将客户端重定向到其余主机上的主动成员。

每个 DB2 成员代表一个 DB2 处理引擎。在单一 DB2 pureScale 配置中可部署高达 128 个成员。这些成员相互合作且与 CF 一同提供对来自任何成员的数据库的一致访问。可根据处理需求变更添加和删除成员,而不影响客户端。本文后面会讲到,成员和 CF 可以共存于同一物理机器上。

一个集群服务层与提供故障检测和恢复自动化的 DB2 pureScale 以及一个集群文件系统相集成。这些技术集成在 DB2 pureScale Feature 内,且使用专为 DB2 软件优化的 IBM 技术。它们包括 IBM Tivoli Systems Automation for Multi-platforms (Tivoli SA MP)、Reliable Scalable Cluster Technology (RSCT) 和 General Parallel File System (GPFS)。

DB2 pureScale Feature 根据最佳实践预定义配置自动部署和配置这些技术。您无需确定如何配置 DB2 pureScale Feature 附带的集群技术,因为它对于终端用户是透明的。

在 DB2 pureScale 配置中,成员和 CF 可以使用 RDMA 技术高效通信。RDMA 允许一台机器读写另一台机器的内存,无需在目标机器上有任何处理器周期。该机制连同 10 千兆位以太网等高速网络支持一个可供 DB2 pureScale Feature 扩展的非常高效的传输层。该配置也可跨 InfiniBand 网络运行。

CF 提供一个可扩展的集中锁定机制来确保数据一致性。它们充当 DB2 页面的一个快速缓存,使用 RDMA 技术在可能需要物理磁盘操作的情况下提供性能提升。CF 连同高效传输层允许 DB2 pureScale Feature 轻松扩展,因为在执行任务时每个成员不必与所有其他成员协商。

由于 DB2 pureScale Feature 使用一种共享磁盘技术,任何成员都可以读写数据库的任何部分。如果有任何成员发生故障,仍可从其他主动成员访问整个数据集。


部署 DB2 pureScale Feature

配置概述

在接下来的场景中,您要在两台物理 System x 3850 X5 机器上部署 DB2 pureScale Feature V9.8.3。有关其他受支持的服务器型号列表,参见 DB2 文档

每台物理机器都具有以下特点:

  • 它存在于一个支持客户端连接的公共网络上。
  • 它有一个 10 千兆以太网卡用于成员与 CF 之间的高速低延迟通信。10 千兆以太网还支持 RDMA over Ethernet。
  • 它有一个到一套通用磁盘的共享连接。

图 2 展示一个 DB2 pureScale Feature 部署的主要硬件组件的一个典型配置。

图 2. DB2 pureScale Feature 硬件配置样例
客户端通过以太网连接到由 10 万兆以太网交换机连接的 X3850x5,从那里通过 SAN 到 DS5100

表 1 列出每个物理节点的高级配置。

表 1. 配置概览
主机名coralinst07coralinst08
OS 级别SUSE Linux Enterprise Server 10 SP3 (x86_64) Linux Kernel 2.6.16.60-0.69.1-smpSUSE Linux Enterprise Server 10 SP3 (x86_64) Linux Kernel 2.6.16.60-0.69.1-smp
服务器类型Member 0 + Primary CFMember1 + Secondary CF
核心88
RAM64GB64GB
BIOS 固件版本: -[G0E122DUS-1.23]- required for X5 only (x3850)版本: -[G0E122DUS-1.23]- required for X5 only (x3850)
共享磁盘 /dev/sdd - 用于保留共享 DB2 实例文件的磁盘
/dev/sde - 为 DB2 数据利用的磁盘
/dev/sdf - 为 DB2 事务日志利用的磁盘
/dev/sdg - 为 DB2 集群服务层利用的磁盘
注意:磁盘大小根据具体需求而不同
磁盘设备驱动程序Linux RDAC driver package for kernel 2.6
z-Bottom of Form;z-Top of Form;HTML Markup;Comment;09.03.0C05.0439
Linux RDAC driver package for kernel 2.6 z-Bottom of Form;z-Top of Form;HTML Markup;Comment;
09.03.0C05.0439
以太网接口eth0eth0
10 千兆以太网卡固件2.7.700 ( fw-25408-2_7_700-DB2_59Y1905.bin)
from mellanox.com
2.7.700 (fw-25408-2_7_700-DB2_59Y1905.bin)
from mellanox.com
10 千兆位以太网接口的主机名 coralinst07-10ge
coralinst08-10ge
10 千兆以太网接口 eth4 eth4
OpenSSH openssh-4.2p1-18. 40.35 openssh-4.2p1-18. 40.35
OFED OFED-IBM-DB2-pureScale-PTF-1.5.2-4.1404.1.PTF.604678 OFED-IBM-DB2-pureScale-PTF-1.5.2-4.1404.1.PTF.604678

关于如何配置 10 千兆以太网 的信息,参见 附录 A 或参见 附录 B 了解有关部署 InfiniBand 网络的更多信息。


DB2 pureScale Feature 预安装步骤

除非另有规定,否则这些步骤中列出的命令作为根权限用户运行。

  1. 确保在参与 DB2 pureScale 集群的所有物理机内在根级别设置了 SSH(无密码)。您可以通过在集群中的机器之间发出以下命令来验证 SSH 配置,确保它返回没有任何提示的有效主机名:
    # ssh <target machine> hostname

    在实例设置期间安装程序将设置实例级 SSH。

  2. 在每台机器的 /tmp 和 /var 文件系统中至少有 10 GB 的空闲空间。
  3. 确保将所有文件集作为 OS 安装的一部分予以安装:
    cpp、gcc、gcc-c++、内核源、binutils、libstdc++ 32/64 位文件。
  4. 识别要供 DB2 pureScale Feature 使用的磁盘,确保每个磁盘都标有一个 WWID/WWN,且在所有节点间是一样的。

    您可以使用 fdisk -l 命令列出一台机器上可用的所有物理卷,以及磁盘大小。以下示例显示该命令的输出:


    Disk /dev/sdd: 214.7 GB, 214749020160 bytes
    255 heads, 63 sectors/track, 26108 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
  5. 在具有 IBM RDAC 驱动程序的系统上,执行如下操作:
    1. 使用 lsvdev 命令确定 LUN 映射:
      coralinst07:~ # /opt/mpp/lsvdev
      
      Array Name      Lun    sd device
      -------------------------------------
      DS5300SVT1      0     -> /dev/sdc
      DS5300SVT1      1     -> /dev/sdd
      DS5300SVT1      2     -> /dev/sde
      DS5300SVT1      3     -> /dev/sdf
      DS5300SVT1      4     -> /dev/sdg
    2. 获取主机看到的存储阵列列表:
      coralinst07:~ # /usr/sbin/mppUtil -a
      Hostname    =  coralinst07
      Domainname  = N/A
      Time        = GMT 08/06/2010 16:27:59
      
      ---------------------------------------------------------------
      Info of Array Modules seen by this Host.
      ---------------------------------------------------------------
      ID              WWN                      Type     Name
      ---------------------------------------------------------------
      0      600a0b800012abc600000000402756fc FC     FASTSVT1
      1      600a0b800047bf3c000000004a9553b8 FC     DS5300SVT1
      ---------------------------------------------------------------
    3. 获取与 LUNS 相关的磁盘的 WWN 列表:
      coralinst07:# mppUtil -a DS5300SVT1 | awk '/WWN/' | grep -v Restore
      Lun #0 - WWN: 600a0b800047bf3c0000803e4baca3df
      Lun #1 - WWN: 600a0b800047b9ca00008bec4baca3e1
      Lun #2 - WWN: 600a0b800047bf3c000080404baca406
      Lun #3 - WWN: 600a0b800047b9ca00008bee4baca406
    4. 获取磁盘的 WWID 列表。WWN 和 WWID 除了第一个数字不同之外其他都相同:
      coralinst07# cd /dev/disk/by-id
      scsi-3600a0b800047b9ca00008bec4baca3e1 -> ../../sdd
      scsi-3600a0b800047bf3c000080404baca406 -> ../../sde
      scsi-3600a0b800047b9ca00008bee4baca406 -> ../../sdf 
      scsi-3600a0b800047bf3c0000803e4baca3df -> ../../sdg

DB2 pureScale Feature 安装步骤

  1. 将节点之一确定为安装启动主机(IIH)。该主机将运行 DB2 pureScale Feature 的安装程序。确保将屏幕设置为显示图形工具。在本例中,我们使用 coralinst07 作为 IIH。
  2. 要启动 DB2 图形安装程序,转至所下载产品图像上的 ese_dsf 文件夹,或转至产品安装 DVD 的根目录,并运行 db2setup 命令:
    #./db2setup -t /tmp/db2setup.trc -l /tmp/db2setup.log
  3. 从如图 3 所示的欢迎界面中,您可以在安装 DB2 pureScale 之前查看文档。例如,架构概览 主题提供对 DB2 pureScale 实例环境的高级概览。要安装 DB2 pureScale Feature,单击左窗格中的 Install a Product
    图 3. DB2 安装启动
    欢迎来到 DB2 版本 9.8
  4. Install a Product as root 界面单击 Install New,如图 4 所示。
    图 4. DB2 安装启动 - Install a product
    以根用户身份安装产品
  5. DB2 Setup 向导提供一个直观的指令集来帮助您浏览其余部署,如图 5 所示。单击 Next 继续安装。您可以选择性地单击 View Features 查看将要安装哪些功能。
    图 5. DB2 安装向导
    欢迎来到 DB2 安装向导
  6. 阅读许可协议,如图 6 所示。如果要接受许可条款,单击 Accept,然后单击 Next
    图 6. 软件许可协议
    欢迎来到 DB2 安装向导
  7. 如图 7 所示,您可以选择立即安装 pureScale Feature,创建一个响应文件以便以后安装它,或立即安装它并将设置保存在响应文件中。对于该例,我们立即安装它,而不创建响应文件,所以选择 DB2 Enterprise Server Edition with the pureScale Feature,然后单击 Next
    图 7. 安装类型
    选择安装,响应文件创建,或两者
  8. 从如图 8 所示的 Select the installation directory 界面中,提供 DB2 二进制文件的安装目录的信息。在确定安装路径之后单击 Next。在大多数情况下,您可以接受默认路径。
    图 8. 安装目录
    选择安装目录
  9. 从如图 9 所示的 Set up a DB2 Instance 界面中,您可以创建一个 DB2 实例或等待安装完成。对于该例,我们创建一个实例,因此选择 Create a DB2 instance 并单击 Next
    图 9. 设置 DB2 实例
    设置 DB2 实例
  10. 从如图 10 所示的 Set user information for the DB2 instance owner 界面中,输入实例所有者的信息,然后单击 Next。如果选择一名现有用户作为 DB2 实例所有者或 DB2 受保护用户,用户必须存在于具有相同 UID、GID、组名和 $HOME 路径的所有主机上。主机不应共享实例所有者的 $HOME 目录,因为这对于每台主机都将是本地的。如果选择创建新用户,定义的新用户必须不存在于任何主机中。
    图 10. 实例所有者信息
    设置 DB2 实例所有者的用户信息
  11. 从如图 11 所示的 Set user information for the fenced user 界面中,输入有关受保护用户的信息,并单击 Next
    图 11. 受保护用户信息
    设置受保护用户的用户信息
  12. 从如图 12 所示的 Set up a DB2 Cluster File System 界面中,使用预定义的磁盘之一为在所有机器之间共享的实例文件创建 DB2 pureScale 实例环境使用的一个共享文件系统。文件系统将被挂载为 /db2sd<timestamp> 且目录 /db2sd<timestamp>/<instance_name> 将是默认的数据库路径(由 DFTDBPATH 配置参数所定义)。

    另一小磁盘将用作内部集群自动恢复用途。提供磁盘的完整路径,然后单击 Next

    图 12. DB2 集群文件系统设置
    设置 DB2 集群文件系统
  13. 从如图 13 所示的 Host List 界面中,添加应当是 DB2 pureScale 集群一部分的其余主机。默认情况下已包含了 IIH。对于您需要添加的每台主机,单击 Add
    图 13. 主机列表选择
    屏幕截图显示主机列表
  14. 在单击 Add 之后,如图 14 所示,提示您输入一个主机名(运行 hostname 命令时的输入)。输入主机名,然后单击 OK。重复这一步骤,添加您需要的每一台主机。
    图 14. 远程主机名输入
    显示要求输入主机名的提示
    在输入每台额外的主机之后,DB2 安装程序会验证每一台新主机,如图 15 所示。
    图 15. 安装设置进度指示器
    验证安装设置进度
  15. 在添加所有主机之后,您会看到主机列表,如图 16 所示。每台主机旁边的勾号确认该主机已经过验证。当您对窗口底部确定的配置满意时,单击 Next。此时,DB2 安装程序会对无密码的 SSH 配置再执行一次验证。
    图 16. 主机列表确认
    显示主机列表

    如果配置中有不止一台物理机,安装向导会自动将每个 CF 分配给一台不同的机器。

  16. 如果您希望在同一台主机上同时安装一个成员和一个 CF,从 Host List 界面中,单击 Advanced 按钮,然后单击 Manually assign Cluster Caching Facilities (CF),如图 17 所示。
    图 17. CF 分配
    高级界面

    如图 18 所示,在 Preferred Primary CF 下,单击 Configure the host as both a CF and a DB2 member。类似地,您可以选择 Preferred Secondary CF 下的复选框,在集群中的不同主机上创建一个辅助 CF 和一个 DB2 成员。

    图 18. 首选的主次 CF 分配
    高级界面显示首选的主次 CF 分配

    在两台不同的物理机器上,您应当由两个确定的 CFs,以避免单点故障。

  17. 在 DB2 安装程序验证无密码的 SSH 之后,它会在继续安装之前显示输入概要,如图 19 所示。如果您对输入满意,单击 Finish 开始安装。
    图 19. 安装设置确认
    开始复制文件
  18. 在实际安装过程中,一个进度监控条向您显示安装进度,如图 20 所示。该步骤需要几分钟,因为正在将 DB2 pureScale Feature 和选定的组件部署到配置中的所有主机上。
    图 20. 安装进度指示器
    显示进度监控条
  19. 在成功完成 DB2 pureScale Feature 安装之后,Setup has completed successfully 界面提供有关到何处查找日志和安装文件的信息,如图 21 所示。单击 Finish
    图 21. 安装完成
    安装已成功完成
    跨两个主机的 DB2 pureScale Feature 安装已完成,一个 DB2 实例可随时供您使用。

DB2 pureScale Feature 安装后步骤

在有了随时可用的 DB2 pureScale Feature for Enterprise Server Edition 实例之后,您应当创建一个文件系统,用于数据和日志。您可以使用 db2cluster 命令创建文件系统。以根用户身份完成以下步骤:

  1. 分别为数据和日志创建一个文件系统:
    #<DB2 Install Path>/bin/db2cluster -cfs -create -filesytem data -disk /dev/sde
    #<DB2 Install Path>/bin/db2cluster -cfs -create -filesytem log -disk /dev/sdf

    在该部署中的 DB2 安装路径将是 /opt/ibm/db2/V9.8。默认情况下会在 /db2fs 下创建数据和日志文件系统,且可在 DB2 pureScale 实例中的所有主机上访问该系统。

  2. 将文件系统所有者修改为 DB2 实例所有者,这样它就有全权访问该文件系统。在本例中,db2sdin1 是实例所有者的名称,且 db2iadm1 是实例所有者的组名。
    #chown db2sdin1:db2iadm1 /db2fs/data
    #chown db2sdin1:db2iadm1 /db2fs/log
  3. 通过发出 db2start 命令启动 DB2 实例。您可以使用 db2instance 命令在任意点看到 DB2 pureScale 实例的状态。
    > db2start
    04/19/2010 11:02:08 0 0 SQL1063N DB2START 
    processing was successful.
    04/19/2010 11:02:08 1 0 SQL1063N DB2START 
    processing was successful.
    SQL1063N DB2START processing was successful.

    您可以使用 db2instance -list 命令查看 DB2 pureScale 集群的状态。
  4. 创建数据库并将日志移动到日志文件系统。必须从成员主机(而非 CF 主机)上运行以下命令。
    > db2 create db testdb on /db2fs/data
    > db2 update db cfg for testdb using newlogpath /db2fs/log
  5. 目录客户端连接到任何主动 pureScale 成员且连接到数据库。

使用 DB2 pureScale Feature

DB2 pureScale Feature 有很多优势。下一节将提供用例来展示其带来的价值。DB2 pureScale Feature 的简单部署已经展示了它可以帮助降低总拥有成本。

添加和删除成员

DB2 pureScale Feature 支持快速添加成员到配置中,而没有任何数据重新分配需求。DB2 安装二进制文件自动存储在 IIH 上,因而在添加成员时无需访问原始安装介质。您只需停止实例并从 IIH 运行以下命令即可添加一个成员:

db2iupdt -d -add -m ServerX:ServerX-10ge db2sdin1

类似地,可以从 IIH 运行以下命令来删除成员:

db2iupdt -d -drop -m ServerX:ServerX-10ge db2sdin1
您可以通过这样一种方式透明地对应用程序启动或静默成员,即应用程序不知道有变更发生。

自动工作负载均衡

基于不同机器的使用特点,DB2 pureScale Feature 提供跨所有主动成员动态分发工作负载的能力。默认情况下,多线程 CLI 应用程序有连接级工作负载均衡,而无任何改动。可以修改这一工作负载均衡,以便将其应用于事务级别,而非连接级别。对于多线程 Java 应用程序,可以在连接字符串中更改 enableSysplexWLB=true,以利用事务级工作负载均衡的优势。

随着有更多的成员启动,客户端会自动路由到新成员,而不中断服务。另外,可以根据隐形维护下的指令停止成员,而应用程序甚至都不知道发生这一操作。

您还可以配置客户端,选择优先连接到的成员。该特性称为客户端亲和,且如果一个分区的工作负载已经存在,那么该特性很有益处。

要利用 DB2 pureScale 特性,比如事务级工作负载均衡或客户端亲和,最小的客户端级别应当是 9.7 补丁包 3 或关联的 JCC 级别。要关联包含在各种补丁包级别中的 JCC 级别,参见 参考资料 部分获取更多细节。

隐形维护

在很多情况下,向系统应用维护是很关键的,但是您不希望该客户端应用程序带来任何负面影响。隐形维护让一个成员上的所有事务完成,然后透明地将应用程序路由到另一成员。例如,要停止成员 1,您可以运行以下命令:

db2stop member 1 quiesce

有时您会遇到这种情况,其中为一个工作单元(UOW)启动了用户会话,但是没有提及或回滚。除非指定一个超时值,否则 db2stop 默认在停止该成员之前必须等待那个 UOW 完成。对于这种情况,您可以指定一个超时值,例如 10 分钟,这将允许应用程序在 10 分钟内完成 UOW。如果在 10 分钟之后,UOW 未完成,那么 DB2 软件会自动强制关闭该应用程序。对于在 10 分钟内完成的应用程序,在它们完成其 UOW 时,被自动重新路由到主动成员。要在 10 分钟的超时限制下停止成员 1,您可以运行以下命令:

db2stop member 1 quiesce 10

高可用性

DB2 pureScale Feature 的一个重要价值主张是集成到架构中的高可用性特征。所有必需的资源自动受到 DB2 pureScale 集群服务的监控,根据需要予以重新启动。连接到一个故障成员的应用程序将被自动重新路由到一个主动成员,其中应用程序可重新发出任何失败的事务。连接到一个非故障组件的应用程序将不受影响。

与最具竞争力的技术相比,DB2 pureScale Feature 的一个区别因素是,在一个成员出现故障时,不会在集群范围内发生冻结。事实上,只有在故障成员上更新的数据暂时不可用,直至恢复完成。主动成员上尝试访问故障成员上锁定数据的应用程序将短暂地处于锁定等待状态,默认情况下不会接受任何错误。恢复将快速完成,这样经过成员故障的数据可用性看起来会与图 22 所示的假设性表示类似。

图 22. 成员恢复期间的典型数据可用性模式
图形仅显示恢复期间的数据动态更新

灾难恢复

虽然 DB2 pureScale Feature 自带有一个本地高可用性解决方案,很多客户还需要一个灾难恢复解决方案来满足其业务连续性需求。DB2 pureScale Feature 使用远程磁盘镜像技术,且被设计为使用数据库复制产品,如图 23 所示。

图 23. 典型的灾难恢复设置
图,生产实例站点 A 镜像到 DR 实例站点 B

如果运行一个 DB2 pureScale 实例的整个主站点发生故障,可使用远程站点继续业务操作。DB2 pureScale Feature 可以使用传统的数据库备份、还原和前滚功能作为灾难恢复解决方案。


结束语

使用 CF 和 RDMA 技术,DB2 pureScale Feature for Enterprise Server Edition 提供一种数据库解决方案,能够有效伸缩来满足不同组织(包括最苛刻的用户)的增长和动态需求。可以向 DB2 pureScale 环境添加额外成员来满足高峰处理时间的需求,而不影响现有应用程序。

DB2 pureScale Feature 自动跨集群中的所有 DB2 成员平衡工作负载,而不更改任何应用程序,充分利用额外的处理能力。如果一个 DB2 成员发生故障,应用程序会在其他主动成员之间被自动路由。当发生故障的成员主机返回时,应用程序会被透明地路由到重新启动的成员。

与其他解决方案相比,DB2 pureScale Feature 的设计和功能可帮助降低总拥有成本,支持简化的部署和维护模型。DB2 pureScale Feature 的安装管理将所有捆绑的软件组件部署和配置到 DB2 pureScale 环境中的所有主机上。一旦 DB2 pureScale Feature 环境上线运行,其操作状态就受到监控,且可从任何主动成员上轻松加以维护。

供稿人

我想感谢对本文做出贡献的以下人员:

  • Serge Boivin,DB2 LUW Information Development
  • Jason Shayer,DB2 LUW Information Development
  • Matthew Huras,首席架构师,DB2 LUW

附录 A:配置 pureScale 集群来支持 RDMA over Ethernet (RoCE)

正如本文前面所讨论的,DB2 pureScale Feature 为 RDMA over Ethernet 利用一个 10 千兆以太网,支持成员与 CF 之间的最优通信。

RDMA over Ethernet 是 InfiniBand 的一个替代方案,且支持 pureScale 的 System X / Linux 实现。RDMA over Ethernet 是直接经由以太网的一个有效且轻量级的传输层。

该附录描述部署 10 千兆以太网(用于集群间连接)以支持 RDMA over Converged Ethernet (RoCE) 的高级步骤。

  1. 部署 10 千兆以太网交换机,支持基于优先级的流量控制和类似于典型交换机部署的无损耗以太网。
  2. 在该配置中,一个 10 千兆以太网卡(带有两个端口的 MT 26448)连接到集群中的每个节点。
  3. 使用 SFP+ 线缆连接交换机和主机。
  4. 安装 OFED 1.5.2 (OFED-IBM-DB2-pureScale-PTF-1.5.2-4.1404.2.PTF.604678)。OFED (Open Fabrics Enterprise Distribution) 是一个安装 VERBS、Utils、uDAPL、RDMA CM、Mellanox 组件等的 Linux 设备驱动程序包。有关安装 OFED 的详细指导,请参考 9.8.0.3 Information Center 和相应的技术说明。
  5. 按如下方式为每个节点编辑 /etc/sysconfig/network/ 下的网络脚本,以为每个接口分配 IP,或使用 YaST 配置接口。
    BOOTPROTO='static'
    BROADCAST=''ETHTOOL_OPTIONS=''IPADDR='192.168.1.103/24'MTU=''NAME='MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s]'NETWORK=''REMOTE_IPADDR=''STARTMODE='auto'
    如果您不配置这个,将会收到 DAT_INVALID_ADDR 错误。
  6. 编辑每个节点上的 /etc/hosts 文件,用于路由目的,类似于下面:
    #10ge Network
    192.168.1.100 coralinst07-10ge
    192.168.1.101 coralinst08-10ge
  7. 在每个节点上,确保 /etc/dat.conf 文件具有与下面类似的格式:
    ofa-v2-roe u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "eth4 0" ""
    这里 ofa-v2-roe 是用于建立连接的设备名。Dapl2.0DAT2.0,且 eth4 是接口名。如果您不配置这个,将会收到 DAT_INTERNAL_ERROR 错误。
  8. /etc/init.d/openibd 重新启动
  9. 使用 chkconfig -a openibd 确保 openibd 在运行,使用 service openibd status 加载所有模块和设备。

您可以作为根用户运行 ibv_devinfoibstatus 命令,来在每个节点上验证 RoCE 的状态。确认端口或配置的端口是主动式的且链接已建立。

例如:

port:   1
	state:                  PORT_ACTIVE (4)
	max_mtu:                2048 (4)
	active_mtu:             1024 (3)
	sm_lid:                 0
	port_lid:               0
	port_lmc:               0x00
	link_layer:             Ethernet

另外,您应当使用 /etc/hosts 文件中定义的地址和主机名执行一个 ping 测试。您还可以执行 dtest,它是 OFED 附带的一个实用工具。

在主机 1 上运行 dtest -P ofa-v2-roe,并检查是否能够看到一个侦听连接,并从 host2 上运行 dtest -P ofa-v2-roe -h <host1-10ge>。您应当注意到连接已通过。

如果 CF 或成员所在的主机有超过 64 GB 的内存,那么 Mellanox HCA 驱动程序(mlx4_core)模块的参数 log_mtts_per_seg 必须从 3(默认)增加到 7,以便有更大的内存注册。

要增加大小,以根用户身份发出以下命令:

  1. 在 SUSE 上:
    			echo "options mlx4_core log_mtts_per_seg=7" >> 
    /etc/modprobe.conf.local
  2. 在 RHEL 上:
    			echo "options mlx4_core log_mtts_per_seg=7" >> /etc/modprobe.conf

要让该更改生效,您必须重启服务器。要检查您的更改在模块上是否有效,输入:
<host-name>/sys/module/mlx4_core/parameters # cat /sys/module/mlx4_core/parameters/log_mtts_per_seg

RoCE 不需要子网管理器,但应当在交换机上配置 IP,这样 RSCT/TSA 就可以监控相关的网络资源。

以下示例向您展示如何让 Switch IP 成为 RoCE 网络的默认网关。

在 RoCE 交换机上分配一个 IP,并使用路由添加或使用以下代码:

coralinst07:~ # route add -net 192.168.1.100 
netmask 255.255.255.0 gw 192.168.1.3 ==>

这不是持久的。要实现永久性,您需要对 /etc/sysconfig/network/routes 文件附加比如 192.168.1.0 192.168.1.3 eth-id-00:02:c9:08:28:10,并使用 route 命令执行查询。这需要网络服务重新启动,如下所示: /etc/init.d/network restart

coralinst07:~ # route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     192.168.1.3     255.255.255.0   UG    0      0        0 eth2
192.168.1.0     *               255.255.255.0   U     0      0        0 eth2
9.26.92.0       *               255.255.252.0   U     0      0        0 eth0
loopback        *               255.0.0.0       U     0      0        0 lo
default         rsb-v94-hsrp.to 0.0.0.0         UG    0      0        0 eth0

附录 B:配置 pureScale 集群以支持 InfiniBand

InfiniBand 是一个用于高速通信的交换式光纤通信链路。其特性包括高吞吐量、低延迟,且提供点对点的双向链接。与 RoCE 类似,InfiniBand 也需要 OFED。

该附录向您展示部署 InfiniBand 的高级步骤。

  1. 部署一个 IB 交换机(带有 36 个端口的 Mellanox IS5030)。您将需要在交换机上启用子网管理器(SM),这还需要一个独立许可来激活它。
  2. 在该配置中,带有两个端口的一个 pMT 26428 IB 卡连接到集群中的每个节点。
  3. QSFP 线缆应当用于连接交换机和主机。
  4. 安装 OFED 1.5.2 (OFED-IBM-DB2-pureScale-PTF-1.5.2-4.1404.2.PTF.604678)。OFED (Open Fabrics Enterprise Distribution) 是安装 VERBS、Utils、uDAPL、RDMA CM、Mellanox 组件等的 Linux 设备驱动程序包。
  5. 编辑 /etc/dat.conf 以在配置文件中添加以下代码行:
    ofa-v2-ib0 u2.0 nonthreadsafe default 
    libdaplofa.so.2 dapl.2.0 "ib0 0" ""

    这里,ofa-v2-ib0 是建立连接的 IB 设备名,且 dapl.2.0 是 uDAPL。如果您不配置 dat.conf,那么会收到 DAT_INTERNAL_ERROR 错误。
  6. 编辑 /etc/sysconfig/network/Ifcfg-ib0,以为 ib0 接口配置静态 IP。例如,对于 ifcfg-ib0,使用以下代码:
    DEVICE=ib0
    BOOTPROTO='static'IPADDR='10.1.1.154' #replace with IP address IB port is to use
    NETMASK='255.255.255.0' #Change if IB is have address in a large range like class 
                             CSTARTMODE='onboot'
    WIRELESS='no'
  7. 在集群中的所有机器上添加在 /etc/hosts 中配置的网络名和 IP。例如:
    10.1.1.130 host130-ib0
    10.1.1.131 host231-ib0
  8. 运行 /etc/init.d/openibd restart 来加载模块。
  9. 使用 chkconfig -a openibd 确保 openibd 在运行,且使用 service openibd status 加载所有模块和设备。

您可以作为根用户运行 ibv_devinfoibstatus 命令,来在每个节点上验证 InfiniBand 的状态。 确认端口或配置的端口是主动式的且链接已建立。

例如,对于端口 1:

state:                  PORT_ACTIVE (4)
max_mtu:                2048 (4)
active_mtu:             2048 (4)
sm_lid:                 1
port_lid:               21
port_lmc:               0x00
link_layer:             IB

您还应当使用 /etc/hosts 文件中定义的地址和主机名执行一个 ping 测试。
您还应当运行 dtest,它是 OFED 附带的一个实用工具。在主机 1 上运行 dtest -P ofa-v2-ib0,并确保看到一个侦听连接。从 host2 上运行 dtest -P ofa-v2-ib0 -h <host1-ib0>。您会看到连接已通过。

如果 CF 或成员所在的主机有超过 64 GB 内存,那么 Mellanox HCAdriver (mlx4_core) 模块的参数 log_mtts_per_seg 必须从 3(默认)增加到 7,以便有更大的内存注册。

要增加大小,以根用户身份发出以下命令:

  1. 在 SUSE 上:
    			echo "options mlx4_core log_mtts_per_seg=7" >> 
    /etc/modprobe.conf.local
  2. 在 RHEL 上:
    			echo "options mlx4_core log_mtts_per_seg=7" >> 
    /etc/modprobe.conf

要让该更改生效,您必须重启服务器。要检查您的更改在模块上是否有效,运行:

		<host-name>/sys/module/mlx4_core/parameters # cat /sys/module/mlx4_core
/parameters/log_mtts_per_seg

参考资料

学习

获得产品和技术

  • 使用可以直接从 developerWorks 下载的 IBM 试用软件 构建您的下一个开发项目。
  • 以最适合您的方式 评估 IBM 产品:下载产品试用版,在线试用产品,在云环境下试用产品,或者在 SOA Sandbox 中花费几个小时来学习如何高效实现面向服务架构。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management, Linux
ArticleID=697045
ArticleTitle=在 Linux 上部署 DB2 pureScale Feature
publish-date=07042011