可以使用 vSphere On-disk Metadata Analyzer (VOMA) 檢查中繼資料一致性,以及識別和修正 VMFS 資料存放區或支援 VMFS 資料存放區的邏輯磁碟區上的中繼資料損壞事件。

問題

當您碰到 VMFS 資料存放區或虛擬 Flash 資源的問題時,可以檢查中繼資料一致性。例如,如果發生下列其中一種情況,請執行中繼資料檢查:

  • 出現儲存區中斷。
  • 重建 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 檔案系統以及支援虛擬 Flash 資源的檔案系統。如果指定此模組,則也會對 LVM 執行最少量的檢查。

lvm

檢查支援 VMFS 資料存放區的邏輯磁碟區。

ptbl

檢查並驗證 VMFS 磁碟分割,例如 MBR 或 GPT。如果不存在任何磁碟分割,請確定這些磁碟分割是否應該存在。

-f|--func

要執行的功能包括:

query

列出模組所支援的功能。

check

檢查錯誤。

fix

檢查和修正錯誤。

dump

收集中繼資料傾印。

-a|--affinityChk

包含 VMFS6 的相似性相關檢查和修正。

-d|--device

指示要檢查的裝置或磁碟。請務必提供支援 VMFS 資料存放區之裝置磁碟分割的絕對路徑。如果資料存放區跨越多個裝置,請提供主要範圍的 UUID。

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

如果使用 -x|--extractDump 命令,請輸入多個裝置路徑,並使用磁碟分割辨識符號 (以逗號分隔)。輸入的裝置路徑數目等於跨越的裝置數目。

-b|--blockSize

指示磁碟區塊大小。

-s|--logfile

指定記錄檔的路徑,以輸出結果。

-x|--extractDump

使用 VOMA 擷取收集的傾印。

-D|--dumpfile

指示傾印檔案,以儲存收集的中繼資料傾印。

-v|--version

顯示 VOMA 的版本。

-h|--help

顯示 VOMA 命令的說明訊息。

-Y

指示您執行 VOMA,而不使用 PE 資料表進行位址解析。

-Z| --file

指示在解壓縮的裝置檔案上執行 VOMA。

範例

從跨距磁碟區收集中繼資料傾印:

voma -m vmfs -f dump -d head_extent -D dump_filename

將收集的傾印重新擷取到跨距磁碟區的裝置中:

voma -x dump_filename -d head_extent,extent_2,extent_3...extent_n

使用 VOMA 檢查中繼資料一致性

此工作示範了如何使用 VOMA 檢查 VMFS 中繼資料一致性。VOMA 可用於檢查和修正 VMFS 資料存放區或虛擬 Flash 資源的次要不一致問題。從 ESXi 主機的 CLI 執行 VOMA。

必要條件

關閉所有執行中的虛擬機器電源,或者將這些虛擬機器移轉至其他資料存放區。

程序

  1. 針對要檢查的 VMFS 資料存放區,取得支援該存放區之裝置的名稱和磁碟分割號碼。
    #esxcli storage vmfs extent list
    輸出中的 [Device Name] 和 [Partition] 資料行用於識別該裝置。例如:
    Volume Name  .....  Device Name                             Partition  
    1TB_VMFS6    .....  naa.xxxx                                   3
  2. 檢查 VMFS 錯誤。

    提供支援 VMFS 資料存放區之裝置磁碟分割的絕對路徑,並為磁碟分割號碼提供裝置名稱。例如:

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

    輸出會列出可能的錯誤。例如,下列輸出指示活動訊號位址無效。

    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