Beschreibung
Modulares Computersystem und Servermodul Die Erfindung betrifft ein modulares Computersystem,
umfassend ein Chassis mit einer Mehrzahl von
Aufnahmeschächten zur Aufnahme von korrespondierenden
Funktionsmodulen, insbesondere Servermodulen. Die Erfindung betrifft des Weiteren ein Servermodul für ein modulares
Computersystem und eine Rackanordnung mit wenigstens einem als Rack-Einschub in das Rackgehäuse aufgenommenen modularen ComputerSystem.
Mit der weltweit steigenden Nachfrage nach IT- Dienstleistungen nimmt der Bedarf an Rechenleistung weiter zu. Dabei nimmt neben der reinen Bereitstellung von
Rechenleistung auch der damit verbundene Platz- und
Energiebedarf eine bedeutende Rolle ein. Dies betrifft sowohl relativ kleine Server-Anordnungen, wie sie beispielsweise in IT-Abteilungen kleiner und mittlerer Unternehmen zu finden sind, als auch Rechenzentren von großen Unternehmen oder spezialisierten Anbietern von IT-Dienstleistungen.
Um Rechenleistung bedarfsgerecht erweitern zu können, sind aus dem Stand der Technik verschiedene Ansätze zum Aufbau erweiterbarer Rechenanlagen bekannt. Ein verhältnismäßig einfacher Ansatz besteht darin, Servercomputer in Server- Racks mit einem Standard-Formfaktor, typischerweise einem 19- Zoll Rack-Einschub, einzubauen und nach Bedarf entsprechende Server-Racks um weitere Servercomputer zu ergänzen. Die einzelnen Servercomputer arbeiten dabei verhältnismäßig eigenständig. Insbesondere weisen derartige Servercomputer individuelle Stromversorgungen und Netzwerkschnittstellen
auf. Solche Systeme sind vergleichsweise kostengünstig, erfordern aber einen relativ hohen Raumbedarf und
Verwaltungsaufwand . Ein alternativer Ansatz besteht in der Integration von einzelnen, so genannten Blade-Servern in ein Blade- Serversystem. Dabei umfasst ein Blade-System neben den eigentlichen Blade-Servern mit darauf angeordneten
Prozessoren und Hauptspeichern eine Anzahl von
Infrastrukturkomponenten wie etwa Netzteile, Netzwerk- Switches, Netzwerkschnittstellen und Massenspeichereinheiten, auf die die einzelnen Bladeserver als gemeinsam genutzte Ressourcen zugreifen. Darüber hinaus umfasst jedes Blade- System typischerweise ein oder mehrere sogenanntes
Management-Blades , die zur Überwachung, Verwaltung und
Administration der übrigen Komponenten dient. Blade- Serversysteme gestatten eine hohe Rechendichte, sind aber verhältnismäßig teuer. Dies ist unter anderem auf die
Vielzahl von speziellen Komponenten zurückzuführen, die zum Aufbau eines funktionstüchtigen Blade-Serversystems benötigt werden .
Bei einem dritten Ansatz, der unter anderem als modulares Computersystem oder als Multi-Node-Computersystem bezeichnet wird, ist eine Mehrzahl von Servermodulen in einem
gemeinsamen Chassis aufgenommen. Da die Servermodule
teilweise über kein eigenes abgeschlossenes Gehäuse verfügen, werden sie teilweise auch als "skinless" Server bezeichnet. Über das Chassis können die einzelnen Servermodule mit einer gemeinsamen Stromversorgung, Kühlung und ähnlichen einfachen oder standardisierten Komponenten wie Festplattenlaufwerken verbunden werden, wobei die Servermodule selbst jedoch weitgehend eigenständige Servercomputer darstellen.
Insbesondere benötigen derartige modulare Computersysteme keine zentrale Verwaltungsinstanz, wie dies beispielsweise bei Blade-Serversystemen üblich ist. Sie gestatten eine hohe Rechendichte bei relativ geringen Kosten des Gesamtsystems.
Ein modulares Computersystem der zuvor beschriebenen Art ist beispielsweise aus der internationalen Anmeldung
WO 2013/068250 AI bekannt. Das dort offenbarte Serversystem umfasst wenigstens eine in dem Chassis angeordnete
Leiterplatte zur Kontaktierung von in Einschubplätzen
aufgenommenen Server-Einschüben, wobei die Leiterplatte wenigstens einen ersten MikroController aufweist. Das
Serversystem umfasst des Weiteren einen in dem ersten
Einschubplatz angeordneten und mit der wenigstens einen
Leiterplatte gekoppelten ersten Server-Einschub, wobei der erste Server-Einschub einen ersten System-Management- Controller aufweist. Dabei sind der erste MikroController und der erste System-Management-Controller über wenigstens eine erste Signalleitung miteinander gekoppelt, und der erste MikroController ist dazu eingerichtet, dem System-Management- Controller wenigstens einen Chassis-spezifischen
Konfigurationswert bereitzustellen. Durch die genannte
Anordnung wird insbesondere ermöglicht, über ein Netzwerk und einen System-Management-Controller eines einzelnen Server- Einschubs mittelbar auf Chassis-spezifische
Konfigurationsdaten des Serversystems zuzugreifen, ohne dass das Chassis selbst eine Netzwerkschnittstelle aufweist.
Bei derartigen Computersystemen besteht eine Herausforderung darin, die Nutzung von über das Chassis bereitgestellte
Systemkomponenten zu vereinfachen oder zu verbessern, um eine Integration des modularen Computersystems zu verbessern.
Gleichzeitig soll der Aufbau des Chassis selbst bzw. der
darin verbauten Komponenten so einfach wie möglich gehalten werden, um deren Preis und Komplexität zu begrenzen.
Vor diesem Hintergrund beschreibt die vorliegenden Anmeldung ein modulares Computersystem, umfassend ein Chassis mit einer Mehrzahl von Aufnahmeschächten zur Aufnahme von
korrespondierenden Funktionsmodulen, insbesondere
Servermodulen. Das Computersystem umfasst eine in dem Chassis angeordnete, nichtflüchtige Speichervorrichtung und
wenigstens eine in dem Chassis angeordnete und mit der
Speichervorrichtung verbundene Steuervorrichtung. Die
Speichervorrichtung ist dazu eingerichtet,
Konfigurationsdaten einer Mehrzahl von Funktionsmodulen zu speichern und die Steuervorrichtung ist dazu eingerichtet, von in einem Aufnahmeschacht aufgenommenen Funktionsmodul übermittelter Anfragen zum Schreiben, Lesen und/oder Löschen von Konfigurationsdaten entgegenzunehmen, die Anfragen auf einen Adressraum der Speichervorrichtung abzubilden und korrespondierende Steuerbefehle an die Speichervorrichtung zu übertragen .
Durch die genannten Merkmale wird eine gemeinsame Nutzung einer Speichervorrichtung des Chassis des modularen
Computersystems durch eine Vielzahl von Funktionsmodulen, insbesondere Servermodule, ermöglicht. Dabei kann die
zwischen die einzelnen Funktionsmodule und die
Speichervorrichtung geschaltete Steuervorrichtung die
Anfragen der einzelnen Funktionsmodule auf einen oder mehrere Adressräume der Speichervorrichtung abbilden, so dass es zu keinen Konflikten bezüglich der gespeicherten Daten kommt.
Gemäß wenigstens einer Ausgestaltung weist jeder der
Aufnahmeschächte wenigstens einen elektrisch mit der
Steuervorrichtung verbundenen Anschluss zur elektrischen Kontaktierung von einem in dem jeweiligen Aufnahmeschacht aufgenommenen Funktionsmodul auf. Dabei ist die
Steuervorrichtung über ein erstes serielles Bussystem mit den Anschlüssen zur Übertragung von Konfigurationsdaten an in den Aufnahmeschächten aufgenommenen Funktionsmodulen verbunden und das erste serielle Bussystem ist dazu eingerichtet, die gleichzeitige Übermittlung von Konfigurationsdaten durch unterschiedliche Funktionsmodule zu verhindern. Durch die Verwendung eines seriellen Bussystems kann die Anzahl der zur Datenübertragung benötigten Leitungen gering gehalten werden Dabei können durch Maßnahmen zur Busarbitrierung Konflikte beim Zugriff auf die Steuervorrichtung vermieden werden. In wenigstens einer Ausgestaltung stellt die
Speichervorrichtung eine Mehrzahl von Speicherblöcken zum Speichern von Daten bereit. Die Steuervorrichtung stellt ein Dateisystem zum Zugriff auf die Speichervorrichtung mittels Pfad- und/oder Dateinamen bereit und ist dazu eingerichtet, von den in den Aufnahmeschächten aufgenommenen
Funktionsmodulen empfangenen Pfad- und/oder Dateinahmen auf den Pfad- und/oder Dateinamen zugeordnete Blöcke der
Speichervorrichtung abzubilden. Durch Bereitstellung eines Dateisystems können die einzelnen Funktionsmodule unter
Verwendung von logischen Dateinamen, insbesondere Pfad- und Dateinamen, auf gespeicherte Daten zugreifen, ohne das
Adressschema der Speichervorrichtung zu kennen. Darüber hinaus kann hierdurch ein gezielter Datenaustausch zwischen unterschiedlichen Funktionsmodulen ermöglicht werden.
In wenigstens einer Ausgestaltung implementiert die
Steuervorrichtung ein Protokoll zum Zugriff auf die in den Dateisystem gespeicherten Konfigurationsdaten durch in den
Aufnahmeschächten aufgenommenen Funktionsmodule, wobei das Protokoll einen atomaren Zugriff auf einzelne Elemente des Dateisystems sicherstellt. Durch die Verwendung eines
Protokolls mit atomaren Operationen kann eine Konsistenz gespeicherter Daten, insbesondere die Konsistenz von dem Dateisystem selbst, sichergestellt werden.
In wenigstens einer Ausgestaltung umfasst die
Speichervorrichtung einen programmierbaren Festwertspeicher, insbesondere einen Flash-Speicher, dessen Speicherzellen im unprogrammierten Zustand einen ersten logischen Wert
besitzen. Dabei ist die Steuervorrichtung dazu eingerichtet, Datenbits von in den Aufnahmeschächten aufgenommenen
Funktionsmodulen empfangenen Konfigurationsdaten zu
invertieren, so dass Datenbits der empfangenen
Konfigurationsdaten mit einem zweiten logischen Wert auf Speicherzellen der Speichervorrichtung im unprogrammierten Zustand abgebildet werden. Durch die Invertierung von
Datenbits können insbesondere Unterschiede zwischen in bekannten Dateisystemen und physikalischen
Speichervorrichtungen, wie insbesondere einem Flash-Speicher, verwendeten Konventionen ausgeglichen werden, um die Anzahl der benötigten Programmieroperationen zu reduzieren. In wenigstens einer Ausgestaltung ist der programmierbare Festwertspeicher nur blockweise löschbar und die
Steuervorrichtung weist einen Zwischenspeicher zum
Zwischenspeichern von wenigstens einem Datenblock des
programmierbaren Festwertspeichers auf. Die Steuervorrichtung ist dazu eingerichtet, beim Empfang einer Anfrage zum
Schreiben von Konfigurationsdaten, die in der Anfrage
enthaltenen Konfigurationsdaten und/oder einen der Anfrage zugeordneten Speicherblock der Speichervorrichtung in den
Zwischenspeicher zu laden, die zu schreibenden
Konfigurationsdaten mit den Daten des zugeordneten
Speicherblocks zu vergleichen und die Anfrage zum Schreiben von Konfigurationsdaten ohne zwischenzeitliche Löschung oder dem Schreiben der zu schreibenden Konfigurationsdaten zu verwerfen, wenn der Vergleich ergeben hat, dass der
zwischengespeicherte Datenblock die zu schreibenden
Konfigurationsdaten identisch enthält. Durch eine Analyse, ob die neu zu schreibenden Daten einen Überschuss über die bereits gespeicherten Daten enthalten, kann auf eine
Schreiboperation unter gewissen Umständen vollständig
verzichtet werden.
In wenigstens einer weiteren Ausgestaltung ist die
Steuervorrichtung weiter dazu eingerichtet, dem zugeordneten Datenblock ohne zwischenzeitliche Löschung mit dem zu
schreibenden Konfigurationsdaten zu überschreiben, wenn der Vergleich ergeben hat, das ausschließlich Übergänge vom ersten logischen Wert entsprechend dem unprogrammierten
Zustand auf den zweiten logischen Wert entsprechend einem programmierten Zustand zum Schreiben der Konfigurationsdaten in den programmierbaren Festwertspeicher erforderlich sind. Des Weiteren ist die Steuervorrichtung dazu eingerichtet, den zugeordneten Datenblock zu löschen und nachfolgend mit dem zu beschreibenden Konfigurationsdaten zu beschreiben, wenn der Vergleich ergeben hat, dass wenigstens ein Übergang vom zweiten logischen Wert auf den ersten logischen Wert zum Schreiben der Konfigurationsdaten im programmierbaren
Festwertspeicher erforderlich ist. Durch die genannten
Schritte kann eine Anzahl von Löschoperationen eines
programmierbaren Festwertspeichers, insbesondere eines Flash- Speichers, weiter reduziert werden.
Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Servermodul zur Verwendung in einem modularen
Computersystem mit einer Steuervorrichtung und einer
Speichervorrichtung, insbesondere dem oben genannten
Computersystem, beschrieben. Das Servermodul umfasst
wenigstens eine Systemplatine zur Aufnahme von
Systemkomponenten, wenigstens einem Modulanschluss zur elektrischen Kontaktierung des modularen Computersystems und wenigstens eine Firmware-Komponente zum Speichern und Abrufen von Konfigurationsdaten. Dabei ist die wenigstens eine
Firmware-Komponente dazu eingerichtet, zu speichernde
Konfigurationsdaten über den Modulanschluss an die
Steuervorrichtung des modularen Computersystems zu übertragen und abzurufende Konfigurationsdaten über den Modulanschluss von der Steuervorrichtung des modularen Computersystems abzurufen. Durch Übertragen beziehungsweise Abrufen von
Konfigurationsdaten über einen Modulanschluss eines
Servermoduls kann auf die Vorsehung eines modulinternen
Speichers, insbesondere eines Flash-Speichers zum Speicher von Konfigurationsdaten, verzichtet werden.
In wenigstens einer Ausgestaltung weist das Servermodul wenigstens einen Systemmanagement-Baustein auf, wobei der Systemmanagementbaustein über einen seriellen
Systemmanagementbus mit dem Modulanschluss verbunden ist. Der Systemmanagementbaustein ist dazu eingerichtet, die
wenigstens eine Firmware-Komponente auszuführen, um
Konfigurationsdaten über den Systemmanagementbus mit der Steuervorrichtung auszutauschen. Durch die Verwendung eines Systemmanagementbausteins, der typischerweise mit den meisten Komponenten eines Servermoduls über einen Systemmanagementbus verbunden ist, kann der Datenaustausch von
Konfigurationsdaten ohne zusätzliche Hardwarekomponenten auf Seiten des Servermoduls umgesetzt werden.
Weitere vorteilhafte Ausgestaltungen sind in den angehängten Patentansprüchen sowie der nachfolgenden ausführlichen
Beschreibung eines Ausführungsbeispiels offenbart.
Die Erfindung wird nachfolgend anhand eines beispielhaften modularen Computersystems unter Bezugnahme auf die
angehängten Figuren im Detail beschrieben. In den Figuren und der Beschreibung werden einzelne Instanzen gleichartiger Komponenten durch einen alphabetischen Suffix voneinander unterschieden. Ist kein Suffix angegeben, wird jeweils auf alle Komponenten Bezug genommen. In den Figuren zeigen:
Figur 1 eine perspektivische Vorderansicht eines Chassis eines modularen Computersystems,
Figur 2 eine perspektivische Rückansicht des Chassis gemäß
Figur 1,
Figur 3 eine schematische Darstellung des Systemaufbaus des modularen Computersystems,
Figur 4 eine perspektivische Ansicht unterschiedlicher
Funktionseinheiten des modularen Computersystems,
Figur 5 eine schematische Darstellung unterschiedlicher
Konfigurationen des modularen Computersystems,
Figur 6 eine schematische Darstellung der Verbindung von
Funktionsmodulen mit Komponenten des Chassis,
Figur 7 eine schematische Darstellung des elektrischen
Anschlusses eines Flash-Bausteins an ein serielles Bussystem des modularen Computersystems, Figur 8 ein Ablaufdiagramm eines Verfahrens zum Schreiben eines Datenblocks,
Figur 9 eine schematische Darstellung des Ablaufs einer
Leseoperation und
Figur 10 eine schematische Darstellung des Ablaufs einer
Schreiboperation .
Bevor auf die Details der erfindungsgemäßen Lösung
eingegangen wird, wird zunächst anhand der Figuren 1 bis 5 der allgemeine Systemaufbau eines modularen Computersystems gemäß dem verwendeten Ausführungsbeispiel beschrieben. Bei dem beschriebenen Computersystem handelt es sich um ein sogenanntes Multi-Node-System, bei dem mehrere, logisch weitgehend unabhängig voneinander arbeitende Servermodule in einem gemeinsamen Chassis angeordnet sind.
Figur 1 zeigt eine perspektivische Vorderansicht eines
Chassis 2 für ein derartiges modulares Computersystem 1. Im Ausführungsbeispiel entspricht das Chassis 2 einem
Standardformat, insbesondere einem 19-Zoll-Rackformat zum Einschub in ein korrespondierendes Rackgehäuse. Hierzu weist das Chassis 2 im Bereich einer Vorderseite zwei
Befestigungslaschen 3a und 3b auf, mit denen das Chassis 2 an senkrechten Lochschienen 6 des im Übrigen nicht dargestellten Rackgehäuses befestigt ist. Zur Befestigung dienen
beispielsweise Daumenschrauben oder andere an sich bekannte Befestigungsmittel. Das Chassis 2 gemäß Figur 1 weist eine
Bauhöhe von zwei sogenannten Höheneinheiten von jeweils 44,45 Millimetern auf. Selbstverständlich ist auch die Verwendung anderer Bauhöhen zur Aufnahme von größeren oder anderen als den nachfolgend beschriebenen Komponenten möglich.
Um die zur Verfügung stehende, von der Vorderseite des
Rackgehäuses aus erreichbare Fläche optimal auszunutzen, sind auf den Befestigungslaschen 3a und 3b Bedienpanels 4a bzw. 4b angeordnet, die verschiedene Steuerdaten anzeigen bzw. zur Eingabe von Steuerdaten dienen. Der zwischen den Bedienpanels 4a und 4b zur Verfügung stehende Raum dient im
Ausführungsbeispiel zur Aufnahme von Speichereinschüben in einem Standardformat, insbesondere Festplattenmodulen. Im dargestellten Ausführungsbeispiel lassen sich in dem
mittleren Bereich insgesamt 24 Festplattenmodule mit
Festplattenlaufwerken im 2 , 5-Zoll-Format anordnen, die in vier Gruppen 5a bis 5d von Speichereinschüben aufgeteilt sind . Das beschriebene modulare Computersystem 1 dient zur Aufnahme von bis zu vier einzelnen Funktionsmodule, insbesondere
Servermodulen, in korrespondierenden Aufnahmeschächten 7a bis 7d. Die Funktionsmodule werden von einer in Figur 2
dargestellten Rückseite her in das Chassis 2 eingeschoben. Obwohl die einzelnen Aufnahmeschächte 7a bis 7d in der Figur 2 durch gestrichelte Linien voneinander getrennt dargestellt sind, wird darauf hingewiesen, dass eine physikalische
Trennung in dem Chassis 2 nicht erforderlich ist. Auf diese Weise können insbesondere größere Funktionsmodule in
benachbarte Aufnahmeschächte 7a bis 7d aufgenommen werden, wie unten anhand der Figur 5 beschrieben. In einem seitlichen Bereich der Rückseite weist des Chassis 2 zwei weitere
Aufnahmeschächte 8a und 8b zur Aufnahme von zwei
korrespondierenden Netzteilen auf. Auch diese
Aufnahmeschächte sind nicht physikalisch voneinander
getrennt . Figur 3 zeigt eine schematische Draufsicht auf den
Systemaufbau des modularen Computersystems 1. Darin ist zu erkennen, dass im Inneren des Chassis 2 neben den zuvor genannten Komponenten weitere Komponenten angeordnet sind. Insbesondere umfasst das Chassis 2 eine senkrecht zur
Einschubrichtung von Funktionsmodule 13 angeordnete erste
Leiterplatte 9. Die erste Leiterplatte 9 wird teilweise auch als Midplane bezeichnet, da sie in einem Gehäuseinneren angeordnet ist und von zwei Seiten durch weitere Komponenten kontaktiert werden kann. Über die erste Leiterplatte 9 sind die einzelnen Funktionsmodule 13 und sonstige Komponenten des modularen Computersystems 1 miteinander verbunden. Zur elektrischen Kontaktierung weist jedes der Funktionsmodule 13 einen Modulanschluss 17 auf, der in einen korrespondierenden Anschluss 18 der ersten Leiterplatte 9 eingesteckt werden kann.
Darüber hinaus umfasst das modulare Computersystem 1 im
Ausführungsbeispiel vier zweite Leiterplatten 10a bis lOd, die jeweils einer der Gruppen 5a bis 5d von
Speichereinschüben 14 zugeordnet sind. Über die zweiten
Leiterplatten 10a bis lOd kann eine Gruppe 5 von jeweils sechs Speichereinschüben 14, beispielsweise über genormte SAS- oder SATA-Steckverbinder kontaktiert werden. Die vier zweiten Leiterplatten 10a bis lOd sind über vier
korrespondierende Leiterplattenverbinder IIa bis lld mit der ersten Leiterplatte 9 verbunden. Bei den
Leiterplattenverbindern IIa bis lld kann es sich selber um Leiterplatten mit entsprechenden Steckverbindern handeln.
Zwischen der ersten Leiterplatte 9 und den zweiten Leiterplatten 10a bis lOd sind im Ausführungsbeispiel vier Kühlvorrichtungen 12a bis 12d angeordnet. Bei den
Kühlvorrichtungen 12a bis 12d handelt es sich jeweils um Doppellüftersysteme, mit zwei axial hintereinander
angeordneten Einzellüftern. Die Kühlvorrichtungen 12a bis 12d saugen Luft von vorne durch die Gruppen 5a bis 5d von
Speichereinschüben 14 an und blasen diese durch in die
Aufnahmeschächte 7a bis 7d eingesetzten Funktionsmodule 13 und Netzteile 15 aus dem Chassis 2 heraus.
Schließlich ist in Figur 3 zu erkennen, dass die Netzteile 15 sich nicht über die gesamte Tiefe zwischen der Rückseite des Chassis 2 und der ersten Leiterplatte 9 erstrecken. Zur elektrischen Kontaktierung ist zwischen den Netzteilen 15 und der ersten Leiterplatte 9 daher eine Verbindungsstruktur 16 angeordnet, die sich insbesondere zur Übertragung von großen Strömen eignet.
Figur 4 zeigt eine perspektivische Ansicht der verschiedenen Systemkomponenten des modularen Computersystems 1 ohne das zugehörige Chassis 2. In der Darstellung gemäß Figur 4 ist insbesondere der Aufbau der Verbindungsstruktur 16 im Detail zu erkennen. Neben zwei Kupferplatten 19 weist die Verbindungsstruktur 16 des
Weiteren eine dritte Leiterplatte 20 auf, die
Steuerkomponenten der Netzteile 15 über einen in der Figur nicht zu erkennenden Systemmanagementbus mit weiteren
Systemkomponenten des modularen Computersystems 1 verbindet. Im Ausführungsbeispiel sind Kupferschienen 21 auf der
Rückseite der Leiterplatte 9 angeordnet, um die über die
Verbindungsstruktur 16 von den Netzteilen übertragene
elektrische Energie an die in den Aufnahmeschächten 7a bis 7d aufgenommenen Funktionsmodule 13 zu übertragen. Die erste Leiterplatte 9 sowie die zweiten Leiterplatten 10a bis lOd weisen neben dem zum Anschluss der verschiedenen Funktionsmodule 13 bzw. Speichereinschübe 14 erforderlichen Anschlüsse jeweils Öffnungen auf, die eine Belüftung der in dem Chassis 2 verbauten Komponenten ermöglicht.
Des Weiteren ist zu erkennen, dass im dargestellten
Ausführungsbeispiel das Funktionsmodul 13 als Servermodul 22 ausgestaltet ist. Im Ausführungsbeispiel weist das
Servermodul 22 eine in der Figur 4 verdeckte Systemplatine sowie zwei darauf angeordnete Prozessoren 23a und 23b mit insgesamt vier zugeordneten Speicherbänken 24 auf. An der Rückseite des Servermoduls 22 sind verschiedene
Steckverbinder, beispielsweise zum Anschluss des Servermoduls 22 an ein lokales Datennetzwerk, vorgesehen.
Figur 5 zeigt schematisch unterschiedliche Möglichkeiten zur Bestückung des modularen Computersystems 1 mit
Funktionsmodulen 13. In einer ersten Konfiguration 25 ist jeder der Aufnahmeschächte 7a bis 7d mit einem eigenen
Funktionsmodul 13a bis 13d, beispielsweise einem Servermodul 22, bestückt. In einer zweiten Konfiguration 26 sind nur zwei Funktionsmodule 13a und 13b mit jeweils doppelter Breite in jeweils zwei benachbarten Aufnahmeschächten 7a und 7c bzw. 7b und 7d angeordnet. In einer dritten Konfiguration 27 sind jeweils zwei Funktionsmodule 13a und 13b mit einer doppelten Bauhöhe in zwei übereinander liegenden Aufnahmeschächten 7a und 7b bzw. 7c und 7d angeordnet. Diese Konfiguration ist besonders flexibel, da beispielsweise ein Servermodul 22 mit
einer einzelnen Bauhöhe mit einem darüber liegenden Zusatzmodul, beispielsweise einem High-Performance-Computing- Modul mit einer oder mehreren Grafikprozessoren, kombiniert werden kann. Schließlich ist in Figur 5 eine vierte
Konfiguration 28 zu erkennen, in der nur ein einzelnes
Funktionsmodul 13 mit einer doppelten Breite und doppelten Höhe alle Aufnahmeschächte 7a bis 7d ausfüllt.
Im Folgenden wird die Verbindung der einzelnen
Funktionsmodule 13 mit weiteren Komponenten des Chassis 2 im Detail beschrieben. An dieser Stelle wird darauf hingewiesen, dass die Funktionsmodule 13, insbesondere in der Form von Servermodulen 22, weitgehend unabhängig voneinander arbeiten. Insbesondere ist jedes der Funktionsmodule 13 mit einer eigenen, korrespondierenden Gruppe 5 von Speichereinschüben verbunden. Zur Kommunikation nach außen nutzt jedes der
Funktionsmodule 13 eine eigene Netzwerk- oder sonstige
Kommunikationsschnittstelle. Dementsprechend können zum
Aufbau der einzelnen Funktionsmodule 13 weitgehend
Standardkomponenten eingesetzt werden. Bei der Ausführung als Servermodule 22 umfasst beispielsweise jedes der
Funktionsmodule 13 eine als Systemplatine ausgeführte
Leiterplatte mit darauf angeordneten Komponenten, wie
beispielsweise Prozessoren 23 und Speicherbänken 24. Eine Systemverwaltung findet in der Regel über ein Datennetzwerk und einen Systemmanagement-Baustein der einzelnen
Servermodule 22 statt. Für die Systemintegration des
modularen Computersystem 1 ist daher unter anderem eine standardkonforme Anbindung der einzelnen Funktionsmodule 13 von Bedeutung.
Figur 6 zeigt schematisch die Verbindung von vier
Servermodulen 22a bis 22d mit den verschiedenen Komponenten
des Chassis 2. Wie sich der Figur 6 entnehmen lässt, ist jedes der Servermodule 22a bis 22d über drei Bussysteme 34, 36 und 45 mit den jeweils anderen Servermodulen 22a bis 22d bzw. einer Chassis-Schnittstellen-Einheit 31 verbunden.
Insbesondere sind sogenannte Systemmanagement-Bausteine 32, auch bekannt als „intelligent Remote Management Controller" (iRMC) , der Servermodule 22 über einen ersten
Schnittstellenbaustein 33 mit einem sogenannten IPMB-Bus 34 zur Kommunikation mit benachbarten Servermodulen 22
verbunden. Des Weiteren sind die Systemmanagement-Bausteine 32 über einen zweiten Schnittstellenbaustein 35 und einen seriellen Systemmanagementbus 36 an verschiedene Komponenten der Chassis-Schnittstellen-Einheit 31 angeschlossen.
Insbesondere dient der Systemmanagementbus 36 zum Anschluss der Systemmanagement-Bausteine 32 an in der Figur 6 nicht dargestellte Steuerbausteine der Netzteile 15, einen
Umgebungstemperatursensor 37, einen sogenannten Chassis-FRU- Speicher 39 zum Speichern einer Chassiskennung, einen
kondensatorgepufferten Light-Path-Controller 40 zum Speichern und Ausgaben von Fehlerzuständen über so genannte „Customer Seif Service" (CSS) Leuchtdioden, einen ersten
MikroController 41 zum Austausch von Steuerdaten über die Bedienpanels 4a und 4b, einen zweiten MikroController 42 zur Anbindung eines Flash-Speichers 43 sowie einen dritten
MikroController 44 zur Ansteuerung der Kühlvorrichtungen 12a bis 12d. Neben dem Systemmanagementbus 36 sind die
Servermodule 22a bis 22d auch unabhängig von den
Systemmanagement-Bausteinen 32 über ein weiteres serielles Bussystem 45 mit dem ersten MikroController 41 zur Anbindung an die Bedienpanels 4a und 4b verbunden. Jedes der
Bedienpanels 4a und 4b ist über ein eigenes, weiteres
serielles Bussystem 47a bzw. 47b mit dem ersten
MikroController 41 verbunden.
Im Ausführungsbeispiel sind die Bussysteme 34, 36, 45, 47a und 47b jeweils als serielle Bussysteme ausgestaltet. Es wird darauf hingewiesen, dass die verschiedenen seriellen
Bussysteme 34, 36, 45, 47a und 47b jeweils nur eine
verhältnismäßig geringe Anzahl an Signalleitungen der daran angeschlossenen Komponenten benötigen. Somit müssen auf der ersten Leiterplatte 9 nur verhältnismäßig wenige Leitungen vorgesehen werden, was insbesondere die Durchlüftung und somit Kühlung des modularen Computersystems 1 verbessert.
Über buseigene Methoden werden parallele Zugriffe durch unterschiedliche Funktionsmodule 13 auf die Bussysteme 34, 36 und 45 vermieden. Im Fall des IPMB-Bussystems 34 sowie des Systemmanagementbusses 36 überwachen die Bus-Master, wie beispielsweise die Systemmanagement-Bausteine 32, gemäß dem I2C-Protokoll , ob Busleitungen bereits von einem anderen Busteilnehmer getrieben werden, während sie selber Daten senden. Wird eine solche Kollision festgestellt, wartet der erkennende Busteilnehmer für einen vorbestimmten Zeitraum, bevor eine Transaktion erneut gestartet wird. Auf diese Weise ist sichergestellt, dass jeweils nur eine Transaktion auf dem Systemmanagementbus 36 stattfindet. Für die seriellen
Bussysteme 45, 47a und 47b ist der erste MikroController 41 einziger Busmaster, sodass sich keine Konflikte ergeben.
Schließlich ist in der Figur 6 zu erkennen, dass die zwei Netzteile 15 über eine dedizierte Steuerschaltung 46
miteinander verbunden sind. Die Steuerschaltung 46 erlaubt unter anderem eine Überwachung der durch die Netzteile 15 bereitgestellten sekundären Versorgungsgleichspannung sowie
einer primären Netzwechselspannung unabhängig von dem
Systemmanagementbus 36. Auch die Steuerschaltung 46 benötigt nur wenige Steuerleitungen zum Anschluss an die Netzteile 15. Beispielsweise weist jedes der Netzteile 15 eine
Steuerleitung zum Signalisieren einer Störung der primären Versorgungsspannung, eine Steuerleitung zum Signalisierung einer stabilen sekundären Versorgungsspannung und eine dritte Steuerleitung zum Einschalten des jeweiligen Netzteils 15 auf. Die verschiedenen Steuerleitungen werden durch die
Steuerschaltung 46 mit Hilfe einer diskreten Schaltung ausgewertet und an die einzelnen Servermodule 22
weitergeleitet bzw. von den Servermodulen 22 abgefragt, kombiniert und an die Netzteile 15 weitergeleitet. In konventionellen Serversystemen werden Konfigurationsdaten, wie beispielsweise BIOS-Einstellungen und/oder
Netzwerkeinstellungen, insbesondere zu verwendende virtuelle Netzwerkadressen, in der Regel in einem oder mehreren
sogenannten Chassis-PROMs mit Speicherkapazitäten von 64 oder 128 kB gespeichert. Durch die Speicherung in einem von der
Systemplatine des Serversystems unabhängigen Speicher können derartige Einstellungen beispielsweise beim Austausch einer Systemplatine in dem Serversystem erhalten bleiben.
Üblicherweise werden derartige Speicherbausteine über einen sogenannten I2C-Bus an einem Systemmanagement-Baustein des jeweiligen Serversystems angebunden. Dabei erfolgen
Speicherzugriffe vom Systemmanagementbaustein auf einen vorgegebenen Adressbereich des Chassis-PROM, ohne das
Zugriffe durch anderer Komponenten den Zugriff stören würden. Entsprechende Speicherbausteine sind relativ teuer.
Im beschriebenen Ausführungsbeispiel gestattet das Chassis 2 des modularen Computersystems 1 die Speicherung von
Konfigurationsdaten für eine Mehrzahl von in den Aufnahmeschächten 7a bis 7d aufgenommenen Funktionsmodulen 13 in einem einzigen, zentralen, auf der ersten Leiterplatte 9 des Chassis 2 angeordneten Flash-Speicher 43. Hierdurch bleiben in dem modularen Computersystem 1 derartige
Einstellungen auch dann erhalten, wenn ein Funktionsmodul 13, insbesondere ein Servermodul 22, durch Einsetzen eines anderen, gleichartigen Funktionsmoduls 13 in demselben
Aufnahmeschacht 7a ersetzt wird. Gleichzeitig erfordert die vorgeschlagene Lösung nicht für jedes Funktionsmodul 13 und/oder für jeden Aufnahmeschacht 7 einen eigenen Speicher.
Wie in Figur 7 dargestellt finden Zugriffe auf den Flash- Speicher 43 über den zweiten MikroController 42 statt. Dabei erhält der zweite MikroController 42 Anfragen der
Systemmanagement-Bausteine 32 über den Systemmanagementbus 36 gemäß dem I2C-Protokoll . Bei dem Flash-Speicher 43 handelt es sich um einen verhältnismäßig preisgünstigen Flash- Speicherbaustein mit einer relativ großen Speicherkapazität von beispielsweise 4 MB und einer SPI-Schnittstelle 80. Die Umsetzung zwischen dem Systemmanagementbus 36 einerseits und der SPI-Schnittstelle 80 andererseits erfolgt durch den
MikroController 42. Hierdurch wird den unterschiedlichen Servermodulen 22a bis 22d und eventuell darin enthaltenen logischen Serverknoten jeweils die Speicherung von Daten in dem Flash-Speicher 43 bei Beibehaltung des üblichen I2C- Protokolls ermöglicht.
Zur Trennung der gespeicherten Daten stellt der zweite
MikroController 42 ein Dateisystem zum Zugriff auf den
Speicher des Flash-Speicherbausteins 43 zur Verfügung. Hierzu wertet er Anfragen von Firmware-Komponenten der
Funktionsmodule 13 auf darin enthaltenen Pfad- oder
Dateinamen aus und setzt die entsprechenden Schreib-, Lese¬ oder sonstigen Anfragen auf physikalische Speicheradressen des Flash-Speichers 43 um. Darüber hinaus verwaltet der zweite Mikrocontroller 42 auch Metadaten, die das Dateisystem selbst betreffen.
Um Konflikte bei parallelen Zugriffen auf das Dateisystem zu vermeiden, weist das von dem zweiten Mikrocontroller 42 eingesetzte Protokoll lediglich atomare Operationen auf. Jede Operation ist insofern atomar, als dass sie wenigstens einen kompletten Block des durch den Mikrocontroller 42
bereitgestellten Dateisystems betrifft. Im
Ausführungsbeispiel stellt der zweite Mikrocontroller 42 ein sogenanntes FAT-Dateisystem bereit, bei dem einzelne Blöcke die Größe von 512 Byte aufweisen. Zur Implementierung der atomaren Schreib- bzw. Leseoperationen wird damit mit jeder Bustransaktion ein Block mit bis zu 512 Bytes Nutzdaten gelesen bzw. geschrieben. Des Weiteren werden wie unter
Bezugnahme auf die Figur 6 beschriebenen parallele Zugriffe durch unterschiedliche Funktionsmodule 13 vermieden.
Der zweite Mikrocontroller 42 dient auch zur Umsetzung der Blockgröße des eingesetzten Dateisystems auf die davon im Ausführungsbeispiel abweichende Größe der Speicherblöcke des Flash-Speichers 43. Im Ausführungsbeispiel ist der Flash- Speicher 43 in Blöcke von 4 KB Daten segmentiert, die jeweils nur gemeinsam gelöscht werden können. Zur Umsetzung dieser unterschiedlichen Blockgrößen weist der Mikrocontroller 42 einen Zwischenspeicher 81 auf, in dem mehrere Blöcke des Dateisystems zwischengespeichert werden können.
Bei der Umsetzung von Operationen durch den Mikrocontroller 42 berücksichtigt dieser auch, dass nicht beschriebene Teile
von Datenblöcken eines FAT-Dateisystems typischerweise mit dem logischen Wert „0" aufgefüllt sind. Umgekehrt ist in einem Flash-Speicher 43 nach einem Löschen eines
Speicherblocks jede Speicherzelle typischerweise mit dem logischen Wert „1" befüllt. Zur Vermeidung von unnötigen
Programmiervorgängen invertiert der MikroController 42 daher sämtliche Bits von über den Systemmanagementbus 36
ausgetauschten Daten. Diese Dateninversion ist für ein an den Systemmanagementbus 36 angeschlossenes Servermodul 22 völlig transparent.
Beim Auslesen des Flash-Speichers 43 wird stets ein
kompletter Block aus dem Flash-Speicher in den
Zwischenspeicher 81 gelesen. Nachfolgende Leseoperationen über den Systemmanagementbus 36, die nachfolgende Blöcke des Dateisystems betreffen, können somit direkt aus dem
Zwischenspeicher 81 beantwortet werden.
In Schreibrichtung fällt dem Zwischenspeicher 81 eine weitere Aufgabe zu. Flash-Speicher 43 gestatten grundsätzlich nur eine begrenzte Anzahl von Lösch- und nachfolgenden
Schreibvorgängen. Zur Verminderung der im Betrieb des
Computersystems 1 erforderlichen Lösch- und Schreibvorgängen wird daher das nachfolgend beschriebene Verfahren verwendet.
Figur 8 zeigt ein Ablaufdiagramm eine Verfahrens zum
Überschreiben eines Datenblocks in dem Flash-Speicher 43. In einem ersten Schritt S41 wird ein Schreibbefehl über den Systemmanagementbus 36 empfangen. Basierend auf den
Pfadangabe in dem in Schritt S41 empfangenen Schreibbefehl wird in Schritt S42 ein korrespondierender Speicherblock des Flash-Speichers 43 bestimmt. Hierzu dienen beispielsweise in dem Flash-Speicher 43 oder einem Arbeitsspeicher des
Mikrocontrollers 42 abgelegte Metadaten über das von dem MikroController 42 verwalteten Dateisystem. Wurde ein
zugehöriger Speicherblock in Schritt S42 bestimmt, wird dessen Inhalt in einem Schritt S43 in den Zwischenspeicher 81 eingelesen. In einem Schritt S44 werden die in dem
Zwischenspeicher 81 eingelesenen Daten entsprechend dem
Schreibbefehl ganz oder teilweise überschrieben. Da im
Ausführungsbeispiel stets ein 4 KB Block von dem Flash- Speicher 43 eingelesen wird, während mit jeder
Schreiboperation maximal 512 Datenbytes geändert werden, handelt es sich im Ausführungsbeispiel stets nur um ein teilweises Überschreiben der in dem Zwischenspeicher 81 gespeicherten Daten. In einem Schritt S45 wird überprüft, ob die in dem
Zwischenspeicher 81 enthaltenen Daten identisch zu den im korrespondierenden Block des Flash-Speichers 43 gespeicherten Daten sind. Ist dies der Fall, beispielsweise weil nur erneut dieselben Konfigurationsdaten in dem Flash-Speicher 43 gesichert werden sollen, wurde durch die Schreiboperation effektiv keine Datenänderung bewirkt, sodass das Verfahren ohne weitere Aktion beendet werden kann. Wird in Schritt S45 dagegen festgestellt, dass sich zumindest einige der Daten des zwischengespeicherten Datenblocks geändert haben, wird in einem weiteren Schritt S46 überprüft, ob die Änderungen lediglich dem Übergang von unprogrammierten Werten, also dem logischen Wert 1, auf programmierte Werte, also den logischen Wert 0, des Flash-Speichers 43 erfordern. Ist dies der Fall, weil beispielsweise in den über den Systemmanagementbus 36 enthaltenen Konfigurationsdaten ausschließlich zusätzliche
Einsen gesetzt wurden, werden in einem Schritt S47 lediglich die Bits des korrespondierenden Speicherblocks des Flash- Speichers 43 überschrieben, deren Werte auf einen
programmierten Wert gesetzt wurden. Wird in Schritt S46 dagegen festgestellt, dass auch Änderungen von einem
programmierten auf einen unprogrammierten Zustand des Flash- Speichers 43 erforderlich sind, wird der gesamte zugeordnete Block des Flash-Speichers 43 in einem Schritt S48 gelöscht. In einem nachfolgenden Schritt S49 wird der gesamte in dem Zwischenspeicher 81 gespeicherte Block neu in den
korrespondierenden Block des Flash-Speichers 43 geschrieben. Durch das beschriebene Verfahren werden Schreib- und
Löschoperationen für den nichtflüchtigen Flash-Speicher 43 so weit wie möglich vermieden. Hierdurch wird insbesondere die Anzahl der Löschoperationen in dem Flash-Speicher 43 so weit reduziert, dass typischerweise sämtliche Änderungen an
Konfigurationsdaten, die im Betrieb des modularen
Computersystems 1 zu erwarten sind, fehlerfrei in dem Flash- Speicher 43 gespeichert und wieder abgerufen werden können.
Zudem erlaubt die Implementierung des FAT-Dateisystems durch den zweiten MikroController 42 eine besonders flexible
Ansteuerung des Flash-Speichers 43. Dementsprechend können Firmware-Komponenten der einzelnen Servermodule den Flash- Speicher 43 unter Verwendung symbolischer Namen ansprechen und bei Bedarf auch Konfigurationsdaten mit anderen
Servermodulen 22 austauschen.
Die Figuren 9 und 10 zeigen den Ablauf von zwei atomaren Bustransaktionen zum Lesen bzw. Schreiben von Daten über den Systemmanagementbus 36.
Gemäß Figur 9 wird in einem ersten Buszyklus der zweite
MikroController 42 durch Angabe einer entsprechenden Adresse des I2C-Busses adressiert. Dieser bestätigt die eingehende
Anfrage nachfolgend. Daraufhin übermittelt das Funktionsmodul 13 seine eigene Knotennummer. Bei der Knotennummer handelt es sich im Ausführungsbeispiel um die logische Adresse eines Rechnerknotens eines der Servermodule 22 in einem der
Aufnahmeschächte 7a bis 7d. Im Ausführungsbeispiel sind je physikalischem Aufnahmeschacht 7a bis 7d jeweils vier
logische Rechnerknoten vorgesehen, sodass insgesamt 16 unterschiedliche Knotennummern vergeben werden können. Nach Bestätigung der Knotennummer wird der eigentliche Befehl, hier eine Leseoperation, übermittelt und bestätigen. In den nachfolgenden zwei Bytes wird die Anzahl der zu lesenden Daten übertragen. In den nachfolgenden vier Buszyklen wird eine Offset-Angabe in der zu lesenden Datei angegeben. In den nachfolgenden 32 Buszyklen wird ein Dateiname der zu lesenden Datei angegeben. Dabei kann der Dateiname sowohl Pfadangaben als auch den Dateinamen im sogenannten Acht-plus-drei-Format , das heißt dem sogenannten FAT-16-Format , selbst enthalten. Nicht genutzte Bytes des bis zu 32 Byte langen Dateinamens werden mit einem vorbestimmten Zeichen, insbesondere dem Wert „0", aufgefüllt. In einem nachfolgenden Buszyklus wird eine Checksumme über die bisher übertragenen Daten, insbesondere eine CRC8-Checksumme, übertragen. Danach wechseln die Rolle von Sender und Empfänger bezüglich des Systemmanagementbusses 36.
Nach Überprüfung der übertragenen Daten bestimmt der zweite MikroController 42 basierend auf gespeicherten Metadaten des Dateisystems einen korrespondierenden Speicherblock des
Flash-Speichers 43 und liest die angeforderten Daten in den Zwischenspeicher 81 ein. Als Ergebnis liefert der
MikroController 42 einen Status der Leseoperation an das Funktionsmodul 13 zurück, das diesen bestätigt. Nachfolgend wird die Anzahl der gültigen Datenbytes an das Funktionsmodul
übertragen und mit einer Checksumme, im Beispiel wieder mit einer CRC8-Checksumme,
den nachfolgende
Buszyklen werden maximal 512 Byte Daten des angeforderten Datenblocks übertragen. Nach Abschluss der Datenübertragung wird erneut eine Checksumme über die zuvor übertragenen Daten übermittelt. Bei Bedarf werden nachfolgend sogenannte Dummy- Zyklen übertragen, um einen eventuellen Unterschied zwischen übertragenen Daten und angeforderten Daten auszugleichen, bevor in einem abschließenden Schritt die Bustransaktion beendet wird.
Die in der Figur 10 dargestellte Schreiboperation wird auf äquivalente Weise durchgeführt. Dabei übernimmt das
Funktionsmodul 13 logischerweise die Bereitstellung der Daten, während der MikroController 42 lediglich die Anzahl der erfolgreich geschriebenen Datenbytes bestätigt und eine Checksumme zur Verifizierung der Transaktion zurück an das Funktionsmodul 13 übermittelt.
Bezugs zeichenliste
1 Modulares Computersystem
2 Chassis
3 Befestigungslasche
4 Bedienpanel
5 Gruppe von Speichereinschüben
6 Lochschiene
7 Aufnahmeschacht (für Funktionsmodul)
8 weiterer Aufnahmeschacht (für Netzteil)
9 erste Leiterplatte
10 zweite Leiterplatte
11 Leiterplattenverbinder
12 Kühlvorrichtung
13 Funktionsmodul
14 Speichereinschub
15 Netzteil
16 Verbindungsstruktur
17 Modulanschluss
18 (korrespondierender) Anschluss
19 Kupferplatte
20 dritte Leiterplatte
21 Kupferschiene
22 Servermodul
23 Prozessor
24 Speicherbank
25 erste Konfiguration
26 zweite Konfiguration
27 dritte Konfiguration
28 vierte Konfiguration
31 Chassis-Schnittstellen-Einheit
32 Systemmanagement-Baustein
33 erster Schnittstellenbaustein
34 IPMB-Bussystem
35 zweiter Schnittstellenbaustein
36 Systemmanagementbus
37 Umgebungstemperatursensor
39 Chassis-FRU-Speicher
40 Light-Path-Controller
41 erster MikroController (für die Bedienpanels)
42 zweiter MikroController (für den Flash-Speicher)
43 Flash-Speicher
44 dritter MikroController (für die
Kühlvorrichtungen)
45 serielles Bussystem
46 Steuerschaltung
47 serielles Bussystem
80 SPI-Schnittstelle
81 Zwischenspeicher
S41 bis S49 Verfahrensschritte