VMWare: Heartbeat corruption on esxi 5.5

cf7a0d3981cf470292069a67453b0264

Второй раз за месяц словил ошибку «Heartbeat corruption on esxi 5.5» (corrupt metadata consistency of a file system).

Инфраструктура состоит из нескольких Esxi 5.5 (240361) и СХД презентованной по iSCSI. Сетевая связность задублирована, все системы имеют по два независимых источника питания.

В ходе работы кластера одна или несколько VM, как правило в рамках одного LUN, зависают, при этом не vSphere Client ни с консоли сбить виртуалку не получается.

Штатная перезагрузка (если получается) ESXi приводит к тому, что файлы виртуальной машины оказываются залоченными:

~ # for file in $(ls /vmfs/volumes/Qsan3-2Tb/srv-1c-doc-sql); do echo $file; vmkfstools -D /vmfs/volumes/Qsan3-2Tb/srv-1c-doc-sql/$file | grep owner; done
srv-1c-doc-sql-dfb3797e.hlog gen 1371, mode 0, owner 00000000-00000000-0000-000000000000 mtime 49043 
srv-1c-doc-sql-dfb3797e.vswp gen 35, mode 1, owner 55fa89b8-1d2b79d0-9eb0-9c8e99190026 mtime 53508 
srv-1c-doc-sql-flat.vmdk gen 35, mode 1, owner 55fa89b8-1d2b79d0-9eb0-9c8e99190026 mtime 53490 
srv-1c-doc-sql.nvram gen 35, mode 1, owner 55fa89b8-1d2b79d0-9eb0-9c8e99190026 mtime 53497 srv-1c-doc-sql.vmdk 
...

Mode в статусе 1 означает, что виртуальная машина запущена, однако это не так.

mode 0 = no lock
mode 1 = is an exclusive lock (vmx file of a powered on VM, the currently used disk (flat or delta), *vswp, etc.)
mode 2 = is a read-only lock (e.g. on the ..-flat.vmdk of a running VM with snapshots)
mode 3 = is a multi-writer lock (e.g. used for MSCS clusters disks or FT VMs).

Перезагрузка хоста, который лочит файлы не помогает. Кроме того, при обращении к залоченному файлу с другого хоста в логах можно увидеть попытку лока с другим маком. В качестве подтверждения проблемы можно пропарсить логи vmkernel.log по ключевой фразе «Corrupt heartbeat detected» или «Corrupt HB»

~ # cat /var/log/vmkernel.log
 
2015-10-27T10:35:01.722Z cpu9:36497)WARNING: HBX: 616: Volume 5626440d-cba576ba-bfc2-9c8e99190026 ("Qsan3-2Tb") may be damaged on disk. Corrupt heartbeat detected at offset 3272704
2015-10-27T10:35:01.722Z cpu9:36497)WARNING: Corrupt HB: [HB state 17ef348 offset 1744972198020096 gen 1968009849602048 stampUS 1919751598305861 uuid 0015c20c-00000000-0000-0000c8ea0000 jrnl  drv 0.0]
2015-10-27T10:35:04.731Z cpu10:36506)WARNING: HBX: 616: Volume 5626440d-cba576ba-bfc2-9c8e99190026 ("Qsan3-2Tb") may be damaged on disk. Corrupt heartbeat detected at offset 3272704
2015-10-27T10:35:04.731Z cpu10:36506)WARNING: Corrupt HB: [HB state 17ef348 offset 1744972198020096 gen 1968009849602048 stampUS 1919751598305861 uuid 0015c20c-00000000-0000-0000c8ea0000 jrnl  drv 0.0]

Heartbeat-esx2

Решение подробно описано в мануале и заключается в выполнении на поврежденном LUN команд:

voma -m vmfs -f check -d /vmfs/devices/disks/naa.600508e000000000b367477b3be3d703:3
voma -m vmfs -f fix -d /vmfs/devices/disks/naa.600508e000000000b367477b3be3d703:3

Есть три момента, которые необходимо учесть при проведении работ:

1. Команды необходимо выполнять под ESXi6. Если у вас его нет, то можно сделать виртуалку, не забыв включить «Hardware Virtualization» (сделать это можно только через web версию сферы)

Heartbeat-esx1

Сразу после данного экрана нажимаем «shift+o»
2015-10-28 10-04-25 ESXi_6 on brn-esxi03.transitcard.ru

И стираем параметры запуска.

2015-10-28 10-05-03 ESXi_6 on brn-esxi03.transitcard.ru

2. Обратите внимание на то, как оформлено обращение к диску!

В случае использования в качестве параметра ссылки на диск расположенной в «/vmfs/volumes/» получите ошибку вида:

# voma -m vmfs -f check -d /vmfs/volumes/xxxx-xxxxx-xxxx-xxxx
Checking if device is actively used by other hosts
ERROR: Failed to check for heartbeating hosts on device'/vmfs/volumes/xxxx-xxxxx-xxxx-xxxx'

3. Lun перед началом операции проверки и восстановления должен быть отмонтирован, т.е. если у вас остались какие-либо рабочие VM на Lun, их  необходимо мигрировать в другое место.

Вы можете оставить комментарий ниже.