Bild 5: Eine Nachbildung des Automatisierungsprozesses lässt sich zu Analysezwecken auf einem Tablet-Computer sichten.

Bild 5: Eine Nachbildung des Automatisierungsprozesses lässt sich zu Analysezwecken auf einem Tablet-Computer sichten. (Bild: AdobeStock_168939593)

| von Ellen Kou

Virtualisierung als Begriff findet sich in einer breiten Spanne von Technologien und hat je nach Kontext sehr unterschiedliche Bedeutungen. Zum Beispiel dient ein virtualisiertes Cloud-System für ganz andere Aufgaben als ein virtualisiertes Unternehmenssystem und wiederum ganz andere Dinge erledigt ein virtualisiertes eingebettetes System.

Eckdaten

Um bestehende autarke Prozessanlagen netzwerkfähig zu machen, lassen sich ihre Steuerungssysteme in eine virtuelle vernetzte Umgebung einbetten. Zusammen mit der Cloud-Anbindung eröffnen sich für industrielle Automatisierungsapplikationen zahlreiche Anwendungen wie Fernsteuerung, Instandhaltung, Software-Updates oder die Analyse von in der Cloud nachgebildeten Prozessen. Texas Instruments bespricht die Eignung verschiedener Virtualisierungsarten und bietet als Fertiglösung den Multicore-Baustein AM572x der Reihe Sitara an, welcher die Hypervisor-Software Jailhouse unterstützt.

Restriktionen eingebetteter Industriesysteme

Obwohl die Methoden und finalen Anwendungen der diversen Virtualisierungsarten unterschiedlich sind, haben alle doch eines gemeinsam, denn es kommt ein genau umrissener Umfang an physischer Hardware zum Einsatz, der sich durch die Schaffung von Teilbereichen innerhalb dieser Hardware wie ein Komplex aus mehreren virtuellen Umgebungen verhält.

Die Virtualisierung kann auf der Serverebene, auf der Ebene einer einzelnen Plattform oder auf der Netzwerkebene erfolgen und bietet die Möglichkeit, auf ein und demselben Server mehrere Sessions für mehrere Anwender oder Tasks laufen zu lassen, wie es bei Cloud-Anwendungen der Fall ist. Auch lässt sich ein Desktop-Computer in zwei virtuelle Maschinen aufteilen, wenn darauf beispielsweise Windows und Linux laufen sollen. Diese Aufteilung der Tasks und Erweiterung der Ressourcen kann in mehreren finalen Anwendungen nützlich sein. Dennoch eignen sich die verschiedenen Virtualisierungs-Verfahren nicht alle gleichermaßen gut für eingebettete Industriesysteme, die mit begrenztem Speicherplatz auskommen müssen und in denen aufgrund der Wärmeentwicklung auch die Leistungsaufnahme begrenzt ist.

Echtzeitsysteme für die Cloud-Anbindung erweitern

Für eingebettete Systeme gelten außerdem andere Prioritäten als für Systeme in der Server-Infrastruktur von Unternehmen oder Rechenzentren. Während bei Unternehmenssystemen die Betonung auf dem Erreichen bestimmter Werte beispielsweise für den durchschnittlichen Durchsatz oder die Zahl der Transaktionen pro Sekunde liegen kann, hat bei eingebetteten Systemen der Echtzeitbetrieb Priorität. Bei vielen eingebetteten Systemen speziell auf dem Gebiet der industriellen Automatisierungstechnik ist das Einhalten einer bestimmten Deadline ein Bestandteil der korrekten Funktion eines Programms, und dieser Determinismus darf keinen anderen Vorgaben untergeordnet werden.

Echtzeit-Betriebssysteme und Bare-Metal-basierende periodische Regelschleifen sind verbreitete Softwarearchitekturen, die es in der industriellen Automatisierungstechnik seit Jahren gibt. Neuere Trends auf dem Markt zwingen industrielle Hersteller aber dazu, sich auch mit anderen Lösungen auseinanderzusetzen, um die Echtzeitsysteme durch mehr nichtechtzeitfähige Funktionalität zu ergänzen und weitere Aspekte wie etwa die Cloud-Anbindung abzudecken, damit eine vorausschauende Instandhaltung Maschinendaten hochladen kann.

 

Welche Virtualisierungsarten für eingebettete Systeme zur Verfügung stehen, erfahren Sie auf der nächsten Seite.

Virtualisierungsarten für eingebettete Systeme

Bild 1: Gegenüberstellung der beiden wichtigsten Virtualisierungsarten

Bild 1: Gegenüberstellung der beiden wichtigsten Virtualisierungsarten Texas Instruments

Die Virtualisierung lässt sich auf zwei Arten umsetzen, nämlich als volle Virtualisierung oder als statische Partitionierung (auch als Core-Virtualisierung bezeichnet).

Vollwertige Virtualisierungsmodelle simulieren die Hardwareumgebung, sodass die Softwarepartitionen, die die virtuellen Umgebungen einrichten, nicht direkt an die Hardwarepartitionen gebunden sind. Anschaulich lässt sich ein physischer Core wie zwei virtuelle Cores nutzen, um zwei verschiedene Betriebssysteme laufen zu lassen.

Statische Partitionierungsmodelle dagegen weisen Programme oder Tasks ganz bestimmten Abschnitten der bestehenden Hardware zu, um separate Systeme zu simulieren. Die Softwarepartitionen sind hierbei an die jeweiligen Hardwarepartitionen gebunden. Deshalb ist jedem physischen Core maximal ein Betriebssystem zugeordnet (Bild 1) und es gibt keine Unterstützung für ein Over-Commitment von Ressourcen wie CPUs oder RAM.

Beide Modelle gestatteten die Separierung isolierter Tasks, beispielsweise für die gemeinsame Nutzung eines Systems durch mehrere Anwender. Möglich ist auch die Separierung kritischer Tasks von weniger kritischen Tasks, etwa bei der Abgrenzung eines abgesicherten Bereichs von einem universellen Bereich. Die vollwertige Virtualisierung erlaubt das Einfrieren ganzer Betriebssysteme in einem nichtflüchtigen Speicher oder sogar die Live-Migration von einem physischen Prozessor zu einem anderen über eine Netzwerkverbindung. Bei der statischen Partitionierung werden dagegen Abstriche an dieser Flexibilität gemacht, um gewisse Determinismus-Garantien zu bekommen.

Die spezifischen Stärken entscheiden

Die verschiedenen Virtualisierungsmodelle bieten spezifische Vorteile für bestimmte Anwendungen. Die vollwertige Virtualisierung ist leistungsstark, denn ein einzelner Server kann hier wie hunderte agieren. Problematisch wird es, wenn mehrere Softwareinstanzen gleichzeitig auf die begrenzten Hardwareressourcen zugreifen wollen. Überlässt man der Software das Management der Virtualisierung, lassen sich Konflikte auflösen – allerdings mit Auswirkungen auf die Latenz.

Damit virtualisierte Systeme mit sinnvollen Reaktionseigenschaften arbeiten können, erfordern sie mehr Rechenressourcen und Speicher. Größere Popularität genießt die vollwertige Virtualisierung deshalb in Cloud- oder Unternehmens-Systemen, bei denen das Hauptaugenmerk mehr auf administrativer und instandhaltungsmäßiger Skalierbarkeit liegt. Ressourcen wie Speicher sind hier weniger eingeschränkt, und da sich die Anlagen meist in klimatisierten Räumen befinden, lassen sich physische Faktoren wie der Platzbedarf und die Wärmeentwicklung leichter bewältigen.

Bei einem statischen Partitionierungsmodell ist die Zahl der möglichen virtualisierten Umgebungen dagegen durch den Umfang der von der Plattform gebotenen physischen Ressourcen vorgegeben. Statisch partitionierte Systeme bieten die gleichen Vorteile hinsichtlich der Separierung unterschiedlich kritischer Tasks, ganz gleich, ob sich die Brisanz auf die Sicherheit, die Zuverlässigkeit oder den Echtzeitbetrieb bezieht. Da hier aber eine direktere Bindung zwischen den physischen Ressourcen und den virtualisierten Umgebungen besteht, sind die Einflüsse auf das Timing der Tasks weniger ausgeprägt. Folglich sind (statisch) partitionierte Systeme besser für eingebettete Systeme mit ihren stärker beschränkten Rechenressourcen geeignet.

 

Mehr zur Hypervisor-Software und zur Virtualisierung per Container finden Sie im Folgenden.

Hypervisor-Software

Bild 2: Vergleich zwischen den beiden Hypervisor-Typen 1 und 2.

Bild 2: Vergleich zwischen den beiden Hypervisor-Typen 1 und 2 Texas Instruments

Sowohl die vollwertige Virtualisierung als auch die statische Partitionierung sind zur Umsetzung des Virtualisierungsmodells auf eine zugrundeliegende Software angewiesen. Diese wird als Hypervisor bezeichnet, läuft auf einer privilegierten Verarbeitungsebene und verwaltet die Gast-Maschinen oder -Betriebssysteme. Der Hypervisor koordiniert auch die gemeinsame Nutzung der realen physischen Ressourcen durch die virtualisierten Systeme.

Ebenso wie die unterschiedlichen Arten der Virtualisierung gibt es verschiedene Hypervisor-Typen. Ein Hypervisor des Typs 1 ist eine spezielle, auf der Hardware laufende Softwareschicht, die als Host für die Betriebssysteme fungiert und die Zuweisung von Ressourcen und Speicher zu den virtuellen Maschinen koordiniert.

Der Hypervisor Typ 2 wird auch als Gastbetriebssystem-Virtualisierung bezeichnet. Die unterste Softwareebene besteht hier aus einem Host-Betriebssystem, das Treiber und Dienste für den Hypervisor bereitstellt, der wiederum als Host für virtualisierte Gast-Betriebssysteme dient (Bild 2). Die Gast-Betriebssysteme bemerken nicht, dass sie nicht direkt auf der Systemhardware laufen.

Ein Hypervisor Typ 2 fungiert als Abstraktionsschicht. Gast-Betriebssysteme werden zu Prozessen des Host-Betriebssystems und sind für den Zugriff auf Hardwareressourcen auf diesen angewiesen. An den Host- oder Gast-Betriebssystemen sind keine Änderungen notwendig, allerdings können die verschiedenen Abstraktionsschichten die Leistungsfähigkeit des Gesamtsystems beeinträchtigen.

Virtualisierung per Container

Eine weitere populäre Softwarelösung zum Separieren von Applikationen sind Container. Während ein Hypervisor die Hardware virtualisiert, um mehrere Betriebssysteme laufen zu lassen, virtualisieren Container Betriebssysteme, um mehrere Applikationen laufen zu lassen (Bild 3). Container sind weniger ressourcenlastig und lassen eine größere Applikationsdichte zu, haben aber den Nachteil, dass alle Applikationen dasselbe Grundbetriebssystem nutzen müssen.

Bild 3: Vergleich zwischen Container und Hypervisor auf einem SoC.

Bild 3: Vergleich zwischen Container und Hypervisor auf einem SoC Texas Instruments

Eine Separierung von Applikationen ist in eingebetteten Industriesystemen durchaus sinnvoll. Die Koexistenzfähigkeit von Echtzeit- und Nicht-Echtzeit-Tasks wird jedoch beeinträchtigt, weil das System nicht in der Lage ist, ein Echtzeit-Betriebssystem und ein High-Level-Betriebssystem gleichzeitig laufen zu lassen. Container lassen die Frage der statischen Partitionierung und des Determinismus unberücksichtigt, sind aber in eingebetteten Systemen für das Management weiterer übergeordneter Software-Stacks ohne Echtzeit-Anforderungen auf der Linux-Seite eines partitionierten Systems nutzbar.

 

Auf der nächsten Seite beschreibt der Beitrag Jailhouse und seine Arbeitsweise im Detail.

Jailhouse als Hypervisor für eingebettete industrielle Systeme

Gängige Virtualisierungslösungen sind KVM, Xen, Jailhouse und Docker. Auch viele Third-Party-Betriebssysteme bieten Virtualisierungslösungen, etwa das Virtualisierungsprofil VxWorks von Wind River oder die Hypervisor-Option Integrity von Green Hills. Diese Beispiele gehören in die oben skizzierten Klassifizierungen: vollwertige Virtualisierung, Hypervisor für statische Partitionierung, Hypervisor Typ 1 oder 2 oder Containersysteme.

Grundsätzlich können alle gerade erwähnten Virtualisierungslösungen auf den ARM-Cortex-A15-basierenden Multicore-Bausteinen AM572x der Reihe Sitara von Texas Instruments (TI) laufen, allerdings bietet TI direkte Unterstützung derzeit nur für Jailhouse. Letzterer ist ein Open-Source-Hypervisor, der von Jan Kiszka und Siemens als Bestandteil des SDK-Linux (Processor Software Development Kit) gestartet wurde. TI betrachtet Jailhouse als die passende Open-Source-Virtualisierungslösung für eingebettete industrielle Systeme, denn es unterstützt die Partitionierung, die sich besser für eingebettete Ressourcen eignet als die vollwertige Virtualisierung. Schlanker als andere Open-Source-Hypervisor-Lösungen wie Xen ist Jailhouse auf Einfachheit statt für reichhaltige Feature-Ausstattung optimiert.

Bild 4: Betriebsphasen eines mit Jailhouse-Virtualisierung arbeitenden Systems.

Bild 4: Betriebsphasen eines mit Jailhouse-Virtualisierung arbeitenden Systems Texas Instruments

Die Arbeitsweise von Jailhouse

Einmal aktiviert läuft Jailhouse nach dem Bare-Metal-Modell. Es übernimmt also die vollständige Kontrolle über die Hardware und braucht keinen externen Support. Im Unterschied zu anderen Bare-Metal-Hypervisor-Lösungen aber wird es, wie schon erwähnt, durch ein normales Linux-System geladen und konfiguriert, was die Anwendung vereinfacht und die Verbreitung beschleunigt.

Jailhouse konfiguriert die CPU und die Device-Virtualisierungsfunktionen der Hardwareplattform so, dass sich diese als Zellen bezeichneten Bereiche nicht auf inakzeptable Weise ins Gehege kommen können. Es nimmt keinerlei Scheduling vor und virtualisiert nur solche Ressourcen in der Software, die für eine Plattform von essenzieller Bedeutung sind und sich nicht in der Hardware partitionieren lassen.

Bild 4 verdeutlicht die einzelnen Betriebsphasen eines Systems, das die Virtualisierung mit Jailhouse nutzt. Zunächst bootet Linux. Nachdem Jailhouse aktiviert ist, werden die Ressourcen während der Partitionierungsphase zusätzlichen Zellen zugeordnet. Das Gast-Betriebssystem oder die Bare-Metal-Applikation, die innerhalb der Zelle läuft, wird als Inmate, also passend zum Namen Jailhouse (Gefängnis) als Insasse bezeichnet. Da Jailhouse schlank und auf fest partitionierte Ressourcen beschränkt ist und weder viel Rechenleistung noch viel Speicher benötigt, können die mit ihm virtualisierten Systeme eine Echtzeit-Performance erzielen, die auf dem Niveau nichtvirtualisierter Systeme liegt. Dies macht Jailhouse für eingebettete Anwendungen interessant, speziell wenn zwei Tasks oder Systeme mit unterschiedlichen Echtzeitvorgaben parallel laufen sollen.

 

Welcher Virtualisierungsbedarf in IIoT-Anwendungen besteht zeigt der Beitrag auf der folgenden Seite.

Der Virtualisierungsbedarf in eingebetteten industriellen Systemen

Bild 5: Eine Nachbildung des Automatisierungsprozesses lässt sich zu Analysezwecken auf einem Tablet-Computer sichten.

Bild 5: Eine Nachbildung des Automatisierungsprozesses lässt sich zu Analysezwecken auf einem Tablet-Computer sichten. AdobeStock_168939593

Die vorausschauende Instandhaltung ist nicht die einzige IIoT-Anwendung, die Hersteller zur Suche nach Virtualisierungslösungen veranlasst. Leitungsgebundene, nichtechtzeitfähige Vernetzung und die Cloud-Anbindung machen zahlreiche Anwendungen möglich, die sich für vielfältige industrielle Automatisierungsapplikationen anbieten.

Die Anlagen in vielen Branchen sind oft in schwer zugänglichen oder gefährlichen Umgebungen installiert, wo es riskant und teuer wäre, Personal für Servicezwecke zu entsenden. Vernetzte Maschinen ermöglichen hingegen eine Überwachung wie auch Software-Updates aus der Ferne.

Eine noch zukunftsweisendere Anwendung für vernetzte Maschinen ist das Nachbilden eines kompletten Prozesses in der Cloud, um eine fundierte Analyse vorzunehmen (Bild 5). Voraussetzung für diese Art der Modellierung ist allerdings die Vernetzung eines großen Teils des Werks. Während bei größeren Maschinen diese Konnektivität integriert sein kann, wäre es bei kleineren Anlagenteilen kosteneffektiver, die Informationen mit Gateways zu bündeln. Die Konnektivität kann es in industriellen Anlagen nur dann zu großer Verbreitung bringen, wenn sie kosteneffektiv wird. Auch wenn dies noch wie Zukunftsmusik klingen mag, haben sich einige große Industrieunternehmen bereits gerüstet in dieser Richtung voranzuschreiten, indem sie entsprechende Cloud-Plattformen wie Predix von GE oder Mindsphere von Siemens entwickelten.

Ellen Kou

Ellen Blinka
Product Marketing Manager bei Texas Instruments

(jwa)

Kostenlose Registrierung

Der Eintrag "freemium_overlay_form_all" existiert leider nicht.

*) Pflichtfeld

Sie sind bereits registriert?