安装 Pacemaker 集群软件堆栈

Pacemaker 是一个开源的高可用性集群管理器软件。 要确保安装正确,请执行提供的过程。

重要信息: 本主题中的信息 (包括预设置核对表和过程) 仅适用于 V 11.5.5 和更低版本。 从 11.5.6 版本开始,用户可以使用 Pacemaker 使用 Db2 安装程序进行安装。 有关更多信息,请参阅 使用 Db2 安装程序安装 Pacemaker
重要信息: Db2 11.5.8 及更高版本中,使用 Pacemaker 作为集成集群管理器时,支持相互故障转移高可用性。Db2 11.5.6 及更高版本中,用于自动故障转移到 HADR 备用数据库的 Pacemaker 集群管理器随 Db2打包并安装。 在 Db2 11.5.5中,包含了 Pacemaker ,并且可用于生产环境。 在 Db2 11.5.4中, Pacemaker 仅作为技术预览包含在开发,测试和概念验证环境中。

准备工作

确保您具有旨在用于 Db2Pacemaker 集群软件包,方法是从 IBM 市场营销注册服务 站点下载该软件包。 在继续下一部分之前,请验证是否满足所有先决条件和必要条件。 有关这些先决条件的更多信息,请参阅 使用 Pacemaker的集成解决方案的先决条件

安装前核对表

  • 已设置实例用户标识和组标识。

  • /etc/hosts 文件包含两个主机,遵循 主机文件设置中列出的格式。

  • 这两个主机都在其以太网网络接口之间具有 TCP/IP 连接。

  • Root 用户标识和实例用户标识都可以在两个主机之间使用 ssh ,同时使用长主机名和短主机名。

  • Pacemaker 集群软件已下载到两个主机。

  • 确保未安装任何非Db2 提供的 Pacemaker 组件。

  • 确保对系统存储库启用了 pacemaker 软件包依赖关系。
以下是说明安装前核对表的工作方式的示例。 此示例使用了 AWS 环境:
  1. 主机信息
    表 1. 主机信息示例
    Hostname eth0 设备的 IP 地址

    短格式:ip-172-31-15-79

    长格式:ip-172-31-15-79.us-east-2.compute.internal

    172.31.15.79

    短格式:ip-172-31-10-145

    长格式:ip-72-31-10-145.us-east-2.compute.internal

    172.31.10.145
  2. 在两个主机中都设置了 /etc/hosts :
    127.0.0.1 localhost localhost.localdomain 
    localhost4 localhost4.localdomain4 
    ::1 localhost localhost.localdomain 
    localhost6 localhost6.localdomain6 
    
    172.31.15.79 ip-172-31-15-79.us-east-2.compute.internal ip-172-31-15-79 
    172.31.10.145 ip-172-31-10-145.us-east-2.compute.internal ip-172-31-10-145
    127.0.0.1 localhost localhost.localdomain 
    localhost4 localhost4.localdomain4 
    ::1 localhost localhost.localdomain 
    localhost6 localhost6.localdomain6 
    
    172.31.15.79 ip-172-31-15-79.us-east-2.compute.internal ip-172-31-15-79 
    172.31.10.145 ip-172-31-10-145.us-east-2.compute.internal ip-172-31-10-145
  3. 可以在这两台主机之间执行 TCP/IP ping 操作:
    • ip-172-31-15-79 上,输入 ping -I 172.31.15.79 172.31.10.145
    • ip-172-31-10-145 上,输入 ping -I 172.31.10.145 172.31.15.79
  4. 实例用户标识/组标识:db2inst1 / db2iadm1
    可以使用以下命令来生成这些标识:
    groupadd db2iadm1
    useradd -g db2iadm1 -m -d /home/db2inst1 db2inst1
    验证是否已创建这些标识。 为此,请尝试使用提供的用户和密码登录:
    [root@ip-172-31-15-79 server]# grep db2iadm1 /etc/group
    db2iadm1:x:1001:
    
    [root@ip-172-31-15-79 ec2-user]# grep db2inst1 /etc/passwd
    db2inst1:x:1001:1001::/home/db2inst1:/bin/bash
  5. SSH 访问将通过 root 用户标识和实例用户标识在这两台主机之间使用长主机名和短主机名。
    ip-172-31-15-79 上以 root 用户身份,可以成功运行以下命令:
    ssh ip-172-31-15-79 -l root ls
    ssh ip-172-31-15-79.us-east-2.compute.internal -l root ls
    ssh ip-172-31-10-145 -l root ls
    ssh ip-172-31-10-145.us-east-2.compute.internal -l root ls
    ip-172-31-10-145 上以 root 用户身份,可以成功运行以下命令:
    ssh ip-172-31-15-79 -l root ls
    ssh ip-172-31-15-79.us-east-2.compute.internal -l root ls
    ssh ip-172-31-10-145 -l root ls
    ssh ip-172-31-10-145.us-east-2.compute.internal -l root ls
  6. 通过运行以下命令,确保未安装任何非Db2 提供的 Pacemaker 组件:
    # rpm -q corosync
    package corosync is not installed
    
    # rpm -q pacemaker
    package pacemaker is not installed
    
    # rpm -q crmsh
    package crmsh is not installed
    
    # rpm -q cluster-glue
    package cluster-glue is not installed
  7. Db2 软件的位置: 目录 /root/db2Image 在两台主机上都存在。
  8. Pacemaker 集群软件包 tar 文件存在于两台主机上的 /tmp 中。
    每个 tarball 都遵循以下命名约定:
    • Db2 版本
    • Pacemaker
    • YYYYMMDD 格式的日期
    • Linux 发行版
    • Linux 体系结构
    Db2_v11.5.4.0_Pacemaker_20200418_RHEL8.1_x86_64.tar.gz例如:
    [root@ip-172-31-15-79 tmp]# ls -al *.gz
    -rw-r--r--. 1 ec2-user ec2-user 10710023 Dec 24 21:32 
    Db2_v11.5.4.0_Pacemaker_20200418_RHEL8.1_x86_64.tar.gz
    
    [root@ip-172-31-10-145 tmp]# ls -al *.gz
    -rw-r--r--. 1 ec2-user ec2-user 10710023 Dec 24 21:32
    Db2_v11.5.4.0_Pacemaker_20200418_RHEL8.1_x86_64.tar.gz 

关于本任务

遵循安装 Pacemaker 集群软件堆栈的过程。

过程

  1. 在第一台主机 ip-172-31-15-79 上,以 root 用户身份在 /tmp 文件夹中将 tar 文件解压缩。
    • cd /tmp

    • tar -zxf Db2_v11.5.4.0_Pacemaker_20200418_RHEL8.1_x86_64.tar.gz

    • 以上命令将创建目录 Db2_v11.5.4.0_Pacemaker_20200418_RHEL8.1_x86_64

      此目录将包含以下目录树:
      Db2/
      Db2agents/
      RPMS/
      RPMS/<architecture>
      RPMS/noarch
      SRPMS/ 
      注: <architecture> 变量将根据您的硬件而有所不同。 在 Intel/AMD 上,它将为 x86_64。 在 POWER LE 上,它将为 ppcle。 对于 z-system,它将为 s390x
  2. 对于 RHEL 8.1,请安装 epel-release ,然后在 untarred Pacemaker 目录中安装 RPM:
    1. cd /tmp/Db2_v11.5.4.0_Pacemaker_20200418_RHEL8.1_x86_64/RPMS
    2. dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    3. dnf install */*.rpm
    样本输出:
    [root@ip-172-31-10-145 RPMS]# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    Red Hat Update Infrastructure 3 Client Configuration 2.0 kB/s | 2.1 kB     00:01    
    Red Hat Enterprise Linux 8 for x86_64 - AppStream fr  30 kB/s | 2.8 kB     00:00    
    Red Hat Enterprise Linux 8 for x86_64 - BaseOS from   26 kB/s | 2.4 kB     00:00    
    epel-release-latest-8.noarch.rpm                      16 kB/s |  21 kB     00:01    
    Dependencies resolved.
    =====================================================================================
     Package               Arch            Version           Repository             Size
    =====================================================================================
    Installing:
     epel-release          noarch          8-7.el8           @commandline           21 k
    
    Transaction Summary
    =====================================================================================
    Install  1 Package
    
    Total size: 21 k
    Installed size: 30 k
    Is this ok [y/N]: y
    Downloading Packages:
    Running transaction check
    Transaction check succeeded.
    Running transaction test
    Transaction test succeeded.
    Running transaction
      Preparing        :                                                             1/1 
      Installing       : epel-release-8-7.el8.noarch                                 1/1 
      Running scriptlet: epel-release-8-7.el8.noarch                                 1/1 
      Verifying        : epel-release-8-7.el8.noarch                                 1/1 
    
    Installed:
      epel-release-8-7.el8.noarch                                                        
    
    Complete!
    
    
    [root@ip-172-31-10-145 RPMS]# dnf install */*.rpm
    Extra Packages for Ente     [===                   ] ---  B/s |   0  B     --:-- ETA
    Extra Packages for Ente     [===                   ] ---  B/s |   0  B     --:-- ETA
    Extra Packages for Ente     [   ===                ] ---  B/s |   0  B     --:-- ETA
    Extra Packages for Ente 74% [================      ]  11 MB/s | 3.2 MB     00:00 ETA
    Extra Packages for Enterprise Linux 8 - x86_64       1.8 MB/s | 4.3 MB     00:02
        
    Last metadata expiration check: 0:00:01 ago on Tue 24 Dec 2019 08:43:32 PM UTC.
    Dependencies resolved.
    =====================================================================================
     Package               Arch   Version          Repository                       Size
    =====================================================================================
    Installing:
     crmsh                 noarch 4.1.0-0          @commandline                     717 k
     mcrmsh-scripts        noarch 4.1.0-0          @commandline                     30 k
     pacemaker-cts         noarch 2.0.2-1.el8      @commandline                     2.0 M
    
    .
    .
    .
    
    Installed:
      crmsh-4.1.0-0.noarch                                                               
      crmsh-scripts-4.1.0-0.noarch                                                       
      pacemaker-cts-2.0.2-1.el8.noarch                                                   
      pacemaker-doc-2.0.2-1.el8.noarch                                                   
      pacemaker-nagios-plugins-metadata-2.0.2-1.el8.noarch                               
      pacemaker-schemas-2.0.2-1.el8.noarch                                               
      python3-parallax-1.0.5-1.el8.noarch                                                
      corosync-3.0.3-1.el8.x86_64                                                        
      corosync-debuginfo-3.0.3-1.el8.x86_64                                              
      corosync-debugsource-3.0.3-1.el8.x86_64                                            
      corosynclib-3.0.3-1.el8.x86_64                                                     
      corosynclib-debuginfo-3.0.3-1.el8.x86_64                                           
      corosynclib-devel-3.0.3-1.el8.x86_64                                               
      corosync-vqsim-3.0.3-1.el8.x86_64                                                  
      corosync-vqsim-debuginfo-3.0.3-1.el8.x86_64                                        
      kronosnet-debugsource-1.13-1.el8.x86_64                                            
      ldirectord-4.4.0-1.el8.x86_64                                                      
      libknet1-1.13-1.el8.x86_64                            
      .
      .
      .
      libaio-0.3.112-1.el8.x86_64                                                        
      gssproxy-0.8.0-14.el8.x86_64                                                       
      libqb-1.0.3-10.el8.x86_64                                                          
      device-mapper-persistent-data-0.8.5-2.el8.x86_64                                   
      libqb-devel-1.0.3-10.el8.x86_64                                                    
      rpcbind-1.2.5-4.el8.x86_64                                                         
    
    Complete!
    对于 SLES 15 SP1,添加后端存储库,后跟未启动的 Pacemaker 目录中的 RPM:
    1. cd /tmp/Db2_v11.5.4.0_Pacemaker_20200418_SLES15SP1_x86_641/RPMS
    2. zypper addrepo -fc http://download.opensuse.org/repositories/openSUSE:/Backports:/SLE-15-SP1/standard/openSUSE:Backports:SLE-15-SP1.repo
    3. zypper install --allow-unsigned-rpm {noarch,x86_64}/*.rpm
  3. 验证是否安装了以下程序包: 对于不同的体系结构和 Linux 发行版,输出可能稍有不同。 所有程序包都应该会在输出中包含 db2pcmk 文本。 例如:
    [root@ip-172-31-15-79 RPMS]# rpm -q corosync 
    corosync-3.0.3-1.db2pcmk.el8.x86_64 
    [root@ip-172-31-15-79 RPMS]# rpm -q pacemaker 
    pacemaker-2.0.2-1.db2pcmk.el8.x86_64
    [root@ip-172-31-15-79 RPMS]# rpm -q crmsh 
    crmsh-4.1.0-0.db2pcmk.el8.noarch
  4. db2cm 实用程序从集群软件目录复制到实例 sqllib/bin 目录:
    cp /tmp/Db2_v11.5.4.0_Pacemaker_20200418_RHEL8.1_x86_64/Db2/db2cm /home/db2inst1/sqllib/bin
    chmod 755 /home/db2inst1/sqllib/bin/db2cm
  5. 在这两台主机上,将资源代理程序脚本(db2hadrdb2instdb2ethmon)从 /tmp/Db2agents 复制到 /usr/lib/ocf/resource.d/heartbeat/
    /home/db2inst1/sqllib/bin/db2cm -copy_resources /tmp/Db2_v11.5.4.0_Pacemaker_20200418_RHEL8.1_x86_64/Db2agents -host ip-172-31-10-145
    /home/db2inst1/sqllib/bin/db2cm -copy_resources /tmp/Db2_v11.5.4.0_Pacemaker_20200418_RHEL8.1_x86_64/Db2agents -host ip-172-31-15-79
  6. 在第二台主机上重复步骤 1 到步骤 4。