RAID 1 auf einem normalen PC-System - sinnvoll?
EddieG
- sonstiges
Hallo allerseits,
ich bin gerade dabei, mir bei Alternate einen neuen Rechner zusammenzuschrauben. Die bieten da im letzten Schritt ein RAID1-System an, und ich ueberlege mir ernsthaft, das zu nehmen. Würde mich wohl insg. inkl. zweiter Festplatte 45.- + 25.- = 70 Euro kosten.
Haette für mich den Vorteil, dass ich mich einfach etwas sicherer fuehle, denn ich bin kein vorbildlicher Backupper. Ist mir klar, dass das nicht der Sinn von RAID ist, und ich werde natuerlich weiter sichern, aber falls doch mal was passiert, waere ich wohl ein wenig mehr auf der sicheren Seite. Und schneller ist's wohl auch...
Jetzt die Frage: ist sowas dann komplett hardware-gesteuert? Sprich, ich schmeiss Windows XP drauf, und der Rest läuft von allein - ohne, dass ich mich kuemmern muss? Oder ist da noch Fachwissen und Pflegeaufwand nötig?
Danke euch,
Eddie
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
Hallo Alexander!
Wow, das ist wohl die umfassendste und detailierteste Antwort, die ich hier je bekommen habe! Danke!
Ich hab die Bestellung zwischenzeitlich aber schon abgeschickt, und bekomme jetzt:
Jetzt muss ich glaubich einfach mal ein bisschen rumexperimentieren. Ich haette gedacht, dass 2 Platten mit RAID 1 erstens die Ausfallsicherheit verbessern (das zumindest stimmt ja) - aber auch den Lesezugriff beschleunigen. Immerhin sind die Daten ja auf zwei Platten verfügbar, warum also nicht von beiden lesen?
Ok, der "Host-RAID" meines Motherboards bringt also offenbar keine Lesebeschleunigung, dafuer geht das Schreiben langsamer (da CPU-lastig). Mmmh, nicht wirklich ideal. Also wohl besser(?) so:
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
Da fangend die Probleme schon an: genau genommen wird es ja kein Server, sondern mein ganz regulärer Rechner - und der läuft mit Windows XP Pro. Also bin ich mir jetzt garnicht sicher, was die beste Variante ist, und ob XP Pro fuer sowas empfehlenswert ist. Naja, werd schon eine Lösung finden!
Aber eine letzte Frage: von den 3 Partitionen, die du vorschlägst (Boot+Root, Swap, Daten) wären glaubich bei Windows nur Boot + Daten relevant. Richtig?
Naechtliche Gruesse,
Eddie
Moin Moin!
Hallo Alexander!
Wow, das ist wohl die umfassendste und detailierteste Antwort, die ich hier je bekommen habe! Danke!
Ich hab die Bestellung zwischenzeitlich aber schon abgeschickt, und bekomme jetzt:
- 2 x 500 GB
- 1 x Motherboard mit "Host-RAID" (wenn ich das jetzt richtig verstanden habe) und
- 0 extra Controller (der hier wär's gewesen)
Die verlinkte Option ist nicht notwendigerweise Hardware. Du beauftragst nur, dass Alternate ein RAID-1 aufsetzt. Das geht auch komplett in Software.
Jetzt muss ich glaubich einfach mal ein bisschen rumexperimentieren. Ich haette gedacht, dass 2 Platten mit RAID 1 erstens die Ausfallsicherheit verbessern (das zumindest stimmt ja) - aber auch den Lesezugriff beschleunigen. Immerhin sind die Daten ja auf zwei Platten verfügbar, warum also nicht von beiden lesen?
Genau das passiert ja. Und dann wird verglichen, ob sich die Platten einig sind. Sind sie es nicht, gibt es Alarm.
Wenn Du mehr Durchsatz haben willst, läßt Du die Platten als RAID-0 laufen, dann kann die CPU tatsächlich parallel von beiden Platten lesen und schreiben. Dafür zahlst Du mit einer deutlich höheren Ausfallwahrscheinlichkeit. Sowas macht man in der Regel nur dann, wenn man mit großen Datenmengen arbeiten muß, die schnell weggeschaufelt werden müssen, die aber nicht sonderlich wichtig sind oder von anderer Stelle wieder beschafft werden können.
Ok, der "Host-RAID" meines Motherboards bringt also offenbar keine Lesebeschleunigung, dafuer geht das Schreiben langsamer (da CPU-lastig). Mmmh, nicht wirklich ideal. Also wohl besser(?) so:
»» 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
Das ist exakt das gleiche. Der feine Unterschied zwischen Host-RAID und Software-RAID ist, dass das Host-RAID schon auf BIOS-Ebene zu sehen ist, und sich alle beteiligten OS-Treiber und das BIOS sich über das RAID-Format einig sein müssen. Bei Dual-Boot-Systemen ist das ganz nützlich.
Bei aktueller Hardware ist die CPU gegenüber der Festplatte dermaßen schnell, dass man vom Host-/Software-RAID nicht sonderlich viel Bremseffekte bemerkt. Aber nautülich belastet das Host-/Software-RAID das System mehr als eine einzelne Platte.
Da fangend die Probleme schon an: genau genommen wird es ja kein Server, sondern mein ganz regulärer Rechner - und der läuft mit Windows XP Pro.
Herzliches Beileid! ;-)
Also bin ich mir jetzt garnicht sicher, was die beste Variante ist, und ob XP Pro fuer sowas empfehlenswert ist. Naja, werd schon eine Lösung finden!
Mach Deinen alten Rechner zum Server, pack dort ein RAID aus großen Platten rein, und laß den neuen Rechner mit einer kleinen Platte laufen. Häng an den Server eine USB-Platte, auf die das Server-OS regelmäßig jede Nacht ein Backup schreibt. Speichere alle Daten auf dem Server.
Für Windows-Systeme ist es besonders einfach, wenn der Server als Domain Controller läuft, alle Arbeitsrechner in der Domain hängen, und Benutzer-Accounts nur auf dem Server angelegt werden. Dann werden automatisch alle Benutzer-Accounts inklusive Daten auf dem Server gespeichert und stehen automatisch auf allen Domain-Rechnern zur verfügung. Linux+Samba kann mittlerweile einen NT-Server so gut simulieren, dass man auf dem Server kein Windows braucht.
Ich habe so auf meinem großen Rechner, dem Rechner meiner Frau, und auf zwei Laptops überall die gleiche Windows-Umgebung, ohne auch nur einen Benutzer auf den Arbeitsrechner einrichten zu müssen.
Mit Linux auf den Arbeitsrechnern geht das natürlich auch, dort holt man sich das /home-Verzeichnis per NFS vom Server und überläßt dem auch die Benutzerverwaltung per NIS.
Aber eine letzte Frage: von den 3 Partitionen, die du vorschlägst (Boot+Root, Swap, Daten) wären glaubich bei Windows nur Boot + Daten relevant. Richtig?
So ungefähr. Windows kennt keine Trennung zwischen Boot und Root. Die Boot-Partition enthält auf Linux-Systemen den Bootloader und den Betriebssystem-Kern, gelegentlich auch ein RAMDisk-Image mit einem Minimalsystem, um den Rest des Systems zu finden. Root enthält das eigentliche Betriebssystem und alle Anwendungen. Die Kombination Boot+Root enthält beides auf einer Partition, das entspricht noch am ehesten dem C:-Laufwerk unter Windows. Swap ist eine Swap-Partition, von denen Linux mehrere gleichzeitig benutzen kann, um Daten aus dem Hauptspeicher auszulagern. Windows benutzt stattdessen eine Swap-Datei auf dem C:-Laufwerk (pagefile.sys).
Auf meinem Server ist das /home-Verzeichnis übrigens "nur" ein Symlink auf ein Verzeichnis im Daten-RAID, ebenso die Mail-Ablage. So sind diese vom Betriebssystem getrennt und ich kann das Betriebssystem neu installieren, ohne mich um die Daten kümmern zu müssen. Oft bietet der Installer auch an, nur /home auf eine eigene Partition zu packen, dann bräuchte man aber noch eine Partition für die Mails und noch andere Partitionen für anderes Zeug. Die Symlink-Variante ist einfacher, aber nicht ganz so schön.
Alexander