Alexander (HH): RAID 1 auf einem normalen PC-System - sinnvoll?

Beitrag lesen

Moin Moin!

Achtung, lange Antwort, damit Du Dir selbst ein Urteil bilden kannst.

1. RAID ist absolut kein Ersatz für Backups.
2. RAID ist absolut kein Ersatz für Backups.
3. RAID ist absolut kein Ersatz für Backups.

RAIDs kann man grob in zwei Zielrichtungen unterteilen: Besserer Durchsatz (RAID-0) und bessere Zuverlässigkeit (alle anderen RAIDs). Die verschiedenen Level definieren, welchen Kompromiß aus Durchsatz, Rechenaufwand und Kapazitätsverlust man hat.

RAID-0 mit zwei Platten verteilt die Datenpakete abwechselnd auf beide Platten. Volle Kapazität, höherer Durchsatz, aber absolut unzuverlässig. Stirbt eine Platte, sind alle Daten weg.

RAID-1 mit zwei Platten schreibt alle Datenpakete auf beide Platten. Halbe Kapazität, geringerer Durchsatz, eine Platte kann ohne Datenverlust ausfallen.

RAID-5 mit mindestens drei Platten opfert eine Plattenkapazität der Redundanz, das erkauft man mit wesentlich mehr Rechnerei und noch weniger Durchsatz. Auch hier kann eine Platte ohne Datenverlust ausfallen.

RAID-1 mit zwei IDENTISCHEN Platten schützt Dich vor dem Ausfall einer Platte, für den Preis, alle Daten doppelt schreiben zu müssen, und trotzdem nur die halbe Gesamtkapazität nutzen zu können.

Den Schutz vor Datenverlust beim Ausfall einer "alleinstehenden" Platte bietet ein aktuelles, verifiziertes Backup ebenfalls. Warum kommt man also auf die Idee, ein RAID-1 zu bauen?

Professionelle RAID-Controller ("Hardware RAID") können kaputte Festplatten im laufenden Betrieb erkennen, ggf. durch eine Standby-Platte ersetzen, und auch die kaputte Festplatte im laufenden Betrieb wechseln. Ein Plattenausfall bringt also keine Downtime. Zu solchen Controllern gehören zwangsläufig Hotplug-fähige SCSI-Festplatte und entsprechende Laufwerksgehäuse, die das Wechseln der Platten im Betrieb erlauben. Für 100€ bekommst Du da bestenfalls einen Wechselrahmen. Die Controller stellen die RAIDs dem OS als einzelne SCSI-Platte zur Verfügung, das OS selbst merkt vom RAID also erstmal gar nichts. Ein zweiter Kommunikationsweg erlaubt die Administration des Controllers und Statusrückmeldungen. Der Controller ist ein eigenständiger Rechner, die RAID-Konfiguration ist in aller Regel im Controller gespeichert. Typischerweise können die Controller auch exotische RAID-Level, minimal 0, 1 und 5.

Die nächstkleineren RAID-Controller ("Hardware RAID") haben immer noch einen eigenständigen Rechner, simulieren einzelne Laufwerke, sind aber nicht mehr hotplug-fähig. Die professionelleren RAID-Controller nutzen SCSI, die für Heimanwender und kleinere Büros nutzen IDE/SATA. Der Preis dürfte immer noch jenseits der 100€ liegen. Die RAID-Konfiguration kann im Controller oder in einem reservierten Bereich der Platten liegen. Typischerweise werden wenigstens RAID-Level 0, 1 und 5 unterstützt.

Noch kleinere RAID-Controller ("Host-RAID") verzichten auf die eigene CPU, haben stattdessen einfach nur eine Hand voll Standard-HDD-Interfaces an Board (typischerweise IDE / SATA), und ein Stückchen BIOS-Code simuliert die RAID-Funktion auf BIOS-Ebene. Sobald ein "richtiges" Betriebssystem (außer DOS) läuft, übernimmt ein Gerätetreiber die Ansteuerung der einzelnen Platten, bis zu diesem Treiber sieht das System also jede einzelne Platte, erst durch den Treiber werden mehrere physische Platten zu einer logischen Platte zusammengefaßt. Prinzipiell könnte man an solchen RAID-Controllern auch CD-Laufwerke betreiben, nur läßt der Treiber dies nicht zu. Die RAID-Konfiguration steht in aller Regel in einem reservierten Bereich der Platten. Solche Controller findet man in aller Regel auf Mainboards und billigen "RAID"-Steckkarten. In aller Regel funktionieren nur RAID-Level 0 und 1, selten auch 5.

RAIDs ganz ohne RAID-Controller ("Software-RAID") verzichten darauf, das RAID schon im BIOS komplett verfügbar zu machen. Ggf. baut man zusätzliche Platten-Controller ohne RAID-Funktion ein. Wie beim Host-RAID baut erst das Betriebssystem die physischen Platten zu logischen Laufwerken zusammen, wahlweise auch nur Partitionen statt ganzer Platten. Die RAID-Konfiguration ist irgendwo im Dateisystem des Betriebssystems gespeichert. Liegt das Betriebssystem selbst auf einem RAID, kann das aufgrund der Beschränkungen des BIOS nur ein RAID-1 sein, das das BIOS als zwei unabhängige Platten sieht. Das BIOS lädt demzufolge das System auch nur von einer der beiden Platten, erst wenn das Betriebssystem übernimmt, werden beide Platten des RAID-1 angesteuert. RAID-Level und Devices werden nur von den Fähigkeiten des Betriebssystems begrenzt, so kann man auch ein RAID aus einer USB-, einer Firewire-, einer IDE- und einer SCSI-Platte aufbauen. Auch RAIDs aus CF-Karten, USB-Sticks oder Floppies sind möglich (aber nicht notwendigerweise sinnvoll). Insbesondere kann man RAIDs aus RAIDs bauen. (RAID 10 / 0+1).

Das sind so etwa deine Optionen.

Wenn ein Hardware- oder Host-RAID-Controller stirbt, solltest Du einen identischen Ersatz-Controller verfügbar haben, sonst kommst Du nicht mehr unbedingt an Deine Daten heran. Denn sowohl die RAID-Konfiguration als auch das Datenformat auf der Platte sind NICHT genormt. Da braut jeder Hersteller sein eigenes Süppchen.

Ein Software-RAID hängt nur vom OS ab, steht aber natürlich auch nur dem jeweiligen OS zur Verfügung. Das RAID-1 ist wenigstens so weit ohne OS lesbar, dass das BIOS booten kann.

Die Geschwindigkeit eines Hardware-RAIDs kann natürlich deutlich höher sein als die eines Host- bzw. Software-RAIDs. Die Daten müssen nur einmal über den Bus zum Controller, der rechnet und verteilt dann eigenständig auf die Platten. Außerdem kann die Haupt-CPU in der Zeit andere Dinge erledigen und muß nicht auf (aus CPU-Sicht) elendig langsame Massenspeicher warten. Bei Host- und Software-RAIDs muß die Haupt-CPU jede Platte einzeln ansteuern, das ist bei einem RAID-1 "nur" doppelter Schreibaufwand, schlimm wird es bei RAID-5 und höher, wenn Daten berechnet und auf mehrere Platten verteilt werden.

Meine Rechner:
* Arbeitsrechner haben jeweils nur eine Platte, alle Daten und Benutzer-Accounts liegen auf dem Server. Backup der Arbeitsrechner auf den Server viel zu selten, dafür öfters mal eine OS-Neuinstallation.
* Server:
  - Boot vom Software-RAID-1 aus zwei alten 9,1GB-SCSI-Platten (die prinzipiell Hotplug-fähig wären, wenn sie denn in einem passenden Rahmen an einem passenden Controller stecken würden)
  - Betriebssystem auf einem weitern Software-RAID-1 auf den selben SCSI-Platten
  - Swap (ohne RAID) ebenfalls auf die selben SCSI-Platten
  - noch zwei oder drei identische SCSI-Platten als Cold Spare im Schrank
  - Daten auf einem Software-RAID-5, gebaut aus vier 400GB-IDE-Platten, Netto-Kapazität etwa 1,2 TB. Je zwei Platten hängen, jeweils als Master an einem eigenen Kabel, an einem IDE-Controller, von denen einer ein zum einfachen IDE-Controller degradierter Host-RAID-Controller ist.
  - noch eine identische IDE-Platte als Cold Spare im Schrank
  - (unvollständiges) Backup via rsync auf eine USB-2.0-Platte mit 1 TB Platz.
  - Betriebssystem: Linux

Warum so?
* je eine System- und Datenplatte darf ausfallen
* SCSI-Platten lagen rum, der Server kann ohnehin nur von SCSI oder Controllern mit eigenem BIOS booten, booten von IDE-Festplatten wurde vom Hersteller explizit aus dem BIOS ausgebaut. IDE hat der Hersteller nur als Interface für das Boot-CDROM vorgesehen.
* IDE-Platten waren zum Kaufzeitpunkt Stand der Technik.
* Host-RAID-Controller gab's geschenkt
* Non-RAID-Controller gab's für wenig Geld
* Software RAID macht mich absolut unabhängig von den Controllern, der Ausfall eines nicht mehr verfügbaren Controllers hat meine Entscheidung nur bestätigt
* Bremseffekte durch Software-RAID gleicht die Server-Architektur locker aus (2 CPUS, 2 getrennte PCI-Busse, RAM satt, ...)
* Linux steht mir nicht im Weg und erlaubt sehr einfach, Software-RAIDs aufzusetzen
* Booten geht nur von RAID-1, nicht von RAID-5
* Software-RAID-5 per NFS/Samba/HTTP über Fast Ethernet ist schneller als jedes lokale optische Laufwerk

Wie würde ich einen kleinen (SoHo-)Server bauen?
* Software-RAID-1
  - zwei größtmögliche SATA-Platten
  - je drei Partitionen: Boot+Root, Swap, Daten
  - Swap außerhalb des RAIDs
* Linux
* Backup via rsync auf USB-HDD

Wie würde ich einen größeren Low-Cost-Server bauen?
* Software-RAID-1
  - zwei kleinstmögliche SATA-Platten
  - je zwei Partitionen: Boot+Root, Swap
  - Swap außerhalb des RAIDs
* Software-RAID-5 aus vier größtmöglichen SATA-Platten
  - vier oder mehr größtmögliche SATA-Platten
  - nur eine Partition: Daten
* Backup via rsync auf USB-HDD oder zweiten (kleinen) Server

Wie würde ich einen richtig großen Server bauen?
* Wartungsvertrag mit kurzer Reaktionszeit (8h/24h)
* Hardware-RAID-Controller, ggf. mit identischem Controller im Schrank
* RAID-Level je nach Anwendung, Performance- und Zuverlässigkeits-Anforderungen
* Hot-Plug-Platten
* Hot Spare + Cold Spare

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".