Seit geraumer Zeit halten sich Gerüchte, dass Hardwarehersteller ARM -CPUs auch in Server einbauen wollen. Jetzt erklärt Forrest Norrod, General Manager der Server Platform Division von Dell im Interview mit v3.co.uk , dass man konkret darüber nachdenke.
Genauer gesagt gibt es dahingehende Überlegungen, ARM-Prozessoren in Microservern anzubieten. Der Name Microserver weckt zunächst Assoziationen, dass es sich um Server für sehr kleine Unternehmen handeln könnte. Aber das täuscht.
Microserver werden dort eingesetzt, wo eine extrem hohe Serverdichte gefordert ist, weil sehr viele Server auf kleinem Raum benötigt werden. Ein typischer Microserver hat etwa die Größe einer handelsüblichen Grafikkarte. Er wird in einem 3U-Gehäuse betrieben, das typischerweise 12 solcher Microserver aufnimmt.
Aktuelle Microserver besitzen normalerweise einen Xeon-E3-Prozessor (Sandy Bridge) mit vier Cores, zwei Speicherkanälen und vier DIMM-Slots, die bis 16 GByte RAM betreiben können. Außerdem ist meist noch eine 2,5-Zoll-SATA-Festplatte an Board.
Ein mit Microservern bestücktes 3U-Gehäuse kann also typischerweise bis zu 48 Sandy-Bridge-Cores und 192 GByte RAM beinhalten. Das reicht aus, um die serverseitige IT eines mittelständischen Unternehmens mit etwa 500 bis 1000 Mitarbeitern zu betreiben. Man kann hier also nicht von einem Einstiegsserver sprechen.
Microserver kommen nicht nur in Unternehmen zum Einsatz, sondern vor allem auch in großen Rechenzentren und Containerrechenzentren, wenn Platz gespart werden muss. So evaluiert Facebook gerade, ob es sinnvoll ist, einen Großteil ihrer Server durch Microserver zu ersetzen.
Oft nutzen Unternehmen Microserver, wenn sie auf Virtualisierung verzichten möchten, um etwa den Leistungsverlust beim I/O zu sparen, wie er bei Vollvirtualisierung zwangsläufig entsteht. Da ein Gehäuse aus 12 einzelnen Server besteht, die alle unabhängig voneinander betrieben werden können, ist Virtualisierung je nach Nutzungsprofil nicht sinnvoll. Wenn man eine Serverfarm betreibt, lassen sich einzelne Server außerhalb von Spitzenzeiten auch komplett abschalten, um Energie zu sparen.
Dass eine x86-CPU in einem General Purpose Server eine gute Figur macht, ist keine Frage. Doch es ist zu überlegen, ob ARM-Prozessoren nicht sogar besser geeignet sind. Sie brauchen zweifelsohne weniger Energie, haben aber gegenüber x86-CPU eine deutlich geringere Floating-Point-Performance. Mit dem Neon-Befehlssatz und der VFP-Einheit bieten moderne ARM-CPUs, etwa mit Cortex-A9- oder Cortex-A15-Kern, zwar auch Floating-Point- und sogar Vektoroperationen an. Mit SSE2 oder gar AVX können sie jedoch nicht mithalten.
Denkt man an einen Einsatz als File-, Mail-, Web- oder Datenbankserver, kommt man schnell darauf, dass dafür überhaupt keine Floating-Point-Befehle gebraucht werden. Es geht vor allem darum, Daten hin- und her zu schieben, zu suchen, zu kombinieren, zu filtern und in neue Protokolle und Pakete zu packen, bevor sie an den Client weitergeleitet werden. Das lässt sich mit einer ARM-CPU genauso gut erledigen wie mit einer x86-CPU.
Für Serverfarmen, die Videos und Kinofilme rendern oder dem wissenschaftlichen Rechnen dienen, sind ARM-CPU hingegen weniger geeignet. Für diese Aufgaben wird fast ausschließlich mit Floating-Point-Befehlen gearbeitet.
Ein weiterer Nachteil von ARM-CPUs besteht darin, dass sie deutlich weniger Cache besitzen als typische x86-Server-CPUs. Das bedeutet in jedem Fall eine geringere Performance bei gleicher Anzahl Cores.
Das stellt aber laut Dell überhaupt kein Problem dar, denn man könne vier bis achtmal soviel ARM-Cores auf einem Microserver unterbringen wie x86-Cores. Praktisch bedeutet das, dass pro Servereinschub 16 oder 32 ARM Cores zur Verfügung stünden. Für allgemeine Serveraufgaben mit nur geringem Bedarf an Floating-Point-Berechnungen hätte man eine Maschine, die den Vergleich mit einer modernen Intel -CPU nicht scheuen muss. Im Gegenteil, man kann sogar eine deutlich bessere Performance erwarten.
Nvidia demonstriert, dass Kal-El-CPUs auf Basis des Cortex-A9 schneller sind als Core2-Duo-CPUs von Intel (Video: Nvidia via YouTube).
ARM CPUs nur 32-Bit
Zu berücksichtigen ist allerdings, dass ARM-CPUs nur über ein 32-Bit-Speichermodell verfügen. Moderne ARM-CPUs können aber trotzdem mehr als 4 GByte RAM adressieren. Mit Cortex-A15-Kernen lassen sich über Physical Address Extension (PAE) sogar bis zu 1 TByte nutzen.
Trotzdem gilt eine Beschränkung von 4 GByte pro Prozess. In den meisten Fällen ist das kein Problem. Bei sehr großen Datenbanken ist es aber durchaus sinnvoll, dass den Datenbank-Worker-Prozessen mehr als 4 GByte zur Verfügung steht. In einem solchen Fall wäre eine 32-Bit-Architektur eine deutliche Leistungsbremse.
Generell ist es aber eine Fehlannahme, dass Prozesse im 64-Bit-Speichermodell, etwa x64-Prozesse, schneller sind als ihre 32-Bit-Pendants. Das ist zwar bei x86-CPUs der Fall, weil im 32-Bit-Prozessen weniger Register zur Verfügung stehen. ARM-CPUs besitzen jedoch wie x86-CPUs im 64-Bit-Modus 16 General-Purpose- und 16 Vektor-Register.
Hauptproblem Betriebssysteme
Das Hauptproblem für die Marktakzeptanz sieht Dell bei der Software. Es mangelt an servertauglichen Betriebssystemen für die ARM-Plattform. Microsoft will bekanntermaßen zwar Windows 8 für ARM-CPUs herausbringen, für seine Serverlinie hat der Softwareriese jedoch keine ARM-Version angekündigt.
Im Gegenteil, die Redmonder haben sich mit Windows Server 2008 R2 gerade komplett vom 32-Bit-Modell verabschiedet. Das müsste Microsoft in der nächsten Version seiner Serverbetriebssysteme wieder unterstützen, um eine ARM-Version auf den Markt zu bringen. Idealerweise müsste auch eine PAE-Version erscheinen, die mehr als 4 GByte Speicher unterstützt.
Die PAE-Unterstützung in bisherigen 32-Bit-Windows-Versionen war eher bescheiden und erfordert anders als Linux, dass die Anwendung explizit auf PAE ausgelegt ist. Microsoft hatte angesichts der sich immer weiter verbreitenden 64-Bit-x86-CPU seine PAE-Unterstützung nicht weiter verbessert.
Im Linuxbereich beklagt Dell, dass es keine enterprisefähige Distribution für ARM-Prozessoren gibt. Damit dürfte Dell vor allem Red Hat Linux und Suse Linux Enterprise Server meinen, denn Debian bietet ja eine ARM-Distribution seiner aktuellen Version 6 (Squeeze) an.
Debian wird von vielen als enterprisefähiges Linux angesehen. Der Stable Branch setzt auf Stabilität und verzichtet deswegen auf die neuesten Versionen der meisten Pakete. Das ist dieselbe Strategie, die auch Red Hat und Suse fahren.
Für viele Anwender ist aber ein Problem, dass hinter Debian kein Unternehmen steckt, das auch herstellereigenen Support anbietet. Ob ARM-Server letztendlich erfolgreich sein werden, hängt nicht zuletzt von der Unterstützung kommerzieller OS-Hersteller ab.
Fazit
Moderne ARM-CPUs wie Modelle mit Cortex-A9-Kern oder dem noch nicht in großen Stückzahlen erhältlichen Cortex-A15-Kern sind für viele Serveraufgaben besser geeignet als x86-CPUs. Das gilt vor allem für General Purpose Server, die als Mail-, File-, Print- oder Datenbankserver eingesetzt werden. Sie benötigen kaum Floating-Point-Befehle, bei denen ARM traditionell weniger bietet als Intel.
Dafür brauchen ARM-CPUs deutlich weniger Strom als aktuelle x86-Modelle. Berücksichtigt man, dass sich bereits in einen Microserver von der Größe einer Grafikkarte 16 oder 32 ARM-Kerne einbauen lassen, erkennt man sofort, dass ARM-Server ihren x86-Pendants bei vielen Aufgaben sogar überlegen sein können. Da das Microserver-Konzept sehr flexibel ist, lassen sich in einem Gehäuse auch ARM- und x86-Servereinschübe mischen. Sinnvoll ist das, wenn auch Floating-Point-intensive Anwendungen laufen müssen, etwa Video-Encoding oder Raytracing.
Das Hauptproblem ist jedoch die derzeit mangelnde Unterstützung durch die Hersteller von Betriebssystemen und Anwendungsprogrammen. Derzeit gibt es weder Windows noch Linux in ARM-Versionen, die von einem kommerziellen Hersteller wie Red hat oder Suse als "Enterprise ready" deklariert sind.
Hersteller Dell erkennt viele Vorteile in der ARM-Architektur, sieht sich aber laut Serverplattform Chef Forrest Norrod in einer "Abwarten-und-Teetrinken-Haltung" (wait-and-see mode). Seiner Meinung gibt es derzeit ein Wettrennen zwischen ARM und Intel beziehungsweise AMD: ARM muss ein Enterprise-Ökosystem aufbauen. Intel und AMD arbeiten hingegen mit Hochdruck daran, CPUs zu bauen, die die gleiche Serverdichte und Energieeffizienz wie ARM ermöglichen. Gewinner wird am Ende der sein, der schneller ist.