Guten Morgen zusammen,
wir hatten letzte Woche einen sehr seltsamen Fall. Wir betreiben seit mehreren Jahren ein 10 Node PVE Cluster (inkl. CEPH) und hatten bis jetzt noch nie nennenswerte Probleme. Das Cluster läuft extrem stabil und wir sind sehr zufrieden. Aber: Wir haben letzte Woche das Cluster von 7.3 auf 7.4 aktualisiert und bei dem Update einer einzelnen Node sind zwei unbeteiligte Nodes in den Status Fencing gegangen und haben einen Neustart durchgeführt. Da nun (neben den VMs) drei (von insgesamt. 7) CEPH Nodes down waren, gab es massive IO Probleme und dies hat weitere VMs zum crashen gebracht.
Jetzt meine Frage: Was kann hier passiert sein? Warum startet der HA Daemon zwei (unbeteiligte) und einwandfrei laufende Hosts neu, wenn auf einer einzelnen leeren Maschine gerade ein Update durchgeführt wird?
Hier ein paar Eckdaten:
Das einzig interessante, was ich auf den beiden neu gestarteten Nodes finden kann, ist:
und
Und zu COROSYNC:
Host ID 8 war die Node, bei der gerade das apt full-upgrade lief...
Das Syslog auf dieser Node 8 sieht wie folgt aus (der Vollständigkeit halber):
Viele Grüße
Tan
wir hatten letzte Woche einen sehr seltsamen Fall. Wir betreiben seit mehreren Jahren ein 10 Node PVE Cluster (inkl. CEPH) und hatten bis jetzt noch nie nennenswerte Probleme. Das Cluster läuft extrem stabil und wir sind sehr zufrieden. Aber: Wir haben letzte Woche das Cluster von 7.3 auf 7.4 aktualisiert und bei dem Update einer einzelnen Node sind zwei unbeteiligte Nodes in den Status Fencing gegangen und haben einen Neustart durchgeführt. Da nun (neben den VMs) drei (von insgesamt. 7) CEPH Nodes down waren, gab es massive IO Probleme und dies hat weitere VMs zum crashen gebracht.
Jetzt meine Frage: Was kann hier passiert sein? Warum startet der HA Daemon zwei (unbeteiligte) und einwandfrei laufende Hosts neu, wenn auf einer einzelnen leeren Maschine gerade ein Update durchgeführt wird?
Hier ein paar Eckdaten:
- Update von PVE 7.3.6 auf die letzte Version 7.4
- OVS im Einsatz
- CEPH Stand ist (noch) Pacific (16.2.13)
- CEPH NoOut Flag war aktiv, ansonsten war das Cluster vollständig "Healthy"
- Das Problem ist bei dem Update von Host 2 von 10 aufgetreten.
- Der Host war leer (keine VM).
- Das Problem ist am Ende des Updates aufgetreten, da wo die Dienste jeweils neu gestartet werden. Ich glaube, beim Neustart des HA Managers sind kurz danach die beiden anderen Hosts (noch 7.3er Stand) einfach neu gestartet (Fencing).
- Alle Server haben 4x 25 Gbit/s (jeweils 2x in LACP Teams). Corosync hat 2 separate Netze (Rings) über die separaten LACP Teams. Die Netze laufen auch auf separate Switche, die jeweils mit 2x 100 Gbit/s gestacked sind.
- Cluster / HA Master Node war wieder eine ganz andere (nicht beteiligte).
- Wir haben auf 4 Hosts CEPH Monitore und Manager aktiv. Beide unerwartet neu gestarteten Nodes hatten einen Monitor und Manager aktiv. Die Node, wo das Update lief nicht.
- Beim anschließenden Update der restlichen Nodes gab es keinerlei Probleme (außer ggf. kurze IO Waits beim Peering).
Das einzig interessante, was ich auf den beiden neu gestarteten Nodes finden kann, ist:
Code:
root@pve04:/var/log# cat syslog | grep pve-ha
Aug 31 16:09:30 pve04 pve-ha-lrm[3812]: lost lock 'ha_agent_pve04_lock - cfs lock update failed - Device or resource busy
Aug 31 16:09:30 pve04 pve-ha-lrm[3812]: status change active => lost_agent_lock
Aug 31 16:09:30 pve04 pve-ha-crm[3340]: loop take too long (31 seconds)
Aug 31 16:09:30 pve04 pve-ha-crm[3340]: status change slave => wait_for_quorum
Aug 31 16:12:25 pve04 pve-ha-crm[3020]: starting server
Aug 31 16:12:25 pve04 pve-ha-crm[3020]: status change startup => wait_for_quorum
Aug 31 16:12:26 pve04 pve-ha-lrm[3029]: starting server
Aug 31 16:12:26 pve04 pve-ha-lrm[3029]: status change startup => wait_for_agent_lock
Aug 31 16:12:35 pve04 pve-ha-crm[3020]: status change wait_for_quorum => slave
Aug 31 16:13:32 pve04 pve-ha-lrm[3029]: successfully acquired lock 'ha_agent_pve04_lock'
Aug 31 16:13:32 pve04 pve-ha-lrm[3029]: watchdog active
Aug 31 16:13:32 pve04 pve-ha-lrm[3029]: status change wait_for_agent_lock => active
Aug 31 16:13:32 pve04 pve-ha-lrm[8482]: starting service vm:112
Aug 31 16:13:32 pve04 pve-ha-lrm[8483]: starting service vm:386
Aug 31 16:13:32 pve04 pve-ha-lrm[8485]: starting service vm:411
und
Code:
Aug 31 16:09:30 pve03 pve-ha-lrm[3898]: lost lock 'ha_agent_pve03_lock - cfs lock update failed - Device or resource busy
Aug 31 16:09:30 pve03 pve-ha-lrm[3898]: status change active => lost_agent_lock
Aug 31 16:09:31 pve03 pve-ha-crm[3283]: loop take too long (31 seconds)
Aug 31 16:09:31 pve03 pve-ha-crm[3283]: status change slave => wait_for_quorum
Aug 31 16:12:51 pve03 pve-ha-crm[2992]: starting server
Aug 31 16:12:51 pve03 pve-ha-crm[2992]: status change startup => wait_for_quorum
Aug 31 16:12:52 pve03 pve-ha-lrm[3001]: starting server
Aug 31 16:12:52 pve03 pve-ha-lrm[3001]: status change startup => wait_for_agent_lock
Aug 31 16:13:01 pve03 pve-ha-crm[2992]: status change wait_for_quorum => slave
Aug 31 16:13:33 pve03 pve-ha-lrm[3001]: successfully acquired lock 'ha_agent_pve03_lock'
Aug 31 16:13:33 pve03 pve-ha-lrm[3001]: watchdog active
Aug 31 16:13:33 pve03 pve-ha-lrm[3001]: status change wait_for_agent_lock => active
Aug 31 16:13:33 pve03 pve-ha-lrm[8101]: starting service vm:390
Aug 31 16:13:33 pve03 pve-ha-lrm[8100]: starting service vm:203
Und zu COROSYNC:
Code:
Aug 31 16:09:08 pve03 corosync[1984]: [KNET ] link: host: 8 link: 0 is down
Aug 31 16:09:08 pve03 corosync[1984]: [KNET ] host: host: 8 (passive) best link: 1 (pri: 1)
Aug 31 16:09:09 pve03 corosync[1984]: [TOTEM ] Token has not been received in 6150 ms
Aug 31 16:09:20 pve03 corosync[1984]: [QUORUM] Sync members[3]: 3 4 8
Aug 31 16:09:20 pve03 corosync[1984]: [QUORUM] Sync left[7]: 1 2 5 6 7 9 10
Aug 31 16:09:20 pve03 corosync[1984]: [TOTEM ] A new membership (3.60b) was formed. Members left: 1 2 5 6 7 9 10
Aug 31 16:09:20 pve03 corosync[1984]: [TOTEM ] Failed to receive the leave message. failed: 1 2 5 6 7 9 10
Aug 31 16:09:30 pve03 corosync[1984]: [QUORUM] Sync members[3]: 3 4 8
Aug 31 16:09:30 pve03 corosync[1984]: [QUORUM] Sync joined[2]: 4 8
Aug 31 16:09:30 pve03 corosync[1984]: [QUORUM] Sync left[9]: 1 2 4 5 6 7 8 9 10
Aug 31 16:09:30 pve03 corosync[1984]: [TOTEM ] A new membership (3.613) was formed. Members joined: 4 8 left: 4 8
Aug 31 16:09:30 pve03 corosync[1984]: [TOTEM ] Failed to receive the leave message. failed: 4 8
Aug 31 16:09:30 pve03 corosync[1984]: [TOTEM ] Retransmit List: 1 2
Aug 31 16:09:30 pve03 corosync[1984]: [QUORUM] This node is within the non-primary component and will NOT provide any services.
Aug 31 16:09:30 pve03 corosync[1984]: [QUORUM] Members[3]: 3 4 8
Aug 31 16:09:30 pve03 corosync[1984]: [MAIN ] Completed service synchronization, ready to provide service.
Aug 31 16:09:49 pve03 corosync[1984]: [QUORUM] Sync members[3]: 3 4 8
Aug 31 16:09:49 pve03 corosync[1984]: [QUORUM] Sync joined[2]: 4 8
Aug 31 16:09:49 pve03 corosync[1984]: [QUORUM] Sync left[2]: 4 8
Aug 31 16:09:49 pve03 corosync[1984]: [TOTEM ] A new membership (3.61b) was formed. Members joined: 4 8 left: 4 8
Aug 31 16:09:49 pve03 corosync[1984]: [TOTEM ] Failed to receive the leave message. failed: 4 8
Aug 31 16:09:49 pve03 corosync[1984]: [TOTEM ] Retransmit List: 1
Aug 31 16:09:49 pve03 corosync[1984]: [QUORUM] Members[3]: 3 4 8
Aug 31 16:09:49 pve03 corosync[1984]: [MAIN ] Completed service synchronization, ready to provide service.
Aug 31 16:09:58 pve03 corosync[1984]: [KNET ] link: host: 8 link: 1 is down
Aug 31 16:09:58 pve03 corosync[1984]: [KNET ] host: host: 8 (passive) best link: 1 (pri: 1)
Aug 31 16:09:58 pve03 corosync[1984]: [KNET ] host: host: 8 has no active links
Code:
Aug 31 16:09:05 pve04 corosync[1991]: [KNET ] link: host: 8 link: 1 is down
Aug 31 16:09:05 pve04 corosync[1991]: [KNET ] host: host: 8 (passive) best link: 0 (pri: 1)
Aug 31 16:09:09 pve04 corosync[1991]: [TOTEM ] Token has not been received in 6150 ms
Aug 31 16:09:20 pve04 corosync[1991]: [QUORUM] Sync members[3]: 3 4 8
Aug 31 16:09:20 pve04 corosync[1991]: [QUORUM] Sync left[7]: 1 2 5 6 7 9 10
Aug 31 16:09:20 pve04 corosync[1991]: [TOTEM ] A new membership (3.60b) was formed. Members left: 1 2 5 6 7 9 10
Aug 31 16:09:20 pve04 corosync[1991]: [TOTEM ] Failed to receive the leave message. failed: 1 2 5 6 7 9 10
Aug 31 16:09:30 pve04 corosync[1991]: [QUORUM] Sync members[3]: 3 4 8
Aug 31 16:09:30 pve04 corosync[1991]: [QUORUM] Sync left[7]: 1 2 5 6 7 9 10
Aug 31 16:09:30 pve04 corosync[1991]: [TOTEM ] A new membership (3.60f) was formed. Members
Aug 31 16:09:30 pve04 corosync[1991]: [QUORUM] Sync members[3]: 3 4 8
Aug 31 16:09:30 pve04 corosync[1991]: [QUORUM] Sync joined[1]: 3
Aug 31 16:09:30 pve04 corosync[1991]: [QUORUM] Sync left[8]: 1 2 3 5 6 7 9 10
Aug 31 16:09:30 pve04 corosync[1991]: [TOTEM ] A new membership (3.613) was formed. Members joined: 3 left: 3
Aug 31 16:09:30 pve04 corosync[1991]: [TOTEM ] Failed to receive the leave message. failed: 3
Aug 31 16:09:30 pve04 corosync[1991]: [QUORUM] This node is within the non-primary component and will NOT provide any services.
Aug 31 16:09:30 pve04 corosync[1991]: [QUORUM] Members[3]: 3 4 8
Aug 31 16:09:30 pve04 corosync[1991]: [MAIN ] Completed service synchronization, ready to provide service.
Aug 31 16:09:49 pve04 corosync[1991]: [QUORUM] Sync members[3]: 3 4 8
Aug 31 16:09:49 pve04 corosync[1991]: [TOTEM ] A new membership (3.617) was formed. Members
Aug 31 16:09:49 pve04 corosync[1991]: [QUORUM] Sync members[3]: 3 4 8
Aug 31 16:09:49 pve04 corosync[1991]: [QUORUM] Sync joined[1]: 3
Aug 31 16:09:49 pve04 corosync[1991]: [QUORUM] Sync left[1]: 3
Aug 31 16:09:49 pve04 corosync[1991]: [TOTEM ] A new membership (3.61b) was formed. Members joined: 3 left: 3
Aug 31 16:09:49 pve04 corosync[1991]: [TOTEM ] Failed to receive the leave message. failed: 3
Aug 31 16:09:49 pve04 corosync[1991]: [QUORUM] Members[3]: 3 4 8
Aug 31 16:09:49 pve04 corosync[1991]: [MAIN ] Completed service synchronization, ready to provide service.
Host ID 8 war die Node, bei der gerade das apt full-upgrade lief...
Das Syslog auf dieser Node 8 sieht wie folgt aus (der Vollständigkeit halber):
Code:
Aug 31 16:09:19 pve08 pve-ha-lrm[4135]: unable to write lrm status file - unable to open file '/etc/pve/nodes/pve08/lrm_status.tmp.4135' - Transport endpoint is not connected
Aug 31 16:09:19 pve08 pve-ha-crm[3729]: status change slave => wait_for_quorum
Aug 31 16:09:30 pve08 pve-ha-crm[3729]: status change wait_for_quorum => slave
Aug 31 16:09:30 pve08 pve-ha-crm[3729]: status change slave => wait_for_quorum
Aug 31 16:09:30 pve08 pve-ha-lrm[4135]: received signal TERM
Aug 31 16:09:30 pve08 pve-ha-lrm[4135]: restart LRM, freeze all services
Aug 31 16:09:30 pve08 pve-ha-lrm[4135]: unable to update lrm status file - not quorate?
Aug 31 16:09:30 pve08 pve-ha-lrm[4135]: unable to write lrm status file - unable to open file '/etc/pve/nodes/pve08/lrm_status.tmp.4135' - Permission denied
Aug 31 16:09:35 pve08 pve-ha-lrm[4135]: server stopped
Aug 31 16:09:36 pve08 systemd[1]: pve-ha-lrm.service: Succeeded.
Aug 31 16:09:36 pve08 systemd[1]: pve-ha-lrm.service: Consumed 2d 17h 51min 18.688s CPU time.
Aug 31 16:09:37 pve08 pve-ha-lrm[34307]: starting server
Aug 31 16:09:37 pve08 pve-ha-lrm[34307]: status change startup => wait_for_agent_lock
Aug 31 16:09:38 pve08 pve-ha-crm[3729]: received signal TERM
Aug 31 16:09:38 pve08 pve-ha-crm[3729]: server received shutdown request
Aug 31 16:09:38 pve08 pve-ha-crm[3729]: server stopped
Aug 31 16:09:39 pve08 systemd[1]: pve-ha-crm.service: Succeeded.
Aug 31 16:09:39 pve08 systemd[1]: pve-ha-crm.service: Consumed 2h 5min 24.776s CPU time.
Aug 31 16:09:40 pve08 pve-ha-crm[34353]: starting server
Aug 31 16:09:40 pve08 pve-ha-crm[34353]: status change startup => wait_for_quorum
Viele Grüße
Tan
Last edited: