NFS データストアの .lck ロックファイルを理解し、それらが参照する ESX ホストと NFS ファイル名を特定する
search cancel

NFS データストアの .lck ロックファイルを理解し、それらが参照する ESX ホストと NFS ファイル名を特定する

book

Article ID: 424283

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

この記事では、NFS ロックを保持している ESX ホストを特定する方法と、.lck ファイルがどの NFS ファイルを指し示しているかを確認する方法を説明します。

ESX ホストがサポート対象の NFSv3 サーバに接続する場合、ESX は NFS のロック処理に従来のネットワークロックマネージャ (NLM) を使用しません。代わりに、関連するファイルごとに .lck ファイルが作成され、そのファイルにはホスト名がプレーンテキストで記載されます。また、ファイル名は間接的に NFS エクスポートの i ノードを指し示します。


免責事項: これは英文の記事 Understanding the NFS .lck lock file to understand the ESX host and NFS filename it refers to の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

Environment

VMware vSphere ESXi

Cause

ロックファイルがどのファイルを指し示しているか不明確な場合があります。その一例として、複数の仮想マシンが複数のスワップファイルを作成する共有共有スワップディレクトリがあります。

Resolution

ホスト名を確認するには:

1) ESX ホストに SSH 接続します。
2) 該当のディレクトリに移動します:

# cd /vmfs/volumes/NFSExport/VM_Name/

3) hexdump コマンドを使用し、.lck ファイルからホスト名を調べます:

# hexdump -C .lck-e003090001000000
00000010 01 00 00 00 64 68 69 6e 67 2d 65 73 78 2e 76 6d |..........example.com|
00000020 77 61 72 65 2e 63 6f 6d 00 00 00 00 00 00 00 00 |example.com........|
 
この例では、このロックは example.com が保持していることがわかります。
 
ロックが参照しているファイル名を特定するには:
1) ESX ホストに SSH 接続します。
2) 該当のディレクトリに移動します:
 
# cd /vmfs/volumes/NFSExport/VM_Name/
 
3) .lck ファイルのファイル名を確認します:
 
.lck-e003090001000000
 
4) .lck ファイル名のエンディアンを反転します:
 
.lck-e003090001000000 becomes .lck-00000001000903E0
 
5) 16進数を10進数に変換します:
 
0x00000001000903E0 = 4295558112
 
6) grep を使用し、これがどの inode を指しているか確認します:
 
# stat * | grep -B2 4295558112 | grep File
 
File: VM_NAME.vmdk
 
この例では、.lck ファイル .lck-e003090001000000VM_NAME.vmdk を指し示していることがわかります。
 
次のコマンドを稼働中の ESX ホストで実行すると、上記の一連の作業を自動化することができます。:
 
# stat * | grep -B2 `v2=$(v1=.lck-e003090001000000;echo ${v1:13:2}${v1:11:2}${v1:9:2}${v1:7:2}${v1:5:2});printf "%d\n" 0x$v2` | grep File
 
File: VM_NAME.vmdk
 
注: コマンドの変数 v2 は目的の .lck ファイル名に変更してください。 (ファイル名の先頭のピリオド "." も含めます。)
 
 

Additional Information

影響/リスク:

.lck ファイルを手動で削除するとランダムなデータ破損を引き起こす可能性があるため、絶対に避けてください。この破損は直ちに表面化しない場合もあります。VMware テクニカルサポートエンジニアからの明確な指示がある場合はこの限りではありません。