使用 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 数据存储或支持 VMFS 数据存储的逻辑卷的轻微不一致问题。

VOMA 可检查并修复以下各项。

表 1. VOMA 功能
VOMA 功能 描述
元数据检查和修复 元数据检查和修复的示例包括但不限于以下内容:
  • 验证 VMFS 卷标头以实现基本元数据一致性。
  • 检查 VMFS 资源文件(系统文件)的一致性。
  • 检查所有文件的路径名和连接。
关联性元数据检查和修复

要为 VMFS6 启用关联性检查,请使用 -a|--affinityChk 选项。

关联性元数据检查和修复示例如下所示:
  • 资源类型和 FS3_ResFileMetadata 中的关联性标记。
  • 验证 SFB RC 元中的关联性标记 (FS3_ResourceClusterMDVMFS6)。
  • 验证 RC rcMeta 的 affinityInfo 条目中的所有条目,包括溢出键,以确保不存在无效项。检查缺少的条目。
目录验证 VOMA 可以检测并更正以下错误:
  • 目录哈希块损坏。
  • 分配映射损坏。
  • 链接块损坏。
  • 目录项块损坏。

VOMA 会根据损坏的性质只修复损坏的条目或完全重新构建哈希块、分配映射块和链接块。

丢失和找到的文件

在文件系统检查过程中,VOMA 可以查找文件系统的任意位置均未引用的文件。这些孤立的文件是有效、完整的,但在系统上没有名称或目录项。

如果 VOMA 在扫描过程中遇到孤立的文件,它将在卷的根目录中创建一个名为 lost+found 的目录,用于存储孤立的文件。文件的名称使用 Filesequence-number 格式。

VOMA 工具附带的命令选项包括以下各项。

表 2. VOMA 命令选项
命令选项 描述
-m|--module 要运行的模块,包括:
vmfs 如果您未指定模块名称,则默认情况下使用此选项。

您可以检查 VMFS 文件系统,以及为虚拟闪存资源提供支持的文件系统。如果指定了此模块,也会对 LVM 执行最少量的检查。

lvm 检查为 VMFS 数据存储提供支持的逻辑卷。
ptbl 检查并验证 VMFS 分区,例如 MBR 或 GPT。如果不存在分区,请确定是否应存在分区。
-f|--func 要执行的功能,包括:
query 列出模块所支持的功能。
check 检查错误。
fix 检查并修复错误。
dump 收集元数据转储。
-a|--affinityChk 为 VMFS6 包括关联性相关的检查和修复。
-d|--device 要检查的设备或磁盘。请务必提供为 VMFS 数据存储提供后备支持的设备分区的绝对路径。例如,/vmfs/devices/disks/naa.00000000000000000000000000:1。
-s|--logfile 指定日志文件以输出结果。
-x|--extractDump 使用 VOMA 提取收集的转储。
-D|--dumpfile 转储文件以保存收集的元数据转储。
-v|--version 显示 VOMA 的版本。
-h|--help 显示 VOMA 命令的帮助消息。

示例

voma -m vmfs -f check -d /vmfs/devices/disks/naa.xxxx:x

voma -m vmfs -f dump -d /vmfs/devices/disks/naa.xxxx:x -D dumpfilename