Betriebssystemumschaltung für kleine Rechnercluster

Alles ist open-source, auch die Leiterplatten- und CAD-Dateien!

Problem

Um auf einem Rechnercluster mehrere Betriebssysteme booten zu können, benötigt man neben Parallelports und WWBMU eine Menge Umschalter.

Zur flexiblen Konfigurationsmöglichkeit jedes einzelnen Rechners ist ein Aufbau eines entsprechenden Steuergerätes sinnvoll.

Ist das Abfragen eines Parallelports nicht ein wenig altbacken?

Das ist richtig.

Für einen Bootloader mit seinem begrenzten Peripheriezugriff (nur PC-BIOS vorhanden) gibt es folgende Möglichkeiten der Fernsteuerung:

Für schnittstellen-verarmte Computer ist eine steuerbare USB-Tastatur eine günstige Lösung! Da jeder der Computer eine autonome Tastatur (und damit Mikrocontroller) braucht, ist die n-fache Zuordnung je eines Mikrocontrollers ähnlich der o.a. Schaltung unumgänglich.

Zur Steuerung jener Schaltungen wird trotzdem diese Lösung gebraucht! Es geht nicht wirklich einfacher! Allenfalls eine serielle und/oder bidirektionale Steuerdatenübertragung (über weniger Optokoppler) wäre machbar, aber allzu viel spart das nicht an Schaltungsaufwand.

Eine Lokal-Tastatur- und -Maus-Fernsteuerung wäre damit als interessante Erweiterung möglich, daran habe ich bis 2/2012 noch gar nicht gedacht!

Auch könnte man handelsübliche USB-PS2-Adapter verwenden. Auf Optokoppler müsste man verzichten (weil bidirektional ungünstig zu lösen).

Wie man es auch dreht, ein mikrocontroller-gesteuerter Boot-Selektor dieser Bauform ist durchaus zukunftsfähig.

Lösung

Das hier aufgebaute Steuergerät ermöglicht die unabhängige Boot-Auswahl von bis zu 16 PCs. Die Steuerung erfolgt vorrangig über ein Web-Interface, optional über ein telnet-bedienbares Text-Interface, welches kompatibel zu D2S ist und damit eine DDE-Steuerbarkeit zulässt.
Gerätefoto

Zum Einsatz kam eine Ethernut-Platine. Diese beinhaltet einen Strom sparenden Mikrocontroller ATmega128 sowie einen RTL8019 als Ethernet-Controller. Vorkonfiguriert ist dabei ein Nut/OS bezeichnetes Betriebssystem mit einem kleinen Web-Server sowie dem dazu notwendigen TCP/IP-Stack. Die Stromversorgung erfolgt wahlweise über ein externes Steckernetzteil (Standard-Hohlbuchse, 9 V, 500 mA) oder – wie im Bild zu sehen – über Power-over-Ethernet (PoE).

Gerät gespeist via PoE
Die Steuerung der Einzelrechner erfolgt über eine selbst angefertigte Verteilerplatine mit Optokopplern, Leuchtdioden und RJ45-Buchsen. Diese Platine trägt auch die Tochterplatine von Texas Instruments namens PTB48540A zur PoE-Speisung.

Der mechanische Aufbau erfolgte als 19"-Gerät, wobei die Frontplatte aus 2 mm dickem Stahlblech per Wasserstrahl ausgeschnitten wurde. Über vier Haltequader sind die Leiterplatten mit der Front verbunden. Deckel und Bodenplatte aus Pertinax bilden eine Schutzhülle – fertig ist das 19"-Gehäuse. Die Beschriftung erfolgte mittels Typofix (aus DDR-Zeiten!) und Fixierung mittels Klarlack aus der Spraydose.

Schaltung

Die Schaltung zur Ansteuerung der vom Bootmanager WWBMU abgefragten Parallelports ist relativ simpel. Vom Ethernut-Board werden zwei 8-Bit-Ports benutzt. Ein Port ist das Datenport für die 8 Latches, das andere bildet die 8 Strobe-Signale.
Wesentlicher Schaltplan-Ausschnitt (klicken für ganzen Schaltplan im Vektorformat)
Die Ausgänge der Latches (man hätte auch D-Flip-Flops nehmen können) treiben zwei in Reihe geschaltete Leuchtdioden, eine nach vorn sichtbare, und die im Optokoppler enthaltene. Die nach vorn strahlenden LEDs sind SMD-Leuchtdioden der Bauform 0603, die nach vorn gekippt aufgelötet sind. Seitlich strahlende Chips waren gerade nicht (von Reichelt) verfügbar.

Geöffnetes Gerät, Oberseite. Deutlich zu sehen sind die 16 Vierfach-Optokoppler ILQ74.

Die rote Platine ist die Ethernut-Platine. An dieser ist ein 25-pol. SubD-Stecker „ISP“ derart angeschlossen, dass über ein paralleles Verlängerungskabel direkt der ATmega128 mittels gängiger Software (PonyProg2000, avrdude) programmiert werden kann. Die 9-pol. SubD-Buchse ist für die Diagnose. Hier kann über ein Verlängerungskabel die serielle Schnittstelle des PCs angeschlossen werden. Die Diagnose kann bspw. mittels HyperTerminal erfolgen.

Von der Ethernut-Platine wurden vier Stifte entfernt, um die Hosenträgerkabel aufstecken zu können. Der PoE-Anschluss ist seitens Ethernut nicht direkt vorgesehen und ist daher durch Anlöten von Drähten auf der Platinenunterseite realisiert.

Geöffnetes Gerät, Unterseite. Hier befinden sich die 8 Latches, sowie die Anschlüsse zum PoE-Modul.

RJ-45-Buchsen wurden gewählt, um Platz zu sparen und netzwerk-typische Komponenten zu verbauen. Die notwendigen Adapterkabel auf SubD25♂ wurden durch maßvolles Halbieren von 10 m langen Patchkabeln gewonnen.

Anschlusskabel-Schaltplan (klicken für ganzen Schaltplan im Vektorformat)

Mechanik

Die Vorlage für die Frontplatte wurde mittels Solid Edge (Educational) erstellt. (Pardon, ich kann kein 2D-CAD-Programm bedienen.) Die RJ45-Ausschnitte sollten besser etwas größer sein!

Zeichnung Frontblech (detaillierte Abmessungen nicht erforderlich wegen Übergabe der CAD-Daten an Wasserstrahlschneidmaschine, CAD/CAM eben!)

Die Vorlage für die Haltequader aus Messing sowie deren Zeichnung wurde ebenfalls mittels Solid Edge erstellt.

Zeichnung Haltequader

Die übrigen Teile sind Standardkomponenten wie Stehbolzen und M3-Schrauben.

Software

Die Software Einsicht wurde aus dem Nut/OS-Beispielprojekt „httpd“ abgeleitet und stellt einen umfangreicheren CGI-Server dar.
So sieht's im Mozilla Firefox aus. Selbstverständlich werden auch Umlaute unterstützt, wenn schon kyrillisch, chinesisch und arabisch funktioniert!

Da die Steuerparameter des Formulars mit der Methode „GET“ übertragen werden, ist die Steuerung auch mittels wget möglich.

Zusätzlich enthalten ist ein einfaches telnet-Interface.

Alle Quellen zum Download