工作流故障排除:MHost RDB应用程序丢失仲裁
适用场景
- ONTAP 9
问题描述
当RDB应用程序超出限制(即"本地单元脱机")时、命令和服务可能会停止运行或以有限的容量运行。
由于网络分区、远程节点的运行状况或本地节点的运行状况、此状态通常为过渡状态。
RDB集群配置由一组已定义的复制站点(节点)组成、这些站点彼此都是已知的。集群成员资格和配置存储在复制的文件/var/rdb/_sitelist
中。所有RDB应用程序或环(mgwd、vldb、vipmgr、bcomd等)均共享站点表配置。
_sitelist
(集群配置数据)会自动在系统中复制。其中包括以下内容:
- 版本
- 集群 UUID
- 站点列表。
每个站点都有一个ID、一个主机名、一对集群IP地址和一个状态(符合条件/不符合条件)。资格设置用于控制此站点是否参与仲裁形成-这是一个管理选项。此外、可能会将一个站点指定为持有"epsitone"、这是一个额外的部分投票、只需一半的站点即可形成仲裁。"ep西 普龙"与"主机"不同。在双节点HA模式下、_sitelist
包含HA_CONFIG
属性;这意味着仲裁处理采用完全不同的规则。
仲裁是指连接的大多数类似RDB应用程序、其中选择一个实例作为主实例。主节点通常是_sitelist
中的前几个实例之一。每个复制环的运行完全独立于其他环。不同的环具有不同的主节点是正常的、但通常位于同一节点上。
超出仲裁(OOQ)的节点不是仲裁的参与成员。也就是说、它尚未参与仲裁形成(仅启动)或与主节点失去联系、原因可能是它已采取OOQ、也可能是主节点已推出OOQ。
在脱机状态下、仲裁主节点无法写入或更新数据库。但是、可以使用本地时间点只读数据库副本。只读副本的用途取决于特定的RDB应用程序。例如、VLDB可能会在脱机时继续从N刀片进行问题解答查询。有必要咨询各种应用程序的所有者。
在CPU和I/O周期方面、RDB应用程序与D-blade和N-blade竞争。此系统不是实时系统、也没有为未来版本计划服务级别协议(SLA)。因此、RDB应用程序在负载过重的系统上偶尔会发生OOQ。此情况不是错误。
如果本地或远程节点处于OOQ状态、则命令行界面命令调用将失败、并在错误消息中显示"local unit脱机"(某些命令会在管理员不知道的情况下遇到脱机时自动重试)。如果发生这种情况、应在深入研究之前重试此命令、因为此情况通常是暂时的。
如果主服务器上出现以下任何问题、则所有应用程序都会暂时脱机、直到选择新的主服务器为止。
高级 命令:
要调查所有振铃的仲裁状态,请使用高级 级别命令cluster ring show
。
::>set advanced
::*> cluster ring show
Node UnitName Epoch DB Epoch DB Trnxs Master Online
--------- -------- -------- -------- -------- --------- ---------
csiptc-2240-09 mgmt 88 88 917522 csiptc-2240-09 master
csiptc-2240-09 vldb 90 90 3889 csiptc-2240-09 master
csiptc-2240-09 vifmgr 87 87 308046 csiptc-2240-09 master
csiptc-2240-09 bcomd 86 86 10 csiptc-2240-09 master
csiptc-2240-09 crs 87 87 107 csiptc-2240-09 master
csiptc-2240-10 mgmt 88 88 917522 csiptc-2240-09 secondary
csiptc-2240-10 vldb 90 90 3889 csiptc-2240-09 secondary
csiptc-2240-10 vifmgr 87 87 308046 csiptc-2240-09 secondary
csiptc-2240-10 bcomd 86 86 10 csiptc-2240-09 secondary
csiptc-2240-10 crs 87 87 107 csiptc-2240-09 secondary
10 entries were displayed.
cluster show
命令仅显示mgwd的仲裁状态(对所有环使用cluster ring show
和rdb_dump
)。
::*> cluster show
Node Health Eligibility Epsilon
-------------------- ------- ------------ ------------
csiptc-2240-09 true true false
csiptc-2240-10 true true false
2 entries were displayed.
Systemshell 命令:
- 进入诊断模式:
set diag
- 在相应节点上输入systemshell (您可能需要解锁diag用户帐户):
systemshell -node <node-name>
要调查mgwd未运行时的仲裁状态、请在FreesBSD shell上运行rdb_dump
。在任何集群节点上、使用工具提取任何或所有RDB应用程序的当前状态信息。典型的方法是:cat /var/rdb/_sitelist
,然后使用rdb_dump
工具将其定向到所需的IP地址(或本地主机)进行调查。rdb_dump
能够显示:
- 整体运行状况
- 事务流
- 数据库版本
- 各种组件和内部组件。
键入rdb_dump -h
以查看选项列表。请注意、所有rdb_dump
输出都是从正在查询的进程的角度来看的。
% rdb_dump -h
rdb_dump [<host>] [options] <unit>*
-h - help
-c [n] - continuous with n sec delay (default 3)
-v - verbose; all options other than 'c'
-e - environment vars
-f - configuration info
-x - internal developer info on selected components
-u - Local Unit
-d - individual database summary
-q - Quorum Mgr
-r - Recovery Mgr
-t - Transaction Mgr
-z - Call exportHealth API to query health at a node.
[<host>] - Name or IP, default localhost.
<unit>* - select from: vldb, management, vifmgr, bcomd, t1, smfpilot (test units).
if omitted, dumps all product units on the host.
Options may be combined, e.g., '-qrtx'.
rdb_dump
从单个单元的角度显示集群配置和运行状况信息。
注意:
- "master "是一个动态角色、"ep西 普龙"是一个配置设置。主站点和Epsilon站点往往不同。
- 复制组(vldb、vipmgmt、bcomd、mgwd)独立运行。每个主节点和运行状况信息可能不同。但是、应共享配置信息。
用于分析机箱间问题的配置
:
- 检查环境和配置(-e和-f)是否按预期匹配。
- 检查各个单元实例是否在配置上一致。
运行状况(默认情况下)
如果配置正确、则运行状况信息将汇总复制组的状态。
注意:从主节点获得的运行状况始终是最准确的;在将二级信息传播到其他二级节点时会有短暂的延迟,但它们会达成一致。
监控
使用-c
在正常操作下持续监控机箱。此外、重新启动机箱时、请使用-c
在应用程序启动和联机时显示这些应用程序。