vSphere On-disk Metadata Analyzer (VOMA) を使用すると、メタデータの整合性を確認し、VMFS データストアまたは VMFS データストアをバッキングする論理ボリュームでメタデータ破損のインシデントを特定して修正することができます。

問題

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

MBR、GPT などの VMFS パーティションを確認して検証します。パーティションが存在しない場合は、パーティションが必要かどうかを判断します。

-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

アドレス解決に PE テーブルを使用せずに VOMA を実行していることを示します。

-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 データストアまたは仮想フラッシュ リソースの小さい不整合問題を確認し、修正します。ESXi ホストの CLI から VOMA を実行します。

前提条件

実行中の仮想マシンをパワーオフするか、それらを別のデータストアに移行します。

手順

  1. 確認する VMFS データストアをバッキングするデバイスの名前とパーティション番号を取得します。
    #esxcli storage vmfs extent list
    出力されたデバイス名およびパーティション列によりデバイスを特定します。例:
    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