In XenServer 7 wurde das Layout der Dom0 Disk geändert, das Log Verzeichnis hat nun eine eigene 4GB Partition für /var/log.
In der Standard Einstellung von XenServer kann es passieren, dass diese Partition sehr schnell voll läuft.
Nun sollte man meinen, dass dieses keine größeren Auswirkungen hat – allerdings stimmt diese Annahme nicht.
Zum Beispiel wird das Einschalten des HA Modus für einen Pool in der Regel fehl schlagen.
Sollten ein oder mehrere Partitionen auf den Xen Hosts voll sein, dann kann es passieren, dass beim Einschalten der HA Funktionalität der Prozess hängen bleibt, zum Reboot einzelner Hosts führt und VMs nicht mehr erreichbar sind.
Wenn man einen Host mit einer vollen /var/log Partition neu startet, dann wird die Verbindung zum Pool fehl schlagen, in der xsconsole werden dann unter anderem keinerlei Netzwerk Informationen mehr angezeigt.
Kurz gesagt: sollten /var/log Partitionen auf Hosts in einem Xen Pool voll sein – dann kann es zum Ausfall des kompletten Pools führen.
Als schnell Lösung kann man, bevor man eine Aktion wie HA einschalten durchführt, die Größe der Partition prüfen und ggf. die nicht benötigten Logfiles löschen
Ich möchte hier zeigen, wie das Logging für xensource.log und xenstored-access.log geändert werden kann, denn der Parameter
xe log-set-output
wird zumindest in meinem Test nicht respektiert. Hier sollte man, in Theorie, den Loglevel einstellen können (debug, info, warn, error).
Wenn man sich das Logfile xensource.log ansieht, dann sieht man Einträge ähnlich diesem hier:
Nov 4 13:11:07 host1 xenopsd-xc: [debug|host1|3 |queue|xenops_server] Queue.push ["VM_check_state", "583a65f4-bb23-34ee-aabd-1b63bc71d250"] onto redirected 583a65f4-bb23-34ee-aabd-1b63bc71d250:[ ["VM_check_state", "583a65f4-bb23-34ee-aabd-1b63bc71d250"] ]
also ganz klar Debug Einträge.
In dem Logfile xenstored-access.log steht ‘debug’ nicht im logging – allerdings werden teilweise read/write Befehle auf VMs geloggt bei denen es sich offensichtlich um Debug Einträge handelt. Wenn man die unten stehenden Anpassung durchführt, wird man danach sehen, dass wesentlich weniger in das Logfile geschrieben wird.
Die Anpassungen für das Logging nehmen wir direkt im Syslogger der Dom0 vor, dazu loggen wir uns auf die Konsole des jeweiligen Hosts ein und führen in der Shell den folgenden Befehl aus:
nano /etc/rsyslog.d/xenserver.conf
hier finden wir dann unter anderem die folgenden Einträge:
# Xapi, xenopsd echo to syslog local5 local5.* -/var/log/xensource.log # xenstore access to syslog local3 local3.info -/var/log/xenstored-access.log
diese ändern wir wie folgt ab:
# Xapi, xenopsd echo to syslog local5 local5.error -/var/log/xensource.log # xenstore access to syslog local3 local3.error -/var/log/xenstored-access.log
Speichern die Änderungen und starten den Syslogger neu
service rsyslog restart
geloggt werden nun alle Ereignisse mit dem Level Error und höher.