使用 vSphere On-disk Metadata Analyzer (VOMA) 可确定影响文件系统或基础逻辑卷的元数据损坏事件。
问题
在遇到与 VMFS 数据存储或虚拟闪存资源有关的问题时,您可以检查元数据一致性。例如,发生下列任一情况时,请执行元数据检查:
- 出现存储故障。
- 重新构建 RAID 或执行磁盘更换后。
- 您在 vmkernel.log 文件中看到了如下所示的元数据错误:
cpu11:268057)WARNING: HBX: 599: Volume 50fd60a3-3aae1ae2-3347-0017a4770402 ("<Datastore_name>") may be damaged on disk. Corrupt heartbeat detected at offset 3305472: [HB state 0 offset 6052837899185946624 gen 15439450 stampUS 5 $
- 无法在 VMFS 上访问文件。
- 您在 vCenter Server 的事件选项卡中看到正在报告数据存储的损坏问题。
解决方案
要检查元数据一致性,请从 ESXi 主机上的 CLI 中运行 VOMA。VOMA 可用于检查并修复 VMFS 数据存储或虚拟闪存资源的微小不一致问题。要解决 VOMA 报告的错误,请咨询 VMware 技术支持。
使用 VOMA 工具时,请遵循以下准则:
- 确保所分析的 VMFS 数据存储未跨越多个数据区。只能对单数据区数据存储运行 VOMA。
- 关闭所有正在运行的虚拟机的电源,或者将这些虚拟机迁移至另一数据存储。
以下示例演示了如何使用 VOMA 检查 VMFS 元数据一致性。
- 获取为想要检查的 VMFS 数据存储提供后备支持的设备的名称和分区编号。
#esxcli storage vmfs extent list
输出中的“Device Name”列和“Partition”列用于标识该设备。例如:Volume Name XXXXXXXX Device Name Partition 1TB_VMFS5 XXXXXXXX naa.00000000000000000000000000000703 3
- 检查 VMFS 错误。
提供为 VMFS 数据存储提供后备支持的设备分区的绝对路径,并为分区编号提供设备名称。例如:
# voma -m vmfs -f check -d /vmfs/devices/disks/naa.00000000000000000000000000000703:3
输出将列出可能的错误。例如,以下输出表示检测信号地址无效。
XXXXXXXXXXXXXXXXXXXXXXX Phase 2: Checking VMFS heartbeat region ON-DISK ERROR: Invalid HB address Phase 3: Checking all file descriptors. Phase 4: Checking pathname and connectivity. Phase 5: Checking resource reference counts. Total Errors Found: 1
VOMA 工具附带的命令选项包括以下各项。
命令选项 | 描述 | |
---|---|---|
-m|--module | 要运行的模块,包括: | |
vmfs | 如果您未指定模块名称,则默认情况下使用此选项。 您可以检查 VMFS 文件系统,以及为虚拟闪存资源提供支持的文件系统。如果指定了此模块,也会对 LVM 执行最少量的检查。 |
|
lvm | 检查为 VMFS 数据存储提供支持的逻辑卷。 | |
ptbl | 检查并验证 VMFS 分区,例如 MBR 或 GPT。如果不存在分区,请确定是否应存在分区。 | |
-f|--func | 要执行的功能,包括: | |
query | 列出模块所支持的功能。 | |
check | 检查错误。 | |
-d|--device | 要检查的设备或磁盘。请务必提供为 VMFS 数据存储提供后备支持的设备分区的绝对路径。例如,/vmfs/devices/disks/naa.00000000000000000000000000:1。 | |
-s|--logfile | 指定日志文件以输出结果。 | |
-v|--version | 显示 VOMA 的版本。 | |
-h|--help | 显示 VOMA 命令的帮助消息。 |
有关更多详细信息,请参见 VMware 知识库文章 2036767。