适用于 SUSE Linux Enterprise High Availability Extension 12

3 安装和基本设置

本章说明如何从头开始安装并设置 SUSE® Linux Enterprise High Availability Extension 12 。选择自动设置或手动设置。自动设置可让您在数分钟内启动并运行一个群集(可于稍后再调整任何选项),而手动设置则可让您一开始就设置好各个选项。

如果要迁移运行较早版本 SUSE Linux Enterprise High Availability Extension 的群集,或者更新属于运行中群集的节点上的软件包,请参见附录 D, 升级群集和更新软件包一章。

3.1 术语定义

本章使用了若干术语,其定义如下。

现有群集

术语现有群集指的是任何包括至少一个节点的群集。现有群集具有定义通讯通道的基本 Corosync 配置,但它们不一定已有资源配置。

多路广播

一种用于网络内一对多通讯的技术,可用于群集通讯。Corosync 支持多路广播和单路广播。如果多路广播不符合公司 IT 策略,则改为使用单路广播。

注意
注意:交换机和多路广播

如果要使用多路广播进行群集通讯,请确保交换机支持多路广播。

多路广播地址 (mcastaddr)

Corosync 管理器使用 IP 地址进行多路广播。IP 地址可以为 IPv4 或 IPv6。如果使用 IPv6 网络,则必须指定节点 ID。可以使用专用网内的任何多路广播地址。

多路广播端口 (mcastport)

用于群集通讯的端口。Corosync 使用两个端口:一个用于接收多路广播的指定 mcastport 和一个用于发送多路广播的 mcastport -1

单路广播

一种将消息发送到单个网络目标的技术。Corosync 支持多路广播和单路广播。在 Corosync 中,单路广播作为 UDP 单路广播 (UDPU) 实施。

绑定网络地址 (bindnetaddr)

Corosync 管理器应绑定的网络地址。为方便在群集间共享配置文件,Corosync 使用网络接口网络掩码来仅屏蔽用于路由网络的地址位。例如,如果本地接口是 192.168.5.92 并且网络掩码是 255.255.255.0,则 bindnetaddr 将设置为 192.168.5.0。例如,如果本地接口是 192.168.5.92 并且网络掩码是 255.255.255.192,则 bindnetaddr 将设置为 192.168.5.64

注意
注意:所有节点的网络地址

由于所有节点将使用相同的 Corosync 配置,请务必使用 bindnetaddr 之类的网络地址,而不是特定网络接口地址。

Redundant Ring Protocol (RRP)

该协议支持使用多个冗余局域网来从部分或整体网络故障中恢复。这样,只要一个网络运行正常,群集通讯就仍可继续。Corosync 支持 Totem Redundant Ring Protocol。所有参与节点上都强制实施逻辑令牌传递环以确保可靠且有序地传递消息。只有拥有令牌的节点才允许广播消息。有关更多信息,请参见 http://www.rcsc.de/pdf/icdcs02.pdf

在 Corosync 中定义了冗余通讯通道后,使用 RRP 告知群集如何使用这些接口。RRP 可具有三种模式 (rrp_mode):

  • 如果设置为 active,则 Corosync 将主动使用这两个接口。

  • 如果设置为 passive,Corosync 将选择性地通过可用网络发送消息。

  • 如果设置为 none,将会禁用 RRP。

Csync2

可用于在群集中的所有节点间(甚至在地域群集间)复制配置文件的同步工具。Csync2 可处理排入同步组的任意数量的主机。每个同步组都有自己的成员主机列表及其包含/排除模式,包含/排除模式定义了在同步组中应同步哪些文件。同步组、属于每个组的主机名以及每个组的包含/排除规则均在 Csync2 配置文件 /etc/csync2/csync2.cfg 中指定。

对于身份验证,Csync2 使用 IP 地址和同步组中的预共享密钥。需要为每个同步组生成一个密钥文件,并将其复制到所有组成员。

有关 Csync2 的更多信息,请参见 http://oss.linbit.com/csync2/paper.pdf

conntrack 工具

可与内核内连接跟踪系统交互,以便对 iptables 启用有状态包检测。High Availability Extension 使用此工具来同步群集节点之间的连接状态。有关详细信息,请参见 http://conntrack-tools.netfilter.org/

AutoYaST

AutoYaST 是能自动安装一个或多个 SUSE Linux Enterprise 系统而无需用户干预的系统。在 SUSE Linux Enterprise 上,可创建一个包含安装和配置数据的 AutoYaST 配置文件。此配置文件将告知 AutoYaST 要安装的内容以及如何配置已安装系统,以最终获得一个现成可用的系统。然后可使用此配置文件以各种方式(例如,克隆现有群集节点)进行大批量部署。

有关在各种情况下如何使用 AutoYaST 的详细说明,请参见 http://www.suse.com/doc 上的《SUSE Linux Enterprise 12 部署指南》。请参见自动安装一章。

3.2 概述

需要执行以下基本步骤来进行安装和初始群集设置。

  1. 作为外接式附件安装

    使用 YaST 安装此软件包。也可以使用 zypper 从命令行安装:

    root # zypper in -t pattern ha_sles
  2. 初始群集设置:

    在将属于群集的所有节点上安装软件后,需要执行以下步骤来初始配置群集。

    1. 定义通讯通道

    2. 可选: 定义身份验证设置

    3. 将配置传送到所有节点。虽然仅在一个节点上执行 Csync2 的配置,但需要在所有节点上启动服务 Csync2 和 xinetd

    4. 可选: 同步群集节点间的连接状态

    5. 配置服务

    6. 使群集联机。需要在所有节点上启动 Corosync 服务。

可以自动(使用引导脚本)或手动(使用 YaST 群集模块或从命令行)执行群集设置步骤。

还可使用这两种设置方法的组合,例如:使用 YaST 群集设置一个节点,然后使用 ha-cluster-join 集成更多节点。

还可使用 AutoYaST 克隆现有节点以进行大批量部署。克隆节点会安装相同的包,并具有相同的系统配置。有关细节,请参见第 3.6 节 “使用 AutoYaST 进行大批量部署”

3.3 作为外接式附件安装

使用 High Availability Extension 配置和管理群集所需的包包含在 High Availability 安装模式中。只有作为 SUSE® Linux Enterprise Server 的外接式附件安装 SUSE Linux Enterprise High Availability Extension 后,此模式才可用。有关如何安装外接式附件产品的信息,请参见 http://www.suse.com/doc 上的《SUSE Linux Enterprise 12 部署指南》。请参见“安装外接式附件产品”一章。

过程 3.1 安装 High Availability 模式
  1. root 用户身份启动 YaST 并选择软件 › 软件管理

    或者,以 root 用户身份使用 yast2 sw_single 从命令行启动 YaST 模块。

  2. 过滤器列表中选择模式,然后在模式列表中激活 High Availability 模式。

  3. 单击接受开始安装包。

    注意
    注意:在所有参与节点上安装软件包

    高可用性群集所需的软件包会自动复制到群集节点。

  4. 在将包含在群集中的所有计算机上安装 High Availability 模式。

    如果不想在要包含在群集中的所有节点上手动安装 SUSE Linux Enterprise Server 12SUSE Linux Enterprise High Availability Extension 12,可以使用 AutoYaST 克隆现有节点。有关更多信息,请参见第 3.6 节 “使用 AutoYaST 进行大批量部署”

3.4 自动群集设置 (ha-cluster-bootstrap)

ha-cluster-bootstrap 包提供了启动并运行单节点群集、加入其他节点以及从现有群集中去除节点所需的所有功能:

自动设置第一个节点

使用 ha-cluster-init 定义群集通讯所需的基本参数并(可选)设置 STONITH 机制来保护共享储存。这将为您提供一个运行中的单节点群集。

向现有群集添加节点

使用 ha-cluster-join 向群集添加更多节点。

从现有群集中删除节点

使用 ha-cluster-remove 从群集中去除节点。

所有命令都只需最少的时间和手动干预就可执行引导脚本。用于初始化和加入节点的引导脚本会在防火墙中自动打开进行群集通讯所需的端口。该配置将写入 /etc/sysconfig/SuSEfirewall2.d/services/cluster。在引导过程中设置的任何选项都可稍后使用 YaST 群集模块进行修改。

开始自动设置之前,确保使参与群集的所有节点都满足以下先决条件:

先决条件
  • 满足第 2.2 节 “软件要求”第 2.4 节 “其他要求和建议”中列出的要求。

  • 安装了 ha-cluster-bootstrap 包。

  • 已根据需要配置网络。例如,专用网可用于群集通讯,并配置了网络设备绑定。有关绑定的信息,请参见第 10 章 网络设备绑定

  • 如果要对共享储存区使用 SBD,则需要一个共享块设备来进行 SBD。不需要格式化块设备。此外,还需要准备一台适当的硬件检查包设备。有关更多信息,请参见第 17 章 储存保护

  • 所有节点都必须能够通过相同的路径(/dev/disk/by-path/.../dev/disk/by-id/...)看到该共享储存区。

过程 3.2 自动设置第一个节点

ha-cluster-init 命令用于检查 NTP 的配置并指引您完成群集通讯层 (Corosync) 的配置以及(可选)SBD 的配置,来保护共享储存。

此外,您还可以结合 -t 选项来运行脚本,让它基于模板执行其他群集配置。例如,ha-cluster-init -t ocfs2 会将某些共享储存分割成两块:1 MB 用于 SBD,余下的空间用于 OCFS2。有关该脚本的功能范围、选项的细节以及它可以创建和修改的文件的概述,请参见 ha-cluster-init 手册页。

  1. root 用户身份登录到要用作群集节点的物理机或虚拟机。

  2. 通过执行以下命令启动引导脚本

    root # ha-cluster-init

    如果 NTP 未配置为在引导时启动,将显示一条消息。该脚本还会检查硬件检查包设备(在要配置 SBD 时这点非常重要),如果不存在此类设备,将会向您发出警告。

    如果仍要继续,脚本将自动为 SSH 访问和 Csync2 同步工具生成密钥,并启动这两者所需的服务。

  3. 配置群集通讯层 (Corosync):

    1. 输入要绑定的网络地址。默认情况下,脚本将建议使用网络地址 eth0。也可以输入其他网络地址,例如地址 bond0

    2. 输入多路广播地址。脚本将建议使用可用作默认值的随机地址。

    3. 输入多路广播端口。脚本建议使用 5405 作为默认值。

  4. 要配置 SBD(可选),请输入要用于 SBD 的块设备分区的永久路径。该路径必须在群集中的所有节点中都一致。

    最后,该脚本将启动 Pacemaker 服务以使单节点群集联机,并启用 Web 管理界面 Hawk。要用于 Hawk 的 URL 将显示在屏幕上。

  5. 有关设置过程的所有细节,请查看 /var/log/ha-cluster-bootstrap.log

现在必须有一个运行中的单节点群集。使用 crm status 检查群集状态:

root # crm status
   Last updated: Thu Jul  3 11:04:10 2014
   Last change: Thu Jul  3 10:58:43 2014
   Current DC: alice (175704363) - partition with quorum
   1 Nodes configured
   0 Resources configured
      
   Online: [ alice ]
重要
重要:安全密码

引导过程创建一个名为 hacluster、密码为 linux 的 Linux 用户。需要以该用户身份登录到 Hawk。尽快用安全密码替换默认密码:

root # passwd hacluster
过程 3.3 向现有群集添加节点

如果您的群集(包含一个或多个节点)已启动并正在运行,您可以使用 ha-cluster-join 引导脚本添加更多群集节点。该脚本只需访问一个现有群集节点即可在当前计算机上自动完成基本设置。按照以下步骤执行操作。有关细节,请参见 ha-cluster-join 手册页。

如果已使用 YaST 群集模块配置现有群集节点,请在运行 ha-cluster-join 之前确保满足以下先决条件:

如果已通过 Hawk 登录到第一个节点,则可遵照群集状态中的更改并在 Web 界面中查看已激活的资源。

  1. root 用户身份登录到将要加入群集的物理机或虚拟机。

  2. 通过执行以下命令启动引导脚本:

    root # ha-cluster-join

    如果 NTP 未配置为在引导时启动,将显示一条消息。该脚本还会检查硬件检查包设备(在要配置 SBD 时这点非常重要),如果不存在此类设备,将会向您发出警告。

  3. 如果仍要继续,系统将提示您输入现有节点的 IP 地址。输入 IP 地址。

  4. 如果尚未配置两台计算机之间的无密码 SSH 访问,系统还将提示您输入现有节点的 root 密码。

    登录到指定节点后,脚本将复制 Corosync 配置、配置 SSH 和 Csync2,并使当前计算机作为新群集节点联机。除此之外,还将启动 Hawk 所需的服务。如果已配置 OCFS2 的共享储存,还将自动为 OCFS2 文件系统创建装入点目录。

  5. 对要添加到群集中的所有计算机重复上述步骤。

  6. 有关过程细节,请查看 /var/log/ha-cluster-bootstrap.log

使用 crm status 检查群集状态。如果成功添加了另一个节点,输出将如下所示:

root # crm status
   Last updated: Thu Jul  3 11:07:10 2014
   Last change: Thu Jul  3 10:58:43 2014
   Current DC: alice (175704363) - partition with quorum
   2 Nodes configured
   0 Resources configured
   
   Online: [ alice bob ]
重要
重要:检查 no-quorum-policy

添加所有节点后,检查是否需要调整全局群集选项中的 no-quorum-policy。这对双节点群集尤为重要。有关更多信息,请参见第 4.1.2 节 “选项 no-quorum-policy

过程 3.4 从现有群集中删除节点

如果您的群集(至少包含两个节点)已启动并正在运行,您可以使用 ha-cluster-remove 引导脚本从该群集中去除单个节点。您需要知道要从群集中去除的节点的 IP 地址或主机名。按照以下步骤执行操作。有关细节,请参见 ha-cluster-remove 手册页。

  1. root 用户身份登录其中一个群集节点。

  2. 通过执行以下命令启动引导脚本:

    root # ha-cluster-remove -c IP_ADDR_OR_HOSTNAME

    该脚本会启用 sshd、停止指定节点上的 Pacemaker 服务并传播要在其余节点之间使用 Csync2 同步的文件。

    如果您指定了主机名,但无法访问要去除的节点(或该主机名无法解析),脚本将通知您,并询问是否仍要去除该节点。如果您指定了 IP 地址,但无法访问该节点,该脚本将要求您输入主机名并确认是否仍要去除该节点。

  3. 要删除更多节点,请重复上面的步骤。

  4. 有关过程细节,请查看 /var/log/ha-cluster-bootstrap.log

如果日后要重新添加已去除的节点,可以使用 ha-cluster-join 来添加。有关详细信息,请参见过程 3.3, “向现有群集添加节点”

3.5 手动群集设置 (YaST)

有关初始设置所有步骤的概述,请参见第 3.2 节 “概述”

3.5.1 YaST 群集模块

以下各部分将指引您使用 YaST 群集模块完成每个设置步骤。要访问它,请以 root 用户身份启动 YaST,并选择高可用性 › 群集。也可以使用 yast2 cluster 从命令行启动模块。

如果是首次启动群集模块,它会显示向导,指引您完成进行基本设置所需的所有步骤。否则,请单击左侧面板上的类别,以访问每个步骤的配置选项。

YaST 群集模块 - 概述
图 3.1 YaST 群集模块 - 概述

YaST 群集模块会在防火墙中自动打开于当前计算机上进行群集通讯所需的端口。该配置将写入 /etc/sysconfig/SuSEfirewall2.d/services/cluster

请注意,YaST 群集模块中的一些选项仅应用于当前节点,而其他选项可自动传送到所有节点。可在以下各部分中找到有关此配置的详细信息。

3.5.2 定义通讯通道

为实现群集节点间的成功通讯,请定义至少一个通讯通道。

重要
重要:冗余通讯路径

强烈建议通过两个或更多冗余路径设置群集通讯。这可通过以下方式实现:

如果可能,请选择网络设备绑定。

过程 3.5 定义第一个通讯通道

对于群集节点间的通讯,请使用多路广播 (UDP) 或单路广播 (UDPU)。

  1. 在 YaST 群集模块中,切换到通讯通道类别。

  2. 使用多路广播:

    1. 传输协议设为多路广播

    2. 定义绑定网络地址。将此值设置为要用于群集多路广播的子网。

    3. 定义多路广播地址

    4. 定义多路广播端口

      使用上面输入的值,您已为群集定义一个通讯通道。在多路广播模式下,将对所有群集节点使用相同的 bindnetaddrmcastaddrmcastport。通过使用相同的多路广播地址,群集中的所有节点都将知晓彼此。对于不同的群集,请使用不同的多路广播地址。

      YaST 群集 - 多路广播配置
      图 3.2 YaST 群集 - 多路广播配置
  3. 使用单路广播:

    1. 传输协议设为单路广播

    2. 定义绑定网络地址。将此值设置为要用于群集单路广播的子网。

    3. 定义多路广播端口

    4. 对于单路广播通讯,Corosync 需要知道群集中所有节点的 IP 地址。对于将要加入群集的每个节点,单击添加并输入以下细节:

      • IP 地址

      • 冗余 IP 地址(仅当在 Corosync 中使用了第二个通讯通道时才需要指定)

      • 节点 ID(仅当禁用了自动生成节点 ID 选项时才需要指定)

      要修改或删除群集成员的任何地址,请使用编辑删除按钮。

      YaST 群集 - 单路广播配置
      图 3.3 YaST 群集 - 单路广播配置
  4. 默认情况下会启用自动生成节点 ID 选项。如果您使用的是 IPv4 地址,则节点 ID 是可选的;但如果使用 IPv6 地址,则必须指定节点 ID。要为每个群集节点自动生成唯一 ID(与手动为每个节点指定 ID 相比,这种做法较不容易出错),请让此选项保持启用。

  5. 定义群集名称

  6. 输入预期投票数。此值非常重要,Corosync 将使用它来为分区的群集计算法定票数。默认情况下,每个节点有 1 张投票。预期投票数必须与群集中的节点数匹配。

  7. 如果修改了现有群集的任何选项,请确认更改并关闭群集模块。YaST 会将此配置写入 /etc/corosync/corosync.conf

  8. 如果需要,可如下所述定义另一个通讯通道。或单击下一步并继续过程 3.7, “启用安全性身份验证”

过程 3.6 定义冗余通讯通道

如果由于任何原因不能使用网络设备绑定,第二个最佳选择就是在 Corosync 中定义冗余通讯通道(次环)。这样就可使用两个物理上分隔的网络进行通讯。如果一个网络发生故障,群集节点仍可通过另一个网络进行通讯。

重要
重要:冗余环和 /etc/hosts

如果配置了多个环,则每个节点都可具有多个 IP 地址。这需要在所有节点的 /etc/hosts 文件中反映出来。

  1. 在 YaST 群集模块中,切换到通讯通道类别。

  2. 请激活冗余通道。冗余通道必须使用与所定义的第一个通讯通道相同的协议。

  3. 如果使用多路广播,则定义冗余通道的绑定网络地址多路广播地址多路广播端口

    如果使用单路广播,则定义绑定网络地址多路广播端口并输入将属于群集的所有节点的 IP 地址。

    现在,您已在 Corosync 中定义另一个通讯通道,它将形成次令牌传递环。在 /etc/corosync/corosync.conf 中,主环(配置的第一个通道)和次环(冗余通道)的环号分别为 01

  4. 要告知 Corosync 如何以及何时使用其他通道,请选择要使用的 rrp_modeactivepassive)。有关模式的更多信息,请参见Redundant Ring Protocol (RRP)或单击帮助。一旦使用 RRP,将使用流控制传送协议 (SCTP)(而非 TCP)进行节点间通讯。High Availability Extension 会监视当前环的状态,并在故障后自动重新启用冗余环。也可以使用 corosync-cfgtool 手动检查环状态。使用 -h 查看可用选项。

    如果只定义了一个通讯通道,rrp_mode 将自动禁用(值 none)。

  5. 如果修改了现有群集的任何选项,请确认更改并关闭群集模块。YaST 会将此配置写入 /etc/corosync/corosync.conf

  6. 有关进一步群集配置,请单击下一步并继续第 3.5.3 节 “定义身份验证设置”

可在 /etc/corosync/corosync.conf.example 中找到 UDP 设置的示例文件。可在 /etc/corosync/corosync.conf.example.udpu 中找到 UDPU 设置的示例。

3.5.3 定义身份验证设置

下一步是为群集定义身份验证设置。可使用需要共享机密来保护和验证消息的 HMAC/SHA1 身份验证。指定的身份验证密钥(密码)将用于群集中的所有节点。

过程 3.7 启用安全性身份验证
  1. 在 YaST 群集模块中,切换到安全性类别。

  2. 激活启用安全身份验证

  3. 对于新创建的群集,请单击生成身份验证密钥文件。将创建身份验证密钥并将其写入 /etc/corosync/authkey

    YaST 群集 - 安全性
    图 3.4 YaST 群集 - 安全性

    如果希望当前计算机加入现有群集,则不用生成新的密钥文件。而是将 /etc/corosync/authkey 从一个节点复制到当前计算机(手动或使用 Csync2 皆可)。

  4. 如果修改了现有群集的任何选项,请确认更改并关闭群集模块。YaST 会将此配置写入 /etc/corosync/corosync.conf

  5. 有关进一步群集配置,请单击下一步并继续第 3.5.4 节 “将配置传送到所有节点”

3.5.4 将配置传送到所有节点

如果不想将生成的配置文件手动复制到所有节点,可使用 csync2 工具在群集中的所有节点间进行复制。

这需要以下基本步骤:

Csync2 将帮助您跟踪配置更改,并在群集节点之间保持文件同步。

  • 可以定义对操作至关重要的文件列表。

  • 可以显示这些文件的更改(对于其他群集节点)。

  • 可以使用单个命令同步配置的文件。

  • 使用 ~/.bash_logout 中的一个简单外壳脚本,您可以在从系统注销之前获得更改未同步的提醒。

http://oss.linbit.com/csync2/http://oss.linbit.com/csync2/paper.pdf 上提供了有关 Csync2 的详细信息。

过程 3.8 使用 YaST 配置 Csync2
  1. 在 YaST 群集模块中,切换到 Csync2 类别。

  2. 要指定同步组,请在同步主机组中单击添加,然后输入群集中所有节点的本地主机名。对于每个节点,必须使用 hostname 命令返回的确切字符串。

    提示
    提示:主机名解析

    如果主机名解析无法在您的网络中正常工作,您还以为每个群集节点指定主机名与 IP 地址的组合。为此,请使用字符串 HOSTNAME@IP,例如 alice@192.168.2.100。这样,Csync2 将在连接时使用 IP 地址。

  3. 单击生成预共享密钥以创建同步组的密钥文件。密钥文件将写入 /etc/csync2/key_hagroup。创建后,必须将其手动复制到群集的所有成员。

  4. 要使用通常需要在所有节点间同步的文件填充同步文件列表,请单击添加建议的文件

    YaST 群集 - Csync2
    图 3.5 YaST 群集 - Csync2
  5. 如果要从待同步的文件列表编辑添加删除文件,请使用相应按钮。必须为每个文件输入绝对路径名。

  6. 通过单击打开 Csync2 激活 Csync2。随后会执行以下命令,以在引导时自动启动 Csync2:

    root # systemctl enable csync2.socket
  7. 如果修改了现有群集的任何选项,请确认更改并关闭群集模块。YaST 随即将 Csync2 配置写入 /etc/csync2/csync2.cfg。要立即启动同步过程,请继续过程 3.9, “使用 Csync2 同步配置文件”

  8. 有关进一步群集配置,请单击下一步并继续第 3.5.5 节 “同步群集节点间的连接状态”

过程 3.9 使用 Csync2 同步配置文件

要使用 Csync2 成功同步文件,请确保满足以下先决条件:

  • 同一 Csync2 配置在所有节点上均可用。如过程 3.8, “使用 YaST 配置 Csync2”所述配置后,将文件 /etc/csync2/csync2.cfg 手动复制到所有节点。建议在要使用 Csync2 同步的文件列表中包括此文件。

  • 将执行步骤 3 时在一个节点上生成的 /etc/csync2/key_hagroup 文件复制到群集中的所有节点。它是 Csync2 在进行身份验证时需要使用的文件。但是,请不要在其他节点上重新生成该文件,因为所有节点上的文件都必须相同。

  • Csync2 和 xinetd 必须正在所有节点上运行。

    注意
    注意:引导时启动服务

    在所有节点上执行以下命令,以便在引导时自动启动这两个服务并立即启动 xinetd

    root # systemctl enable csync2.socket
    root # systemctl enable xinetd.service
    root # systemctl start xinetd.service
  1. 在要其复制配置的节点上,执行以下命令:

    root # csync2 -xv

    这会将文件推送到其他节点,从而一次同步所有文件。如果所有文件都成功同步,则 Csync2 将完成,不会报错。

    如果在其他节点(不仅在当前节点)上对要同步的一个或多个文件进行了修改,则 Csync2 将报告冲突。您将得到类似以下内容的输出:

    While syncing file /etc/corosync/corosync.conf:
    ERROR from peer hex-14: File is also marked dirty here!
    Finished with 1 errors.
  2. 如果确信当前节点上的文件版本是最佳版本,可以通过强制使用此文件并重新同步来解决冲突:

    root # csync2 -f /etc/corosync/corosync.conf
    csync2 -x

有关 Csync2 选项的更多信息,请运行 csync2 -help

注意
注意:在任何更改后推送同步

Csync2 仅推送更改。它会在节点间连续同步文件。

每次更新需要同步的文件时,都必须将更改推送到其他节点:对已更改的节点运行 csync2 -xv。如果对未更改文件的任何其他节点运行此命令,则不会执行任何操作。

3.5.5 同步群集节点间的连接状态

要对 iptables 启用有状态包检测,请按照以下基本步骤配置和使用 conntrack 工具:

  1. 使用 YaST 配置 conntrackd

  2. conntrackd 配置一个资源(类:ocf,提供程序:heartbeat)。如果使用 Hawk 添加资源,则使用 Hawk 推荐的默认值。

配置 conntrack 工具后,可对 Linux 虚拟服务器使用这些工具,请参见负荷平衡

过程 3.10 使用 YaST 配置 conntrackd

使用 YaST 群集模块配置用户空间 conntrackd。这需要未用于其他通讯通道的专用网络接口。守护程序可随后通过资源代理启动。

  1. 在 YaST 群集模块中,切换到配置 conntrackd 类别。

  2. 选择专用接口来同步连接状态。会自动检测所选接口的 IPv4 地址并显示在 YaST 中。该地址必须已经配置并且必须支持多路广播。

  3. 定义要用于同步连接状态的多路广播地址

  4. 组号中,定义要将连接状态同步到其中的组的数字 ID。

  5. 单击生成 /etc/conntrackd/conntrackd.conf 来创建 conntrackd 的配置文件。

  6. 如果修改了现有群集的任何选项,请确认更改并关闭群集模块。

  7. 有关进一步群集配置,请单击下一步并继续第 3.5.6 节 “配置服务”

YaST 群集 - conntrackd
图 3.6 YaST 群集 - conntrackd

3.5.6 配置服务

在 YaST 群集模块中,定义是否在引导节点时启动其上的特定服务。也可使用模块手动启动和停止服务。为使群集节点联机并启动群集资源管理器,Pacemaker 必须作为服务运行。

过程 3.11 启用 Pacemaker
  1. 在 YaST 群集模块中,切换到服务类别。

  2. 要在每次引导此群集节点时启动 Pacemaker,请在引导组中选择相应选项。如果在引导组中选择,则必须在每次引导此节点时手动启动 Pacemaker。要手动启动 Pacemaker,请使用以下命令:

    root # systemctl start pacemaker.service
  3. 要立即启动或停止 Pacemaker,请单击相应按钮。

  4. 如果修改了现有群集节点的任何选项,请确认更改并关闭群集模块。请注意,该配置仅应用于当前计算机,而不是所有群集节点。

    如果已经使用 YaST 群集模块专门执行初始群集设置,则现在就已完成基本配置步骤。进行第 3.5.7 节 “使群集联机”

    YaST 群集 - 服务
    图 3.7 YaST 群集 - 服务

3.5.7 使群集联机

完成初始群集配置后,在每个群集节点上启动 Pacemaker 服务,以使堆栈联机:

过程 3.12 启动 Pacemaker 并检查状态
  1. 登录到现有节点。

  2. 检查服务是否已在运行。

    root # systemctl status pacemaker.service

    如果尚未启动,立即启动 Pacemaker:

    root # systemctl start pacemaker.service
  3. 对每个群集节点重复上述步骤。

  4. 在某个节点上,使用 crm status 命令检查群集状态。如果所有节点都联机,则输出应类似于如下内容:

    root # crm status
          Last updated: Thu Jul  3 11:07:10 2014
          Last change: Thu Jul  3 10:58:43 2014
          Current DC: alice (175704363) - partition with quorum
          2 Nodes configured
          0 Resources configured
          
          Online: [ alice bob ]

    此输出表示群集资源管理器已启动,可以管理资源了。

完成基本配置并使节点处于联机状态后,可以开始配置群集资源。使用某种群集管理工具,例如 crm 外壳 (crmsh) 或 HA Web Konsole。有关更多信息,请参见第 5 章 配置和管理群集资源(Web 界面)第 6 章 配置和管理群集资源(命令行)

3.6 使用 AutoYaST 进行大批量部署

以下过程适合用于部署作为已存在节点的克隆的群集节点。克隆节点会安装相同的包,并具有相同的系统配置。

过程 3.13 使用 AutoYaST 克隆群集节点
重要
重要:相同硬件

此方案假设您要将 SUSE Linux Enterprise High Availability Extension 12 部署到一组具有相同硬件配置的计算机上。

如果需要在不同硬件上部署群集节点,请参见《SUSE Linux Enterprise 12 部署指南》的“自动安装”一章中的“基于规则的自动安装”一节,该文档的网址为 http://www.suse.com/doc

  1. 确保已正确安装和配置要克隆的节点。有关细节,请分别参见第 3.3 节 “作为外接式附件安装”以及第 3.4 节 “自动群集设置 (ha-cluster-bootstrap)”第 3.5 节 “手动群集设置 (YaST)”

  2. 按照《SUSE Linux Enterprise 12 部署指南》中的概要说明进行简单的大批量安装。其中包括以下基本步骤:

    1. 创建 AutoYaST 配置文件。使用 AutoYaST GUI 基于现有系统配置创建和修改配置文件。在 AutoYaST 中选择 High Availability 模块并单击克隆按钮。如果需要,调整其他模块中的配置,并将生成的控制文件另存为 XML 格式的文件。

      如果您已配置 DRBD,也可以在 AutoYaST GUI 中选择并克隆此模块。

    2. 确定 AutoYaST 配置文件的来源以及要传递到其他节点的安装例程的参数。

    3. 确定 SUSE Linux Enterprise Server 和 SUSE Linux Enterprise High Availability Extension 安装数据的来源。

    4. 确定并设置自动安装的引导方案。

    5. 通过手动添加参数或创建 info 文件,将命令行传递到安装例程。

    6. 启动并监视自动安装进程。

成功安装克隆节点后,执行以下步骤将克隆节点加入群集中:

过程 3.14 使克隆节点处于联机状态
  1. 第 3.5.4 节 “将配置传送到所有节点”中所述使用 Csync2 将密钥配置文件从已配置的节点传送到克隆节点。

  2. 要使节点联机,请按第 3.5.7 节 “使群集联机”中所述在克隆的节点上启动 Pacemaker 服务。

现在克隆节点将加入群集,因为 /etc/corosync/corosync.conf 文件已通过 Csync2 应用到克隆节点。CIB 将在群集节点间自动同步。

打印此页