[Technische Hintergrundinformationen]

 

 

Non Distructive Distribution ( Cluster- Edition )

Allgemein:

Eine "Non Distructive Distribution" ( im Folgenden mit N2D abgekürzt ) ist eine Betriebssystem Installation welche auf ein vorhandenes Betriebssystem aufgesetzt werden., wobei das bereits installierte Betriebssystem nicht verändert wird. Mit einer solchen N2D läßt sich also ein Rechnersystem kurzfristig für andere Aufgaben mit einem speziellen Betriebssystem betanken.

Diese N2D wird mit LINUX erstellt und im folgenden Beschrieben.

Inhalt

Non Distructive Distribution ( Cluster- Edition )

Allgemein:

 

Inhalt

Designkriterien

Eckpunkte

Installation

Flexibilität

Testen ( Minimieren der Fehler )

Cluster

Software Anforderungen

Ramdisk Installation oder Festplatte

Konfigurationsfrei Booten

Was ist Loop- root ?

Netzwerktreiber

Distributionsdiskette und Konfiguration

 

Die wesentlichen Bestandteile

Grundlage:

Der Kernel:

Die Distributionsdiskette:

 

Modifikationen

Netzwerk- und Cluster- Einsatz

Spezielle Einstellung

PVM ( Parallel Virtuell Machine )

POVRAY

Distributionsdiskette ( Cluster - Einsatz )

 

Grunddistribution ( eine Designfrage )

Warum Debian ?

Vorteile:

Abfallprodukte

 

Performance

 

 

Designkriterien

Hier soll kurz Dargestellt werden aus welche Gründen diese Distribution so entstanden ist. Ein Kleiner Blick in die Historie und in die technischen Anforderungen an dieses Produkt.

Lassen sie uns folgende selbst darstellende Frage stellen: "Warum haben Wir Was Wie gemacht ?"

Eckpunkte

Installation

1.Schnelle Installation um kostbare Zeit zu sparen und um Flexibel auf bestimmte Anforderungen reagieren zu können.

2.Einfache Installation um eine Automation zur Distributionsverteilung vornehmen zu können.

3.Die Distribution soll auf mehr als 500 Systemen innerhalb von weniger 12 Stunden verteilbar sein.

 

Flexibilität

1.Die Distribution soll auf möglichst vielen Rechnersystemen im Bezug auf die Hardware- Komponenten einsetzbar sein.

2.Sie soll schnell und einfach auf die von ihr bedienten Softwareprodukte anpaßbar sein. ( Besser noch, sie soll vollkompatibel zu allen auf LINUX portierten und entwickelten Softwareprodukten sein. )

3.Sie soll jeder Zeit konfigurierbar sein.

 

Testen ( Minimieren der Fehler )

1.Das Testen der Kernel- Hardwarekonfiguration soll schon im Vorfeld der produktiven Anwendung getestet werden können.

2.Das Testen der Installation sollte auch in kleineren Rahmen Rückschlüsse auf das Verhalten in großen Rechnernetzen oder Rechnerclustern ermöglichen.

 

Cluster

Die Distribution soll hier im Spezialfall für ein CLUSTER dienen.

1.Die Distribution muß also MPP ( PVM ) Verarbeitung in einem Rechner- Netzverbund zulassen.

2.Sie muß also konkurrierende Datenströme auf den Netzsegmenten zulassen und tolerabel verarbeiten.

 

Software Anforderungen

Ramdisk Installation oder Festplatte

Da die Installation auf jeden Fall den Rahmen einer Ramdisk

sprengen würde war klar das die Platte als Medium gebraucht würde.

Konfigurationsfrei Booten

Nun galt es die Installation so flexibel zu gestalten das ohne Hardware/Softwaremodifikationen an den Zielsystemen eine funktionsfähige Installation gebootet werden konnte.

Als mögliche Installationsplätze bieten sich folgende Positionen an:

1.native ext2

2.umsdos

3.ramdisk

4.loop-root

Wegen einiger Kernelfehler kann UMSDos nicht eingesetzt werden. Statt dessen kann loop-root für die volle Funktionsbreite eingesetzt werden. Die einzige der obengenannten Installationsmöglichkeiten die nicht

in jedem Standardkernel vorhanden ist, ist allerdings loop-root. Auf der Internetseite http://www.linuxhq.com liegt eine Liste von inoffiziellen Kernel Patches unter welchem sich auch ein loop-root Patch befindet.

 

Was ist Loop- root ?

Loop root bedeutet das sich das Root Filesystem in einer Datei auf einem anderen Filesystem (z.b. ext2 oder FAT 16 ) befindet und zur Bootzeit über einen Loop gemounted wird. Das ermöglicht eine Installation auf einer MSDOS( FAT 16 ) /ext2 Partition ohne deren Inhalt zu modifizieren, bzw. nur durch hinzuzufügen einer Datei.

 

loop-root2.gif (4848 bytes)

Der Kernel arbeitet jetzt mit der "FAT 16- Datei" als ext2 - Partition als Root- Partition. Die Festplatte C: ist als solche nicht mehr zu erkennen ! ( Somit sind alle übrigen Dateien auf der Platte vor Veränderungen sicher ! )

Die Temporäre RAMDISK wird durch die BOOT- Diskette angelegt, formatiert und mit dem Nötigsten initialisiert.

Netzwerktreiber

Um möglichst flexibel auf die Hardware für die Netzwerkanbindung reagieren zu können sind alle

Netzwerkkartentreiber als Module auf der Diskette vorhanden. Dieses verhindert einen möglichen Dead- Lock beim Booten durch fälschliches Autoprobing der Hardware und die Möglichkeit trotzdem alle Karten zu unterstützen.

Das Ziel ist es weiterhin alle Rechnertypen innerhalb von kurzfristigen produktiven Zusammenschaltungen zu unterstützen um eine einheitliche Distribution als Grundlagen zu definieren.

 

Distributionsdiskette und Konfiguration

Um die benötigte Zeit pro Rechner möglichst gering zu halten sollte im Vorhinein die Konfiguration der Hardware bekannt sein.

Sämtliche Einstellungen wie:

1.Installationsziel

2.IP Adressen

3.NFS Server

4.Zu ladende Module + IRQ/IO settings

...sind deshalb im MSDOS- Filesystem auf der Diskette als ASCII Datei vorhanden, und können

über "mtools" leicht modifiziert werden.

Um die Konfiguration der Diskette zu überprüfen muß kein NFS Server vorhanden sein. Wenn kein NFS Server vorhanden ist, "looped" das Programm bei dem Versuch einen solchen zu erreichen. Dieser Sachverhalt kann als Erfolg gelten .

 

Die wesentlichen Bestandteile

Woraus besteht die Software - Pakete/Distribution ?

 

Grundlage:

Die Software besteht im Hauptsächlichen aus der Debian 2.0/Hamm LINUX- Distribution.Diese ist "glibc2/libc6" basierend.

Die Installation ist auf das Nötigste zusammen geschnitten, dieses garantiert eine Installationsgröße von ca. 20MB.

Die für die aus den Designvorgaben resultierenden Aufgaben überflüssige Pakete wie z.B.: Zoneinfos, Keyboard mappings wurden entfernt.

 

Der Kernel:

Als Kernel kommt ein 2.0.36 mit "loop-root-patch" zum Einsatz, da die 2.1.x ( Entwickler- )

Kernel noch nicht die Stabilität liefern, die für einen professionellen Einsatz nötig ist.

Aufgrund der gestiegenen Netzperformance wäre es allerdings wünschenswert auf 2.1 bzw. später 2.2 zu

wechseln.

 

Die Distributionsdiskette:

Die eigentliche Boot Diskette ist eine von der Debian 2.0/Hamm abstammende Rescue Disk, von dieser bleibt nicht viel mehr als Binarys wie: "ls", "mount", "umount", "mke2fs".

 

Modifikationen

Modifikationen an der Distribution und des Kernels

Netzwerk- und Cluster- Einsatz

Die Distribution wurde auf das notwendigste zusammen geschnitten. Zusätzlich wurden "rshd", und "rlogind" so modifiziert das keinerlei DNS anfragen gestellt werden und keinerlei Authentisierung über ~/.rhosts und /etc/hosts.equiv vorgenommen werden, um zum Einen, die Zeit zum einloggen zu minimieren, zum Anderen mögliche

Fehlerquellen wie geänderte IP Adressen der Master Console(n), oder nicht vorhandene DNS Server zu eliminieren.

Das login Binary ist weiterhin so modifiziert, daß es einen root- login auf allen tty's unabhängig der /etc/securetty zuläßt.

Diese Modifikationen machen den Einzelnen Node zwar angreifbar allerdings ist der Cluster nicht dazu gedacht ins Netz gestellt zu werden. Die jeweiligen Patches gegen die Debian Source Packages sind ebenfalls unter ftp://move.mediaways.net/pub/cluster/testing zu finden.

Weiterhin sind einige Boot Scripte ergänzt, oder sogar neue hinzugekommen. Zur Bootzeit wird eine Standard-installation vom NFS Server geholt die nachträglich personalisiert werden muß. Hierfür werden anhand der auf eth0 konfigurierten IP Adresse /etc/hostname und /etc/hosts ergänzt bzw. erstellt um zumindest dem Rechner das Auflösen seiner eigenen Adresse zu ermöglichen.

Weiterhin muß nach dem fsck der Root- Partition (nicht vorher wie üblich) dafür gesorgt werden das ausreichend Swap vorhanden ist. Hierfür wird via fdisk auf allen bekannten Platten nach bestehenden Swap Partitions gesucht und falls vorhanden werden diese aktiviert.

Ist danach noch immer nicht genügend Swap vorhanden erstellt das Bootupscript (außer bei "ramdisk install") ein Swapfile im Root- Verzeichnis der Installation ("partition install") oder auf /bootfs wo im "loop- root" Fall das Filesystem mit der Loop- Datei gemounted ist.

 

Spezielle Einstellung

Zusätzlich zu den Modifikationen an der eigentlichen Distribution sind drei System- User hinzugekommen (pvm34, rc5 und povray) die dazu dienen sollen die eigentlichen Applikationen laufen zu lassen.

 

PVM ( Parallel Virtuell Machine )

Der pvm34- User soll es ermöglichen mit der Aktuellen development PVM Version 3.4beta7 zu Experimentieren. In Homedir des Users ist ein pvm3d vorhanden sowie der Beispielclient "mtile" um

verteilte Fraktalberechnung (Apfelmännchen) zu testen.

 

POVRAY

Unter dem User "povray" ist die aktuellen Version von povray (3.02) zu finden, die es ermöglicht ein verteiltes povray ( nicht distpov oder pvmpov) zu testen. Eventuell wird eine angepaßte Povray Version noch hinzu- gefügt um Spezielle Effekte in uns angebotenen Filmen mit abzudecken.

Als zusätzliches Programm für das verteilte Povray ist unter /usr/local/sbin das tool "mw_client" vorhanden was eine RPC ( Remote Procedure Call ) gestützte Kommunikation ermöglicht um Povray jobs/frames zu

verteilen. Dieses Programm ist speziell für diese Anwendung in einer Cluster- Umgebung von

Roger Butenuth (butenuth@uni-paderborn.de) entwickelt worden und ermöglicht das verteilte Rechnen von Povray Animationen.

Das Client Server Modell ist allerdings so flexibel gehalten das die Lösung jeglicher Art von verteilten Problemen, bei denen sich ein Teilproblem mit einem Aufruf eines Programms mit unterschiedlichen

Commandline Options lösen läßt, möglich ist.

 

Distributionsdiskette ( Cluster - Einsatz )

Das interessanteste an der Diskette ist das in der initrd (root.bin) vorhandene script "linuxrc" das in Abhängigkeit der auf der Diskette vorhandenen Config Dateien (ip.cfg, dst.cfg, mod.cfg) die entsprechenden Module lädt, Filesysteme Mounted, Interfaces Konfiguriert, die Installation über NFS holt und auf dem Ziel Filesystem installiert und schlußendlich dort weiterbootet.

Der im Kernel verwendete loop-root-patch ist eine erweiterte Version des auf linuxhq.com vorhandenen. Der Original Patch ließ es nicht zu, zur Laufzeit der Initrd den loop-root-name, also den Namen der Loop Datei zu setzen und damit das loop- root zu aktivieren.

Der modifizierte Patch ist unter http://move.mediaways.net/pub/cluster/testing zu finden, in der 2.0.36 Version und der 2.1.122 Version. Dieser Patch ergänzt das /proc filesystem um ein /proc/sys/kernel/loop-root-name.

 

Grunddistribution ( eine Designfrage )

Warum Debian ?

Theoretisch ist es möglich jede Linux Distribution mit mehr oder weniger Aufwand so zu modifizieren das sie für diesen Einsatzfall zu benutzen. Natürlich ist die Wahl durch das Wissen um die Distribution bestimmt. Daneben hat die Debian Distribution folgende große Vorteile.

 

Vorteile:

1.Sämtliche Modifikationen der Debian Pakete (nicht contrib oder non-free) können ohne Lizenrechtliche Bedenken wieder veröffentlicht werden. (So hier geschehen.)

2.Sehr einfache Boot Scripte und damit leicht zu modifizieren.

3.Extrem zu verkleinern (Auf unter 16MB)

4.Sehr striktes einhalten des FSSTND

 

Abfallprodukte

Es haben schon Schulen angefragt in wieweit die bestehenden Funktionalitäten dazu einsetzbar sind im Unterricht auch Linux zu benutzen. - Ganz grundsätzlich ist dieses kein Problem. Es wird einfach pro Rechner eine Boot Diskette erstellt die sämtliche Personality enthält um den Rechner booten zu lassen.

Der Vorteil liegt auf der Hand. Bei jedem Reboot wird neu installiert d.h. es besteht nicht die Gefahr das ein Rechner nicht einsetzbar ist. Die Funktionalität der Distribution kann hierbei Zentral auf einem Server gesteuert werden.

Es können durch hinzufügen oder entfernen von Paketen die Installation an den Unterricht angepaßt werden. Durch Installation eines Automounters und NIS ist es außerdem möglich Zentrale Benutzerverwaltung und Home- Directorys zu realisieren.

 

 

Performance

Die Installation (Von Einlegen der Diskette bis zum Login prompt) dauert in einer etwas älteren Version 105 Sekunden. Dadurch das zusätzliche PCMCIA Support mit aufgenommen wurde, wird sich die Zeit um ca. 10-20 Sekunden verlängert haben. Diese Werte gelten für die Installation auf einer native ext2 Partition mit 200MB.

Benchmarks für die "loop-root" Installation liegen derzeit nicht vor, allerdings spricht der Originalautor des Patches von nahezu identischer Performance von ext2-loop-ext2 und native ext2 . Der Loop-root-ext2 auf MSDOS soll allerdings nur halb so schnell sein was an schlechter Performance des mmaps bei MSDOS Filesystems liegen soll.