跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise High Availability Extension 文档 / Geo 群集指南 / 管理 Geo 群集
适用范围 SUSE Linux Enterprise High Availability Extension 15 SP3

8 管理 Geo 群集

在投票间能够管理 Geo 群集中的某个票据之前,您需要先通过投票间命令行客户端或 Hawk2 手动将其授予给某个站点。

8.1 通过命令行管理票据

第 8.1.1 节 “booth 命令概述”中所述使用 booth 命令行工具授予、列出或撤消票据。

警告
警告:crm_ticketcrm site ticket

如果由于某些原因投票间服务未运行,您也可以使用 crm_ticketcrm site ticket 完全以手动方式管理票据。这两个命令仅在群集节点上可用。使用这些命令要非常小心,因为它们无法校验同一票据是否已授予给其他站点。有关详细信息,请阅读手册页。

只要投票间在正常运行,请一律仅使用 booth 进行手动干预。

8.1.1 booth 命令概述

您可以在群集中的任何计算机上运行 booth 命令,而不仅仅是正在运行 boothd 的计算机上。booth 命令会尝试通过查看投票间配置文件和本地定义的 IP 地址来查找本地群集。如果未指定 booth 应连接到的站点(使用 -s 选项),则其一律会连接到本地站点。

列出所有票据
root # booth list
ticket: ticketA, leader: none
ticket: ticketB, leader: 10.2.12.101, expires: 2014-08-13 10:28:57

如果未使用 -s 指定特定的站点,将从本地投票间实例请求有关票据的信息。

向站点授予票据
root # booth grant -s 192.168.201.100 ticketA
booth[27891]: 2014/08/13_10:21:23 info: grant request sent, waiting for the result ...
booth[27891]: 2014/08/13_10:21:23 info: grant succeeded!

在这种情况下,ticketA 将授予给站点 192.168.201.100,如果未使用 -s 选项,投票间将自动连接到当前站点(您运行投票间客户端的站点)并会请求 grant 操作。

在授予票据前,该命令将执行健全性检查。如果同一票据已授予给其他站点,则系统会向您发出警告,并提示您先从当前站点撤消该票据。

从站点撤消票据
root # booth revoke ticketA
booth[27900]: 2014/08/13_10:21:23 info: revoke succeeded!

投票间将检查当前向哪个站点授予了票据,并针对 ticketA 请求 revoke 操作。撤消操作将立即执行。

grant 和(在某些情况下)revoke 操作可能需要一段时间才会返回确切的操作结果。客户端将一直等待结果,直到达到票据的 timeout 值才会放弃等待。如果使用了 -w 选项,客户端将会无限期等待。在日志文件中或者使用 crm_ticket -L 命令查找确切的状态。

强制执行授予操作
root # booth grant -F ticketA

此命令的结果取决于您使用的是自动票据还是手动票据。

  • 自动票据:只要投票间可确保仅将票据授予给一个站点,您就无法将同一票据授予给其他站点,即使使用 -F 选项也不例外。但如果出现节点分裂情况,投票间便可能无法检查是否在其他站点授予了自动票据。在此情况下,Geo 群集管理员可以覆盖自动过程,并手动将票据授予给仍在正常运行的站点。在此情况下,-F 选项会告知投票间不要等待来自其他不可访问的站点的响应,因此会忽略参数 expireacquire-after(如果为此票据定义了这些参数)。投票间会立即将票据授予给指定站点。

  • 手动票据:使用手动票据时,booth grant -F 可让投票间立即将票据授予给指定站点。

警告
警告:潜在的数据丢失

使用 booth grant -F 之前,请确保没有其他联机站点拥有同一票据。如果同一票据授予给多个站点,则依赖于该票据的资源可能会在多个站点上同时启动。这会导致并发性违规并可能造成数据损坏。

作为 Geo 群集管理员,您需要在另一个站点恢复可访问状态后解决票据之间的冲突。

下面几节提供了在不同情形下管理票据的一些示例。

8.1.2 手动转移自动票据

假设您要将 ticketA 从站点 amsterdam(虚拟 IP 为 192.168.201.100)手动转移到站点 berlin(虚拟 IP 为 192.168.202.100),请执行以下操作:

  1. 登录 amsterdam

  2. 使用以下命令将 ticketA 设为待机状态:

    root # crm_ticket -t ticketA -s
  3. 等待任一资源(视 ticketA 而定)停止或完全降级。

  4. 使用以下命令从站点 amsterdam 撤消 ticketA

    root # booth revoke -s 192.168.201.100 ticketA
  5. 从原始站点撤消票据后,使用以下命令将 ticketA 授予给站点 berlin

    root # booth grant -s 192.168.202.100 ticketA

    这样依赖于此票据的资源便可以在站点 berlin 上启动。

  6. 使用以下命令去除站点 amsterdamticketA 的待机模式:

    root # crm_ticket -t ticketA -a

    如果 berlin 发生故障,依赖于 ticketA 的资源将自动故障转移到站点 amsterdam

8.1.3 转移手动票据

假设您要将手动票据 ticket-nfs 从站点 amsterdam(虚拟 IP 为 192.168.201.100)转移到站点 berlin(虚拟 IP 为 192.168.202.100),请执行以下操作:

  1. 登录 amsterdam

  2. 使用以下命令将 ticket-nfs 设为待机状态:

    root # crm_ticket -t ticket-nfs -s
  3. 等待依赖于 ticket-nfs 的任何资源停止或完全降级。

  4. 使用以下命令从站点 amsterdam 撤消 ticket-nfs

    root # booth revoke -s 192.168.201.100 ticket-nfs
  5. 从原始站点撤消票据后,使用以下命令将 ticket-nfs 授予给站点 berlin

    root # booth grant -s 192.168.202.100 ticket-nfs

    这样依赖于此票据的资源便可以在站点 berlin 上启动。

  6. 如果您要在任何时间将资源转移回 amsterdam,请在站点 amsterdam 上去除 ticket-nfs 的待机模式:

    root # crm_ticket -t ticket-nfs -a

8.1.4 故障转移手动票据

我们假设(手动管理的)票据 ticket-nfs 已授予给站点 amsterdam(虚拟 IP 为 192.168.201.100)。目前无法访问此站点。站点 berlin(虚拟 IP 为 192.168.202.100)仍然可用。

  1. 尝试联系站点 amsterdam 的本地管理员,并检查该站点是否发生故障。

    • 如果发生故障,请继续步骤 2

    • 如果因连接问题而无法访问 amsterdam,但该节点仍在运行,可请本地群集管理员在站点 amsterdam 上将 ticket-nfs 设为待机模式:

      root # crm_ticket -t ticket-nfs -s

      此操作将撤回依赖于 ticket-nfs 的资源。现在便可放心将票据授予给其他站点。

  2. 登录 berlin

  3. 使用 -F 选项将 ticket-nfs 授予给站点 berlin

    root # booth grant -F ticket-nfs

    系统会显示同一票据可能已授予给其他站点的警告,但会执行该命令。

  4. 使用以下命令检查结果:

    root # booth list

    命令输出中应该会指出 berlin 现在是 ticket-nfs 的票据拥有者。依赖于此票据的所有资源都将在 berlin 上启动。

  5. 在尝试重新将 amsterdam 添加到 Geo 群集中之前,请务必撤消 amsterdam 上的 ticket-nfs

    root # booth revoke -s 192.168.201.100 ticket-nfs

8.2 使用 Hawk2 管理票据

仪表板状态视图中均可查看票据。Hawk2 显示以下票据状态:

  • 已授予:已将票据授予给当前站点。

  • 其他位置:已将票据授予给其他站点。

  • 已撤消:已撤消票据。此外,如果在票据依赖项中参照了票据,但尚未将票据授予给任何站点,则 Hawk2 也将票据显示为已撤消。

注意
注意:向当前站点授予票据和撤消票据

尽管您可以使用 Hawk2 查看所有站点的票据,但 Hawk2 触发的任何授予或撤消操作只适用于当前站点(当前使用 Hawk2 连接到的站点)。要将票据授予 Geo 群集的另一个站点,请在属于相应站点的其中一个群集节点上启动 Hawk2。

只能授予尚未指派给任何站点的票据。

过程 8.1︰ 使用 Hawk2 查看、授予和撤消票据
  1. 启动 Web 浏览器并登录到 Hawk2。

  2. 在左侧导航栏中,选择监视 › 状态

    除了群集节点和资源的相关信息之外,Hawk2 还显示票据类别。其中会列出票据状态、票据名称以及上次授予票据的时间。您可以在已授予列中对票据进行管理。

  3. 要显示有关票据的更多信息,以及有关群集站点和仲裁方的信息,请单击票据旁的细节图标。

    Hawk2 - 票据细节
    图 8.1︰ Hawk2 - 票据细节
  4. 要从当前站点中撤消已授予的票据或者要向当前站点授予某个票据,请单击该票据旁边已授予列中的开关。单击后,将显示可用的操作。当 Hawk2 提示确认时,请确认选择。

    如果出于任何原因无法授予或撤消票据,Hawk2 将显示错误讯息。如果已成功授予或撤消票据,Hawk2 将更新票据状态

过程 8.2︰ 模拟授予和撤消票据

利用 Hawk2 的批模式,您可以在故障发生之前探测到该情况。要了解依赖于特定票据的资源是否按预期方式工作,您还可以测试授予或撤消票据产生的影响。

  1. 启动 Web 浏览器并登录到 Hawk2。

  2. 从顶层行中选择批模式

  3. 在批模式栏中,单击显示打开批模式窗口。

  4. 要模拟票据的状态更改,请执行以下操作:

    1. 单击插入 › 票据事件

    2. 依次选择要操作的票据和要模拟的操作

    3. 确认更改。您的事件便会添加到批模式对话框中所列的事件队列中。此处列出的所有事件都会立即被模拟并反映到状态屏幕上。

    4. 关闭批模式对话框并查看模拟的更改。

  5. 要退出批模式,请应用丢弃模拟的更改。

Hawk2 模拟器 - 票据
图 8.2︰ Hawk2 模拟器 - 票据

有关 Hawk2 的批模式(以及可使用该批模式探测的其他情形)的详细信息,请参见第 7.9 节 “使用批模式”