Stisknutím tlačítka "Enter" přeskočíte na obsah

Virtual machine disks consolidation is needed

Virtual machine disks consolidation is needed, i takto Vás může přivítat vCenter v okně alarmů po přihlášení. Na konkrétním VM, na záložce “Summary”, pak bude pod hlavními informacemi v oznamovací oblasti svítit:

Jaký je důvod potřeby konsolidace?

K tomuto stavu dochází, pokud obsah *.vmsd (databáze snapshotů) je rozdílný oproti reálnému stavu. Typicky existuje delta soubor, ale v snapshot manageru není o aktivním snapshotu žádný záznam.

Jak k tomu došlo?

Nejčastějším důvodem je zálohování pomocí VM snapshotů. Může dojít k nějaké chybě nebo někdy stačí v době zálohování VM v nevhodnou dobu provádět údržbu hosta a může dojít k tomuto stavu.

Jak se provádí konsolidace?

Stačí pouze přes kontextovou nabídku nad daným VM v menu “Snapshots” zvolit “Consolidate” a problém je vyřešen.

Co když končí chybou?

Pokud pokus o konsolidaci končí chybou, je potřeba najít důvod. Příklad chyby může vypadat takto:

Příčina je velice jednoduchá, jak je vidět v logu, samotný disk má zámek proti zápisu. Nějaká komponenta jej drží. Je tedy potřeba najít vlastníka zámku. A zde začíná trochu detektivní práce.

1. zjistíme, na kterém datastoru se VM nachází: například pohledem do komponenty “VM Hardware” na záložce “Summary”. U konkrétního disku je položka “Location”, ta nám říká, kde je disk umístěn.
2. zapneme si na hostu SSH a připojíme se na něj.
3. přejdeme na datastor a do složky, ve které máme zamknuté vm

cd /vmfs/volumes/datastore01/LockedVM/

4. uděláme si výpis souborů ve složce:

ls -l

total 2022528
-rw------- 1 root root 262656 Jan 17 08:11 LockedVM-000001-ctk.vmdk
-rw------- 1 root root 37756928 Jan 17 08:11 LockedVM-000001-sesparse.vmdk
-rw------- 1 root root 444 Jan 16 22:27 LockedVM-000001.vmdk
-rw------- 1 root root 262656 Jan 17 08:11 LockedVM-000002-ctk.vmdk
-rw------- 1 root root 37818368 Jan 17 08:11 LockedVM-000002-sesparse.vmdk
-rw------- 1 root root 451 Jan 16 22:28 LockedVM-000002.vmdk
-rw------- 1 root root 262656 Jan 17 08:11 LockedVM-000003-ctk.vmdk
-rw------- 1 root root 37756928 Jan 17 08:11 LockedVM-000003-sesparse.vmdk
-rw------- 1 root root 451 Jan 17 02:29 LockedVM-000003.vmdk
-rw-r--r-- 1 root root 93 Jan 16 20:54 LockedVM-1905e506.hlog
-rw------- 1 root root 536870912 Jan 10 15:03 LockedVM-53976208.vswp
-rw------- 1 root root 262656 Jan 17 08:11 LockedVM-ctk.vmdk
-rw------- 1 root root 4294967296 Jan 16 22:25 LockedVM-flat.vmdk
-rw------- 1 root root 8684 Jan 17 09:05 LockedVM.nvram
-rw------- 1 root root 622 Jan 16 20:54 LockedVM.vmdk
-rw-r--r-- 1 root root 78 Jan 17 06:31 LockedVM.vmsd
-rwxr-xr-x 1 root root 3744 Jan 17 06:31 LockedVM.vmx
-rw------- 1 root root 0 Jan 16 20:54 LockedVM.vmx.lck
-rwxr-xr-x 1 root root 3744 Jan 17 06:31 LockedVM.vmx~
-rw-r--r-- 1 root root 656534 Jan 17 09:00 vmware.log

zde již vidíme, že naše postižené VM má dokonce více než jeden snapshot, delta soubory LockedVM-00000x-sesparse.vmdk

5. nyní použijeme nástroj vmkfstools nebo od ESXi 5.5 PO5 vmfsfilelockinfo a zjistíme MAC adresu nebo přímo vlastníka zámku:

vmkfstools -D ./LockedVM-flat.vmdk

Lock [type 10c00001 offset 207536128 v 228, hb offset 4161536
gen 15, mode 2, owner 00000000-00000000-0000-000000000000 mtime 122749
num 1 gblnum 0 gblgen 0 gblbrk 0]
RO Owner[0] HB Offset 3997696 5c405611-f64ae6db-1385-52df370e6410
Addr <4, 60, 46>, gen 85, links 1, type reg, flags 0x9, uid 0, gid 0, mode 600
len 4294967296, nb 1168 tbz 0, cow 0, newSinceEpoch 1168, zla 3, bs 1048576

RO Owner[0] HB Offset 3997696 5c405611-f64ae6db-1385-52df370e6410 = MAC adressa

nebo

vmfsfilelockinfo -p ./LockedVM-flat.vmdk

vmfsfilelockinfo Version 2.0
Looking for lock owners on "LockedVM-flat.vmdk"
"LockedVM-flat.vmdk" is locked in Read-Only mode by host having mac address ['52:df:37:0e:64:10']
Trying to use information from VMFS Heartbeat

Host owning the lock on file is 192.168.3.7, lockMode : Read-Only

vmfsfilelockinfo sděluje přímo IP hosta, je to pohodlnější něž hledat, kterému hostovi MAC adresa patří. Pokud byste ale přeci jen měli starší verzi a tento nástroj Vám chyběl, tak MAC adresu najdete na konkrétním hostovi v záložce “Configure” v položce “Physical adapters”. Těm, kteří mají radši CLI, velice dobře poslouží příkaz esxcli network nic list

Pokud VM běží, je dobré jej vypnout, jinak můžete vidět více vlastníků zámku a nemusí být jednoduché přijít na toho správného:

vmfsfilelockinfo -p ./LockedVM-flat.vmdk

vmfsfilelockinfo Version 2.0
Looking for lock owners on "LockedVM-flat.vmdk"
"LockedVM-flat.vmdk" is locked in Read-Only mode by host having mac address ['52:df:37:0e:64:10', '52:df:37:0e:24:60']
Trying to use information from VMFS Heartbeat

Host owning the lock on file is 192.168.3.7, lockMode : Read-Only
Host owning the lock on file is 192.168.3.3, lockMode : Read-Only

6. pokud již známe vlastníka zámku, přejdeme na daného hosta a použijeme příkaz:

lsof | grep LockedVM

74508 vmx FILE 73 /vmfs/volumes/5b7f0cf0-c6e38c43-c676-52df370e6280/Backup-Proxy/LockedVM.vmdk-sesparse.REDO_oTqsSX
74508 vmx FILE 74 /vmfs/volumes/5c373e71-42669298-6824-52df370e6280/LockedVM/LockedVM-flat.vmdk

zde první číslo na řádku “74508” říká číslo procesu, který soubor drží.

7. pokud je viník z výpisu jasný, v našem případě backup proxy, které zůstal disk připojen i po skončení zálohování, můžeme v klidu ručně odmapovat. Pokud ale nevidíme jasnou příčinu, tak použijeme příkaz kill a zastavíme tak proces, který soubor drží:

kill -9 74508

Pokud jste tak neučinili již dříve, před samotným ukončením procesu je nutné mít VM ve vypnutém stavu! V opačném případě můžeme příkazem kill ukončit i běh samotného VM.

Ne vždy na hostovi, který zámek drží, musí být běžící proces, který evidentně zámek drží. V těchto případech může pomoct příkaz:

/etc/init.d/hostd restart

8. kontrolu, že byl zámek odstraněn, provedeme takto:

vmfsfilelockinfo -p ./LockedVM-flat.vmdk

vmfsfilelockinfo Version 2.0
Looking for lock owners on "LockedVM-flat.vmdk"
"LockedVM-flat.vmdk" is not locked by any ESX host and is Free

opět lze provést i pomocí příkazu vmkfstools

Podrobnější informace o hledání majitele zámku popisují KB10051 a KB2110152

9. pokud jsme byli úspěšní a zámek je odstraněn, tak již stačí jen v GUI přes kontextovou nabídku nad daným VM v menu “Snapshots” zvolit “Consolidate” a problém je vyřešen.