8 管理 Geo 群集 #
在投票间能够管理 Geo 群集中的某个票据之前,您需要先通过投票间命令行客户端或 Hawk2 手动将其授予给某个站点。
8.1 通过命令行管理票据 #
按第 8.1.1 节 “booth
命令概览”中所述使用 booth
命令行工具授予、列出或撤消票据。
crm_ticket
和crm site ticket
如果由于某些原因投票间服务未运行,您也可以使用 crm_ticket
或 crm site ticket
完全以手动方式管理票据。这两个命令仅在群集节点上可用。使用这些命令要非常小心,因为它们无法校验同一票据是否已授予给其他站点。有关详细信息,请阅读手册页。
当投票间已启动并正在运行时,请仅使用 booth
命令进行手动干预。
8.1.1 booth
命令概览 #
您可以在群集中的任何计算机上运行 booth
命令,而不仅仅是正在运行 boothd
的计算机上。booth
命令尝试通过查看投票间配置文件和本地定义的 IP 地址来查找“本地”群集。如果您未指定 booth
应连接到的站点(使用 -s
选项),则它始终会连接到本地站点。
- 列出所有票据
#
booth list
ticket: ticketA, leader: none ticket: ticketB, leader: 10.2.12.101, expires: 2014-08-13 10:28:57如果未使用
-s
指定特定的站点,将从本地投票间实例请求有关票据的信息。- 向站点授予票据
#
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!在本例中,会向站点
192.168.201.100
授予ticketA
。如果未使用-s
选项,投票间将自动连接到当前站点(您运行投票间客户端的站点)并请求grant
操作。在授予某个票据之前,该命令会检查是否已向另一个站点授予该票据。如果是,则系统会向您发出警告,并提示您先撤消当前站点的票据。
- 从站点撤消票据
#
booth revoke ticketA
booth[27900]: 2014/08/13_10:21:23 info: revoke succeeded!投票间将检查当前向哪个站点授予了票据,并针对
ticketA
请求revoke
操作。revoke 操作会立即执行。grant
操作和(在某些情况下)revoke
操作可能需要一段时间才会返回确切的操作结果。客户端将一直等待结果,直到达到票据的timeout
值才会放弃等待。如果使用了-w
选项,则客户端将无限期等待。可以在日志文件中或使用crm_ticket -L
命令查找确切的状态。- 强制执行授予操作
#
booth grant -F ticketA
此命令的结果取决于您使用的是自动票据还是手动票据。
自动票据:只要投票间可确保仅将票据授予给一个站点,您就无法将同一票据授予给其他站点,即使使用
-F
选项也不例外。但如果出现节点分裂情况,投票间可能无法检查是否在其他站点授予了自动票据。在此情况下,Geo 群集管理员可以覆盖自动过程,并手动将票据授予给仍在正常运行的站点。在此情况下,-F
选项会告知投票间不要等待来自其他不可访问的站点的响应(如果为此票据定义了参数 expire 和 acquire-after,这样将会忽略这两个参数)。投票间会立即将票据授予指定的站点。手动票据:使用手动票据时,
booth grant -F
可让投票间立即将票据授予指定的站点。
警告:潜在的数据丢失使用
booth grant -F
之前,请确保没有其他联机站点拥有同一票据。如果同一票据授予给多个站点,则依赖于该票据的资源可能会在多个站点上同时启动。这会导致并发性违规并可能造成数据损坏。作为 Geo 群集管理员,您需要在另一个站点恢复可访问状态时解决票据之间的冲突。
下面几节提供了在不同情形下管理票据的示例。
8.1.2 手动转移自动票据 #
假设您要将 ticketA
从站点 amsterdam
(虚拟 IP 为 192.168.201.100
)手动转移到站点 berlin
(虚拟 IP 为 192.168.202.100
),请执行以下操作:
登录到
amsterdam
。将
ticketA
设置为待机:#
crm_ticket -t ticketA -s
等待依赖于
ticketA
的任何资源完全停止或降级。撤消站点
amsterdam
中的ticketA
:#
booth revoke -s 192.168.201.100 ticketA
从原始站点撤消票据后,将
ticketA
授予站点berlin
:#
booth grant -s 192.168.202.100 ticketA
这样,依赖于此票据的资源便可以在站点
berlin
上启动。去除站点
amsterdam
上ticketA
的待机模式:#
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
),请执行以下操作:
登录到
amsterdam
。将
ticket-nfs
设置为待机:#
crm_ticket -t ticket-nfs -s
等待依赖于
ticket-nfs
的任何资源完全停止或降级。撤消站点
amsterdam
中的ticket-nfs
:#
booth revoke -s 192.168.201.100 ticket-nfs
从原始站点撤消票据后,将
ticket-nfs
授予站点berlin
:#
booth grant -s 192.168.202.100 ticket-nfs
这样,依赖于此票据的资源便可以在站点
berlin
上启动。要随时将资源移回站点
amsterdam
,请去除站点amsterdam
上ticket-nfs
的待机模式:#
crm_ticket -t ticket-nfs -a
8.1.4 故障转移手动票据 #
我们假设手动管理的票据 ticket-nfs
已授予站点 amsterdam
(虚拟 IP 为 192.168.201.100
)。目前无法访问此站点。站点 berlin
(虚拟 IP 为 192.168.202.100
)仍然可用。
尝试联系站点
amsterdam
的本地管理员,并检查该站点是否发生故障。如果是,请执行步骤 2。
如果因连接问题而无法访问
amsterdam
,但该节点仍在运行,可请本地群集管理员在站点amsterdam
上将ticket-nfs
设为待机模式:#
crm_ticket -t ticket-nfs -s
这样会放弃依赖于
ticket-nfs
的资源。现在便可放心将票据授予给其他站点。
登录到
berlin
。使用
-F
选项向站点berlin
授予ticket-nfs
:#
booth grant -F ticket-nfs
系统会显示同一票据可能已授予给其他站点的警告,但会执行该命令。
使用以下命令检查结果:
#
booth list
命令输出中应该会指出
berlin
现在是ticket-nfs
的票据拥有者。依赖于此票据的所有资源都会在berlin
上启动。在尝试重新将
amsterdam
添加回到 Geo 群集中之前,请务必撤消amsterdam
上的ticket-nfs
:#
booth revoke -s 192.168.201.100 ticket-nfs
8.2 使用 Hawk2 管理票据 #
在
和 视图中均可查看票据。Hawk2 显示以下票据状态:尽管您可以使用 Hawk2 查看所有站点的票据,但 Hawk2 触发的任何授予或撤消操作只适用于当前站点(当前使用 Hawk2 连接到的站点)。要将票据授予 Geo 群集的另一个站点,请在属于相应站点的其中一个群集节点上启动 Hawk2。
只能授予尚未指派给任何站点的票据。
启动 Web 浏览器并登录到 Hawk2。
在左侧导航栏中,选择
› 。除了群集节点和资源的相关信息之外,Hawk2 还显示
类别。其中会列出票据状态、票据名称以及上次授予票据的时间。您可以在 列中对票据进行管理。要显示有关票据的更多信息,以及有关群集站点和仲裁方的信息,请单击票据旁的
图标。图 8.1︰ Hawk2 - 票据细节 #要从当前站点中撤消已授予的票据或者要向当前站点授予某个票据,请单击该票据旁边
列中的开关。单击后,将显示可用的操作。当 Hawk2 提示确认时,请确认选择。如果出于任何原因无法授予或撤消票据,Hawk2 将显示错误消息。如果已成功授予或撤消票据,Hawk2 将更新票据
。
利用 Hawk2 的
,您可以在故障发生之前探测到该情况。要了解依赖于特定票据的资源是否按预期方式工作,您还可以测试授予或撤消票据产生的影响。启动 Web 浏览器并登录到 Hawk2。
从顶层行中选择
。在批模式栏中,单击
打开 窗口。要模拟票据的状态更改,请执行以下操作:
单击
› 。依次选择要操作的
和要模拟的 。确认更改。您的事件便会添加到
对话框中所列的事件队列中。此处列出的所有事件都会立即被模拟并反映到 屏幕上。关闭
对话框并查看模拟的更改。
要退出批模式,请
或 模拟的更改。
有关 Hawk2 的第 5.4.7 节 “使用批模式”。
(以及可使用该批模式探测的其他情形)的详细信息,请参见