© Prof. Dr. Knut Barghorn, Jade Hochschule. Studienort WHV. E-mail: knut.barghorn@jade-hs.de

3. Komponenten eines Computers, Betriebssystem und Datenhaltung auf Festplatten

3.1 Lernziele, Literaturtipps und URLs

Ziel dieser Einheit

Das Ziel dieses Abschnitts ist, Ihnen einen Einblick in die Hardware von Computern und die Datenhaltung zu geben.

Sie sollen dabei lernen, welche Bestandteile ein Computer besitzt und welche Funktionen die einzelnen Bauteile haben. Dabei werden wir uns auf die wesentlichen Bestandteile beschränken. Wichtig ist, dass Sie die Arbeitsweise verstehen. Die technischen Details können an anderer Stelle vertieft werden.

Wir werden uns dabei der von-Neumann-Architektur annehmen. Sie haben bereits im 0-ten Abschnitt gehört, dass diese Architektur auch heute noch die Grundlage für die modernen Computer darstellt.

Damit Rechner, also die Hardware überhaupt arbeitsfähig sind, benötigt man Software. Wir werden uns der Software in diesem Abschnitt erstmal nähern, indem wir uns Betriebssysteme ansehen.

Anschießend werden wir und die Datenhaltung ansehen. Dabei werden wir zunächst solche Begriffe wie RAID, SAN und Fibre-Channel behandeln. In angewandter Form werden wir uns um Festplatten und Partitionen kümmern, damit Sie beurteilen können, wie sicher Ihr System wirklich ist wenn jemand zu Ihnen sagt: "Ihre Daten liegen auf einem RAID-0 System und sind damit absolut sicher. Denn egal ob aktuelle Redaktionsbeiträge, Archivdaten, Audio-/Videotechnik, Grafik & Animation oder systemkritische Internetanwendungen. Das Thema Datensicherheit und Datenlagerung ist wichtig. Jeder weiß, wie groß die Not ist, wenn die Festplatte auf einmal nicht mehr funktioniert.

Um eine Festplattenstruktur zu verstehen werden wir uns das Filesystem ext2 unter Unix ansehen. Dieses ist besonders gut zu verstehen und Sie werden danach in der Lage sein, Begriffe wie I-Nodes, Böcke und Superblock zuordnen können.

Literaturtipps

3.2 Bestandteile eines Computers

Die Grundlage heutiger digitaler Computer geht auf den Mathematiker John von Neumann zurück. John von Neumann fiel auf, dass die Programmierung von Computern mit Unmengen von Schaltern und Kabeln sehr langsam, mühsam und unflexibel war. Statt dessen schlug er vor, das Programm mit den Daten im Speicher eines Computers in digitaler Form zu speichern und die serielle Dezimalarithmetik, bei der jede Ziffer mit 10 Vakuumröhren dargestellt wurde, durch parallele Binärarithmetik abzulösen. In seiner Grundstruktur besteht ein Digitalrechner aus einem Verbundsystem von Prozessor, Speicher und Geräten für die Ein- und Ausgabe

Zusätzlich sieht die von-Neumann-Architektur noch die Verbindung zwischen diesen Bauteile vor. Diese wird über so genannte Busse realisiert.


Bildquelle: http://www.sprut.de/electronic/pic/grund/cpu_neumann.gif

Der Prozessor (CPU)

Der Prozessor oder auch die CPU (steht für Central Processing Unit -> Zentraleinheit) ist das zentrale Bauteil eines Rechners und damit sozusagen das Gehirn des Rechners.

Ein Programm muss sich im Hauptspeicher befinden, um von der CPU ausgeführt zu werden.Der Prozessor ruft die Befehle (Instruktionen) der Programme ab, prüft sie und führt sie nacheinander aus. Die CPU besteht aus Daten- und Befehlsprozessor

Der Datenprozessor ist zuständig für das klassische Verarbeiten von Daten und die Ausführung von Berechnungen. Der Datenprozessor enthält

- ein Rechenwerk, die so genannte ALU (Arithmetic Logical Unit), - und (mindestens) drei Speicherplätze (Register) zur Aufnahme von Operanden, die bezeichnet werden als Akkumulator (A), Multiplikatorregister (MR) und Link-Register

(L).Hinzu tritt in einigen Fällen ein viertes Register, das so genannte memory buffer register (MBR), das für die Kommunikation mit dem (Haupt-)Speicher notwendig ist.

Befehlsprozessor: Der Befehlsprozessor entschlüsselt Befehle und steuert deren Ausführung. Dazu bedient ersich der folgenden Komponenten:

1. Der aktuell zu bearbeitende Befehl befindet sich im Befehlsregister (instruction register,IR).

2. Die Adresse des Speicherplatzes, der als nächstes angesprochen wird, ist im Speicheradressregister (memory address register, MAR) vorhanden.

3. Die Adresse des nächsten auszuführenden Befehles wird im Befehlszähler (programcounter, PC) gespeichert.

4. Die Entschlüsselung eines Befehls erfolgt durch einen separaten Befehlsdecodierer.

5. Die Steuerung der Ausführung erfolgt durch das Steuerwerk.

Der Prozessor führt zu jedem Zeitpunkt genau einen einzigen Befehl aus. Der Befehl kann dabei nur genau einen Datenwert bearbeiten.

Die Speichereinheit

Die Speichereinheit ist in den modernen von-Neumann Architekturen eigentlich dreigeteilt.

1) Der Hauptspeicher. Bekannt auch unter dem Namen RAM

2) Dem BIOS (Dort finden sich die notwendigen Informationen um den Rechner zu booten)

3) Die Speicherlogik (Northbridge; steuert die Synchronisation der Datenflüsse zur und von der CPU.

Wir kümmern uns um den Hauptspeicher oder RAM (Random Access Memory)

Es gibt eine Vielzahl von verschiedenen RAM-Typen, die sich historisch nach und nach entwickelt haben. Der Nachteil ist, dass die RAM-Bausteine älterer Modellart in neuen Computern nicht eingebaut werden können.

EDO-RAM

SDRAM

DDR-RAM

RDRAM

Der Hauptspeicher dient dazu die Daten und Programme während des Betriebs des Rechners für die CPU vorzuhalten.

Hinweis: Die heute verwendeten RAMs sind volatil. Das bedeutet, dass wenn Sie den Rechner ausschalten gehen auch die im RAM gehaltenen Daten verloren. Das merken Sie spätestens dann, wenn Sie gerade einen längeren Text bearbeiten und den Rechner ausschalten ohne Ihr Ergebnis vorher auf der Festplatte zu speichern.

Das Ein- und Ausgabewerk

Dem Ein-/Ausgabewerk gehören z.B. der PCI-Bus für Einsteckkarten ebenso wie ein SCSI-Interface zum Anschluss von Peripheriegeräten.

Die Festplatte selbst oder auch die verschiednen Karten (Soundkarte, Grafikkarte etc.) und die Geräte Bildschirm, Scanner, Drucker etc. sind nach der von-Neumann-Architektur nicht Bestandteil des Rechners sondern stellen bereits wieder eigene Geräte dar.

Ein und Ausgabegeräte können vielfältig sein.

Eingabe: Tastatur, Maus, Joystick, Scanner, Barcodescanner, Festplatte...

Ausgabe: Bildschirm, Drucker, Festplatte

Die Ein- und Ausgabegeräte werden über die Southbridge mit dem Prozessor verbunden. Die Southbridge kann in einem Rechner auch weiter vom Prozessor entfernt sitzen, da die Geschwindigkeit des Datenaustausches nicht so gravierend ist, wie zwischen Prozessor und Hauptspeicher.

3.3 Systemsoftware

Wir haben im vorhergegangenen Teil einiges über die Verarbeitung von Dualen Zahlen in Rechnern gelernt. Mittlerweile ist uns auch klar, welche Hardware-Bestandteile einen Rechner ausmachen.

Ohne Programme, die die Hardware und die damit verbundene Verarbeitung steuern ist die Hardware aber nicht arbeitsfähig. Deshalb sehen wir und hier die Systemprogramme, und insbesondere das Betriebsystem näher an.

Systemsoftware kann man in zwei Klassen einteilen:

Betriebssysteme

Ein Betriebssystem oder Operating System (OS) hat die Aufgabe, die Ressourcen des Rechners zu verwalten und schirmen die Anwendungsprogramme von den Eigenschaften der Hardware ab. Gleichzeitig stellen Betriebssysteme dem Benutzer und den Anwendungsprogrammen elementare Dienste zur Verfügung.

Aufgaben des OS

Top-Down-Sicht:

Abschirmung von der Komplexität und den Eigenschaften der Hardware. Das Betriebssystem ist für den Anwender und die Anwendungsprogramme leichter zu programmieren als die Hardware selbst.

Bottom-Up-Sicht

Das OS ist ein Verwalter und Koordinator der Komponenten. Es steuert alle internen Abläufe im Rechner (bei der Prozessverarbeitung), stellt Dienste zur Verfügung und sorgt für das Zusammenspiel der Komponenten (CPU, Speicher, Monitor, Drucker etc.)

Detailliert bedeutet dies, dass das Betriebssystem die Aufgaben

Beispiele:

Sie schreiben gerade einen Text am Rechner. Gleichzeitig hören Sie Musik, die Sie auf der Festplatte gespeichert haben. Der Drucker druckt gerade Ihre Tabellen, die Sie als Grundlage für Ihren Text benötigen.

Der Rechner muss also hier drei Aufgaben parallel bewältigen. Um dieses zu steuern und zu koordinieren, wird das OS benötigt.

Wenn Sie nun auch schon den Text ausdrucken wollen, obwohl die Tabelle noch nicht vollständig ausgedruckt ist, wird wieder das OS benötigt. Es muss sicherstellen, dass erst die Tabelle zu Ende ausgedruckt wird, bevor der Text ausgedruckt wird.

Bestandteile des OS

Dienstprogramme (Funktionen und Parameter des OS werden dem Nutzer direkt zugänglich gemacht. (Systemkonfiguration)

Speicherung des OS

Das OS wird in der Regel auf der Festplatte gespeichert. Um das OS auf der Festplatte ansprechen zu können, wird aber eine weitere Software benötigt, das Basic I/O- System (BIOS). Dieses ist in der Regel auf dem Motherboard des Rechners in einem Baustein abgelegt.

Unterschiede zwischen OS und grafischen Benutzersystemen

Sie alle kennen das Betriebssystem MS-Windows und kennen die Fenstertechnologie dieses Betriebsystems. Es gab allerdings von der Zeit von Betriebssystemen mit Fenstern auch Betriebssysteme ohne Fenster und ohne grafische Benutzeroberfläche. MS DOS ist der direkte Vorläufer von MS Windows. Sie fanden noch unter Windows XP Programme wie AUTOEXEC.BAT und CONFIG.SYS, die es auch schon unter MS DOS gab. Mit Windows 7 und darauffolgenden Versionen wurden die Dateien aber ersetzt.

Was aber sind genau die Unterschiede zwischen einem Betriebsystem und einer grafischen Benutzeroberfläche?

Dazu sehen wir und die formalen Merkmale beider an.

Merkmale Betriebssystem

Merkmale Benutzeroberfläche

Wesentliche Komponenten eines OS

Betriebssysteme haben verschiedene Aufgaben, die jeweils in Komponenten des OS zugeteilt werden können.

Beispiele für heute noch benutzte Betriebssysteme

Prozessorverwaltung:

Wir haben oben gesehen, dass das Betriebssystem zuständig ist für die Verwaltung des Prozessors und ggf. die vorhandenen und zur Bearbeitung anstehenden Prozesse koordiniert.

Nun müssen wir aber noch ganz kurz definieren, was ein Prozess ist.

Definition Prozess (process, task): Ablauf eines Programms, der vom Betriebssystem verwaltet wird. Der Ablauf ist vorgegeben durch Befehle und Daten des Programms.

Ein Prozess hat folgende Eigenschaften:

Man unterscheidet grundsätzlich zwischen den Benutzerprozessen, die vom Benutzer gestartete Programme darstellen und den Systemprozessen, die Systemdienste erbringen (Mauszeiger bewegen, Drucken)

Zustände eines Prozesses:

Ein Prozess kann sich gerade in verschiedenen Zuständen befinden. Der einfachste (uns für einen Prozess schönste) Zustand ist der Zustand „laufend“. In diesem Zustand ist ihm die CPU zugeteilt und er kann Befehle ausführen.

Der Zustand „wartend“ tritt dann ein, wenn der Prozess gerade auf eine Eingabe oder Ausgabe wartet. Während dieser Zeit wird einem anderen Prozess die CPU zugeordnet.

Prozessverwaltung

Das Anhalten des Prozesses wird vom Prozess selbst gesteuert. Alle anderen Übergänge zwischen den Zuständen werden durch Komponenten des OS (Dispatcher, Scheduler) bewirkt.

Das OS verwaltet die Prozesse in den Zuständen wartend und bereit.

Jeder Prozess ist in jedem Zustand auch löschbar. Damit kann der Prozess jederzeit aus dem System entfernt werden.

Prozessbearbeitung: Prozessorzuteilung:

Wir haben oben gesehen, dass laufende Prozesse die CPU zugeordnet bekommen haben. Nach einer gewissen Zeit (Zeitscheibe) wird dem Prozess die CPU wieder entzogen. Dieses Verfahren nennt man Zeitmultiplexverfahren. Die CPU wird dann einem anderen Prozess zugeordnet.

Wenn ein Prozess gerade auf eine Ein-/Ausgabe wartet, würde er die CPU unnötig blockieren. Deshalb werden alle Prozesse, die gerade auf Ein-/Ausgaben warten in eine Warteschleife eingereiht.

Damit alle Prozesse in endlicher Zeit einmal zur Verarbeitung durch die CPU an die Reihe kommen, werden sehr lang rechnende Prozesse gelegentlich von der Verarbeitung freigestellt (suspendiert). Die Teilergebnisse der Prozesse werden dann auf die Festplatte ausgelagert (SWAP).

Prozess-Interrupts

Unterbrechungen stoppen Prozessausführungen auf Grund von Ereignissen und starten sie ggf. nach der Durchführung der Ereignissbehandlung wieder. Dieses kann beispielsweise dann geschehen, wenn Zeitscheiben abgelaufen sind oder die Rückmeldung eines Ein-/Ausgabe-Gerätes die Prozessbearbeitung ein warten erzwingt.

Unterberechungen werden durch die Hardware generiert. In Sonderfällen aber auch durch den Prozess selbst (z. B. bei der Division durch 0)

Ablauf einer Unterbrechung

  1. Während der Prozess A rechnet, tritt eine Unterbrechung auf.
  2. Der Prozessor setzt seine Programmausführung im OS fort (Unterbrechungsbehandlung)
  3. Der Zustand von Prozess A wird in den Prozess-Kontrollblock gespeichert
  4. Die Unterbrechungsbehandlung wird durchgeführt
  5. Ein neuer bereiter Prozess B wird ausgewählt (Scheduler)
  6. Der Zustand von Prozess B wird geladen (Dispatcher)
  7. Die Bearbeitung von Prozess B wird fortgesetzt.

Unterbrechungsverarbeitung

Der Interrupt-Handler identifiziert den Typ der Unterbrechung und wählt ein Programm aus, welches für diesen Typ der Unterbrechung zuständig ist.

3.4 Filesystem

An dieser Stelle wird ein kleiner Einblick in die Welt der Filesysteme gegeben. Ausführlich läßt sich dieses Thema leider nicht im Rahmen dieser Vorlesung behandeln, da wir noch eine Vielfalt von weiteren Themen besprechen wollen.

Zunächst soll die Frage geklärt werden, was eigentlich ein Filesystem ausmacht.

Ein Filesystem (FS) ist der Teil des Systems, der alle Daten verfolgt, speichert und überwacht. Auf das Filesystem kann von anderen Teilen des Betriebssystems zugegriffen werden (z.B. über Anwendungen, Kommandos). Hardwaretechnisch kann ein Filesystem nur eine formatierte Einheit zur Speicherung von Daten sein (Festplatten, Disketten, CD-ROM etc.), verantwortlich für die Verwaltung ist ein Teil des Betriebssystems.

Linux arbeitet mit dem Filesystem ext2. Dieses ist das Standardsystem. Wir werden nachher noch sehen, dass Linux auch mit weiteren FS zurechkommt.

ext2 (extended Filesystem Version 2) ist der Nachfolger des FS extfs (extended Filesystem) und unterstützt im Gegensatz zu seinem Vorgänger Dateinamenlängen von bis zu 255 Zeichen, Dateigrößen bis zu 2 GB und Datenträgergrößen bis zu 4 TB. Mittlerweile existiert auch schon ext3, aber an den hier genannten Größen hat sich nichts verändert.  

Aufbau eines Filesystems

Jede Festplatte wird zunächst in Blöcke unterteilt. Diese Blöcke werden durchnummeriert. Die Blöcke werden dann in Gruppen unterteilt. In diesem Beispiel wird davon ausgegangen, dass die Festplatte genau eine Partition enthält. 

Gruppe

Block

Funktion

Beschreibung

Gruppe 1

Block 1 

Boot Block

zum Starten des Systems

Gruppe 2

Block 2  

        Superblock

Information über die Größe der weiteren Gruppen

Gruppe 3

Block 3 bis n1

I-Node-Bitmap

Information (frei/belegt) über I-Node Blöcke

Gruppe 4

Block n1+1 bis n2

Daten Bitmap

Information (frei/belegt) über Daten-Blöcke

Gruppe 5

Block n2+1 bis n3

Speicherplatz für I-Nodes

je acht I-Nodes pro Block

Gruppe 6

Block n3+1 bis n4

Speicherplatz für Daten

je 1024 Byte pro Block

Sind auf einer Festplatte mehrere Partitionen enthalten, so ist kein Boot-Block für jede Partition/ Filesystem nötig. Ein Superblock hingegen sehr wohl. Er enthält unter anderem Informationen über

Aus der Tabelle können Sie entnehmen, warum der Datenträger manchmal voll ist, obwohl Sie nur sehr viele kleine Dateien gespeichert haben, die rechnerisch in der Summe der Dateigrößen nur einen Bruchteil der Plattenkapazität belegen.

Angenommen Sie haben genau 50.000 Datenblöcke (fiktive Zahl, entspricht etwa 200 MB-Festplatte), dann können Sie auch nur 50.000 Dateien speichern, weil jede Datei genau mindestens einen Block belegt, egal wie klein die Datei auch sein mag.

Zur Beruhigung: Die Blockgröße ist beim Partitionieren der Festplatte einstellbar. In der Tabelle wird eine Blockgröße von 1 kB = 1024 Byte angenommen. Dieses ist auch die Voreinstellung für das ext2-FS.

Sie sollten beim Partitionieren der Festplatte also darauf achten, dass die Blockgröße zu der vorwiegenden Anwendung der Festplatte passt. Bei großen Dateien (Videodateien) ist eine große Blockgröße vorteilhaft, da dadurch schneller von der Festplatte gelesen (und auch auf die Platte geschrieben) werden kann.

Bei normalen Arbeitsplatzrechnern ist eine Blockgröße von 1-4 kB meines Erachtens nach in Ordnung. Die Werte sind leider nur experimentell zu ermitteln. Hierzu gibt es einige Untersuchungen. Einfach mal bei einer Suchmaschine nach blocksize und ext2 suchen. 

Weitere Vorteile größerer Blöcke sind:

Vorteil bei kleinen Blöcken:

I-Nodes sind nichts anderes als die Adressen der Dateien. Für jede Datei wird ein I-Node angelegt. In 128 Byte werden dabei unter anderem folgende Informationen über die Datei abgelegt:

Da für jeden I-Node 128 Byte bereit stehen, werden acht I-Nodes in einen Block geschrieben.

Bei jedem Zugriff auf eine Datei wird der I-Node aktualisiert (Zeitmarken!) . Diese Information wird nicht gleich auf die Festplatte geschrieben, sondern erst einmal aus Performancegründen im Hauptspeicher zwischengelagert.

Wenn ein Server mit einem "normalen" Filesystem im laufenden Betrieb unkontrolliert abgeschaltet wird, werden die Daten des Hauptspeichers nicht mehr auf die Festplatte geschrieben. Dies führt zu einer Inkonsistenz des Filesystems. Die Inkonsistenz wird beim nächsten Systemstart erkannt und repariert.

Prüfprogramme

Glücklicherweise gibr es für den Fall einer Inkonsistenz Prüfprogramme, die größeren Schaden verhindern. 

Das Prüfprogramm e2fsck startet automatisch, wenn das System inkonsistent zu sein glaubt.

Im Superblock gibt es ein so genanntes Valid-Bit. Dieses Valid-Bit wird beim Hochfahren des Systems geprüft und auf Null gesetzt. Beim kontrollierten Abschalten des Systems wird das Bit auf 1 gesetzt. Erkennt das System beim Hochfahren eine 0, wird automatisch e2fsck gestartet, da angenommen werden muss, dass das System nicht ordnungsgemäß "runtergefahren" wurde. 

Das System gibt dann foldende Meldung aus: /dev/hda5: was not cleanly unmounted, check forced

Eine andere Möglichkeit, warum e2fsck gestartet wird, ist gegeben, wenn das System eine maximale Anzahl von Bootvorgängen erreicht wurde ohne dass ein Filesystemcheck vorgenommen wurde.

 /dev/hda5: has gone too long without being checked, check forced

Die maximale Anzahl von Bootvorgängen ohne Check kann mit dem Befehl  tune2fs
verändert werden. Näheres dazu siehe man-pages.

e2fsck kennt mehr als 150 verschiedene Meldungen, die hier nicht alle besprochen werden können.

Der Check der Inkonsistenz kann sehr lange dauern. Bei einem Filesystem mit 50 GB Daten wird es normalerweise einige Stunden dauern, bis alle Inkonsistenzen aufgelöst sind.

Nachfolgende Information soll vor groben Fehlern schützen:

  1. Sie sollten wissen, welche Festplatten-Partitionen es gibt und wie groß die Partitionen sind. Ferner, welche Daten darauf untergebracht sind. Dies ist selbstverständlich VOR einem Ausfall zu ermitteln und zu notieren.

  2. Sie müssen die Informationen während des Boot-Prozesses lesen können und wissen, wie bei einem gewünschten Eingriff von Hand zu verfahren ist.

Es gibt 5 Hauptprüfläufe.

Der Check kann auch manuell gestartet werden. Dazu dient das Kommando fsck. In der Regel ist eine manuelle Prüfung aber nicht nötig.

Achtung: Prüfen Sie niemals ein Dateisystem, welches noch "gemountet" ist und noch geschrieben werden kann. Sie können sich vielleicht vorstellen, was dann passiert. Es werden immer mehr Inkonsistenzen gebildet, die nicht mehr korrekt aufgelöst werden können.

Noch ein paar Anmerkungen zum Filesystemcheck:

  1. Es kann sehr lange dauern. Wenn Sie einige Checks gemacht haben, bekommen Sie ein Gefühl dafür, wie viel Zeit ein Check des bestimmten Systems in etwa beanspruchen wird und können Anfragen in diese Richtung qualifiziert beantworten. Alles Drängen des Chefs nütz nichts: Es lässt sich einfach nicht beschleunigen. Deshalb nicht nervös werden.

  2. Auch wenn der Chef noch so sehr drängt und alles auf den Server wartet. Brechen Sie den Check niemals (in Worten "niemals") ab. Ein Abbruch macht alles noch viel schlimmer und danach sind Sie auch nicht arbeitsfähiger. 

  3. Vielleicht müssen Sie von Hand bestätigen, dass I-Nodes entsprechend geändert werden oder das Prüfprogramm fordert einen Neustart des Systems und schlägt den Check von Hand vor. Also:  Papier und Stift mitnehmen und bitte nicht vertippen ;-)

3.5 Datenhaltung auf Festplatten

RAID – Systeme

RAID = Redundant Array of Independent Disk

Was genau sind eigentlich RAIDs?. Wie der Name schon sagt: mehrere Festplatten, die unabhängig voneinander funktionieren.

Zunächst unterscheidet man zwei verschiedene Vorteile von RAID-Systemen. Sie wurden in den 90er-Jahren an der Universität von Berkley entwickelt und dienen zur Erhöhung der Ausfallsicherheit (Redundanz) bzw. zur Erhöhung der Lese- und Schreibgeschwindigkeit (Striping).

Beide Vorteile gemeinsam zu erreichen ist, wie Sie sich vorstellen können, schwierig. Wenn die Redundanz erhöht wird, leidet die Geschwindigkeit. Die beste Zugriffsgeschwindigkeit erreichen Sie, wenn Sie die Datenpakte auf verschiedenen Festplatten halten, so dass zügig von mehreren Platten gelesen werden kann. Die beste Redundanz erreichen Sie, wenn identische Daten auf verschiedenen Platten liegen.

Grundsätzlich unterscheidet man die RAID-Syteme in Software-RAID und Hardware-RAID. Ein RAID-System besteht (normalerweise) aus verschiedenen Wechselplatten, die in 5 1/4 Zoll-Einschüben untergebracht sind. Mittlerweile gibt es aber auch schon kleinere Einschübe, die manchmal auch direkt im Gehäuse des Rechners untergebracht sind.

Hardware RAID

Ein Hardware RAID ist in der Regel eine externe Lösung. Eine Reihe von möglichst baugleichen Festplatten (optimal: Wechselplatten)  wird von einem Hardware RAID-Controller gesteuert.

Es kann auch ein Hardware-RAID direkt in des Rechnersystem eingesetzt werden, aber der Austausch von Platten wird damit erschwert.

Ein RAID-Controller benötigt selbstverständlich eine betriebssystemspezifische Treibersoftware.

Ein angeschlossener Hardware-RAID-Controller verhält sich gegenüber dem Computer wie eine einzige Festplatte.

Hardware-RAIDs sind idealerweise über SCSI-Bussysteme anzuschliessen. Es funktioniert zwar auch über EIDE, aber der Datendurchsatz kann zu Problemen führen.

Software RAID

Ein Software-RAID-System hat den Nachteil, dass Server und Festplattensystem logisch nicht eindeutig getrennt sind. Ferner benötigt die Software des Software-RAID-Systems auch Systemresourcen und Memory.

Das Software-RAID kommt auch recht gut mit EIDE-Platten zurecht und erfreut sich daher immer stärkerer Anwendung bei Privatnutzern.

Aus diesen Gründen sollte bei systemkritischen Produktionsservern grundsätzlich ein Hardware-RAID-System verwendet werden.

RAID-Level

Die RAID-Stufe (auch RAID-Level) sollte zuvor gut überlegt sein, da eine Umstellung normalerweise nicht unproblematisch ist.

Bei RAID-0 (Striping)werden die Datenblöcke abwechselnd auf die n vorhandenen Festplatten geschrieben (Strip Array), was die Lese- und Schreibperformance erhöht. Eine Datensicherheit bei Plattenausfall ist jedoch nicht gegeben. Wenn eine Platte defekt ist, sind sämtliche Daten verloren. 

raid-0

aus: http://www.ipcas.de/index.html


Bei RAID-1 (Mirroring)werden die Datenblöcke immer parallel auf n Festplatten gleichzeitig geschrieben. Diese sehr gute Datensicherheit erhöht jedoch nicht die Lese oder Schreibgeschwindigkeit. Fällt eine Platte aus, sind alle Daten direkt auf der/den andere(n) Platte(n) vorhanden. 



raid-1

aus: http://www.ipcas.de/index.html



RAID-2, RAID-3, RAID-4 werden kaum genutzt.. Wie bei RAID-0 werden die Datenblöcke alternierend auf die n vorhandenen Festplatten geschrieben. Zusätzlich werden aber bei jedem Schreibvorgang auf eine weitere Festplatte die Checksumme der Daten der anderen Platten in den gleichen Streifen der Festplatte geschrieben. (Gleicher Streifen meint hier: gleiche Position der Platte; Zylinder, Block, Sektor). Benutzt für die Bildung der Checksumme wird das XOR-Verfahren. So können die Daten bei einem Plattenausfalls immer rekonstruiert werden. Fällt die Parity-Platte aus, kann es bei einem Datenverlust auf einer weiteren Platte sofort zu Problemen kommen. 

Beispiel : Es gibt drei Platten. Auf die ersten beiden Platten werden an die Position Y Daten A und B geschrieben. Auf die dritte Platte wird an die Position Y die Checksumme C = A XOR B geschrieben.

Aufgabe : was ist ein XOR? Erstellen Sie eine Tabelle!

Bei RAID-5 wird es noch raffinierter. Hier werden die Checksummen (auch ECC (Error Correction Code)) genannt, auf alle verwendeten Platten verteilt.

Bei drei Festplatten und acht Datensätzen sieht die Verteilung aus, wie in folgender Tabelle dargestellt. Überlegen Sie, was passiert, wenn eine Festplatte ausfällt.

Platte 1

Platte 2

Platte 3

A

B

A xor B

C xor D

C

D

F

E xor F

E

G

H

G xor H

Es geht noch besser:
Bei RAID-6 wird gegenüber RAID-5 eine weitere Platte für eine weitere unabhängige Speicherung der ECC verwendet.

Es gibt noch weitere RAID-Varianten, die teilweise Spezialvarianten der genannten Stufen darstellen und oftmals aus Marketing-Gründen anders benannt werden. Als Literatur empfehle ich die Internetseite 

Dort finden Sie ein kleines Applet, welches die Arbeitsweise von RAID-5 veranschaulicht.

Häufig wird bei den RAID-Systemen eine so genannte Spare-Platte benutzt. Diese Platte hat lediglich die Aufgabe, bei einem Defekt einer Festplatte sofort deren Dienst zu übernehmen. Solange alle Platten arbeiten ist diese Platte nicht im Einsatz, sondern dient als echter Ersatz.

Beispiel : Wenn 7 x 8GB-Festplatten in einem "RAID-5- mit Spare" verwendet werden, ergibt sich folgendes System: Brutto 7x8 GB = 56 GB, netto 5 x 8 GB = 40 GB. Gelesen und geschrieben wird auf 6 Festplatten gleichzeitig.

Aufgabe: Sie haben ein RAID-System mit 5 Festplatten je 40 GB. Welche Brutto- / Nettokapazität haben Sie bei den RAID-Varianten 0, 1, 5

Wechselplatten im RAID-Verbund (RAID 5 mit Spare) RAID-5 mit Spare und Server

Wenn eine Platte defekt ist, kann diese ausgetauscht werden. Ideal: Platten im Wechselrahmen, dort kann  einfach eine baugleiche neue Platte eingesteckt werden. Danach beginnt die Rekonstruktion der Platte. Dieses kann unter Umständen sehr lange dauern, aber bei höheren RAID-Leveln kann trotzdem weitergearbeitet werden. 

Für den Austausch von Festplatten im laufenden Betrieb sollte man auf eine "Hot Swap"-Funktionalität (auch "Hot-Plug" genannt) des Festplattensystems achten. Hierbei geht es um mögliche Spannungsspitzen, die durch das Herausziehen einer Platte erzeugt werden können und weitere Bauteile beschädigen können (z.B. SCSI-Bus). Die neue Platte wird dann sofort in das System integriert.

Achten Sie als verantwortlicher Systemadministrator mit ausfallkritischen Daten darauf, dass eine Hot-Spare Platte zur Sicherheit eingesetzt wird. Das erhöht deutlich die Genussfähigkeit von Wochenenden und Urlauben. 

Raid Zusammenfassung

RAID 0 bietet höhere Performance, allerdings keine erhöhte Datensicherheit. 

RAID-1 ist das System mit der höchsten Datensicherheit, verlangt aber auch den höchsten Aufwand. Die Performance ist nicht so hoch wie bei RAID-0.

RAID-3 bietet hohe Datensicherheit und hohe Performance 

RAID-5 bietet höchste Datensicherheit und hohe Performance bei vergleichsweise gutem Preis/Leistungsverhältnis

Für die meisten Applikationen bietet sich daher RAID-1 oder RAID-5 an.  

Weitere Informationen zu RAID: http://www.infodrom.north.de/~joey/Linux/raid/ix-9511.html

3.6 Weitere Begriffe

SAN

Sie haben gerade die verschiedenen RAID-Level kennen gelernt. Darunter wird das Speichersystem verstanden. RAID bezeichnet die Speicherung von Daten auf der Festplatte / den Festplatten.

Weil ein RAID-System in der Regel genau einem Server zugeordnet ist und über SCSI mit dem Server verbunden ist, muß das RAID-System nahe beim Server stehen. (SCSI-Spezifikationen siehe: http://martin.sluka.de/SCSI.html )

Um das RAID-System auch örtlich entfernt vom Server zu halten, wurde SAN (Storage Area Network) entwickelt.

SAN beschreibt eine Technologie zur verteilten, entfernten Datenhaltung. Mittels SAN wird ein Speichermanagement aufgebaut. Die Daten werden über ein eigenes Netzwerk in einem Speichersystem abgelegt. Dieses Speichersystem verwendet natürlich im Festplattenspeicher wieder RAID-Technologien.

Weitere Informationen zu SAN: http://www.tecchannel.de/hardware/679/0.html

Fibre Channel

Fibre Channel ist keine Speichertechnologie, sondern eine moderne Technik um schnelle Datenzugriffe zu erhalten und wird zur Realisierung von SAN verwendet.

Weitere Informationen zu Fibre Channel: http://www.tecchannel.de/hardware/679/1.html

Cloud Technologie

Cloud beschreibt eine Technologie zur verteilten, entfernten Datenhaltung oder der Nutzung von Anwendungen, die nicht lokal auf dem Rechner liegen, sondern verteilt auf verschiedenen Server. Notwendig dazu sind Technologien wie

Unterschiede der Cloud

Um diese Begriffe letztlich richtig verstehen zu können, muss man tiefer in die Netzwerktechnologie einsteigen und Protokolle wie TCP und HTTP(S) verstehen. Das kommt in den folgenden Semestern.