Multiprozessorsysteme/Server-Partitionierung

Ein Wettstreit der Architekturen

03.03.2000
Vor einigen Jahren hatte der Unterschied zwischen den Architekturen der Symmetric-Multiprocessor-Systeme (SMP) und Massively-Parallel-Processor-Systeme (MPP) noch die Trennschärfe eines Kulturkampfs. Ein gemeinsamer Hauptspeicher für alle Prozessoren des Systems und damit scheinbar eine einfache Programmentwicklung stand gegen Lösungen mit vielen unabhängigen Knoten.Von Klaus Gottschalk*

Mittlerweile ist der Diskussion um die Vor- und Nachteile beider Architekturen die Schärfe genommen, und die klaren Unterscheidungsmerkmale zwischen den Rechnerarchitekturen sind fließender geworden. Große SMP-Server-Systeme mit einer Anzahl an Prozessoren, die vor wenigen Jahren noch für technisch unmöglich galt, werden durch Partitionierung in Server-Farmen umgewandelt und ähneln dabei aus Sicht von Anwendungs- und Systemadministration sehr einer MPP-Lösung. Auf der anderen Seite werden die Knoten eines MPP-Systems durch immer engere Kopplung und raffinierte Kommunikationssoftware zu Systemen mit einem gemeinsamen Adressraum zusammengebunden und damit zu einem hybriden SMP-System.

Derzeit steuern die beiden Hauptströmungen für Systemarchitekturen ein gemeinsames Ziel an. Die Schlüsseltechnologie in diesem Zusammenhang nennt sich Non Uniform Memory Access (Numa) und dient der Prozessor-Memory-Kommunikation. Hier wird es den nächsten Jahren überraschende Entwicklungen geben.

Bis heute wurde der Zuwachs an Leistung für Server-Systeme immer sofort für Anwendungsfunktionen genutzt. Jedes stärkere Server-System wurde von der Softwareindustrie begeistert aufgenommen. Ein Beispiel hierfür ist die Entwicklung der Leistungsanforderungen des R/3-Systems von SAP. Nach einer Migration von R/3, Version 3, zu Version 4 wird in einem zentralen System mit der gleichen Zahl von Benutzern 20 Prozent und mehr zusätzliche Leistung benötigt.

Aber die Entwicklung wird nicht zu immer mehr Prozessoren in einem SMP-System führen können. Es ist schon lange bekannt, dass der Verwaltungsaufwand mit der Menge der CPUs wächst. Ab einer bestimmten Anzahl steigt die relative Systemleistung nicht mehr weiter an. Diese Grenze liegt heute bei zirka 30 Prozessoren. Jede zusätzliche CPU führt dann sogar zu einer Reduzierung der relativen Systemleistung.

Die Gründe liegen in der notwendigen Koordination und Steuerung des Zugriffs auf gemeinsame Komponenten wie den Hauptspeicher, in der Verwaltung der Prozessoren im Betriebssystem und der Koordination der I/O-Operationen. Allgemeiner gesagt, die Zugriffssteuerung auf nur einfach vorhandene Systemressourcen bildet einen zentralen Flaschenhals im System.

Ein Ausweg aus dieser Problematik ist die Kopplung von nicht zu großen unabhängigen SMP-Systemen zu einem Verbund oder Cluster. Die vollständig eigenständigen Systemknoten werden dazu so über ein Kommunikationsnetzwerk gekoppelt, dass das System als ein SMP-Rechner mit einem gemeinsamen Adressraum betrieben werden kann. Dabei sind jeweils ein Teil des gesamten Hauptspeichers lokal und andere Teile entfernt in den anderen Knoten untergebracht. Man spricht deshalb von Non Uniform Memory Access.

Mit dieser Technologie ist es möglich, den zentralen Flaschenhals eines SMP-Systems zu vermeiden und eine viel weiter reichende Skalierbarkeit zu erzielen. Die technische Herausforderung hierbei ist eine möglichst enge Kopplung der Systeme mit geringer Latenzzeit und hoher Bandbreite. Ein Beispiel ist die "Numa-Q"-Server-Familie von Sequent/ IBM. In einem Numa-Q-Server lassen sich bis zu 64 Prozessoren aus Server-Bausteinen mit je vier Prozessoren zusammenbinden.

Server-PartitionierungEin weiterer Trend ist die Aufteilung von SMP-Servern in kleinere Systeme, in Server-Partitionen. Dabei werden Komponenten des Gesamtsystems genau einer Partition zugeordnet. Eine gemeinsame Benutzung findet nicht statt.

Die Partition muss als ein vollständiges System ausgestattet werden: mit Prozessoren, Memory, I/O-Subsystem, Netzwerk und Plattenperipherie. In jeder Partition wird ein Betriebssystem installiert, das die Verwaltung der zugeordneten Hardware übernimmt. Damit entsteht aus einem größeren SMP-Server ein Cluster von kleineren Systemen.

Was ist nun der Vorteil eines partitionierten Servers gegenüber einem Cluster aus Einzelsystemen? Beim Betrieb von Anwendungen in einem Verbund sind beide Varianten gleichwertig, weil sie aus mehreren unabhängigen Systemen mit jeweils einem Betriebssystem bestehen.

Die Vorteile eines partitionierten Servers sind die Flexibilität bei der Konfiguration der Partitionsgröße, ein möglicherweise geringerer Stellplatzbedarf, ein gemeinsames Gehäuse und gemeinsamer Stromanschluss. Für viele sehr komplexe Anwendungen ist heute eine exakte Vorausplanung der erforderlichen Server-Leistung schwierig. In diesen Fällen ist es hilfreich, dass sie sich durch eine nachträgliche Veränderung der Partitionsgröße leicht an die tatsächlichen Bedürfnisse anpassen lässt.

Nachteilig wirkt sich die nicht vollständige Unabhängigkeit der Partitionen untereinander aus. Ein Upgrade der Prozessoren muss für das Gesamtsystem und damit für alle Partitionen gemeinsam durchgeführt werden. Auch besteht die Gefahr, dass ein Anwendungsfehler in einer Partition einen Ausfall des Gesamtsystems verursacht.

Physikalische PartitionierungDie bequemste Art der Partitionierung ist die physikalische Zuordung von Prozessoren beziehungsweise von Prozessor-Boards mit Memory und I/O-Komponenten - vor allem, wenn jedes Prozessorboard alle notwendigen Komponenten selbst enthält. Damit lässt sich ein System durch eine geeignete Aufteilung des System-Bus oder Systeminterconnects in Partitionen trennen.

Die technisch relativ einfache Splittung eines Server-Systems hat auch Nachteile. Die Flexibilität, mit der sich Systeme aufteilen lassen, hängt von der Art und Größe der Systembausteine oder -Boards ab. Eine Partition kann nur entsprechend stufenweise wachsen oder reduziert werden. Sind die einzelnen Prozessoren sehr leistungsfähig, dann liegen zwischen den konfigurierbaren Partitionsgrößen sehr große Leistungsstufen. Die Bindung der Komponenten des System-Boards aneinander kann deshalb zu einer unerwünschten Vergeudung von Ressourcen führen.

Ist eine bestimmte Hauptspeichergröße nur mit einer Mindestanzahl an Prozessoren konfigurierbar, dann ist eine Abstimmung nach der Leistung für eine Anwendung meist nur zufällig passend. Auch sind Partitionsgrenzen nur innerhalb der Grenzen der System-Boards, mit einer bestimmten Anzahl von Prozessoren und Memory, realisierbar.

Hier muss bei der Planung der physikalischen Partitionen größte Sorgfalt herrschen. Die Anbindung der Systemplatten und der I/O-Adapter kann dazu führen, dass mehr Prozessoren oder mehr System-Boards in eine Partition aufgenommen werden müssen, als für die geplante Server-Leistung notwendig wäre.

Weil eine Anpassung der Partitionsgröße im laufenden Betrieb einen physikalischen Eingriff in das System erfordert, ist ein hohes Risiko verbunden. Auch wenn heute durch Hot-Plug-Fähigkeiten und Fehlertoleranz eine Änderung der physikalischen Partitionierung online möglich ist, wird von den Herstellern wegen der Möglichkeit eines Systemabsturzes davon abgeraten. Es muss also das gesamte SMP-System gestoppt werden: heutzutage eine zu unflexible Lösung.

Logische PartitionierungEin Weg zu mehr Flexibilität ist eine logische Zuordnung von Systemkomponenten zu einer Partition. Diese Aufgabe übernimmt eine zwischen Hardware und Betriebssystem liegende Schicht. Die Zuteilung abstrahiert von der tatsächlich im System vorhandenen Hardware und den den Partitionen zugeordneten Komponenten. Unter diesem Blickwinkel ist eine logische Partitionierung dem hardwarenahen Multitasking verwandt.

Damit ist es möglich, dass einer Partition sogar Anteile an der Prozessorleistung und am Memory zugeordnet werden. Beispielsweise können auf einem Uniprozessorsystem zwei logische Partitionen (LPAR) mit je einem Drittel und zwei Drittel der Systemleistung konfiguriert werden.

Beispiele für Lösungen mit LPAR-Fähigkeit sind Amdahls Systeme mit Multi Domain Feature (MDF), die IBM-Großrechner S/390 und seit kurzem die AS/400.

Die großen Vorteile logischer Partitionierung sind die Flexibilität bei der Aufteilung des Systems und die leichte Online-Anpassbarkeit der Partitionsgröße. Die technische Herausforderung dabei ist die notwendige flexible Zuordnung der gesamten Peripherie an die Partitionen des Systems. Wegen der nur logischen Zuordnung zu einer Partition muss hier eine gemeinsame Nutzung der Hardwareeinheiten möglich sein.

Die logische Partitionierung stellt heute die flexibelste Methode zur Aufteilung von Server-Hardware dar. Auf der anderen Seite sind die technischen Voraussetzungen hierfür hoch, eine Realisierung ist deshalb meist kostspielig.

Workload-ManagementHäufig ist die Aufteilung in mehrere Systeme nicht das Ziel einer Server-Partitionierung. Für Durchsatzsysteme mit einer Vielzahl von Subsystemen und Anwendungen geht es vielmehr um einen Weg, eine sichere gegenseitige Abschottung von Anwendungen, Benutzern und I/O zu erreichen. Dabei bringt die mehrfache Pflege der Betriebssysteme in den Partitionen einen höheren Aufwand und damit einen Nachteil mit sich. In diesen Fällen ist eine sichere Steuerung durch ein Workload-Management für Klassen von Anwendungen und Benutzern eine einfachere Lösung.

Im System werden dabei Anwendungen und Benutzer den Resource-Klassen zugeordnet. Beispielsweise bekommt in einem System mit Workload-Management die Datenbank maximal 40 Prozent der Systemleistung zugeordnet, die Applikations-Server für die Benutzergruppe X erhalten maximal 20 Prozent des Memory, Gruppe Y kann Überkapazitäten zum Monatsabschluss aus Klasse X beanspruchen.

Ein Workload-Management bietet die Flexibilität einer logischen Partitionierung ohne den Aufwand der Verwaltung mehrerer Betriebssysteme. Aus diesem Grund ist diese Lastverteilung eine Variante der Anwendungspartitionierung.

Ziele des Workload-Managements sind die Sicherung eines guten Antwortverhaltens von Anwendungen bei hoher Server-Auslastung, ein unabhängiger Betrieb von parallelen Benutzer- und Anwendungsklassen sowie höchste Flexibilität bei der Anpassung der Anwendungsleistung an die täglich oder stündlich veränderten Anforderungen. Insbesondere soll eine einfache Umstellung zwischen Tag- und Nachtbetrieb, Batch- oder Dialogbetrieb ohne Änderung der globalen Systemparameter erreicht werden. Und nicht zuletzt muss ein einfacher Ausgleich von Überkapazitäten zwischen den Anwendungsklassen erreicht werden.

Folglich ist für viele Systemverwaltungsaufgaben die Verwendung eines Workload-Managements eine bessere Methode als die meist sehr starre Aufteilung eines Systems in Partitionen.

Nicht durch das Workload-Management abgedeckt ist ein teilweise notwendiger Einsatz von verschiedenen Betriebssystemen auf der gleichen Hardware. So muss beispielsweise die Abschottung zwischen Produktions- und Qualitätssicherungssystem alle Betriebssystem-Teile mit einschließen. Deshalb kann in diesem Fall auf getrennte Hardware oder zumindest auf mehrere Partitionen nicht verzichtet werden. Die Systeme S/390 mit OS/390 sind ein klassisches Beispiel, wie sich Workload-Management und logische Partitionierung flexibel ergänzen können.

Zusammenfassung und TrendsBeide Technologierichtungen, die Kopplung von Systemen mit Numa-Technologie zu großen SMP-Servern und die physikalische oder logische Partitionierung von SMP-Server-Systemen, werden die Entwicklung von Highend-Servern in den nächsten Jahren dominieren. Dabei stehen diese Trends nur scheinbar in Konkurrenz miteinander.

Die Partitionierung von Systemen erlaubt es, große Server-Systeme an Anwendungen angepasst zu betreiben. Die Numa-Technologie wiederum ermöglicht die Skalierung von Server-Leistung in einem System mit einem gemeinsamen Adressraum ohne den Flaschenhals der Prozessor-Memory-Kommunikation.

Ein zukünftiger Highend-Server wird alle Technologien einsetzen: Es werden SMP-Server-Bausteine mit maximal 30 Prozessoren pro System, zusammengekoppelt über ein Hochgeschwindigkeits-Netzwerk für Numa-, I/O- und TCP/IP-Kommunikation entstehen. Die Lösungen werden in physikalische und logische Partitionen aufteilbar sein, um mehrere Server-Systeme in diesem Verbund betreiben zu können.

Ein Workload-Management wird in den konfigurierten Partitionen die Leistung flexibel den Anwendungs- und Benutzerklassen zur Verfügung stellen. Ein globales gemeinsames I/O-Subsystem koppelt Systemplatten, Netzwerke und weitere I/O-Pfade flexibel an alle Partitionen an.

* Klaus Gottschalk ist System Architect IBM Enterprise Systems Group in Stuttgart.

Abb. 1: NUMA-Q-System

Beispiel eines NUMA-Q-Servers mit 16 Server-Knoten à vier Prozessoren, der gleichzeitig unterschiedliche Aufgaben erledigt. Quelle: IBM

Abb. 2: System-Overhead

Die relative Gesamtleistung eines Mehrprossorsystems kann mit steigender CPU-Anzahl sogar abnehmen. Quelle: IBM

Abb. 3: Serverpartitionierung

SMP-Server werden in kleinere Systeme aufgeteilt. Quelle: IBM

Abb. 4: NUMA

Non uniform memory Access (Numa) ist eine Mischform aus SMP- und MPP-System. Quelle: IBM

Abb. 5: Workload-Management

Workload-Management legt die Verteilung der Ressourcen auf Benutzer und Anwendungen fest. Quelle: IBM