Віртуалізація - залоченние файли віртуальної машини в vmware vsphere - could not power on vm lock

При експлуатації віртуальної інфраструктури VMware vSphere іноді трапляється ситуація, коли віртуальну машину можна включити через те, що її який-небудь з її файлів виявляється залоченним. Відбувається це при різних обставинах: невдалої міграції vMotion / Storage vMotion, збої в мережі зберігання та інших.

Найбільш поширена помилка при цьому виглядає так:

Could not power on VM: Lock was not free

Віртуалізація - залоченние файли віртуальної машини в vmware vsphere - could not power on vm lock

Зустрічаються також такі варіації повідомлень і помилок при спробі включення віртуальної машини, яка зависає на 95%:

  • Unable to open Swap File
  • Unable to access a file since it is locked
  • Unable to access a file since it is locked
  • Unable to access Virtual machine configuration

Ну а у випадку встановлення з консоллю ВМ виходить ось таке:

Error connecting to .vmx because the VMX is not started

Все це симптоми однієї проблеми - один з наступних файлів ВМ залочений хост-сервером VMware ESXi:

  • .vswp
  • -flat.vmdk
  • --delta.vmdk
  • .vmx
  • .vmxf
  • vmware.log

При цьому залочений файл не той хост ESXi, на якому машина зареєстрована. Тому вирішення проблеми в даному випадку - перемістити ВМ холодної міграцій на той хост, який залочений файл і включити її там, після чого вже можна переносити її куди потрібно. Але як знайти той хост ESXi, який залочений файл? Про це і розповідається нижче.

Пошук залоченним файлу ВМ

Добре якщо в повідомленні при запуску віртуальної машини вам повідомили, який саме з її файлів виявився залоченним (як на малюнку вище). Але так буває не завжди. Потрібно відкрити лог vmware.log, який розташований в папці з віртуальною машиною, і знайти там рядки на кшталт наступних:

Failed to initialize swap file. Lock was not free

Віртуалізація - залоченние файли віртуальної машини в vmware vsphere - could not power on vm lock

Тут видно, що залочений .vswp-файл ВМ.

За балкою на екрані можна стежити командою (запустіть її і включайте ВМ):

Перевірка залоченним файлу ВМ і ідентифікація власника лока

Після того, як залоченний файл знайдений, потрібно визначити його власника. Спочатку спробуємо команду touch, яка перевіряє, чи може б оновлений time stamp файлу, тобто чи можна його залочити, або він вже залочений. Виконуємо наступну команду:

Якщо файл вже залочений, ми отримаємо ось таке повідомлення для нього:

can not touch: Device or resource busy

Далі виконуємо таку команду:

# Vmkfstools -D / vmfs / volumes ///

Віртуалізація - залоченние файли віртуальної машини в vmware vsphere - could not power on vm lock

Ті, хто хоче далі вивчати питання, можуть пройти в KB 10051.

Схожі статті