Je nach der Größe eines Unternehmens ist es notwendig, für eine bestimmte Anzahl von PCs Betriebssysteme und Software- bzw. Hardware-Produkte automatisiert zu verteilen. OPSI ist ein automatisiertes Software-Verteilungssystem und die Kernfunktionen sind Open Source, unabhängig von der Anzahl an PCs. Hier finden sich die wichtigsten Informationen über die Verteilungssoftware von der Mainzer uib GmbH.

OPSI bedeutet Open PC Server Integration. Es handelt sich um ein auf Linux-Server basierendes Clientmanagement-System für die Verwaltung und Verteilung von Software.

Ursprünglich wurde die Verteilungssoftware unter dem Namen hup-si (Hessisches Umweltamt PC-Server-Integration) für den internen Gebrauch im Hessischen Umweltamt (Hessisches Landesamt für Naturschutz, Umwelt und Geologie) entwickelt. Die ursprüngliche Version war auf die Client-Verwaltung mit Windows NT4“ und Windows for Workgroups“ ausgerichtet. 1995 erfolgte die Gründung des Umwelt-Informatikbüro, 3 Jahres später wurde es in die uib GmbH ausgegliedert. Die hup-si Freeware wurde zu einer Open Source Software und umbenannt in OPSI.

Was sind die Kernkomponenten?

Was kann die Software eigentlich, für wen wurde sie erstellt? Es handelt sich um ein Software Deployment Tool, dass unabhängig von der Anzahl an angebundenen PCs kostenfrei ist. Die Kernfunktionen sind Open Source, dazu zählen folgende:

-Installation (und Verteilung) von Betriebssystemen und Softwares

-Deinstallation und Updates von Software bzw. Betriebssystemen

-konfigurieren von Endgeräten

-Inventarisierung von Hardware und Software

Den Software-Verteilung und Inventarisierung wird vollautomatisch übernommen. Sie wird vor allem von öffentlichen Verwaltungen genutzt (Schulen, Behörden, etc.).

Was ist ein Software Deployment Tool?

Ein Software Deployment bezeichnet die professionelle Methode, Software-Produkte und Betriebssysteme automatisiert zu verteilen. Durch modere Tools kann dieser Vorgang je nach Unternehmen und Vorhaben sehr passgenau umgesetzt werden. Für den reibungslosen Ablauf und unternehmerische Erfolge ist eine bedarfsgerechter Software-Verteilung essentiell. Abläufe müssen effizient vonstattengehen und die Handhabung von EDV-Lösungen sollte möglichst komfortabel bzw. sicher sein.

Je mehr PCs in einem Unternehmen vorhanden sind, desto dringender wird ein Software Deployment Tool benötigt. Theoretisch kann die Software-Verteilung manuell oder auch automatisiert erfolgen. Ab einer bestimmten PC Anzahl wird die händische Verteilung zum Zeitfresser, da die Softwarelösungen auf jedem einzelnen Gerät verteilt werden müssen. Diese Arbeit kann durch ein leistungsstarkes Tool automatisiert erfolgen.

Welche besonderen Vorteile hat OPSI?

Die Installation und Verteilung von Software innerhalb eines Unternehmens können mit kostenlosen und kostenpflichtigen Tools erfolgen. Eine wesentliche Rolle spielt bei der Auswahl natürlich auch das genutzte Betriebssystem. Für Linux beispielsweise lassen sich Chefe, Puppet und Ansible empfehlen. Wer Windows nutzt, sollte besser auf OPSI, SSCM und PDQ Deploy zugreifen.

Kostenlose Tools sind meistens bei der Anzahl der zu verwaltenden PCs beschränkt. Die optimale Software hängt von der Größe des Unternehmens und der Anzahl der zu nutzenden PCs ab. OPSI ist eine Open Source Software und unabhängig von der Anzahl der PCs kostenlos.

Was sind die Voraussetzungen für OPSI?

Die absolute Grundvoraussetzung ist ein einfacher Linux-Server, da die Software und allen Linux Distributionen funktioniert. Wenn die Software produktiv genutzt werden soll, dann ist viel Speicherplatz einzuplanen (2 CPUs und 3-4 GB RAM).

Die benötigten Größe der Festplatte ist kundenspezifisch, die entscheidenden Parameter sind folgende:

-Anzahl der Endgeräte (MySQL Datenbank)

-die Anzahl der Software-Pakete

Was ist der Unterschied zu SCCM, PDQ-Deploy

Im Gegensatz zu SCCM (Microsoft), PDQ-Deploy und DeskCenter ist OPSI eine Open-Source Software und damit im Kern kostenfrei. SCCM (System Center Configuration Manager) ist ein Software Produkt für die Verwaltung von Soft- und Hardware in einem Unternehmen.

Wie verläuft die Installation bzw. Konfiguration?

Für den Server wird eine statische IP-Adresse benötigt. Der Hostname und die IP müssen im DNS problemlos auflösbar sein. Ein Tutorial für die Durchführung der Installation findet man hier auf Biteno. Dort finden sich auch weitere Ausführungen über die Konfiguration.

OPSI ist als System für die Software-Verteilung in Unternehmen sehr ausgereift. Die Software ist in ihren Kernfunktionen Open Source und das gilt unabhängig von der Anzahl an PCs. Die Anwendung wird in Schulen und Behörden sehr oft verwendet. Für geübte Administratoren mit Grundkenntnissen über Linux sollte es innerhalb von Stunden möglich sein, ein Test-System zu nutzen.

Es hängt vom Unternehmen ab, wie hoch der praktische Nutzen ist. Wer aber auf der Suche nach einen kostenfreien Software Deployment Tool ist, der sollte OPSI allemal testen. Insbesondere bei einem Netzwerk von mehr als 30 PCs lohnt sich ein Test. Es handelt sich um ein sehr praktisches und handliches Tool für die Softwareverteilung.

Wo Server betrieben werden, ist Virtualisierung heutzutage meist nicht weit. Hyper-V heißt die Lösung von Microsoft in diesem Bereich. Einzelne Server lassen sich darauf bequem erstellen und verwalten. Aber auch ganze Netzwerkstrukturen können virtualisiert werden. Skalierbarkeit und Ausfallsicherheit sind Hauptargumente für einen Betrieb virtueller Server. Zudem kann Hardware besser ausgelastet und Systemlast einfacher verteilt werden.

Allgemeines zu Hyper-V

Im Jahr 2008 stellte Microsoft seine Virtualisierungslösung mit dem Namen Hyper-V vor. Sie war erstmals in den Betriebssystemversionen Windows Server 2008 und Windows 8 enthalten. Ihre Vorgänger waren der Microsoft Virtual Server im Bereich der vServer und der Virtual PC für den Desktop-Bereich.

Wie aus dem Namen schon hervorgeht, ist Hyper-V ein sogenannter Hypervisor. Dieser stellt eine Abstraktionsschicht zwischen der realen Hardware und dem virtualisierten System, Gastsystem genannt, dar. Im Gegensatz zu vollständig virtualisierten Systemen, werden dem Gastsystem auch Ressourcen der physikalischen Hardware zur Verfügung gestellt. Dies aber nur unter Überwachung und Steuerung des Hypervisors. Diese Technik wird Paravirtualisierung genannt.

Hyper-V gibt es als Typ-1- und Typ-2-Hypervisor. Die Ausführung vom Typ 1, die auch als Bare-Metal-Hypervisor bezeichnet wird, stellt nur ein abgespecktes Betriebssystem zur Verfügung. Hauptbestandteil ist der Hypervisor. Die Administration erfolgt über die Kommandozeile oder per Remoteverbindung mit der Software „Hyper-V-Manager“, die ab der Windows-Versionen „Professional“ Bestandteil des Betriebssystems ist. Sie muss lediglich in der Systemsteuerung aktiviert werden.

Die Ausführung des Typ-2-Hypervisors ist in den Server-Betriebssystemen von Windows und den Desktop-Varianten „Professional“ und „Enterprise“ enthalten. Sie lässt sich ebenfalls in der Systemsteuerung zu den Programmen hinzufügen. Die Bedienung erfolgt auch hier mit dem „Hyper-V-Manager“. Die Bedienung ähnelt der von im Desktop-Bereich bekannter Virtualisierungssoftware, etwa Virtual-Box oder VMWare-Player.

Funktionsweise und Vorteile

Durch die Virtualisierungssoftware werden virtuelle Hardwareplattformen erzeugt. Bei der Paravirtualisierung müssen die Gastsysteme kompatibel zur Plattform des Wirtsrechners (Host) sein. Die Erzeugung der virtuellen Maschinen kann auf herkömmliche Weise, mit einem Installationsmedium erfolgen. In der Regel werden aber Vorlagen verwendet, die in Minutenschnelle geladen sind und ein betriebsbereites Gastsystem bieten.

Die virtuellen Maschinen haben jeweils ihren eigenen, abgeschotteten Bereich. Die Hardware stellt der Hypervisor zur Verfügung. Entsprechend besteht dabei große Flexibilität. So kann Arbeitsspeicher einfach angepasst werden und dynamischer Speicherplatz zugeteilt werden. Auf diese Weise können Lastspitzen abgefangen und zu lastärmeren Zeiten die Leistung wieder verringert werden.

Eine weitere große Stärke spielt eine Virtualisierungslösung wie Hyper-V bei der Virtualisierung von Netzwerkstrukturen aus. Es können beliebig Switche und Router erzeugt und damit getrennte Netze oder Subnetze gebildet werden. Letztlich lassen sich ganze Rechenzentren auf diese Weise virtuell verwirklichen.

Der Aufwand für die Einrichtung und Wartung wird dabei minimiert. Anstatt Patchkabel zu stecken, müssen nur Einstellungen im Hyper-V-Manager vorgenommen werden.

Eine recht neue Technologie ist die der Container-Lösungen wie Docker. Diese werden seit der Hyper-V-Version 2016 ebenfalls unterstützt. Hierbei wird keine vollständige virtuelle Maschine erzeugt, sondern nur eine Laufzeitumgebung für einzelne Anwendungen. Diese verwendet Ressourcen zudem nur solange, wie sie auch in Benutzung ist. Die Last, die ein Betriebssystem im Leerlauf erzeugt, fällt bei Nutzung von Container-Anwendungen weg.

 

Bezüglich der Gastbetriebssysteme besteht eine große Auswahl. Virtualisiert werden können:

-Windows-Server-Betriebssysteme,

-Windows-Desktop-Betriebssysteme,

RedHat-Enterprise,

Debian-Linux,

Ubuntu-Linux,

SuSE-Linux,

FreeBSD.

Zu beachten ist, dass das Betreiben virtualisierter Systeme eine gültige Lizenz für das Gastsystem erfordert.

Lizenzen von Hyper-V

Hyper-V ist grundsätzlich kostenlos. Allerdings sind die Betriebssysteme, in denen der Hypervisor eingebettet ist, kostenpflichtig. Ebenso die darin betriebenen Server-Versionen von Windows. Auch für die Anbindung an Speicherlösungen, etwa der Windows-Datacenter-Editionen, fallen Kosten an. Insbesondere verteilte Speicherlösungen von Windows, wie etwa „Direkte Speicherplätze“ (Storage Spaces Direct, abgekürzt: S2D), verursachen nicht unerhebliche Lizenzkosten. Für den Testbetrieb stellt Microsoft zudem kostenlose Evaluierungsversionen von Hyper-V zur Verfügung.

Anwendungsbereiche

Im Firmenbereich kann eine saubere Abschottung von Servern mit unterschiedlichen Aufgabenbereichen erzielt werden, ohne zusätzliche Hardware zu benötigen. Dies können beispielsweise ein Exchange-Server, der Domain-Controller, ein SQL-Server und der Fileserver sein. Weiterhin lassen sich ohne großen Aufwand Subnetze für verschiedene Arbeitsbereiche bilden. Eine physikalische Trennung der Netze ist damit nicht erforderlich. Auch im Bereich von Rechenzentren findet Software wie Hyper-V Anwendung. Mit dieser Technologie ist es Hosting-Anbietern beispielsweise möglich, Kunden kurzfristig virtuelle Server zur Verfügung zu stellen.

Alternativen

Bekanntester kommerzieller Mitbewerber ist der Anbieter VMWare. Dieser bietet mit dem ESXi-Server einen Bare-Metal-Hypervisor vergleichbarer Art. Einen Hypervisor des Typs 2 hat VMWare ebenfalls im Angebot, die VMWare Workstation.

Auch Open-Source-Lösungen sind verfügbar. Auf Basis des etablierten Linux-Hypervisors KVM/QEMU stellt der PROXMOX-Server einen Hypervisor des Typs 1 zur Verfügung.

Zudem steht unter Linux-Systemen der Hypervisor XEN kostenfrei zur Verfügung. Hierbei handelt es sich um ein Projekt der Universität Cambridge.

Bei den freien Versionen ist allerdings zu beachten, dass diese aufgrund ihrer Komplexität oftmals mit einem kostenpflichtigen Support Anwendung finden. So ist beispielsweise der Linux-Distributor RedHat in diesem Bereich tätig und bietet Support für den von ihm mitentwickelten Hypervisor KVM/QEMU.

Als die beiden deutschen Softwareentwickler Martin und Dietmar Maurer im Frühjahr 2008 die Open SourceVirtualisierungssoftware Proxmox VE erstmals der breiten Öffentlichkeit vorstellten, hatte niemand wirklich damit gerechnet, dass sich die Virtualisierungsplattform in den nächsten 12 Jahren zu einer der meistgenutzten Virtualisierungslösungen im Linux-Segment entwickeln würde. Aktuellen Informationen zufolge werden weltweit mehr als 150.000 Server-Hosts in mehr als 150 Ländern mit Proxmox betrieben.

Allgemeine Informationen zu Proxmox

Ein Umstand, der zum Erfolg der Virtualisierungsplattform maßgeblich beigetragen hat, spiegelt sich in der Tatsache wider, dass Proxmox die Option bereitstellt, zwei unterschiedliche Virtualisierungslösungen gleichzeitig zu betreiben, und zwar:

–       virtuelle Linux Container (LXC)

–       kernelbasierte Virtual Machine (KVM)

Der virtuelle Linux Container ist eine performante und ressourcenschonende Container-Virtualisierung. Bei den KVMs handelt es sich um ein Kernel-Modul auf Linux-Basis, das direkt auf der Hardware als Hypervisor ausgeführt wird und bei der Virtualisierung von Hardware eingesetzt wird. Mit den KVMs lässt sich eine Vielzahl verschiedener Vserver (virtueller Server) erstellen, wobei alle aktuellen Betriebssysteme wie Windows, Linux und verschiedene BSD-Derivate unterstützt werden. Der Linux-Kernel wird im Rahmen der Virtualisierung selbst zum Hypervisor befördert, wodurch der Overhead auf einem Minimum gehalten wird. Die kernelbasierte Virtual Machine gehört außerdem zu einem der am besten gewarteten Open Source-Systeme im Linux-Bereich. Bugs und Probleme werden dank der gigantischen Open Source-Community schnell erkannt und behoben.

Einfache und schnelle Verwaltung von Proxmox

LXC und KVM decken unterschiedliche Einsatzbereiche ab. So virtualisiert KVM beispielsweise im Gegensatz zu LXC mit virtuellen Maschinen und nicht auf Betriebssystem-Ebene. Aus diesem Grund ist LXC viel flexibler und bietet die Möglichkeit, Applikationen und Nutzer Stacks in kürzester Zeit in Betreib zu nehmen sowie einzelne Prozesse und gesamte Prozessgruppen voneinander zu isolieren. Auf diese Weise lassen sich mehrere Linux-Systeme parallel auf einem Host-Betriebssystem betreiben, die voneinander getrennt und abgeschottet sind. Dadurch lässt die Hardware des Hostsystems wesentlich besser auslasten. Ähnlich wie die Konkurrenzprodukte Docker, VMware und Hyper-V ist LXC gleichermaßen gut bei der Virtualisierung einzelner Anwendungen einsetzbar.

Proxmox bot bis zu der Version 3.4 ausschließlich Unterstützung für OpenVZ als Container-Technologie. LXC kam erst mit der Version 4.0 hinzu. Gründe hierfür waren u. a. die bessere Unterstützung für Storage-Devices und ein optimiertes Storage-System für Linux-Container. So können Anwender zum Beispiel mit LXC ZFS Sub-Volumes nutzen, was sich mit OpenVZ nicht realisieren lässt. Hinzu kommt noch die Tatsache, dass die Netzwerk-Konfiguration bei Linux-Containern viel flexibler ist.

Ein dedizierter Server für das Management der Cluster, Virtual Machines oder der Container ist nicht notwendig. Jeder Proxmox-Host ist mit einem eigenen Webinterface ausgestattet, mit dem sich der gesamte Cluster von jedem Knoten aus schnell und unkompliziert verwalten lässt. Durch den Einsatz eines verteilten Dateisystems (Proxmox Cluster File System), können die Konfigurationsdateien auf alle Nodes (Hosts) im Cluster automatisch verteilt werden. Auf diese Weise wird für konsistente Verwaltungsinformationen auf mehreren Tausenden virtueller Maschinen gesorgt.

Virtualisierungsplattform für Linux-Enthusiasten

Promox bietet neben dem intuitiven Web-Interface auch eine API für Administratoren und Entwickler, sodass wiederkehrende Tasks ohne großen Aufwand per Skript automatisiert werden können. Clients stehen für folgende Programmier- bzw. Skriptsprachen zur Verfügung:

–       Python

–       Java

–       JavaScript (NodeJS)

–       PHP

–       Perl

Da sich die Virtualisierungsplattform mit den entsprechenden Programmier-Kenntnissen individuell an die eigenen Bedürfnisse der Nutzer anpassen lässt, wird ein äußerst flexibles Agieren ermöglicht.

Proxmox VE nutzt als Basis die Linux-Distribution Debian, sodass Anwender auf alle Funktionalitäten des Betriebssystems zugreifen können. Nutzer können grundsätzlich auch alle Pakete, die für das beliebte Debian entwickelt wurden, unter Proxmox installieren. Die Virtualisierungsplattform ist somit optimal an die Anforderungen von Administratoren zugeschnitten, die bereits über Linux-Erfahrungen verfügen. Proxmox ermöglicht ein ebenso interaktives Arbeiten wie mit Debian. Dank der riesigen Community steht außerdem viel Know-how zur Verfügung, sodass für viele Probleme, mit denen Anwender konfrontiert werden können, bereits eine Lösung existiert.

Hohe Verfügbarkeit von Proxmox

Da Debian als extrem sicher und stabil gilt, trägt es in wesentlichem Maße zu der Zuverlässigkeit der Virtualisierungssoftware bei. Die Proxmox Server Solutions GmbH ist der Verwalter des Projekts und ist direkt dafür zuständig, die Virtualisierungsplattform regelmäßig zu aktualisieren und sie dabei auch an neue Debian-Versionen anzupassen. Die Virtualisierungsplattform kann ebenfalls mit einer hohen Verfügbarkeit punkten. Der Proxmox VE HA Manager ist dafür zuständig, alle Knoten im Cluster kontinuierlich zu überwachen. Sobald einer dieser Knoten ausfällt, wird der Proxmox VE HA Manager aktiviert. Diese Funktionalität ist bereits bei der Standardinstallation von Proxmox VE bereits vorinstalliert, weswegen Anwender die Funktion lediglich an die eigenen Anforderungen und Bedürfnissen anpassen müssen.

Vielseitige Speichertypen für Proxmox

Proxmox VE ist extrem flexibel in Bezug auf den Speicher. Die Virtualisierungsplattform ist mit verschiedenen lokalen Speicher- und Netzwerkspeicher-Modulen versehen, was ebenfalls Debian zu verdanken ist. Alle Speichertypen, die von der Linux-Distribution unterstützt werden, können im Rahmen von Proxmox genutzt werden. Hierzu gehören:

–       Ceph

–       NFS

–       ISCSI

–       FibreChannnel

–       ZFS

Mithilfe der Shared Storage-Funktionalität lassen sich Abbilder der Vserver im lokalen Netzwerk ablegen. Die Virtualisierungsplattform ist außerdem mit einer Funktion zur Live-Migration versehen, sodass sich die erstellten Vserver ohne Ausfallzeit migrieren lassen.

Bei einer CPU bzw. einem Prozessor handelt es sich um das „Gehirn“ oder „Herzstück“ elektronischer Geräte. Eine CPU stellt einen unverzichtbaren und einen der wichtigsten Bestandteile aller elektronischer Geräte dar, die eine gewisse Rechenleistung erbringen müssen. Prozessoren kommen beispielsweise neben Computern auch in Smartphones, Tablet-PCs oder digitalen Kameras zum Einsatz. Ein Prozessor ist in der Lage, Milliarden von Rechenoperationen pro Sekunde auszuführen und wird nach seiner Performance und Architektur in unterschiedliche Klassen eingeteilt. Die bekanntesten CPU-Produzenten im Computer-Bereich sind AMD und Intel.

Welche Aufgaben übt eine CPU aus?

Die CPU ist eine der ersten Befehlsempfänger in einem elektronischen Gerät. Sie registriert, welche Aufgaben vom Anwender angefordert werden und leitet diese dann an die entsprechende Stelle bzw. die zuständige Komponente weiter. Der Hauptprozessor als zentrale Steuereinheit liest beispielsweise aus dem RAM-Speicher (Arbeitsspeicher) Daten aus und analysiert kontinuierlich alle Ein- und Ausgaben von Peripheriegeräten wie Tastatur, Maus oder Monitor. Darüber hinaus können einer Central Processing Unit explizit bestimmte Aufgaben zugeteilt werden. So können beispielsweise in einem Computerspiel bestimmte Inhalte nach Bedarf eingeblendet werden, die vom Programm angefordert werden. Die CPU oder die GPU (Grafikkarte) ist für die automatische Umsetzung dieser Inhalte zuständig.

Die Central Processing Unit hat folgende Aufgaben:

–       Rechenoperationen: Der Hauptprozessor ist für einen Großteil der Aufgaben in einem elektronischen Gerät zuständig. Wann immer Rechenoperationen vom Anwender oder einer Anwendung angefordert werden, kommt der Prozessor zum Einsatz.

–       Bus-Systeme: Die Datenübertragung in Bus-Systemen wird von der CPU gesteuert. Der Prozessor erkennt und analysiert die nacheinander eintreffenden Bits und setzt sie als kohärente Teile zusammen, um sie dann weiterzuverarbeiten. Alle Datenübertragungen über den Netzwerkadapter oder USB werden beispielsweise intern über die Central Processing Unit realisiert.

–       Kontrolle: Der Hauptprozessor kontrolliert, ob die ihm zugeteilten Aufgaben rechtzeitig erfüllt werden können und schlägt ansonsten Alarm. Dabei gleicht die Central Processing Unit kontinuierlich die laufenden Vorgänge mit Zielstandards ab. Diese Verhaltensweise kann in folgenden Szenarien beobachtet werden: Der Prozessor kann beispielsweise bei einem aktiven Download den Download-Fortschritt anzeigen. Darüber hinaus gibt die CPU Fehlermeldungen aus, wenn zum Beispiel ein Befehl nicht ausgeführt werden konnte.

Woraus setzt sich eine CPU zusammen?

Ein Hauptprozessor setzt sich u. a. aus folgenden Hauptbestandteilen zusammen:

–       Steuereinheit (Control Unit): Die Steuereinheit nimmt Anweisungen aus dem Arbeitsspeicher entgegen, decodiert diese und führt sie der Reihe nach aus. Die Control Unit koordiniert außerdem die Arbeit der übrigen Komponenten der CPU.

–       Arithmetik-Logikeinheiten (Arithmetic Logic Unit): Diese Komponente ist für die Ausführung arithmetischer und logischer Operationen anhand der Anweisungen der Steuereinheit zuständig.

–       CPU-Register: Diese Komponenten stellen den internen Hochgeschwindigkeits-Speicher dar, der für die temporäre Speicherung der zu verarbeitenden Daten zuständig ist.

–       Busse: Hierbei handelt es sich Hochgeschwindigkeits-Datenleitungen, welche die Übertragung von Daten und Anweisungen zwischen den einzelnen CPU-Komponenten ermöglichen.

Wie diese Komponenten in den einzelnen Prozessorkernen implementiert sind, hängt in erster Linie von der Prozessorarchitektur ab.

Die Arbeitsweise eines Hauptprozessors

Eine Central Processing Unit arbeitet schrittweise in regelmäßigen Taktzyklen folgende Aufgaben ab:

–       Anweisungen einholen (FETCH): In dem ersten Schritt holt der Prozessor aus dem Arbeitsspeicher die Anweisungen ein. Jede Anweisung in einem Programm kann bis zu einigen Millionen von CPU-Befehlen enthalten, die im Arbeitsspeicher an einer bestimmten Speicheradresse aufbewahrt werden. Die Central Processing Unit ist mit einem Programmzähler ausgestattet, der die Position des Prozessors im Programm verfolgt, also die Speicheradresse des Befehls, auf den die Central Processing Unit gerade zugreift.

–       Anweisungen entschlüsseln (DECODE): Zum Zeitpunkt, wenn der Prozessor die Programmanweisungen einholt, sind diese in der sogenannten „Assemblersprache“ codiert. Ein sogenannter „Assembler“ übersetzt die Anweisungen in eigene Maschinensprache der Central Processing Unit.

–       Anweisungen ausführen (EXECUTE): In diesem Schritt werden Aufgaben, wie zum Beispiel mathematische Kalkulationen, Abarbeitung von Daten oder Entscheidungen über die Abarbeitung weiterer Teile des Programms realisiert. Hier werden mathematische Aufgaben von der Control Unit an die Arithmetic Logic Unit delegiert.

–       Resultate ausgeben (WRITEBACK): Der Prozessor schreibt die Resultate in den Speicher.

Unterschiedliche CPU-Architekturen im Überblick

Die Befehlssatzarchitektur (Instruction Set Architecture) wird von der CPU-Architektur und dem eingesetzten Softwarecode bestimmt. Die Instruction Set Architecture bildet eine Schnittstelle zwischen dem Prozessor und der Software und übt eine äußerst wichtige Rolle aus. Mit der Befehlssatzarchitektur werden u. a. die unterstützen Prozessor-Anweisungen, die nativen Datentypen, die Speicherarchitektur sowie die externen Ein- und Ausgaben explizit beschreiben. Zu den wichtigsten Typen von Befehlssatzarchitekturen gehören:

–       RISC (Reduced Instruction Set Computing): Hierbei handelt es sich um eine Computing-Architektur, die auf einem reduzierten Befehlssatz basiert.

–       CISC (Complex Instructions Set Computing): Hierbei handelt es sich um eine Computing-Architektur, die auf einem komplexen Befehlssatz basiert.

–       Sparse-Matrix: Hierbei handelt es sich um einen neuartigen Befehlssatz für hochskalierbare CPU-Arrays, die in erster Linie in performanten Server-Systemen eingesetzt werden.

Die CISC-Architekturen zeichnen sich durch eine hohe Anzahl an spezialisierten Anweisungen aus, die möglichst viele Einsatzbereiche abdecken, während RISC-Architekturen einen anderen Ansatz verfolgen. Sie fokussieren sich auf Anweisungen, die besonders häufig aufgerufen werden und beschränken diese auf eine maximale Größe von 4 Bytes.

Lange Jahre wurde die Architektur von Speicher ausschließlich durch die Parameter der Hardware bestimmt. Zumindest, was Größe, Zugriffsgeschwindigkeit und Cache anging. Dynamische Volumes und RAID-Verbünde waren ein erster Schritt, zu mehr Flexibilität. Software defined Storage (SDS) ist die konsequente Fortentwicklung dieses Ansatzes. Der Speicherplatz wird dabei von der Hardware abstrahiert. Dies erlaubt maximale Flexibilität und Skalierbarkeit.

Wie funktioniert die klassische Speicherung von Dateien?

Bis der physikalische Speicher dem Benutzer zum Ablegen seiner Daten angeboten wird, durchläuft er mehrere logische Bearbeitungsprozesse. Dies beginnt beim Controller der klassischen Festplatte. Dieser fasst Speicherbereiche zusammen und bietet sie dem Dateisystem in einer logischen Adressierung an. In Flashspeicher ist ebenfalls eine Abstraktionsschicht integriert, der Flash Translation Layer (FTL). Dieser übernimmt die Adressierung des vom Controller verwalteten Speichers.

Sowohl vom Betriebssystem, als auch auf Hardware-Ebene, können Verbünde erzeugt werden. Beispielsweise durch einen RAID-Controller, der den Speicher von zwei oder mehr Festplatten transparent zu einem großen Bereich zusammenfasst. Auch auf Software-Ebene ist dies möglich, indem beispielsweise unter Windows aus mehreren Festplatten ein dynamisches Laufwerk gebildet wird.

Auf den so zur Verfügung gestellten Speicher greift das Dateisystem zu und übernimmt die Partitionierung sowie Speicherung der Dateien.

Bezüglich der Schreib- und Lesegeschwindigkeit ist man bei diesen Methoden immer auf das „schwächste Glied“ im Verbund reduziert. Die Ablage der Dateien erfolgt zufällig. Auch ist der Austausch oder die Erweiterung der Komponenten nicht in jedem Fall möglich, ohne den gesamten Verbund neu aufzubauen. Ausnahme hiervon sind natürlich RAID-Verbünde, die speziell auf Redundanz ausgelegt sind, dafür aber eine homogene Hardware benötigen.

Wie funktioniert Software defined Storage?

Software defined Storage (SDS) übernimmt mehrere Aufgaben, die zuvor durch unterschiedliche Komponenten erledigt wurden. Er setzt an der Stelle an, wo der Speicher vom Controller logisch zur Verfügung gestellt wird. Er fasst die eingebundenen Komponenten zusammen und setzt sie dynamisch ein.

Dabei kann heterogene Hardware zum Einsatz kommen, ohne dass hierdurch die gesamte Performance beeinträchtigt wird. Vielmehr werden beispielsweise schnelle Speicher für eine Zwischenspeicherung verwendet. Die Daten werden dann zu weniger lastintensiven Zeiten auf andere Bereiche verteilt. Weiterhin ist das Dateisystem ein fester Bestandteil des Systems. So wird dafür gesorgt, dass Daten nicht doppelt abgelegt werden. Sind Dateien inhaltlich mehrfach vorhanden, speichert das Dateisystem sie nur einmal ab und legt Verweise auf den Inhalt an. Diesen Vorgang nennt man Deduplikation.

Auch das Anlegen von Snapshots und Backups wird durch Software defined Storage (SDS) gewährleistet. Die Datenablage erfolgt in redundanten Arrays. So kann Datenverlust bei Ausfall einzelner Komponenten verhindert oder vermindert werden.

Ein großer Vorteil ist die bereits angesprochene Skalierbarkeit. Es ist zu jedem Zeitpunkt möglich, Speicher zu ergänzen. Auch ein Austausch oder das Entfernen von Komponenten ist im laufenden Betrieb möglich.

Anwendungsfälle für Software defined Storage

Software defined Storage (SDS) bietet die flexible Basis für gemeinsam genutzten Speicherplatz in lokalen Netzwerkverbünden. Hauptsächlich dürfte dies für Firmennetzwerke interessant sein. Aus allen bereits vorhandenen Servern kann ein Software defined Storage (SDS) gebildet werden. Auf diesem können dann die notwendigen Dienste angeboten werden. Eine Möglichkeit ist beispielsweise die Nutzung des Speicherplatzes als Fileservers. Auch beliebige Serverdienste können darauf ausgeführt werden. Diese dürfen auch in einer virtualisierten Umgebung laufen. Das gesamte System ist nach der Einrichtung zentral administrierbar.

Was ist Ceph?

Ceph ist eine freie Variante des Software defined Storage (SDS). Sie wird unter GNU Lesser General Public License angeboten (LGPL). Ceph läuft unter Linux und wird von einem Konsortium verschiedener Hard- und Softwarehersteller entwickelt. Unter den Firmen befinden sich Canonical (Entwickler von Ubuntu-Linux), Cisco, Fujitsu, Intel, Red Hat, SanDisk und SuSE-Linux.

Die Software läuft auf handelsüblicher Hardware. Zur Speicherung wird ein Algorithmus mit Namen CRUSH verwendet. Dies steht für Controlled Replication Under scalable Hashing und setzt die Verteilung der Daten im System um. Die Komponenten im System werden Object Storage Nodes (OSDs) genannt. Es ist eine Redundanz der Daten vorgesehen, die dafür sorgt, dass ausgefallene Komponenten ohne Datenverlust ersetzt werden können. Die Software bringt mit CephFS ein eigenes Dateisystem mit.

Was ist Storage Spaces Direct?

Storage Spaces Direct (S2D) heißt der Software defined Storage (SDS) von Microsoft. Das System ist bereits in den Datacenter-Versionen von Windows Server 2016 und 2019 integriert. Es kann also relativ einfach verwendet werden, wenn die Infrastruktur auf diesen Betriebssystemen basiert. Die Flexibilität ist allerdings insofern eingeschränkt, als dass für jedes eingebundene Gerät eine Lizenz erforderlich ist.

Die Einrichtung von S2D erfolgt per PowerShell. Als Dateisystem kann das bekannte NTFS oder das für diesen Zweck optimierte ReFS zur Anwendung kommen. Bei ausreichend eingebundenen Komponenten liegt die Speichereffizienz bei bis zu 80 Prozent. Auch S2D bietet eine Wiederherstellung verlorener Dateien. Dies wird mit der Technik Local Reconstruction Codes (LRC) gewährleistet.

Weitere Anbieter von Software defined Storage

VMWare, der Spezialist für Virtualisierung, verwendet Software defined Storage (SDS) für seine Software vSAN, die Wiederherstellungssoftware Site Recovery Manager und sein Framework Virtual Volumes. Hierbei handelt es sich um ein kostenpflichtiges Angebot. Eine freie Alternative zu Ceph ist das Netzwerk-Dateisystem GlusterFS.

OpenStack Swift ist ein weiteres System zur Bereitstellung von Netzwerkspeicher aus verteilten Systemen. Es handelt sich dabei um Open-Source-Software, die also kostenfrei genutzt werden darf.

Gehört Software defined Storage die Zukunft?

Es sieht im Moment danach aus, dass Software defined Storage (SDS) das Konzept der Zukunft ist. Insbesondere gegenüber vorhandenen NAS- und SAN-Lösungen besticht es durch seine Flexibilität.  Man kann Hardware kann integrieren. Zuwächse in der Performance sind auch mit geringen Investitionen möglich. Zudem scheint der integrative Ansatz ein großer Vorteil bei der Administration zu sein. Backup-Strategien müssen beispielsweise nicht separat entworfen werden. Die Möglichkeit zur zentralen Administration ist ein grundsätzlicher Bestandteil der Technologie. Zudem sind keine Beschränkungen bei der Art der Nutzung des Speicherplatzes des Software defined Storage (SDS) gegeben. Somit harmoniert es beispielsweise gut mit dem Konzept der Virtualisierung von Systemen.

Storage Spaces direct (S2D) ist ein System von Microsoft, mit dem skalierbarer softwaredefinierter Speicher realisiert wird. Es handelt sich um eine Funktion für die Betriebssysteme Windows Server 2016 und 2019 Datacenter. Dabei wird ein Cluster aus den physikalischen Speichermedien der eingebundenen Server erstellt und logischer Speicherplatz gebildet. Dieser ist hochverfügbar und kann unkompliziert erweitert werden.

Wie funktioniert Storage Spaces direct im Detail?

Direkte Speicherplätze, wie Storage Spaces direct (S2D) in deutschsprachigen Programmversionen heißt, nutzt das Prinzip der Virtualisierung. Aus den physikalischen Speichermedien, egal ob Festplatte, SSD oder NVM, wird ein Verbund gebildet. Der schnellste verfügbare Speicher wird dabei automatisch als Cache genutzt. In einer Abstraktionsschicht sorgt das Cluster Shared Volumes Filesystem (CSVFS) dafür, dass der gesamte Speicherbereich logisch wie ein Laufwerk verwaltet werden kann. Die Funktionalität der Dateiverwaltung wird optional durch das bekannte Desktop-Dateisystem NTFS oder ReFS, das spezielle Server-Dateisystem von Microsoft, gewährleistet. Microsoft empfiehlt die Verwendung von ReFS. Der Speicherplatz kann danach zentral verwaltet werden. Dies ist das Prinzip des softwarebasierten Speichers, dem Software-Defined Storage. Die Einrichtung und Verwaltung ist mit der integrierten Microsoft Powershell möglich.

Vorteile von Storage Spaces direct

Das System Storage Spaces direct (S2D) ist direkt in die neuen Server-Betriebssysteme integriert. Hierdurch ist eine reibungslose Einbindung gewährleistet. Aus einer gewachsenen, heterogenen Server-Landschaft kann ein einheitlicher Speicher gebildet werden, der für alle eingebundenen System verfügbar ist. Dieser ist in der Folge auch zentral administrierbar.

Das System ist zudem skalierbar. Mit wenigen Befehlen können nachträglich weitere Komponenten hinzugefügt oder ausgetauscht werden.

Ein bedeutendes Merkmal ist die Ausfallsicherheit. Hier unterscheidet man zwischen der Einzelparität, die einem RAID-5 gleicht und dadurch nur 50 Prozent des physikalischen Speichers nutzen kann und der dualen Parität. Diese ähnelt dem RAID-6 und die Effizienz steigt mit der Anzahl der eingebundenen Hardware-Speichermedien auf bis zu 80 Prozent.

Zudem verwendet Microsoft eine Technik mit Namen Local Reconstruction Codes (LRC). Dabei werden innerhalb der eingebundenen Medien kleinere Gruppen gebildet, damit der Aufwand zur Wiederherstellung nicht auf den gesamten Speicher angewendet werden muss, sondern nur auf die lokal betroffenen Bereiche. Zur Steigerung der Effizienz kann zudem parallel Spiegelung für Teile des Speichers verwendet werden. Dieser Speicher wird dann vorrangig für Schreibvorgänge genutzt und die Daten erste später in andere Speicherbereiche verschoben.

Nachteile von S2D

Storage Spaces direct (S2D) ist an die entsprechenden Server-Lizenzen gebunden. Das bedeutet, dass alle eingebundenen Systeme auch über eine Lizenz für Windows Server 2016 oder 2019 Datacenter verfügen müssen. Das verursacht Kosten von etwa 5000 Euro pro Server, der in den Verbund aufgenommen werden soll. Insbesondere wenn es vorrangig um eine File-Server-Funktionalität geht, gibt es günstigere Alternativen. Bei Nutzung als Plattform für virtuelle Maschinen, müssen die Kosten anderer kommerzieller Anbieter gegenübergestellt werden.

Alternativen zu Storage Spaces direct

Eine ähnliche Funktionalität wie Storage Spaces direct (S2D) bietet das 2012 vorgestellte Ceph. Das System wird unter der GNU-General Public License angeboten und ist damit kostenfrei. An der Weiterentwicklung arbeiten namhafte Firmen. So sind beispielsweise die Hardware-Herstellern CISCO, Fujitsu und Intel sowie Linux-Distributoren, wie Red Hat, SuSE und Canonical (Entwickler von Ubuntu) beteiligt. Es ist allerdings nur unter Linux lauffähig.