4 设置投票间服务 #
本章介绍投票间的设置和配置选项、如何将投票间配置同步到所有站点和仲裁方、如何启用和启动投票间服务,以及如何在投票间的服务运行时重新配置投票间。
4.1 投票间配置和设置选项 #
默认的投票间配置为 /etc/booth/booth.conf
。此文件必须在 Geo 群集的所有站点(包括仲裁方)上相同。要使投票间配置在所有站点和仲裁方上同步,请根据第 4.5 节 “将投票间配置同步到所有站点和仲裁方”中所述使用 Csync2。
/etc/booth
和文件的所有权
目录 /etc/booth
及其包含的所有文件需属于用户 hacluster
和组 haclient
。每当从此目录复制新文件时,请使用 cp
命令的 -p
选项来保留所有权。或者,在创建新文件时,请随后使用 chown
hacluster:haclient 文件
设置用户和组。
对于包含多个 Geo 群集的设置,可以“共享”同一个仲裁方(从 SUSE Linux Enterprise High Availability Extension 12 开始)。通过提供多个投票间配置文件,可以在同一个仲裁方上启动多个投票间实例,其中每个投票间实例在不同的端口上运行。这样,便可以使用一台计算机充当不同 Geo 群集的仲裁方。有关如何为多个 Geo 群集配置投票间的细节,请参见第 4.4 节 “使用多租户投票间设置”。
为了防止恶意方中断投票间服务,可以基于共享密钥配置身份验证来与投票间通讯。有关细节,请参见例 4.1 “投票间配置文件”中的5。与不同投票间服务器通讯的所有主机都需要此密钥。因此,请确保在 Csync2 配置中包含密钥文件,或者在所有参与方中手动同步此文件。
4.2 自动票据与手动票据 #
票据授予在特定群集站点上运行某些资源的权限。系统支持以下两种类型的票据:
自动票据由
boothd
守护程序控制。手动票据仅可由群集管理员管理。
自动票据和手动票据具有以下属性:
自动票据和手动票据可以定义在一起:您可以在同一个 Geo 群集中定义并使用自动票据和手动票据。
手动票据管理仍然是手动进行的:对于手动控制的票据,无法进行自动票据管理。手动票据不需要进行仲裁选择,无法自动故障转移,也没有失效时间。
手动票据不会自动转移:手动授予给某个站点的票据会一直保留在该站点上,直到它们被手动撤消。即使该站点变为脱机状态,该票据也不会转移到其他站点。此行为可确保依赖于某个票据的服务始终保留在特定的站点上,不会转移到其他站点。
用于管理这两种类型的票据的命令是相同的:手动票据与自动票据使用相同的命令来管理(例如
grant
或revoke
)。如果只使用手动票据,则不需要仲裁方: 如果在 Geo 群集中只配置手动票据,则不需要仲裁方,因为手动票据管理不需要仲裁决策。
要配置票据,请使用 /etc/booth/booth.conf
配置文件(更多信息请参见第 4.3 节 “使用默认投票间设置”)。
4.3 使用默认投票间设置 #
如果您是按《Geo Clustering Quick Start》(Geo 群集快速入门)中所述使用 ha-cluster-bootstrap
脚本设置基本 Geo 群集的,那么该脚本已使用最小参数集在所有站点上创建默认的投票间配置。要扩展或微调最小投票间配置,请参考例 4.1或第 4.4 节 “使用多租户投票间设置”中的示例。
要添加或更改投票间所需的参数,请手动编辑投票间配置文件,或使用 YaST 的 yast2 geo-cluster
将它启动(或者启动 YaST,然后选择 › )。
transport = UDP 1 port = 9929 2 arbitrator = 192.168.203.100 3 site = 192.168.201.100 4 site = 192.168.202.100 4 authfile = /etc/booth/authkey 5 ticket = "ticket-nfs" 6 mode = MANUAL 7 ticket = "ticketA" 6 expire = 600 8 timeout = 10 9 retries = 5 10 renewal-freq = 30 11 before-acquire-handler12 = /etc/booth/ticket-A13 db-1 14 acquire-after = 60 15 ticket = "ticketB" 6 expire = 600 8 timeout = 10 9 retries = 5 10 renewal-freq = 30 11 before-acquire-handler12 = /etc/booth/ticket-B13 db-8 14 acquire-after = 60 15
用于站点间通讯的传输协议。仅支持 UDP,但将来可支持其他传输层。因此,目前可以省略此参数。 | |
用于在每个站点上投票间实例之间通讯的端口。如果不使用默认端口 ( | |
用作仲裁方的计算机的 IP 地址。请为 Geo 群集设置中要使用的每个仲裁方添加一个项。 | |
用于站点上
如果您是使用 | |
可选的参数。基于共享密钥为客户端和服务器启用投票间身份验证。此参数指定密钥文件的路径。 密钥要求 #
| |
将由投票间或群集管理员管理的票据。请为每个票据添加一个 | |
可选的参数。定义票据模式。默认情况下,所有票据均由投票间管理。要定义由管理员管理的票据(手动票据),请将
mode 参数设为 手动票据没有 expire、 renewal-freq和 retries 参数。 | |
可选的参数。定义票据的失效时间,以秒为单位。已获得票据的站点将会定期续订票据。如果投票间在截至所定义的失效时间内没有收到票据续订信息,票据将被撤消并授予其他站点。如果没有指定到期时间,默认情况下,票据将于 | |
可选的参数。定义超时期限,以秒为单位。如果投票间未在此期限内收到回复,则在该段时间过后,投票间将重发送包。定义的超时应足够长,以便包能够进入其他投票间成员(所有仲裁方和站点)。 | |
可选的参数。定义投票间在放弃等待其他站点的确认之前需要重试发送包多少次。小于 | |
可选的参数。设置票据续订频率周期。默认情况下,票据续订每隔失效时间的一半发生一次。如果在持续较长的一段时间内网络可靠性往往降低,则建议以更高的频率续订票据。在每次续订之前,应运行 | |
可选的参数。支持一个或多个脚本。如果使用多个脚本,则每个脚本可以负责不同的检查,例如群集状态、数据中心连接、环境运行状况传感器和其他检查。将所有脚本储存在目录
此目录中的脚本按字母顺序执行。在 | |
产品中包含的
假设 | |
| |
可选的参数。票据丢失后,投票间将额外等待这段时间,然后再获取票据。这样,丢失票据的站点便可以通过停止资源或者屏蔽资源来放弃资源。典型的延迟为
如果您不确定停止资源、降级资源或屏蔽节点的时间有多长(该时间取决于 |
4.3.1 手动编辑投票间配置文件 #
以
root
或同等身份登录到群集节点。如果
/etc/booth/booth.conf
尚不存在,请将示例投票间配置文件/etc/booth/booth.conf.example
复制到/etc/booth/booth.conf
:root #
cp
-p /etc/booth/booth.conf.example /etc/booth/booth.conf根据例 4.1 “投票间配置文件”编辑
/etc/booth/booth.conf
。确认更改并保存文件。
在所有群集节点和仲裁方上,打开在防火墙中为投票间配置的端口。参见例 4.1 “投票间配置文件”中的位置 2。
4.3.2 使用 YaST 设置投票间 #
以
root
或同等身份登录到群集节点。启动 YaST
模块。选择
现有投票间配置文件,或者单击 创建新的投票间配置文件。在出现的屏幕中配置以下参数:
配置文件: 投票间配置文件的名称。YaST 建议按默认使用
booth
。这样,就会将投票间配置写入/etc/booth/booth.conf
。仅当您需要根据第 4.4 节 “使用多租户投票间设置”中所述为不同的 Geo 群集设置多个投票间实例时,才更改此值。传输: 用于站点间通讯的传输协议。仅支持 UDP,但将来可支持其他传输层。另请参见例 4.1 “投票间配置文件”中的位置 1。
端口: 用于在每个站点上投票间实例之间通讯的端口。另请参见例 4.1 “投票间配置文件”中的位置 2。
仲裁方: 用作仲裁方的计算机的 IP 地址。另请参见例 4.1 “投票间配置文件”中的位置 3。
要指定
,请单击 。在打开的对话框中,输入仲裁方的 IP 地址,然后单击 。站点: 用于站点上
boothd
的 IP 地址。另请参见例 4.1 “投票间配置文件”中的位置 4。要指定 Geo 群集的
,请单击 。在打开的对话框中,输入一个站点的 IP 地址,然后单击 。票据: 将由投票间或群集管理员管理的票据。另请参见例 4.1 “投票间配置文件”中的位置 6。
要指定“票据模板”来为所有票据指定默认参数和值,从而减少配置工作量。为此,请使用
,请单击 。在打开的对话框中,输入唯一的 名称。若要使用相同的参数和值定义多个票据,请创建一个__default__
作为 名称。身份验证: 要为投票间启用身份验证,请单击 ,然后在打开的对话框中,激活 。如果已有一个密钥,请在 中指定路径和文件名。要为新的 Geo 群集生成密钥文件,请单击 。随后将创建密钥并将其写入 中指定的位置。
此外,可以指定票据的可选参数。有关概述,请参见例 4.1 “投票间配置文件”中的位置 7 到 15。
单击
确认更改。
图 4.1︰ 示例票据依赖项 #单击
关闭当前投票间配置屏幕。YaST 将显示定义的投票间配置文件的名称。
在关闭 YaST 模块之前,请切换到
类别。要打开您为投票间配置的端口,请启用
。重要:防火墙设置仅适用于本地计算机防火墙设置仅适用于当前计算机。将为
/etc/booth/booth.conf
中指定的所有端口或者其他任何投票间配置文件打开 UDP/TCP 端口(请参见第 4.4 节 “使用多租户投票间设置”)。请确保同时在 Geo 群集的其他所有节点和仲裁方上打开相应的端口。可以手动或者通过将以下文件与 Csync2 同步来执行此操作:
/usr/lib/firewalld
/usr/lib/firewalld/services/booth.xml
单击步骤 3.a 中指定的 的 NAME,配置将写入
确认所有设置并关闭 YaST 模块。根据/etc/booth/NAME.conf
。
4.4 使用多租户投票间设置 #
对于包含多个 Geo 群集的设置,可以“共享”同一个仲裁方(从 SUSE Linux Enterprise High Availability Extension 12 开始)。通过提供多个投票间配置文件,可以在同一个仲裁方上启动多个投票间实例,其中每个投票间实例在不同的端口上运行。这样,便可以使用一台计算机充当不同 Geo 群集的仲裁方。
假设您有两个 Geo 群集,一个位于 EMEA(欧洲、中东和非洲),另一个位于 APAC(亚太区)。
要为这两个 Geo 群集使用同一个仲裁方,请在 /etc/booth
目录中创建两个配置文件:/etc/booth/emea.conf
和 /etc/booth/apac.conf
。最起码,这两个配置文件的以下参数必须不同:
用于投票间实例通讯的端口。
属于使用仲裁方的不同 Geo 群集的站点。
/etc/booth/apac.conf
#transport = UDP 1 port = 9133 2 arbitrator = 192.168.203.100 3 site = 192.168.2.254 4 site = 192.168.1.112 4 authfile = /etc/booth/authkey-apac 5 ticket ="tkt-db-apac-intern" 6 timeout = 10 retries = 5 renewal-freq = 60 before-acquire-handler12 = /usr/share/booth/service-runnable13 db-apac-intern 14 ticket = "tkt-db-apac-cust" 6 timeout = 10 retries = 5 renewal-freq = 60 before-acquire-handler = /usr/share/booth/service-runnable db-apac-cust
/etc/booth/emea.conf
#transport = UDP 1 port = 9150 2 arbitrator = 192.168.203.100 3 site = 192.168.201.100 4 site = 192.168.202.100 4 authfile = /etc/booth/authkey-emea 5 ticket = "tkt-sap-crm" 6 expire = 900 renewal-freq = 60 before-acquire-handler12 = /usr/share/booth/service-runnable13 sap-crm 14 ticket = "tkt-sap-prod" 6 expire = 600 renewal-freq = 60 before-acquire-handler = /usr/share/booth/service-runnable sap-prod
用于站点间通讯的传输协议。仅支持 UDP,但将来可支持其他传输层。因此,目前可以省略此参数。 | |
用于在每个站点上投票间实例之间通讯的端口。配置文件使用不同的端口来允许在同一仲裁方上启动多个投票间实例。 | |
用作仲裁方的计算机的 IP 地址。在上述示例中,我们为不同的 Geo 群集使用了同一个仲裁方。 | |
用于站点上 | |
可选的参数。基于共享密钥为客户端和服务器启用投票间身份验证。此参数指定密钥文件的路径。为不同的租户使用不同的密钥文件。 密钥要求 #
| |
将由投票间或群集管理员管理的票据。理论上讲,可以在不同的投票间配置文件中定义相同的票据名称 — 票据不会造成干扰,因为它们属于不同投票间实例管理的不同 Geo 群集。但是,(为了便于讲述),我们建议按上述示例中所示,为每个 Geo 群集使用不同的票据名称。 | |
可选的参数。如果设置该参数,则在 | |
此处提到的 | |
|
如例 4.2 “
/etc/booth/apac.conf
”和例 4.3 “/etc/booth/emea.conf
”中所述,在/etc/booth
中创建不同的投票间配置文件。可以手动执行此操作,或者按第 4.3.2 节 “使用 YaST 设置投票间”中所述使用 YaST 来创建。在仲裁方上,打开
/etc/booth
中任一投票间配置文件内定义的端口。在属于使用仲裁方的单个 Geo 群集的节点上,打开相应投票间实例所用的端口。
在使用相同投票间配置的所有群集节点和仲裁方上,同步相应的投票间配置文件。有关详细信息,请参见第 4.5 节 “将投票间配置同步到所有站点和仲裁方”。
在仲裁方上,按在仲裁方上启动投票间服务中所述为多租户设置启动各个投票间实例。
在各个 Geo 群集上,按在群集站点上启动投票间服务中所述启动投票间服务。
4.5 将投票间配置同步到所有站点和仲裁方 #
要使投票间正常工作,一个 Geo 群集中的所有群集节点和仲裁方必须使用相同的投票间配置。
可以使用 Csync2 来同步投票间配置。有关细节,请参见第 5.1 节 “Geo 群集的 Csync2 设置”和第 5.2 节 “使用 Csync2 同步更改”。
如果任何投票间配置发生更改,请务必在所有参与方上相应地更新配置文件,并按第 4.7 节 “运行时重配置投票间”中所述重启动投票间服务。
4.6 启用和启动投票间服务 #
- 在群集站点上启动投票间服务
每个群集站点的投票间服务都通过投票间资源组(如果您是使用
ha-cluster-init
脚本设置 Geo 群集的,则其已自动配置,否则请按第 6.2 节 “配置boothd
的资源组”中所述手动配置)来管理。要为每个站点启动一个投票间服务实例,请在每个群集站点上启动相应的投票间资源组。- 在仲裁方上启动投票间服务
从 SUSE Linux Enterprise 12 开始,投票间仲裁方由 systemd 管理。单元文件名为
booth@.service
。@
表示可以使用一个参数(在本例中为配置文件的名称)运行该服务。要在仲裁方上启用投票间服务,请使用以下命令:
root #
systemctl
enable booth@booth从命令行启用服务后,只要该服务未被禁用,就可以使用 YaST 服务管理器对它进行管理。如果该服务已禁用,则下一次重启动 systemd 时,它将从 YaST 的服务列表中消失。
用于启动投票间服务的命令取决于投票间设置:
如果按第 4.3 节中所述使用默认设置,则表示只配置了
/etc/booth/booth.conf
。在这种情况下,请登录到每个仲裁方并使用以下命令:root #
systemctl
start booth@booth如果按第 4.4 节中所述以多租户模式运行投票间,则已在
/etc/booth
中配置了多个投票间配置文件。要为单个投票间实例启动服务,请使用systemctl start booth@
NAME,其中的 NAME 代表相应配置文件/etc/booth/NAME.conf
的名称。例如,如果创建了投票间配置文件
/etc/booth/emea.conf
和/etc/booth/apac.conf
,请登录到仲裁方并执行以下命令:root #
systemctl
start booth@emearoot #
systemctl
start booth@apac
这将以仲裁方模式启动投票间服务。它可以与所有其他投票间守护程序通讯,但和群集站点上运行的投票间守护程序不同,它不能被授予票据。投票间仲裁方只参与选择。否则,它们处于休眠状态。
4.7 运行时重配置投票间 #
如果在已运行投票间服务的情况下需要更改投票间配置,请执行以下操作:
根据需要调整投票间配置文件。
将更新的投票间配置文件同步到属于 Geo 群集的所有群集节点和仲裁方。有关详细信息,请参见第 5 章 “跨所有站点和仲裁方同步配置文件”。
按第 4.6 节 “启用和启动投票间服务”中所述,在仲裁方和站点上重启动投票间服务。这不会给已授予站点的票据造成任何影响。