KontaktRufen Sie uns an +49 89 993412-0

Virtueller Staumelder: Wo klemmt es im Cluster?

23. Mar 2022 ALE

Im Idealfall hat jede virtuelle Maschine freie Fahrt. Doch in der IT-Realität gibt es genügend mögliche Auslöser für virtuelle Staus: da lastet ein Gastsystem gerade seine virtuellen CPUs völlig aus und schreibt wie wild auf die Platte – und behindert damit andere VMs. Um hier den Ursachen auf die Spur zu kommen helfen die neuen Live-Performance-Graphen der Verwaltungsoberfläche CMC2 in CoreBiz 8.0.

Live-Performance-Graphen sind weit mehr als ein nettes Gimmick für Spielkinder, sondern gerade auch ein Tool für gestandene Admins. Wie sehr die Profis einen einfachen Zugang zu aktuellen Messwerten schätzen, zeigte sich bei der Entwicklung: Die Admins lieferten zu Alpha- und Beta-Versionen wertvolles Feedback und kreative Wünsche beinahe schneller als die Entwickler den bereits vorhanden Funktionsumfang zeigen konnten. Dabei war hinter den Kulissen eine Menge an Infrastruktur nötig, um die Daten überhaupt effizient und exakt zu ermitteln und vom Virtualisierungshost (in der CoreBiz-Welt: VSB) über die Web-Applikation (CMC) und den Web-Server (Nginx) an den Browser zu senden.

Die Übersicht behalten

Graphen gibt es nun sowohl in der Übersicht der laufenden virtuellen Maschinen (dem VSB-Manager der CMC), als auch in der Detailansicht einzelner VMs. Da in der Übersicht zunächst nur recht wenig Platz für Kurven zur Verfügung steht, öffnet sich nach einem Klick auf einen Graphen eine größere Darstellung mit mehr Details. Im Sekundentakt erhalten alle Graphen neue Messwerte – wer aber einen aktuellen Verlauf genauer betrachten will, kann einzelne Graphen per Mausklick pausieren.

Die Daten dazu stammen aus der Virtualisierungsschicht, sie stehen damit für jedes beliebige Gastsystem zur Verfügung. Ein Gast-Agent oder spezielle Treiber sind nicht nötig.

Neben den einzelnen virtuellen Maschinen zeigt die Übersicht auch fortlaufend aktualisiert die CPU-, RAM-, Disk- und Netzauslastung der Virtualisierungshosts. Wer eine neue VM starten will oder im Zwei-Knoten-Cluster die Hosts gleichmäßig auslasten möchte, sieht auf einen Blick, welche Maschine sich gerade am besten eignet.

Blick ins Detail

Die Detailansicht für einzelne VMs bietet dem Anwender noch weitere Möglichkeiten. Hier kann er in einem eigenen Tab auswählen, welche Daten er überhaupt sehen möchte, über welche Zeitspanne er den Graphen aufzeichnen will und in welchem Rhythmus er neue Messwerte erhalten möchte. Eine kompakte Zusammenfassung wird zudem oberhalb der VNC-Konsole eingeblendet: Damit zeigt sich sofort, wie viel Last eine bestimmte Aktion in der virtuellen Maschine erzeugt. Die Detail-Graphen enthalten zudem sowohl den Durchsatz als auch die IO- oder Paket-Rate bei Festplattenzugriffen und Netzwerktraffic.

Nun hätte man ein solches System im Grunde mit einem simplen Polling implementieren können: Die CMC fragt regelmäßig nach den aktuellen Daten und berechnet daraus ihre Graphen. Nur hätte dieser Ansatz einen gewaltigen Overhead, da die CMC für jeden Satz Messwerte jeweils eine TLS-gesicherte Verbindung aufbauen, sich authentifizieren, die Messparameter übergeben und auf die Messwerte warten müsste.

Implementiert wurde stattdessen ein Push-Verfahren mit lang laufenden Verbindungen. Vereinfacht gesagt verbindet sich JavaScript-Code im Browser über den Webserver nginx mit der CMC. Diese wiederum stellt eine Verbindung zu jedem beteiligten Virtualisierungshost her und übergibt einmal die Messparameter. Daraufhin senden die Hosts im gewünschten Rhythmus die aktuellen Werte. Die CMC wiederum multiplexed diese Werte über die einzelne Verbindung zum Browser. Erst wenn der Anwender keine Messungen mehr wünscht oder die Browser-Seite schließt, werden diese Verbindungen wieder beendet. Damit bleibt die zusätzliche Last auf allen beteiligten Systemen minimal.

Infrastruktur nötig

Möglich wurde diese Lösung unter anderem durch die Neuimplementierung des CoreBiz Management Daemon in CoreBiz 8.0 mit modernem REST-API in einem eigenen Framework. Das hat nun einen Streaming-Modus erhalten, mit dem es statt nur eines einzelnen Resultats fortlaufend neue Werte liefert. Mit dem dazugehörigen Konsolen-Tool können dann auch wieder Admins arbeiten, die lieber in der Shell bleiben: Es liefert die rohen Messwerte im JSON-Format.

Die Live-Performance-Graphen sollen keine Netz- und Systemüberwachung mit CoreBiz Monitoring ersetzen – sie gewähren aber einen schnellen und direkten Blick auf die aktuellen Vorgänge im Cluster und helfen damit, Engpässe sofort zu bemerken und Lasten ausgewogen zu verteilen.