Грешка в VMWare Невъзможно е достъп до файл, тъй като е заключен

Много често при изтриване на моментни снимки или консолидиране на дискове на виртуални машини на VMWare ESXi хостовете срещам грешката “Не може да се осъществи достъп до файл, тъй като той е заключен". Това е доста често срещан проблем поради грешки в системата за архивиране на VM (срещнах проблема в Veeam, HP Data Protector, Veritas). Заключването на виртуалния диск на моментна снимка на виртуална машина няма да ви позволи да извършите консолидация (необходимо е консолидиране на дискове на виртуална машина), съхранение vMotion към друг масив от дискове, архивиране или изтриване на текущия момент. Понякога виртуална машина с ключалки дори не може да бъде просто включена.

Грешка с достъп до заключен файл на виртуален диск или моментна снимка във VMWare може да изглежда така:

Не може да се осъществи достъп до файла, тъй като той е заключен. Възникна грешка при консолидиране на дискове: Един или повече дискове са заети.

Можете също да видите тази грешка:

Възникна грешка при консолидиране на дискове: msg.snapshot.error-DISKLOCKED.

Най-честата грешка „Невъзможно е достъп до файла, тъй като е заключен“:

  • Когато някои файлове на включена виртуална машина съдържат знаци за заключване от други ESXi хостове;
  • Когато добавяте виртуални дискове към архивиране на уреда по време на неуспешни сесии за архивиране;

За да намерите източника на ключалката и да я премахнете, първо трябва да идентифицирате заключените файлове.

  1. С помощта на SSH клиента се свържете с хоста на ESXi, на който е регистрирана проблемната VM;
  2. Отидете в директорията с файловете на виртуалната машина: cd / vmfs / том / VMFS_DATASTORE_NAME / LOCKED_VM
  3. Намерете грешки в консолидацията на файлове на vmware.log, заключване на файлове: котка vmware.log | грейп заключване
  4. Дневникът трябва да съдържа приблизително следните грешки:
    VigorSnapshotManagerConsolidateCallback: snapshotErr = Неуспешно заключване на файла (5: 4008) 2020-01-13T05: 07: 11.432Z | vmx | I125: DISK: Не може да се отвори диск "/vmfs/volumes/5121c3ff-230b21a-41aa-21d92b219221/msk-web01/msk-web01_1-000002.vmdk": Неуспешно заключване на файла (16392). 2020-01-13T05: 07: 11.432Z | Работник №1 | I125: DISKLIB-LIB: Неуспешно отваряне '/vmfs/volumes/5121c3ff-230b21a-41aa-21d92b219221/msk-web01/msk-web01-000002.vmdk' със знамена 0xa Неуспешно заключване на файла (16392). 2020-01-13T05: 07: 11.432Z | Работник №1 | I125: DISK: Не може да се отвори диск "/vmfs/volumes/5121c3ff-230b21a-41aa-21d92b219221/msk-web01/msk-web01-000002.vmdk": Неуспешно заключване на файла (16392). 2020-01-13T05: 07: 11.432Z | vmx | I125: [msg.fileio.lock] Неуспешно заключване на файла 

  5. Този пример показва, че файлът е заключен MSK-web01_1-000002.vmdk;
  6. Използвайки следната команда, можете да покажете текущата верига за моментни снимки от посочената на плосък диск: vmkfstools -qv10 msk-web01_1-000002.vmdk
  7. Сега ще покажем информация за моменталната снимка и нейния собственик (собственик на RO): vmkfstools -D msk-web01-000001-delta.vmdk
    Lock [тип 10c000021 офсет 242835456 v 856, hb offset 3153920 gen 3, режим 1, собственик 5cbac61a-4b6e32b7-0480-d06726ae7900 mtime 5199410 число 0 gblnum 0 gblgen 0 gblbrk 0] Собственик на RO [0] HB Offset 3153920 5cbac61a-4b6e32b7-0480-d06726ae7900 Addr, gen 859, връзки 1, тип reg, знамена 0, uid 0, gid 0, режим 600

На линия Собственик на RO се посочва MAC адресът на мрежовата карта на хоста на ESXi, който блокира този файл със снимка (MAC адресът е подчертан на екрана). Обърнете внимание и на режима:

  • режим 1 - заключване за четене / запис (например с включен VM);
  • режим 2 - обикновено означава, че устройството е заключено от приложението за архивиране.

За да намерите ESXi сървър по известен MAC адрес, можете да използвате следните команди в PowerCLI (конвертирайте по-рано получения MAC адрес в двоеточие формат):

Импортиране-модул VMware.VimAutomation.Core -ErrorAction SilentlyContinue
connect-viserver vcenter1
Get-VMHost | Get-VMHostNetworkAdapter | Where-Object $ _. Mac-like "d0: 67: 26: ae: 79: 00" | Format-List -Property *

Подобна ситуация, когато трябва да намерите VM в VMWare vCenter по IP или MAC адрес.

Името на хоста ESXi ще бъде посочено в полето VMHost.

Можете също така да изведете ARP таблицата директно от хоста на ESXi и да получите IP и MAC адресите на всички съседни ESXi сървъри в мрежата на VMkernel:

esxcli мрежа ip списък на съседите

За да премахнете заключването от VM файла, просто рестартирайте ESXi хоста, намерен (предварително емигрирайте всички VM от него с помощта на VMotion). Ако не можете да рестартирате хоста, рестартирайте услугата Management Agent (hostd) в режим на поддръжка от хост конзолата SSH:

services.sh рестартиране

След това, опитайте да консолидирате или премахнете VM моментна снимка.

Грешка “Не може да се осъществи достъп до файла, тъй като той е заключен„Доста често възниква в Резервно копие и репликация на Veeam когато използвате прокси Veeam. Поради грешки в архивирането, Veeam може да не прекъсне правилно устройството на виртуалната машина.

За да отстраните проблема, отворете настройките на VM, на който е инсталиран Veeam прокси. Извадете VM диска, чиито файлове са заключени от VM оборудването.

Уверете се, че изберете „Премахване от виртуална машина“, а не „Премахване от виртуална машина и изтриване на файлове от диска“. В противен случай може случайно да изтриете вашия vmdk диск.