Anzeige

Echtzeit virtualisiert

Steuerungstechnik aus der Cloud

In Teil zwei der Artikelserie 'Steuerungstechnik aus der Cloud' stellen wir uns der Aufgabe, Echtzeit zu virtualisieren. Erfolgt die Maschinensteuerung aus der Cloud heraus, sind verteilte Hardwaresysteme nötig. Die IT hat durch den Einsatz von Pay-per-user-Geschäftsmodellen und Cloudanwendungen bereits eine skalierbare Architektur geschaffen, die es nun gilt, auf die Steuerungstechnik zu übertragen.

Bild: Siemens AGBild: Siemens AG
Abbildung 2 | Systemarchitektur des Jailhouse-Hypervisors

Die Nutzung der ersten Transistoren und Betriebssysteme Ende der 50er-Jahre sowie die Marktreife von Multiprozessorsystemen in den 80ern hat insbesondere für die IT-, aber auch für die Steuerungstechnik-Branche zunehmend an Bedeutung gewonnen. Das rasante Wachstum des Internets in den 90er-Jahren und die steigende Integrationsdichte von Transistoren auf Prozessoren führten zu Entwicklungen wie Multi-Core-CPUs und Virtualisierungslösungen. Insbesondere Letzteres ist für den effizienten und verteilten Betrieb von Rechenzentren und Cloudarchitekturen nicht mehr wegzudenken. Stellt man dieser Entwicklung den Fortschritt in der Automatisierungstechnik gegenüber, erkennt man eine deutliche Diskrepanz von ca. zehn Jahren zwischen der Nutzung von Lösungen in der IT und in der Steuerungstechnik. Während der Markt für Multi-Core-CPUs bisher stark von IT-Lösungen dominiert war, rücken seit 2011 Multi-Core-CPUs auch für die Steuerungstechnik in den Vordergrund. Dort sind aufgrund der meist hardwarenahen Entwicklung sowie der Anforderungen an geringe Zykluszeiten und Echtzeitverhalten bisher keine virtualisierten Lösungen verfügbar. Im Rahmen des Forschungsprojekts Picasso (Industrielle cloudbasierte Steuerungsplattform für eine Produktion mit cyber-physischen Systemen) haben sich die Projektpartner der Herausforderung gestellt und eine Plattform zur Virtualisierung von Echtzeitbetriebssystemen unter der Einhaltung des Zeitdeterminismus realisiert. Bisher laufen Maschinen im Bereich der Robotik und Automatisierungstechnik auf abgeschlossenen sogenannten monolithischen Steuerungen, deren vorhandene Rechenleistung meist nicht ausgenutzt wird oder bei komplexen Algorithmen um ein Vielfaches nicht ausreichend ist. Der Schwerpunkt des Projekts Picasso liegt nun auf der Instanziierung und Ausführung von Steuerungen und Mehrwertdiensten auf einer cloudbasierten Steuerungsplattform. Hierfür haben die am Projekt Beteiligten eine Systemarchitektur entworfen, die mithilfe einer Abstraktionsschicht die unmittelbar vorliegende Hardware-Architektur von der Betriebssystemebene löst. Aus der Anforderungsanalyse wird deutlich, dass es nötig ist, einen hybriden Einsatz von Echtzeit- und Nicht-Echtzeitbetriebssystemen auf Windows- und Linux-Basis zu gewährleisten, um verschiedene Steuerungen oder Mehrwertdienste auszuführen. Die Kommunikation zwischen den Instanzen kommt mithilfe einer Intermodulkommunikation auf Basis von OPC UA zustande. Neben der Instanziierung von Steuerungen und Mehrwertdiensten ist die Möglichkeit zur Überwachung der Auslastung (CPU-Last, RAM-Füllstand etc.) und Konfiguration neuer Instanzen erforderlich. Durch eine Lastverteilung ist somit das bedarfsgerechte Verschieben einzelner Module bei erhöhtem Ressourcenanspruch möglich.

Echtzeit für virtuelle Maschinen

Aufgrund der ähnlichen Anforderungen von IT-Systemen und der Picasso-Plattform an Virtualisierungssysteme liegt die Nutzung des quelloffenen Hypervisors Kernel-based Virtual Machine (KVM) und der Virtualisierung Quick Emulator (QEMU) als Basis für weitere Arbeiten nahe. Neben der breiten Unterstützung verschiedener Betriebssysteme begünstigten insbesondere Funktionen wie Snapshots oder das Durchreichen von PCI-Geräten den Einsatz. Für die Bereitstellung des Echtzeitverhaltens innerhalb eines Linux-Betriebssystems wurde auf den existierenden Linux Preemption Patch zurückgegriffen, der eine zeitdeterministische Umgebung für Linux-Systeme ermöglicht. Die Nachteile von QEMU verhindern allerdings die Ausführung echtzeitkritischer Tasks innerhalb virtueller Maschinen. Sie bestehen im Ausführen der Virtualisierung als Single-Thread-Applikation (alle virtuellen CPUs innerhalb eines Threads) sowie aus einem fehlenden Interrupt Routing. Diese für das Echtzeitverhalten entscheidenden Eigenschaften erfordern das Anpassen des Virtualisierungssystems. Das Ausnutzen moderner Multicore-CPUs ermöglicht die Auslagerung jeder virtuellen CPU in einen eigenen Thread, der sich wiederum auf separaten nativen CPU-Kernen ausführen lässt. Des Weiteren lassen sich Interrupts direkt zuweisen und verbessern folglich das Echtzeitverhalten innerhalb der virtuellen Umgebung. Zusammenfassend lässt sich sagen, dass das Nutzen von KVM in Kombination mit QEMU und einigen Erweiterungen für die Virtualisierung von Echtzeitbetriebssystemen praktikabel ist, jedoch nicht die erforderlichen Ausführungszeiten garantiert. Beim Messen der Architektur wurden Abweichungen erzielt, die die CPU weitgehend für die Prozesse isolieren, jedoch weiterhin Abweichungen um die 25µs erreichen. Dieser Wert entspricht ca. 50 Prozent der Abweichungen von Prozessen, die auf Nicht-Echtzeitbetriebssystemen laufen, und bedarf daher der Suche nach alternativen Lösungen.

Statische Hardware- Partitionierung mit Jailhouse

Die Mitarbeiter von Siemens stellen sich ähnlichen Herausforderungen zur effizienteren Nutzung von Multicore-Prozessoren für Echtzeit-Anwendungen und entwickelten den Hypervisor Jailhouse zur statischen Partitionierung von Hardware [1]. In der Systemarchitektur ist eine strikte Trennung zwischen einzelnen CPUs und Geräten erkennbar. Die Konfiguration und Verwaltung der sogenannten Zellen erfolgt durch den Linux-Kernel innerhalb des initial installierten Betriebssystems. Innerhalb der Zellen ist die Ausführung isolierter Echtzeit-Applikationen von reinen Baremetal-Applikationen bis zu Linux-Betriebssystemen (auf x86 und ARM-Architektur) möglich. Maßgeblich für das Forschungsprojekt Picasso war die Erweiterung des Jailhouse-Hypervisors zur Unterstützung von ARM-Architekturen und Linux-Gastsystemen sowie die Ausführung der Linux-Distribution Debian, das als Evaluierungssystem für die cloudbasierte Steuerungsplattform spezifiziert ist. Hierzu wurde eine Anforderungsliste an die notwendige und unterstützte Hardware erstellt sowie erforderliche und optionale Umgebungsparameter definiert. Die Validierung der Jailhouse-Architektur für Picasso erfolgte auf einem Quad-Core-Prozessor mit drei Zellen und der ursprünglichen Installation (Root-Zelle) zur Konfiguration. Mithilfe des Benchmarking-Tools Cyclictest erfolgten parallel ausgeführte Tests zur Messung der Echtzeitabweichungen der Referenzarchitektur. Hierbei ist eine Vierkern-CPU mit einer Root-Zelle und drei Jailhouse-Zellen (A, B, C) mit je einem CPU-Kern konfiguriert. Zum Vergleich erfolgte ebenfalls eine Messung der Abweichungen eines klassischen Echtzeit-Betriebssystems (RTOS). Während die klassische Architektur ohne Hypervisor weiterhin die geringsten Verzögerungen im Aufruf der Echtzeittask aufweist, liegen die Abweichungen der Jailhouse-Zellen bei durchschnittlich zwei weiteren Mikrosekunden. Zum Vergleich: Nicht-Echtzeitbetriebssysteme auf der identischen Hardware-Plattform erreichen durchschnittliche Abweichungen um das Vier- bis Fünffache.

Libvirt als Verwaltungsschnittstelle

Die hohe Performanz und das zeitdeterministische Verhalten des Jailhouse-Hypervisors ist neben der hardwarenahen Implementierung auch in der minimalistischen Realisierung von 10.000 Zeilen Code begründet. Dieser Ansatz verhindert jedoch zeitgleich eine Verwaltung der Zellen z.B. durch eine standardisierte Schnittstelle. In der IT ist für die Verwaltung von virtuellen Maschinen die offene Schnittstelle Libvirt [2] weit verbreitet und unterstützt eine Vielzahl von Hypervisors, um virtuelle Instanzen zu erzeugen, zu konfigurieren und zu überwachen. Durch die breite Anwendbarkeit von Libvirt ist insbesondere in großen Netzwerken die Verwaltung hybrider Strukturen möglich. Die Schnittstelle lässt sich um eine Vielzahl von Funktionen erweitern, um die Auslastung von Ressourcen zu überwachen oder ein grafisches Interface zur Konfiguration zu nutzen. Die Systemarchitektur der cloudbasierten Steuerungsplattform für Picasso sieht ebenfalls eine hybride Struktur vor, die bestehende Virtualisierungslösungen und Cloudinfrastrukturen mit der virtualisierten Echtzeitplattform auf Basis von Jailhouse verbindet. Zur Integration von Jailhouse-Zellen wurde der Hypervisor für die Steuerungsplattform um eine Libvirt-Anbindung erweitert. Da die Jailhouse-Zellen nach dem Starten für die Root-Zelle quasi unsichtbar sind, wird auf diesem Weg das Überwachen des Ausführungszustandes möglich. Detaillierte Informationen zum Überwachen (CPU-Last, RAM-Füllstand etc.) sind denkbar, erfordern jedoch weitere Erforschung. Innerhalb der hybriden Struktur lässt sich der Zustand (gestartet oder gestoppt) der Zellen abrufen sowie ändern und somit die Steuerungsplattform im Ganzen betrachten.

Zusammenfassung und Ausblick

Durch das Verknüpfen von IT mit industriellen Anlagen stellt sich die Steuerungstechnik neuen Herausforderungen. Die erhöhte Nachfrage von Steuerungstechnik auf IT-Architekturen unter Einhaltung der hohen Anforderungen an Performanz und an garantierte Berechnungszeiten von Echtzeitanwendungen waren für IT-Lösungen bisher nicht von Relevanz. Das technisch ambitionierte Forschungsprojekt Picasso hat sich dieser Herausforderung gestellt und die ersten Ergebnisse für eine cloudbasierte Steuerungstechnik erzielt. Die Nutzung statischer Hardware-Partitionierung ermöglicht neue Dimensionen für den Einsatz von Mutlicore-Prozessoren in der Produktion. Von der Steuerung einer gesamten Produktionslinie bis hin zu Hallen oder Standorten sind Szenarien denkbar, die durch die fortlaufende Entwicklung von Tag zu Tag realistischer werden. Aktuell steht der Jailhouse-Hypervisor noch am Anfang, lässt sich jedoch durch weitere Entwicklungen immer stärker integrieren und erfährt durch die Anbindung von Libvirt einen klaren Trend in Richtung Cloud. Die Realisierung innerhalb Picassos zeigt mögliche hybride Strukturen cloudbasierter Steuerungstechnik und verdeutlicht insbesondere die Vorteile hinsichtlich Condition Monitoring, Auslagerung rechenintensiver Algorithmen oder weiterer Smart Services.

[1] Yegulalp, Serdar: After Xen and KVM, meet a new Linux hypervisor: Jailhouse; accessed 31.05.2016 http://www.infoworld.com/article/2608955/virtualization/after-xen-and-kvm-meet-a-new-linux-hypervisor-jailhouse.html

[2] Bolte, Matthias; Sievers, Michael; Birkenheuer, Georg; Niehörster, Oliver; Brinkmann, André: Non-intrusive virtualization management using libvirt. In: Proceedings of the Conference on Design, Automation and Test in Europe (pp. 574-579). ISBN: 978-3-9810801-6-2

ISW Universität Stuttgart

Dieser Artikel erschien in Automation im Focus ISW 2017 - 18.04.17.
Für weitere Artikel besuchen Sie www.sps-magazin.de