データストアでのファイルの操作が次のエラーで失敗する: device or resource busy / file is locked
search cancel

データストアでのファイルの操作が次のエラーで失敗する: device or resource busy / file is locked

book

Article ID: 341071

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Symptoms:
免責事項:これは英文の記事「Manipulating a file on a Datastore fails with the error: device or resource busy / file is locked (1008728)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新の内容については、英語版の記事を参照してください。


データストアでファイルを操作しようとすると以下の症状が発生します。

  • ファイルの操作(移動、コピー、または削除)に失敗する
  • 次のエラーが表示される

    device or resource busy

  • ファイルがロックされたことが表示される


Environment

VMware vSphere ESXi 5.1
VMware ESXi 4.0.x Installable
VMware ESXi 3.5.x Installable
VMware ESXi 4.0.x Embedded
VMware vSphere ESXi 5.5
VMware ESX Server 3.5.x
VMware vSphere ESXi 5.0
VMware ESX Server 3.0.x
VMware ESXi 3.5.x Embedded
VMware ESXi 4.1.x Embedded
VMware ESXi 4.1.x Installable
VMware ESX 4.1.x
VMware ESX 4.0.x

Resolution

このエラーは、操作しているファイルが別のプロセスまたはタスクによってロックされている場合に発生します。その他のプロセスが識別された場合は、プロセスが完了するのを待つか、またはそのプロセスを停止する必要があります。

警告:ストレージ関連のプロセスを突然停止すると、データが破損することがあります。
ファイルをロックしているプロセスを識別するには:
  1. ESX または ESXi ホストのコンソールを開きます。詳細については、Unable to connect to an ESX host using Secure Shell (SSH) (1003807) または Tech Support Mode for Emergency Support (1003677) を参照してください。

  2. 次のコマンドを実行します。

    vmkfstools -D path

    ここで、path は操作対象ファイルへのフル パスです。

    :このコマンドはコンソールへの出力を生成しません。出力は vmkernel ログに送信されます。

  3. vmkfstools の出力を表示します。
    • ESX ホストの場合は、次のコマンドを実行します。

      tail /var/log/vmkernel
    • ESXi ホストの場合は、次のコマンドを実行します。

      tail /var/log/messages

  4. vmkfstools の出力にある MAC アドレスを記録します。次に例を示します。

    vmkernel: 11:04:31:50.251 cpu1:1035)FS3: 130: <START rdmtest-flat.vmdk>
    vmkernel: 11:04:31:50.251 cpu1:1035)Lock [type 10c00001 offset 60088320 v 160, hb offset 3646464
    vmkernel: gen 80, mode 1, owner 479f5a1a-0855d3ff-7288-0017a446ae31 mtime 532684]
    vmkernel: 11:04:31:50.251 cpu1:1035)Addr <4, 130, 156>, gen 157, links 1, type reg, flags 0x0, uid 0, gid 0, mode 100600
    vmkernel: 11:04:31:50.251 cpu1:1035)len 16106127360, nb 15360 tbz 0, zla 3, bs 1048576
    vmkernel: 11:04:31:50.251 cpu1:1035)FS3: 132: <END rdmtest-flat.vmdk>


    : MAC アドレス xx::xx:xx:xx:xx:xx は 0017a446ae31 として表されます。


  5. vmkfstools の出力にある MAC アドレスを、他のすべての ESX または ESXi ホストの管理インターフェイスからの MAC アドレスと比較することにより、ロックが作成されたホストを判別します。
    • ESX/ESXi では、次のコマンドによってサービス コンソール インターフェイスの MAC アドレスがリストされます。
      • # esxcfg-info -y | grep "System UUID"

        例:


        # esxcfg-info -y | grep "System UUID"
        |----System UUID.................................................4b97b79b-dda7-eede-0017a446ae31

      • # grep uuid /etc/vmware/esx.conf

        例:

        # grep uuid /etc/vmware/esx.conf
        /system/uuid = "4b97b79b-dda7-eede-617f-0017a446ae31
    • ESX および VMware Infrastructure (VI) Client の場合は、ホストを選択し、構成 タブ > ネットワーク > プロパティ... > ポート タブ > サービス コンソール をクリックします。MAC アドレスが右側に表示されます。
    • ESX および VI Client の場合は、ホストを選択し、構成 タブ > ネットワーク > プロパティ... > ポート タブ > 管理ネットワーク をクリックします。MAC アドレスが右側に表示されます。
    • 既存の NIC にロックがあり、NIC の MAC アドレスを見つける必要があるかどうかを検証するには、次のコマンドを使用します。

      # esxcfg-nics -l | grep -i "xx:xx:xx:xx :xx:xx"

  6. 次のコマンドを実行して、問題のファイルを使用している仮想マシンが存在しないことを検証します。

    # find -H /vmfs/volumes/*/*/*.vmx -print0 | xargs -0 grep "filename"

    : ESXi の場合は、オプション「-H」を削除します。これにより、結果の vmx すべてに 2 行が追加されます。1 行はデータストアの簡易名、もう 1 行はデータストアの UUID です。

    例:

    # find /vmfs/volumes/*/*/*.vmx -print0 | xargs -0 grep "ag-test.vmdk"
    /vmfs/volumes/7e2d0213-7530bdba/ag-test/ag-test.vmx:scsi0:0.fileName = "ag-test.vmdk"
    /vmfs/volumes/dc03-nfs/ag-test/ag-test.vmx:scsi0:0.fileName = "ag-test.vmdk"

    これにより、すべてのデータストア上のすべての仮想マシンの構成ファイル内にある、filename のすべてのインスタンスがリストされます。


  7. ESX ホストの場合は、次のコマンドを実行して、ファイルにアクセスしているサービス コンソール プロセスが存在しないことを検証します。

    lsof | grep -i filename

  8. ファイルにアクセスしているすべてのプロセスが完了するか、または停止されているかを検証します。

  9. ファイルにアクセスしている長期実行プロセスがタイムアウトしていないことを検証します。詳細については、vCenter operation times out with the error: Operation failed since another task is in progress (1004790) を参照してください。

これらの手順を実行してもファイルをロックしたプロセスを特定できない場合は、ホストまたは仮想マシンを再起動します。

警告:ストレージ操作時にホストを再起動すると、データを損失する可能性があります。


Additional Information

Manipulating a file on a Datastore fails with the error: device or resource busy / file is locked