因为大多数生产环境使用 DB2 pureScale的业务系统通常是 ERP或业务核心,所以出于性能、稳定性与厂商支持的考虑,大多数企业都会选择 Power平台。所以这篇笔记只是针对 AIX 上 DB2 purescale 快速部署规划指南,并非 x86 平台。


物理架构规划

在部署前,应该根据对业务系统负载特征(并发用户,交易吞吐量,读写分布等)、未来 2年增长的数据量,预估 CPU、内存计算资源与所需要的存储空间。据此,选择采购相应的 power服务器与相应的存储设备。

最好请 IBM 经验丰富的数据库架构师,根据客户业务系统需求情况,进行 DB2 pureScale 环境物理架构设计。笔者这块没多少经验,只知道些皮毛。

这一步最好设计出 DB2 purescale 物理架构图,方便下面的快速部署实施。

规划原则:(from IBM 大牛)

  1. 需要几台服务器?至少需要2台机器,这样可以防止出现单点故障。一个典型的Power平台上的DB2 pureScale集群包括2~4台服务器,上面创建有多个AIX分区(LPAR),每个分区运行CF或成员;一个典型的x86平台上的DB2 pureScale集群包括4~6台服务器,每个机器运行CF或成员。

  2. 硬件选择Power平台还是x86平台?这个要根据具体负载来谈,ERP、银行交易等关键型负载选择Power平台;对一些只是需要高可用性的普通负载,选择x86平台。

  3. 如何选择Power机器型号?在Power平台上,可以根据需要,可以选择Power 7中的全系列,包括710、720、730、740、750、770、780和795,或者Power 8系列

  4. 如何选择x86机器型号?目前x86平台可供选择的机器型号只有3650 M3、3690 X5和3850 X5。

  5. 如何选择存储型号?只要支持GPFS的型号就可以,为了支持失效成员的I/O保护(I/O Fencing),存储最好支持SCSI-3 Persistent Reservation。

  6. 如何选择网络?除了Infiniband网络外,从DB2 V10开始支持万兆以太网。对网络带宽有很高要求的场景下,选择Infiniband网络;反之,如果各个成员之间内部互联的带宽要求不高,可以考虑万兆以太网。

  7. 如何规划CF?一个物理机或者一个AIX分区(LPAR)上运行一个CF,需要规划2个,一个为主,另一个为从,这样可以避免出现单点故障。运行每个CF的CPU最大内核数取决于负载,如果是写频繁负载,通常成员内核数和CF内核数的比例为6:1,如果是读频繁负载,这个比例为10:1。写频繁程度越高,运行每个CF需要的内存量就越大。

  8. 如何规划成员?一个物理机或者一个AIX分区(LPAR)上运行一个成员,后续可以根据需要扩充成员的个数。运行每个成员的CPU最大内核数取决于负载的需求,运行每个成员的内存量通常为每个内核4G~8G内存。

  9. 如何规划存储?存储分为两部分,一部分是一个仲裁盘(Tiebreaker disk),容量为25MB以上;另一部分是共享盘,用来存放GPFS文件系统,其中需要一个实例共享文件系统,容量为2GB以上,其余文件系统用来存放数据和日志。

  10. 需要两个交换机才能在 Db2 pureScale环境中支持交换机故障转移。通过使用多个物理通信适配器 来连接至多个交换机,可以增强适配器的高可用性。通过使用多个通信适配器端口,可以提高吞吐量。


环境规划及配置

1、硬件环境

1.1__ POWER 7 or POWER 8系列服务器选择

根据 DB2 purescale 规划选则服务器及其 CPU、内存配置。

1.2__ 网络配置选择

- 基于 InfiniBand (IB) 的 RDMA 协议网络,或

- 基于融合以太网的 RDMA 协议 (RoCE) 网络,或

- 基于以太网的 TCP/IP 协议 (TCP/IP) 网络。

一般建议 IB 或者 RoCE网络,因为member 与 CF 之间需要极高通信速度的RDMA协议网络来同步共享全局锁、组缓冲池、ACR中的控制信息,保证各个 member数据访问的有序及数据的一致性。

TCP/IP网络只适合DB2 pureScale技术测试学习。

使用 RDMA 协议的 IB 网络 或者 RoCE 网络需要以下两个网络:一个(公共)以太网网络,以及一个用于成员与 CF 之间通信的(专用)高速通信网络。

1.3__ 适配器、交换机、电缆 选择

需要根据 1) 中选定的 POWER服务器,2)中选定的RDMA协议网 选择受支持的相应的适配器、交换机、电缆。

“POWER平台 ——> RDMA协议网 ——> 适配器,交换机,线缆” 硬件信息参考下面网址:

https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.qb.server.doc/doc/r0054850.html#r0054850__spf-cables

1.4__ 共享存储设备 选择及其规划

** ★DB2 集群服务仲裁** 和 快速 I/O 隔离 功能部件使发生了故障的主机的恢复时间更短并提供了更好的弹性,同时提高了可用性。

因此,DB2 pureScale 强烈推荐使用支持 SCSI-3 Persistent Reservation 协议的存储设备和多路径 I/O 驱动程序组合!!!

尽管 DB2 pureScale 也可以支持非 SCSI-3 协议的存储,但是发生故障时,IO 屏蔽的时间将大为延长,这将严重影响宕机时数据库受影响数据的恢复时间。

类别 1 存储设备和多路径 I/O 驱动程序组合

最好使用 DB2信息中心中推荐的类别 1 存储设备和多路径 I/O 驱动程序组合,链接如下:

https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.qb.server.doc/doc/c0059360.html?origURL=SSEPGG_11.1.0/com.ibm.db2.luw.qb.server.doc/doc/c0059360.html&view=embed

此类别中列示的存储设备和多路径 I/O 驱动程序组合可以成功地支持 DB2 集群服务仲裁和快速 I/O 隔离。已使用 Db2 pureScale Feature 验证了的类别 1 设备,这些设备将产生最大的弹性和最短的恢复时间。

共享存储规划

对于下面每个文件系统,要规划足够的共享磁盘空间供其使用:

实例共享目录:10 GB

数据:取决于特定的应用程序需求

日志:取决于预期的事务数和应用程序日志记录需求

DB2 集群服务仲裁磁盘

例如下表的规划:

Db2 pureScale 部署快速指南 for Db2 v11.1_java

2、软件环境

2.0__ 选择受支持的 AIX 版本

表 1. 系统最低要求 - AIX 操作系统版本和技术级别

Db2 pureScale 部署快速指南 for Db2 v11.1_java_02

“oslevel -s ”验证安装的 AIX版本

2.1__ 安装多路径软件 SDDPCM

这个软件和 AIX版本、存储型号相关,用于管理 pureScale集群的共享盘,总共包括下面三个软件,安装顺序如下:

- 首先安装devices.fcp.disk.ibm.mpio.rte.tar(Host Attachment for SDDPCM on AIX)

- 其次安装devices.sddpcm.61.rte.tar

- 最后安装devices.sddpcm.61.2.6.3.2.bff.tar

大家要根据自己的AIX版本和IBM存储型号下载相应软件包,下载网址如下:

Subsystem Device Driver Path Control Module (SDDPCM)

2.2__ 安装 xlC/C++ 运行时支持

这个也是pureScale要求的,下载后,使用 “zcat <filename>.tar.Z | tar -xf -” 命令解压,随后使用 “smit install_latest” 命令安装。

下载网址如下:

IBM XL C/C++ for AIX, V12.1 Runtime Environment

最后,在用 smit 安装软件时,需要将 “ACCEPT new license agreements?” 设为 YES。

2.3__ 配置通信适配器端口和交换机

安装 uDAPL驱动

对于 IB 或 RoCE 网络,需要 uDAPL驱动。pureScale集群中,成员和CF之间使用uDAPL接口实现RDMA协议,所以必须安装uDAPL驱动。uDAPL驱动和AIX版本是强关联的,所以要根据自己的AIX版本选择相应的驱动。

2.4__ 配置 SSH 互信关系

安装 OpenSSH,OpenSSH 用于各个成员与 CF 节点间的 SSH互信。

设置基于公用密钥的认证:

在各个成员与 CF 节点服务器上分别对 root 用户、DB2 实例用户生成公用密钥/专用密钥对

ssh-keygen -t dsa

在 ~/.ssh 目录中将会产生 2 个文件:id_dsa, 和 id_dsa.pub

针对root和 DB2实例用户,合并所有节点上的 id_dsa.pub 到一个文件 authorized_keys 中,然后把 authorized_keys 复制到各个节点的 ~/.ssh 目录,并更改权限:

chmod 644 authorized_keys

2.5__ option:X Window System 软件

如果要使用“Db2 安装”向导在 Linux 或 UNIX 操作系统上安装数据服务器产品,那么需要具有能够呈示图形用户界面的 X Window System 软件。

2.6__ 配置共享存储 PVID

(1)选定一个节点,使用lspv命令查看系统上的hdisk信息和PVID信息。

(2)在当前节点分区上,给所有的hdisk设置PVID,例如给hdisk9设置PVID如下所示:

chdev -l hdisk9 -a pv=yes

(3)在其他节点分区上,通过rmdev命令执行同样的步骤删除所有磁盘旧有的PVID信息,例如删除hdisk9上旧有的PVID信息,命令如下:

rmdev -dl hdisk9

(4)在其他节点上运行cfgmgr命令,这样系统将从存储中重新检索 PVID,即在(2)步中设置的PVID信息,这样所有节点所有磁盘的PVID就完全一致了。

2.7__ 配置 NTP

使参加 DB2 purescale 集群的所有节点时间完全同步

NTP server配置:

1、设置 NTP 守护程序以与其自己的系统时钟同步。编辑 /etc/ntp.conf 并添加下列各行:

server 127.127.1.0 prefer # the logical IP address for the NTP serverto sync to its own system clockfudge 127.127.1.0driftfile /etc/ntp.drifttracefile /etc/ntp.trace

2、将 NTP 服务器配置为在系统重新启动时启动。

编辑文件 /etc/rc.tcpip 并取消注释以下条目:

start /usr/sbin/xntpd -x "$src_running"

3、启动 NTP 服务器:

startsrc -s xntpd

NTP client 配置:

1、指定要与之同步的 NTP 服务器。 打开 /etc/ntp.conf 文件并添加以下行(14.1.16.11为 NTP server IP):

server 14.1.16.11driftfile /etc/ntp.drifttracefile /etc/ntp.trace

2、将 NTP 服务器配置为在系统重新启动时启动:

编辑 /etc/rc.tcpip 文件并取消注释以下行:

start /usr/sbin/xntpd -x "$src_running"

3、启动 NTP 服务器:

startsrc -s xntpd

4、验证守护程序是否已同步。

如果守护程序与系统时钟严重不同步,那么可能需要 10 分钟以上的时间来使它同步。 要确保在继续之前守护程序已同步,您可以检查“系统层”字段:

lssrc -ls xntpd

要继续执行下一个步骤,系统层字段应该小于 16。

通过运行 ntpdate -d 14.1.16.11 命令完成同步过程。

2.8__ 配置 IOCP

在所有节点上执行如下命令,配置 IOCP 设备:

#mkdev -l iocp0

要检查系统上是否安装了 IOCP 模块,请输入以下命令:

$ lslpp -l bos.iocp.rte

输出应该类似于以下示例中的输出:

Fileset -- ** Level ** -- State ** -- ** Description

Path: /usr/lib/objrepos
bos.iocp.rte 5.3.9.0 APPLIED I/O Completion Ports API

Path: /etc/objrepos
bos.iocp.rte 5.3.0.50 COMMITTED I/O Completion Ports API

通过输入以下命令,检查 IOCP 端口的状态是否为 Available:

$ lsdev -Cc iocp

输出应如下所示:

iocp0 Available I/O Completion Ports

3、Db2 pureScale Feature的安装前核对表

执行 db2prereqcheck,进行安装前的检查。

./db2prereqcheck -p -v 11.1.0.0

更加详细的 “检查列表” 请参考信息中心下列网址:

https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_11.1.0/com.ibm.db2.luw.qb.server.doc/doc/r0056077.html

4、DB2 pureScale 安装配置

4.1__ 用户规划

需要以下用户才能创建 Db2 pureScale 实例:

- 一个用户作为实例所有者

- 一个非 root 用户标识,以在 DB2 pureScale 集群中的主机之间使用安全 shell (SSH) 网络协议(此用户标识可缺省为实例所有者)

- 一个用户作为受防护用户

表 1. 用户和组示例

Db2 pureScale 部署快速指南 for Db2 v11.1_java_03

4.2__ 安装配置 DB2 pureScale

db2_install 安装方法

安装 Db2 数据库产品、Tivoli® SA MP 和 IBM Spectrum Scale:

db2_install -b /opt/IBM/db2/V11.1 -p SERVER -f PURESCALE -t /tmp/db2_install.trc -l /tmp/db2_install.log

验证是否已安装 Db2 数据库产品:

/usr/local/bin/db2ls

验证 Tivoli SA MP 和 IBM Spectrum Scale 是否已安装在系统上:

lslpp -l  |  grep sam-*

lslpp -l | grep -i gpfs*

4.3__ GPFS集群文件系统

Db2 pureScale 部署快速指南 for Db2 v11.1_java_04

必须使用 root 创建GPFS文件系统,随后chown 给 db2sdin1

db2cluster -CFS -CREATE -FILESYSTEM db2data -DISK /dev/hdisk8,/dev/hdisk9,/dev/hdisk10,/dev/hdisk11,/dev/hdisk12 -MOUNT /db2fs/db2data

db2cluster -CFS -CREATE -FILESYSTEM db2log -DISK /dev/hdisk13 -MOUNT /db2fs/db2log

db2cluster -CFS -CREATE -FILESYSTEM db2temp -DISK /dev/hdisk6 -MOUNT /db2fs/db2inst

chown -R db2sdin1:db2iadm1 /db2fs

查看验证 GPFS集群文件系统配置:

# /usr/lpp/mmfs/bin/mmlsconfig

对 GPFS文件系统启用 Persistent Reserve:

# ./db2cluster -cfs -stop -all

All specified hosts have been stopped successfully.

# /usr/lpp/mmfs/bin/mmchconfig usePersistentReserve=yes

# /usr/lpp/mmfs/bin/mmlsconfig | grep PersistentReserve

usePersistentReserve yes

# ./db2cluster -cfs -start -all

All specified hosts have been started successfully.

# /usr/lpp/mmfs/bin/mmlsnsd -X

DB2 实例共享文件系统创建:

# ./db2cluster_prepare  -instance_shared_dev /dev/hdisk6 -instance_shared_mount  /db2fs/db2inst

DBI1446I  The db2cluster_prepare command is running.

4.4__ DB2 pureScale 实例创建

作为 root 用户运行以下命令,以设置初始 DB2 pureScale 实例,同时将一个主机指定为 Db2 成员,并将另一个主机指定为 CF。

示例:

db2icrt -d -m h1.domain.com -mnet h1.domain.com-ib0

-cf h2.domain.com -cfnet h2.domain.com-ib0

-instance_shared_dev  /dev/hdisk1 -tbdev 129.42.38.1

-u db2fenc1 db2sdin1

此命令会创建 Db2 pureScale实例 db2sdin1,以及一个名称为 h1.domain.com 且网络名为 h1.domain.com-ib0 的 Db2 成员和一个网络名为 h2.domain.com-ib0 的集群高速缓存设施 h2.domain.com。它还会将共享文件系统设备路径指定为 /dev/hdisk1 并将仲裁磁盘设置为 /dev/hdisk2。

4.5__ 成员、CF添加

在 Db2 pureScale 实例的初始设置期间,只能指定一个 Db2 成员和一个 CF。可以使用 db2iupdt 命令添加其他 Db2 成员和集群高速缓存设施。

使用 db2iupdt 命令:

从已参与 Db2 pureScale实例的主机中运行以下命令:

DB2DIR/instance/db2iupdt
-add [-m <member_host> -mnet <netname>] | [-cf <cf_host> -cfnet <netname>]
-mid <MemberId>
instname

  • DB2DIR 是 Db2 pureScale 软件的安装目录。

  • netname 表示集群互连网络名,它对应于用于在 Db2 实例中的 Db2 成员与集群高速缓存设施之间进行高速通信的通信适配器端口。

  • 如果要向具有现成成员的主机添加成员,那么新添加必须具有与现有成员完全相同的网络名(或网络名集合)。

  • (可选)对于 Db2 管理的 IBM Spectrum Scale,db2sshid 是在 IBM Spectrum Scale 域中的主机之间使用 SSH 时所需的非 root 用户标识。

  • (可选)如果要添加成员,请使用 –mid 选项来指示新成员的成员标识。

  • 对于主机名,需要使用与 hostname 命令的返回值相同的主机名格式。

  • 将 –m 选项用于成员或将 –cf 选项用于集群高速缓存设施,以指定要添加的主机类型。必须选择一个种类,但不能同时选择这两个种类。如果要将多个主机同时添加到现有实例,请使用 db2isetup 命令。