Chyba VMWare Nelze získat přístup k souboru, protože je uzamčen

Při mazání snímků nebo konsolidaci disků virtuálních strojů na počítačích VMWare ESXi se velmi často setkávám s chybou “Nelze získat přístup k souboru, protože je uzamčen" To je docela běžný problém kvůli chybám v zálohovacím systému VM (problém jsem se setkal ve Veeam, HP Data Protector, Veritas). Uzamčení virtuálního disku snímku virtuálního počítače vám neumožní provést konsolidaci (je nutná konsolidace disků virtuálního stroje), úložiště vMotion do jiného diskového pole, zálohovat nebo vymazat aktuální snímek. Někdy nelze virtuální stroj se zámky jednoduše zapnout.

Chyba s přístupem k uzamčenému souboru virtuálního disku nebo snímku v VMWare může vypadat takto:

Nelze získat přístup k souboru, protože je uzamčen. Při konsolidaci disků došlo k chybě: Jeden nebo více disků je zaneprázdněno.

Můžete také vidět tuto chybu:

Při konsolidaci disků došlo k chybě: msg.snapshot.error-DISKLOCKED.

Objeví se nejčastější chyba „Nelze získat přístup k souboru, protože je uzamčen“:

  • Pokud některé soubory na zahrnutém virtuálním počítači obsahují značky zámku jiných hostitelů ESXi;
  • Při přidávání virtuálních disků do zálohy zařízení během neúspěšných zálohovacích relací;

Chcete-li najít zdroj zámku a odstranit jej, musíte nejprve identifikovat uzamčené soubory.

  1. Pomocí klienta SSH se připojte k hostiteli ESXi, na kterém je zaregistrován problematický VM;
  2. Přejděte do adresáře se soubory virtuálního počítače: cd / vmfs / volume / VMFS_DATASTORE_NAME / LOCKED_VM
  3. Vyhledejte chyby konsolidace souborů protokolu vmware.log, zámky souborů: kočka vmware.log | grep zámek
  4. Protokol by měl obsahovat přibližně následující chyby:
    VigorSnapshotManagerConsolidateCallback: snapshotErr = Nepodařilo se zamknout soubor (5: 4008) 2020-01-13T05: 07: 11,432Z | vmx | I125: DISK: Nelze otevřít disk "/vmfs/volumes/5121c3ff-230b21a-41aa-21d92b219221/msk-web01/msk-web01_1-000002.vmdk": Selhalo uzamčení souboru (16392). 2020-01-13T05: 07: 11,432Z | Pracovník č. 1 I125: DISKLIB-LIB: Nepodařilo se otevřít '/vmfs/volumes/5121c3ff-230b21a-41aa-21d92b219221/msk-web01/msk-web01-000002.vmdk' s příznaky 0xa Nepodařilo se zamknout soubor (16392). 2020-01-13T05: 07: 11,432Z | Pracovník č. 1 I125: DISK: Nelze otevřít disk "/vmfs/volumes/5121c3ff-230b21a-41aa-21d92b219221/msk-web01/msk-web01-000002.vmdk": Selhalo uzamčení souboru (16392). 2020-01-13T05: 07: 11,432Z | vmx | I125: [msg.fileio.lock] Nepodařilo se soubor zamknout 

  5. Tento příklad ukazuje, že soubor je uzamčen msk-web01_1-000002.vmdk;
  6. Pomocí následujícího příkazu můžete zobrazit aktuální řetězec snímků od zadaného na plochý disk: vmkfstools -qv10 msk-web01_1-000002.vmdk
  7. Nyní zobrazíme informace o snímku a jeho vlastníkovi (vlastníkovi RO): vmkfstools -D msk-web01-000001-delta.vmdk
    Zámek [typ 10c000021 offset 242835456 v 856, hb offset 3153920 gen 3, režim 1, majitel 5cbac61a-4b6e32b7-0480-d06726ae7900 mtime 5199410 num 0 gblnum 0 gblbrk 0] Vlastník RO [0] Posun HB 3153920 5cbac61a-4b6e32b7-0480-d06726ae7900 Addr, gen 859, odkazy 1, typ reg, příznaky 0, uid 0, gid 0, režim 600

Ve frontě Majitel RO je označena MAC adresa síťové karty hostitele ESXi, která blokovala tento snímek (MAC adresa je na snímku zvýrazněna). Také si všimněte hodnoty režimu:

  • režim 1 - zámek čtení / zápisu (například se zapnutým virtuálním počítačem);
  • režim 2 - obvykle to znamená, že jednotka je uzamčena záložní aplikací.

Chcete-li najít server ESXi pomocí známé adresy MAC, můžete v PowerCLI použít následující příkazy (převést dříve obdrženou adresu MAC do dvojtečky):

Importovací modul VMware.VimAutomation.Core -ErrorAction SilentlyContinue
connect-viserver vcenter1
Get-VMHost | Get-VMHostNetworkAdapter | Where-Object $ _. Mac-like "d0: 67: 26: ae: 79: 00" | Seznam formátů - Vlastnost *

Podobná situace, kdy potřebujete najít VM ve VMWare vCenter podle IP nebo MAC adresy.

V poli bude uveden název hostitele ESXi VMhost.

Můžete také vydat tabulku ARP přímo z hostitele ESXi a získat adresy IP a MAC všech sousedních serverů ESXi v síti VMkernel:

Seznam sousedů sítě ip esxcli

Chcete-li zámek odstranit ze souboru VM, jednoduše restartujte nalezeného hostitele ESXi (před emigrací všech VM z něj pomocí VMotion). Pokud nemůžete restartovat hostitele, restartujte službu Management Agent (hostd) v režimu údržby z hostitelské konzole SSH:

services.sh restart

Poté zkuste konsolidovat nebo odebrat snímek VM.

Chyba „Nelze získat přístup k souboru, protože je uzamčen„Docela často se objevuje Veeam Backup & Replication při použití proxy serveru Veeam. Kvůli chybám zálohování nemusí Veeam správně odpojit jednotku virtuálního stroje.

Chcete-li problém vyřešit, otevřete nastavení virtuálního počítače, na kterém je nainstalován server proxy Veeam. Vyjměte disk VM, jehož soubory jsou uzamčeny ze zařízení VM.

Ujistěte se, že jste vybrali „Odebrat z virtuálního počítače“ a ne „Odebrat z virtuálního počítače a odstranit soubory z disku“. V opačném případě můžete omylem smazat disk vmdk.