SQL Server 2017 AlwaysOn Linux上配置和维护(9)

  


Linux上Pacemaker介绍

在Windows Server操作系统上,由Windows Server Failover Cluster(WSFC)提供高可用性、故障检测和SQL Server AlwaysOn AG的自动故障转移。WSFC是一个群集资源管理器(CRM),运行在集群上的所有节点上负责维护群集的一个一致性镜像。群集管理器的目的是提供对运行在群集上的资源的高可用和容错。


在Linux操作系统上,实际上这个集群资源管理器是开源的软件Pacemaker。它主要由ClusterLabs组织提供社区贡献,Red Hat和SUSE来驱动合作开发。Pacemaker在大多数Linux发布上都是可用的,SQL Server AlwaysOn AG只在当前的Red Hat Enterprise Linux 7.3/7.4版、SUSE Linux Enterprise Server 12 SP2版和Ubuntu 16.04版支持。


Pacemaker栈由以下组件组成:

  •  Pacemaker软件本身,它类似于Windows上的群集服务。

  •  Corosync,一组通讯系统,它类似于Windows上的心跳和仲裁(不要与Heartbeat搞混了,它是功能类似于Corosync的一个Linux程序);它也负责重启失败的应用进程。

  •  libQB,一个高性能的日志、跟踪、进程间通讯和轮询系统,类似于cluster.log在Windows上如何产生的。

  •  Resource Agents,资源代理,允许Pacemaker管理服务和资源的软件,像启动或停止SQL Server AlwaysOn AG资源,像Windows上的群集资源DLL。

  •  Fence Agents,隔离代理,允许Pacemaker隔离和阻止行为异常的节点影响群集可用性。


在所有节点上安装Pacemaker

sudo yum install pacemaker pcs fence-agents-all resource-agents

查看安装的包,它们与不同的组件组成了Pacemaker栈:

  •  pcs,即Pacemaker Configuration System,Pacemaker和Corosync配置工具

  •  fence-agents-all,所有支持的隔离代理的一个集合

  •  resource-agents,所有符合Open Cluster Framework(OCF)规范的资源代理的一个仓库。


为安装 Pacemaker 和 Corosync 包时创建的默认用户设置密码

在所有节点上使用相同的密码。

sudo passwd hacluster


启用并启动pcsd服务和Pacemaker

能在重启后允许节点重新加入群集。在所有节点上运行以下命令:

sudo systemctl enable pcsd
  sudo  systemctl  start  pcsd
  sudo  systemctl  enable 起搏器


<强>创建群集

首先为了防止有集群的残余配置文件影响后期搭建,可以先执行如下命令删除已经存在的集群:

sudo  pcs  cluster  destroy  #,提醒all 节点   sudo  systemctl  enable 起搏器

然后创建并配置群集:

sudo  pcs  cluster  auth  & lt; node1>, & lt; node2>, & lt; node3>, -u  hacluster  -p  & lt; password  for  hacluster>   sudo  pcs  cluster  setup ——name  & lt; clusterName>, & lt; node1>, & lt; node2>, & lt; node3>   sudo  pcs  cluster  start ——所有   sudo  pcs  cluster  enable ——所有

起搏器配置后,使用电脑来与群集交互。在群集中的一个节点上执行所有命令。


<强>配置隔离

起搏器群集供应商需要启用STONITH,并对支持的群集安装配置隔离设备。当群集资源管理器无法确定节点或者节点上资源的状态时,隔离将群集再次带到一个已知状态。


资源级别的隔离,通过配置资源,确保当发生中断时没有数据损坏。例如,当通信链路损坏时,你试用资源级别的隔离来标记一个节点上的磁盘为过时。


节点级别的隔离确保一个节点不运行任何资源。通过重置该节点实现.Pacemaker支持多种隔离设备,依赖于你的环境。你可以使用智能电源分发单元(PDU),网络交换机,惠普国际劳工组织设备或者像VMWare STONITH代理的插件。目前,还不支持hyper - v和微软Azure的STONITH代理。


<强>注意:强禁用STONITH仅出于测试目的。如果计划在生产环境中使用起搏器,则应根据环境计划STONITH实现,并使其处于启用状态。


生产部署隔离,参考官方文档:红帽与起搏器的高可用性外接程序:隔离

SQL Server 2017 AlwaysOn Linux上配置和维护(9)