Если виртуальный диск VMDK заблокирован другим процессом VMware, это означает, что файл находится в эксклюзивном доступе другой виртуальной машины или процесса. Решение зависит от причины блокировки и может включать остановку конфликтующей ВМ, удаление lock-файлов или проверку файловой системы хоста.
Причины проблемы
- Виртуальная машина запущена одновременно на двух хостах ESXi (split-brain scenario)
- Некорректное завершение работы ESXi или vCenter, оставившее блокировку на диске
- Конфликт при попытке подключить диск к другой ВМ без предварительного отсоединения
- Наличие orphaned lock-файлов (.lck) в директории ВМ
- Проблемы с NFS или iSCSI хранилищем, некорректно обрабатывающим блокировки
- Запущенный процесс снимка или клонирования диска на другом хосте
- Ошибка в VMware Tools, препятствующая корректному освобождению блокировки
Пошаговая инструкция
Способ 1: Остановка конфликтующей виртуальной машины
- Откройте
vSphere ClientилиESXi Web Interface. - Найдите виртуальную машину, использующую данный диск VMDK.
- Щёлкните правой кнопкой мыши по ВМ и выберите
Power Off(Выключить). - Дождитесь полного завершения работы машины (статус должен измениться на
Powered Off). - Попробуйте подключить диск к целевой виртуальной машине или выполнить необходимую операцию.
Способ 2: Удаление orphaned lock-файлов через SSH
- Подключитесь к хосту ESXi по протоколу SSH (включите SSH в разделе
Security Profile). - Перейдите в директорию хранилища (например,
/vmfs/volumes/datastore-name/vm-folder). - Выполните команду для поиска lock-файлов:
ls -la | grep .lck. - Если lock-файлы найдены, удалите их командой:
rm -f имя-файла.lck. - Убедитесь в отсутствии других процессов, использующих диск:
lsof | grep vmdk-имя. - Повторно попытайтесь выполнить операцию с диском в vSphere.
Способ 3: Проверка и очистка через vSphere Client
- В
vSphere Clientоткройте разделStorage(Хранилище). - Выберите datastore, содержащий заблокированный диск.
- Нажмите
Browse Files(Просмотр файлов). - Найдите папку виртуальной машины, содержащую VMDK-файл.
- Проверьте наличие файлов с расширением
.lck,.vmdk.lckили.vmx.lck. - Выделите лишние lock-файлы и удалите их кнопкой
Delete. - Перезагрузите хост ESXi командой
rebootчерез консоль DCUI, если проблема сохраняется.
Способ 4: Перезагрузка ESXi хоста (последний вариант)
- Убедитесь, что все критичные ВМ остановлены или мигрированы на другой хост.
- Откройте консоль DCUI на физическом сервере или используйте iLO/IPMI.
- Нажмите
F2для входа в меню конфигурации. - Перейдите в
System → Reboot System. - Подтвердите перезагрузку нажатием
Y. - После перезагрузки все блокировки будут освобождены автоматически.
Способ 5: Отключение и переподключение диска
- Правой кнопкой мыши щёлкните по ВМ, использующей VMDK, и выберите
Edit Settings(Изменить параметры). - В разделе
Hardwareнайдите диск, который нужно отсоединить. - Нажмите иконку удаления (крестик) рядом с диском и выберите
Remove from virtual machine. - Нажмите
OKдля сохранения изменений. - Вернитесь в
Edit Settingsэтой же ВМ и добавьте диск заново черезAdd New Device → Existing Hard Disk. - Укажите путь к VMDK-файлу и завершите операцию.
Часто задаваемые вопросы
Как узнать, какой процесс блокирует диск VMDK?
Подключитесь к ESXi по SSH и выполните команду lsof | grep имя-диска.vmdk — она покажет PID процесса и имя ВМ.
Можно ли удалить VMDK, если он заблокирован?
Нет, сначала необходимо освободить блокировку, остановив конфликтующую ВМ или удалив lock-файлы, после чего операция удаления станет доступной.
Теряются ли данные после удаления lock-файлов?
Нет, lock-файлы содержат только информацию о состоянии доступа, удаление не повлияет на содержимое VMDK-диска, но убедитесь, что ВМ действительно не работает.