因为大多数生产环境使用 DB2 pureScale的业务系统通常是 ERP或业务核心,所以出于性能、稳定性与厂商支持的考虑,大多数企业都会选择 power平台。所以这篇笔记只是针对 AIX 上 DB2 purescale 快速部署规划指南,并非 x86 平台。
在部署前,应该根据对业务系统负载特征(并发用户,交易吞吐量,读写分布等)、未来 2年增长的数据量,预估 CPU、内存计算资源与所需要的存储空间。据此,选择采购相应的 power服务器与相应的存储设备。
最好请 IBM 经验丰富的数据库架构师,根据客户业务系统需求情况,进行 DB2 pureScale 环境物理架构设计。笔者这块没多少经验,只知道些皮毛。
这一步最好设计出 DB2 purescale 物理架构图,方便下面的快速部署实施。
规划原则:(from IBM 大牛)
.
1.1__ POWER 7 or POWER 8系列服务器选择
根据 DB2 purescale 规划选则服务器及其 CPU、内存配置。
1.2__ 网络配置选择:
一般建议 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 集群服务仲裁磁盘
例如下表的规划:
物理卷 | User Label | 用途 | 文件系统挂载点 |
---|---|---|---|
hdisk6 | instgpfs1 | pureScale 实例共享 GPFS 文件系统 | /db2fs/db2inst |
hdisk7 | votegpfs1 | GPFS 仲裁盘 | |
hdisk8 | Data1 | 数据 GPFS 文件系统 | /db2fs/db2data |
hdisk9 | Data2 | 数据 GPFS 文件系统 | /db2fs/db2data |
hdisk10 | Data3 | 数据 GPFS 文件系统 | /db2fs/db2data |
hdisk11 | Data4 | 数据 GPFS 文件系统 | /db2fs /db2data |
hdisk12 | Data5 | 数据 GPFS 文件系统 | /db2fs/db2data |
hdisk13 | Plog1 | 日志 GPFS 文件系统 | /db2fs/db2log |
2.0__ 选择受支持的 AIX 版本
表 1. 系统最低要求 - AIX 操作系统版本和技术级别
AIX版本 | 技术级别 | 最小 Service Pack (SP) 级别 | AIX APAR |
---|---|---|---|
AIX 7.1 | 3 | 5 | |
AIX 7.1 | 4 | 1 | |
AIX 7.2 | 0 | 1 | |
AIX 7.2 | 1 | 1 |
“oslevel -s ”验证安装的 AIX版本
2.1__ 安装多路径软件 SDDPCM
这个软件和 AIX版本、存储型号相关,用于管理 pureScale集群的共享盘,总共包括下面三个软件,安装顺序如下:
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 server
to sync to its own system clock
fudge 127.127.1.0
driftfile /etc/ntp.drift
tracefile /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.11
driftfile /etc/ntp.drift
tracefile /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
执行 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.1__ 用户规划
需要以下用户才能创建 Db2 pureScale 实例:
表 1. 用户和组示例
| 必需的用户 | 用户名 | 组名 |
| ------------ | ------------ | ------------ |
| 实例所有者 | db2sdin1 | db2iadm1 |
| 受防护用户 | db2sdfe1 | db2fadm1 |
| 非 root 用户标识,以在主机之间使用 SSH | db2ssh1 | db2iadm1 |
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集群文件系统
物理卷 | User Label | 用途 | 文件系统挂载点 |
---|---|---|---|
hdisk6 | instgpfs1 | pureScale 实例共享 GPFS 文件系统 | /db2fs/db2inst |
hdisk7 | votegpfs1 | GPFS 仲裁盘 | |
hdisk8 | Data1 | 数据 GPFS 文件系统 | /db2fs/db2data |
hdisk9 | Data2 | 数据 GPFS 文件系统 | /db2fs/db2data |
hdisk10 | Data3 | 数据 GPFS 文件系统 | /db2fs/db2data |
hdisk11 | Data4 | 数据 GPFS 文件系统 | /db2fs /db2data |
hdisk12 | Data5 | 数据 GPFS 文件系统 | /db2fs/db2data |
hdisk13 | Plog1 | 日志 GPFS 文件系统 | /db2fs/db2log |
必须使用 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.5__ 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.6__ 成员、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
以后,我再结合行业应用实例,写一篇完整的安装部署示例,此篇文章只是个简要的指南。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞7
添加新评论3 条评论
2019-09-03 17:08
db2xiaobai: @atpeace331 我看v10.6版本的安装包,解压后的base目录下有安装gpfs的安装包,但是手动安装的rpm包的时候报错,下载了相关的modutils rpm包安装后还是报最下面的错误。。。。。 [root@db2-pureScale1 base]# ll total 11968 -r--r--r--. 1 bin bin 11182009 Dec 22 2015 gpfs.base-3.5.0-0.x86_64.rpm -r--r--r--. 1 bin bin 221562 Dec 22 2015 gpfs.docs-3.5.0-0.noarch.rpm -r--r--r--. 1 bin bin 500281 Dec 22 2015 gpfs.gpl-3.5.0-0.noarch.rpm -r--r--r--. 1 bin bin 96641 Dec 22 2015 gpfs.msg.en_US-3.5.0-0.noarch.rpm -rw-r--r-- 1 root root 244845 Sep 4 16:27 modutils-2.4.18-3.7x.src.rpm [root@db2-pureScale1 base]# rpm -ivh gpfs.base-3.5.0-0.x86_64.rpm error: Failed dependencies: modutils is needed by gpfs.base-3.5.0-0.x86_64
atpeace331: @db2xiaobai 得下载 x86平台的 gpfs 包,power平台的包不可以用的。还有trace文件里应该有更详细的信息
db2xiaobai: @atpeace331 你好这个也是报错,相同报错,查看gpfs安装日志如下:是不是这几个安装包的问题?我查了IBM官网,找到补丁 补丁包: GPFS-3.5.0.4-power-Linux ,能处理这个问题么?还是说得需要下载redhat的gpfsrpm包? ================================= "GPFS" is not installed. 3.5.0.24 Installing "gpfs.base-3.5.0-0 rpm" Failure Installing "gpfs.gpl-3.5.0-0 rpm" Failure Installing "gpfs.msg.en_US-3.5.0-0 rpm" Failure Installing "gpfs.docs-3.5.0-0 rpm" Failure DBI1065E Program installGPFS terminated prematurely. Explanation: An error has occurred during the execution and that has caused this program to terminate prematurely. User response: Correct the problem and try the command again. ====================================
atpeace331: @db2xiaobai ./db2_install -b /opt/ibm/db2/V10.5 -p SERVER -f PURESCALE -l /tmp/db2_purescale_install.log -t /tmp/db2_purescale_install.trc 使用这个命令在debug模式安装,然后不错后,查看日志文件 db2_purescale_install.log 和跟踪文件 db2_purescale_install.trc
db2xiaobai: @atpeace331 你好这个 我有过预先检查,除了一个32位的libstdc.so.5的包,没有安装以外,其他 的都没问题,/tmp下的安装日志报错只有一个就是GPFS组件安装不上,然后回滚配置。下面是我的机器版本以及安装的db2版本,及/tmp下的安装日志报错。 系统版本 [root@db2-purescale1 server_t]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.7 (Santiago) [root@db2-purescale1 server_t]# uname -a Linux db2-purescale1 2.6.32-573.el6.x86_64 #1 SMP Wed Jul 1 18:23:37 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux 安装报错 ERROR: DBI20105E An error occurred while installing the following file set: "gpfs". Because these files were not successfully installed, functionality that depends on these files might not work as expected.
atpeace331: @db2xiaobai 这个你只能查查 /tmp下的安装日志看看,或者,你在安装前,使用 db2prereqcheck 命令检查一下环境,然后再进行安装
2019-05-13 18:24
2019-04-23 21:16