テンプレートの VMDK ファイルがロックされているためにテンプレートから仮想マシンをデプロイできない
search cancel

テンプレートの VMDK ファイルがロックされているためにテンプレートから仮想マシンをデプロイできない

book

Article ID: 344590

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

Symptoms:
免責事項:これは英文の記事「Cannot deploy a virtual machine from a template because the template VMDK file is locked (1007487)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新の内容については、英語版の記事を参照してください。


  • テンプレートから仮想マシンをデプロイできない
  • テンプレートの <vm name>-flat.vmdk または <vm name>.vmdk ファイルが実行中の仮想マシンによってロックされる
  • VMDK ファイルが見つからない
  • [仮想ハードウェアを編集(試験的サポート)] オプションを選択してテンプレートをデプロイするときにディスク サイズが変更されている


Environment

VMware vSphere ESXi 5.0
VMware ESXi 4.1.x Embedded
VMware VirtualCenter 2.5.x
VMware ESXi 3.5.x Embedded
VMware ESXi 4.0.x Embedded
VMware ESX Server 3.5.x
VMware ESXi 4.0.x Installable
VMware vCenter Server 5.1.x
VMware vCenter Server 4.1.x
VMware ESXi 3.5.x Installable
VMware ESXi 4.1.x Installable
VMware ESX 4.1.x
VMware ESX 4.0.x
VMware vCenter Server 4.0.x
VMware vCenter Server 5.0.x
VMware vSphere ESXi 5.1

Resolution

この問題は、VMware vCenter Server 5.0 Update 2 および vCenter Server 5.1 Update 1 では解決されています。
  • vCenter Server 5.0 Update 2 をダウンロードするには、「VMware ダウンロード センター」を参照してください。
  • vCenter Server 5.1 Update 1 をダウンロードするには、「VMware ダウンロード センター」を参照してください。

    : vCenter Server の更新がオプションに含まれていない場合は、以下の手順に従ってこの問題を回避してください。

テンプレートからデプロイされた仮想マシンは、そのマシンではなくテンプレートの仮想ディスクと VMDK ファイルで実行されるように誤って構成されている場合に、テンプレートの VMDK ファイルをロックします。ロックにより、その他の仮想マシンがテンプレートからデプロイされないようにします。
テンプレートの VMDK ファイルが別の仮想マシンによってロックされているかどうかを判別し、ロックされている場合には、ファイルのロックを解除してください。
注意:仮想マシンはテンプレートのディスクで実行されていたため、ディスクに対して不必要な変更が加えられている可能性があります。そのため、本番環境では適切なバックアップとリカバリのプランが重要です。
テンプレートの VMDK ファイルが別の仮想マシンによってロックされているかどうかを判別するには:
  1. ESX ホストに root としてログインします。
  2. ディレクトリをテンプレートの作業ディレクトリに変更します。
  3. 次のコマンドを実行します。

    vmkfstools -D <virtual disk file> | tail -f /var/log/vmkernel | grep -i owner

    : ESXi 5.x の場合は、次のコマンドを実行します。

    vmkfstools -D <virtual disk file> | tail -f /var/log/vmkernel.log | grep -i owner

  4. 出力の終わり近くに数字(0 以外)と文字がある場合、MAC アドレスはこの VMDK に関連付けられており、別の仮想マシンがこのファイルでロックしています。出力の終わりに 0 が続く場合、その VMDK ファイルは別の仮想マシンによってロックされていません。
テンプレートの VMDK ファイルでのロックを解除するには:
  1. ロックしている単一ホスト上の仮想マシンを表示するには、次のコマンドを実行します。

    grep -lr <virtual disk file> /vmfs/volumes/*/*/*.vmx

    :仮想ディスク ファイルへのフル パスを記録してください。ロックされたファイルが原因で記録できない場合は、以下のいずれかの方法を試してください。仮想マシンのディスクが、複数のホストで共有されているストレージ上に存在する場合には、この状態になることがあります。

    代替方法:

    • grep vmx /etc/vmware/hostd/vmInventory.xml | sed -e 's/>/</g' | awk -F\< '{print $3}' > vmx;
      IFS=$(echo -en "\n\b"); for i in `cat vmx`; do echo grep -H vmdk $i; done
    • Connect-VIServer -server localhost
      Get-Vm | Get-Harddisk | Where {$_.Filename -match "<diskname>"}

  2. ロックしている仮想マシンをパワーオフします。仮想マシンをパワーオフできない場合は、Powering off an unresponsive virtual machine on an ESX host (1004340) を参照してください。
  3. 仮想マシンの設定を編集して仮想ディスクを除外します。ただし、削除はしないでください。
  4. 既存のディスクに接続するには:
    • ハードウェアの追加ウィザードで、ハード ディスク > 次へ をクリックします。
    • 仮想マシンのディスクのストレージのタイプを選択します。
    • 次へ > 既存の仮想ディスクを使用をクリックします。
    • 手順 1 で特定した仮想ディスク ファイルのパスを参照します。
    • 次へ をクリックします。


Additional Information

Cannot deploy a virtual machine from a template because the template VMDK file is locked