Sichere Integration von Containertechnologien in Steuerungssysteme

Von Softwarecontainern und virtuellen Maschinen

Standard-Containerlösungen haben gegenüber anderen Virtualisierungstechniken den Nachteil, dass sich alle Container innerhalb eines Systems den Kern des Host-Betriebssystems teilen. Das stellt Cloud-Anbieter und Automatisierer vor ähnliche Herausforderungen. Existierende Container-Lösungen mit erhöhter Isolation erfüllen nur bedingt die Anforderungen der Steuerungstechnik. Die Lösung: Eine geeignete Kombination von Containern und virtuellen Maschinen.
 Tabelle: Isolationstechniken für Container im Vergleich
Tabelle: Isolationstechniken für Container im VergleichBild: ISW Institut für Steuerungstechnik der Werkzeugmaschinen und Fertigungseinrichtungen

Virtualisierung wird bereits seit Jahrzehnten in unterschiedlichen IT-Domänen gewinnbringend eingesetzt – also schon vor der Etablierung des Cloud-Computings. Die gesteigerte Unabhängigkeit von Hardware- und Betriebssystem und die Kostenersparnis durch Hardwarekonsolidierung sind Beispiele für die Vorteile der Virtualisierung. Softwarekomponenten in höheren Ebenen von Automatisierungssystemen lassen sich meist problemlos in virtualisierte Umgebungen integrieren. Dabei angewandte Technologien bieten auch in der prozessnäheren Steuerungstechnik Potenziale. Eine SPS stellt dabei kein statisches System mehr dar, sondern nutzt Schnittstellen nach außen, über die die Interaktion mit dynamisch austauschbaren Software-Komponenten erfolgt. Ein Beispiel für einen solchen Mehrwertdienst, der aufgrund erforderlicher Latenzen innerhalb derselben Hardware-Plattform wie die Soft-SPS ausgeführt werden muss, ist die auf Computer-Vision basierende Objekterkennung aus dem vorherigen Beitrag dieser Artikelreihe (SPS-MAGAZIN 7/2021).

Formen der Virtualisierung

Die für die hardwarenahe Steuerungstechnik hauptsächlich relevanten Formen der Virtualisierung sind die Hypervisor-basierte Virtualisierung und die Virtualisierung auf Ebene des Betriebssystems (Containervirtualisierung). Die Containervirtualisierung lässt sich gut anhand einer Gegenüberstellung mit der Hypervisor-basierten Virtualisierung vom Typ II erklären. Jede virtuelle Maschine, die auf dem Host-System ausgeführt wird, besitzt dabei ein eigenes Betriebssystem. Bei der Containervirtualisierung hingegen werden Applikationen Laufzeitumgebungen in durch die Linux-Features Control Groups und Namespaces isolierten Bereichen zur Verfügung gestellt. Dabei werden keine zusätzlichen Gastbetriebssysteme betrieben, sondern die benötigten Betriebssystemfunktionen von einem einzelnen Host-Betriebssystem übernommen. Eine Sonderform des Hypervisors ist der partitionierende Hypervisor. Bei diesem werden sämtliche Ressourcen wie CPU-Kerne und Arbeitsspeicher statisch zwischen den Gast-Betriebssystemen aufgeteilt.

Neben der Bereitstellung individueller Sichten auf das Host-System eignen sich diese Methoden zur Virtualisierung auch zur Isolation von Betriebssystemen oder Prozessen. Die für den sicheren Einsatz von Containern in der Steuerungstechnik notwendige Isolation umfasst dabei drei Punkte:

Temporale Isolation: Die Zugriffssteuerung (Scheduling) auf gemeinsam genutzte Ressourcen durch (Echtzeit)-Prozesse erfolgt derart, dass alle zeitlichen Bedingungen, also z. B. Deadlines, eingehalten werden.

Räumliche Isolation: Prozessen werden Ressourcen wie physische bzw. virtuelle CPUs, Arbeitsspeicher oder der Zugriff auf ein Netzwerk exklusiv zur Verfügung gestellt.

Isolation des Host-Kernels: Indem sich Container den Kern des Host-Systems teilen, können Fehler in diesem ausgenutzt werden.

Isolierte Softwarecontainer im Vergleich

Zur Erhöhung der Host-Gast-Isolation zwischen Softwarecontainern existieren verschiedene Ansätze. Die Tabelle in diesem Artikel stellt die Mechanismen gegenüber, die von gVisor, Nabla-containers, Docker und Kata-Containers implementiert sind. Ein fünfter Ansatz besteht in der Kombination eines partitionierenden Hypervisors (Jailhouse) und der Container-Runtime Docker. Die Analyse erfolgt hinsichtlich folgender Punkte: Der Host-Gast-Isolationsmechanismus beschreibt, welcher Mechanismus zur Einschränkung des Zugriffs auf das Host-Betriebssystem verwendet wird. Innerhalb der Container und auf dem Host-System werden unterschiedliche Scheduling-Verfahren eingesetzt. Die Messung der Scheduling-Latenz wurde unter Linux 5.4.20 mit PREEMPT_RT-Patch durchgeführt. Eine Kompatibilität zu Spezifikationen der OCI (Open Container Initiative) und Kompatibilität zu Linux-Anwendungen erleichtert die Entwicklung von Mehrwertdiensten. Je nach Containerlösung erfolgt die Kommunikation zwischen Containern auf unterschiedliche Art.

Fazit

Bestehende Containerlösungen bieten zwar eine erhöhte Isolation, allerdings zu Lasten einer geminderten Performanz, insbesondere einer erhöhten Scheduling-Latenz. Ist diese für die Anwendung relevant, können Mehrwertdienste und Soft-SPS in sowohl räumlich als auch temporal gänzlich isolierten Partitionen ausführt werden. Hierfür kann ein partitionierender Hypervisor eingesetzt werden (DFG-gefördert/Projektnummer 420528256).

((Kasten))

ISW Institut für Steuerungstechnik der

Das könnte Sie auch Interessieren