Zum Inhalt springen

Linux/RAID: Unterschied zwischen den Versionen

Aus Foxwiki
Robertquies (Diskussion | Beiträge)
K Textersetzung - „–“ durch „-“
 
(150 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Ein Software-'''R'''edundant '''A'''rray of '''I'''ndependent '''D'''isks dient dazu, mehrere physikalische Festplatten zu einem oder mehreren logischen Laufwerken zu vereinen.
'''Linux/[[RAID]]''' - Datenträger zu logischen Laufwerken zusammenschließen


=RAID allgemein=
== Beschreibung ==
*Schnellerer Datenzugriff und/oder erhöhte Verfügbarkeit des Systems im Falle eines Festplattendefektes.
; Zusammenwirken der Festplatten wird softwareseitig organisiert
*Es werden nur Partitionen gleicher Größe verwendet, da sonst Speicherkapazitäten ungenutzt bleiben.
Die meisten modernen Betriebssysteme sind dazu in der Lage
*Hardware-RAID und Software-RAID machen beide das Gleiche.
* FreeBSD, OpenBSD, Apple macOS, HP HP-UX, IBM AIX, Linux, Microsoft Windows ab Windows  oder SUN Solaris
*Von Software-RAID spricht man, wenn das Zusammenwirken der Festplatten komplett softwareseitig organisiert wird.


=Vergleich - Software-RAID/Hardware-RAID=
Die einzelnen Festplatten sind in diesem Fall entweder über einfache Festplattencontroller am Computer angeschlossen oder es werden externe Storage-Geräte wie Disk-Arrays von Unternehmen wie EMC, Promise, AXUS, Proware oder Hitachi Data Systems (HDS) an den Computer angeschlossen


Die Festplatten werden zunächst ohne RAID-Controller als sogenannte JBODs ("just a bunch of disks") in das System integriert, dann wird per Software-RAID (beispielsweise unter Linux mit dem Programm mdadm) die RAID-Funktionalität realisiert
* Eine besondere Variante des Software RAID sind Dateisysteme mit einer integrierten RAID-Funktionalität
* Ein Beispiel dafür ist das von Sun Microsystems entwickelte RAID-Z.[6]


==Pro Software-RAID==
{| class="wikitable options big"
 
| Vorteile ||
*Günstig bis kostenlos - Software RAIDs gibt es als Open-Source-Software.
Der Vorteil von Software-RAID ist, dass kein spezieller RAID-Controller benötigt wird
*Geht die Installation des Betriebssystems kaputt, kann das RAID oft noch mit einer neuen Installation des gleichen Betriebssystems wieder eingelesen werden.
* Die Steuerung wird von der RAID-Software erledigt, diese ist entweder schon Teil des Betriebssystems oder wird nachträglich installiert
*Bei Software-RAIDs auf BIOS-Ebene (Host-RAID-Systemen) ist das nicht immer so.
* Dieser Vorteil kommt besonders bei der Disaster Recovery zum Tragen, wenn der RAID-Controller defekt und nicht mehr verfügbar ist
 
* Praktisch alle derzeit verfügbaren Software-RAID-Systeme benutzen die Festplatten so, dass diese auch ohne die spezifische Software ausgelesen werden können
==Contra Software-RAID==
*Benutzt den Prozessor und verbraucht Ressourcen.
**=> Der Rechner kann bei komplexen Systemen langsamer werden.
*Bei einem RAID, das auf dem Betriebssystem (OS) eingerichtet wurde, profitiert das OS selber nicht vom RAID.
 
==Pro Hardware-RAID==
*RAID-Controller - Alle Berechnungen werden von einem extra Chip gemacht.
**=> Entlastung der Host-CPU.
*Steht schon beim Booten zur Verfügung.
**=> Das OS profitiert vom RAID.
*Unterstützt eine Vielzahl von Betriebssystemen.
 
==Contra Hardware-RAID==
*Bei RAID-Controller-Defekt - kann kein baugleiches Modell aufgetrieben werden, wird das RAID zum Datengrab.
*Zusätzliche Kosten für einen RAID-Controller (kein Fake-RAID).
'''Fake-RAIDs''' können nur eine begrenzte Anzahl von RAID-Leveln, häufig nur RAID-Level 0 und 1.
Um die Controller/Karten so billig wie möglich zu halten, überlassen die Hersteller die RAID-Logik der CPU.
=> Benutzt also den Prozessor und verbraucht Ressourcen.
 
=Superblock=
 
*Linux-Software-RAID speichert alle notwendigen Informationen zu einem RAID-Array in einem Superblock.
 
*Je nach Metadaten-Version liegt dieser an unterschiedlichen Stellen.
 
*Weiterführende Informationen zum Superblock findet man unter:
**[https://raid.wiki.kernel.org/index.php/RAID_superblock_formats https://raid.wiki.kernel.org/index.php/RAID_superblock_formats]
 
==Superblock Metadaten-Version 0.90==
 
*Der version-0.90 Superblock ist 4.096 Byte groß und liegt in einem 64 KiB aligned block am Ende eines Devices.
 
*Der Superblock beginnt ja nach Devicegröße frühestens 128 KiB vor dem Ende des Devices, bzw. spätestens 64 KiB vor dem Ende des Devices.
 
*Um die Adresse des Superblocks zu berechnen, wird die Device-Größe auf ein vielfaches von 64 KiB abgerundet und dann 64 KiB vom Ergebnis abgezogen.
 
*Einschränkungen der Metadaten-Version 0.90:
**Maximal 28 Devices in einem Array.
**Jedes Device kann maximal 2 TiB groß sein.
**Keine Unterstützung des [https://raid.wiki.kernel.org/index.php/The_Badblocks_controversy Bad-Block-Managements].
 
==Superblock Metadaten-Version 1.*==
 
*Die Position des Superblock hängt von der Version der Metadaten ab:
**Version 1.0: Der Superblock liegt am Ende des Devices.
**Version 1.1: Der Superblock liegt am Anfang des Devices.
**Version 1.2: Der Superblock liegt 4 KiB nach dem Beginn des Devices.
 
=Komplexe Aufgaben=
 
*Dieser Abschnitt fasst komplexere Szenarien und Methoden zusammen, die im normalen Betrieb nicht auftreten, aber für Nutzer mit speziellen Anforderungen nützlich sein können.
 
==Resync und Rebuild beschleunigen==
 
*Wie eingangs erläutert ermöglicht ein RAID unterbrechungsfreien Zugriff auf die gespeicherten Daten auch während eines Ausfalls.
 
*Daten können also auch während eines '''Resyncs''' oder '''Rebuilds''' gelesen und geschrieben werden, wenn auch mit verringerter Geschwindigkeit.
 
*Lese- und Schreibzugriffe wirken sich umgekehrt wiederum auf die Geschwindigkeit von Resnyc- und Rebuild-Vorgängen aus.
 
*Die Balance zwischen Lese-/Schreib-Performance und Resync-/Rebuild-Geschwindigkeit kann über zwei (virtuelle) Dateien im proc-System gesteuert werden:
 
{|class="wikitable"
|+
| Pfad|| Standardwert (in KiB/s)|| Bedeutung
|-
| /proc/sys/dev/raid/speed_limit_min|| 1000|| Das System wird ggf. Lese- und Schreibzugriffen verlangsamen, falls die Resync-/Rebuild-Geschwindigkeit unter diesen Wert zu fallen droht.
|-
|-
| /proc/sys/dev/raid/speed_limit_max|| 200000|| Das System wird Rebuild und Resync höchstens mit dieser Geschwindigkeit durchführen und eventuellen Überschuss für Lese-/Schreib-Zugriffe frei halten.
| Nachteile ||
Bei einem Software-RAID werden bei Festplattenzugriffen neben dem Hauptprozessor des Computers auch die System-Busse wie PCI stärker belastet als bei einem Hardware-RAID
* Bei leistungsschwachen CPUs und Bus-Systemen verringert dies deutlich die Systemleistung
* Bei leistungsstarken, wenig ausgelasteten Systemen ist dies belanglos
* Storage-Server sind in der Praxis oft nicht voll ausgelastet; auf solchen Systemen können Software-RAID-Implementierungen unter Umständen sogar schneller sein als Hardware-RAIDs
* Ein weiterer Nachteil ist, dass bei vielen Software-RAID kein Cache genutzt werden kann, dessen Inhalt auch nach einem Stromausfall erhalten bleibt, wie es bei Hardware-RAID-Controllern mit einer Battery Backup Unit der Fall ist
** Dieses Problem lässt sich mit einer unterbrechungsfreien Stromversorgung für den gesamten PC vermeiden
** Um die Gefahr von Datenverlusten und Fehlern in der Datenintegrität bei einem Stromausfall oder Systemabsturz zu minimieren, sollten außerdem die (Schreib-)Caches der Festplatten deaktiviert werden.[7]
* Da die Platten eines Software-RAIDs prinzipiell auch einzeln angesprochen werden können, besteht bei gespiegelten Festplatten die Gefahr, dass Änderungen nur noch an einer Platte durchgeführt werden - wenn etwa nach einem Betriebssystem-Update die RAID-Software oder der Treiber für einen RAID-Festplatten-Controller nicht mehr funktionieren, eine der gespiegelten Festplatten aber weiterhin über einen generischen SATA-Treiber angesprochen werden kann
* Entsprechende Warnhinweise oder Fehlermeldungen während des Bootens sollten deshalb nicht ignoriert werden, nur weil das System trotzdem funktioniert
* Ausnahmen bilden hier Software-RAID mit Datenintegrität wie beispielsweise ZFS
* Unvollständige Speichervorgänge werden zurückgesetzt
* Fehlerhafte Spiegeldaten werden erkannt und durch korrekte Spiegeldaten ersetzt
* Es wird wohl beim Lesen eine Fehlermeldung geben, da die fehlerhafte oder alte Spiegelseite nicht mit dem aktuellen Block übereinstimmt
|}
|}
*Da der Standard-Maximalwert von knapp 200 MiB/s die Leistung normaler Festplatten (mit Ausnahme von SSDs) übersteigt, wird das System effektiv immer versuchen, '''Resync''' und '''Rebuild''' so schnell wie möglich zu beenden, falls keine Lese- oder Schreibzugriffe stattfinden.
*Falls sich Zugriffe nicht vermeiden lassen (zum Beispiel, wenn das root-Dateisystem auf dem RAID liegt) und '''Rebuild/Resync''' trotzdem Vorrang haben sollen, kann die Mindestgeschwindigkeit temporär auf einen praktisch nicht erreichbaren Wert angehoben werden:
# su -c "echo 200000 > /proc/sys/dev/raid/speed_limit_min"
*Gerade im Fall des root-Dateisystems kann die damit einhergehende verringerte Lese- und Schreibgeschwindigkeit jedoch zu einem instabilem, effektiv nicht mehr nutzbaren System führen.
*Änderung an den Standardwerten sind daher mit Vorsicht zu genießen.
*Bei einem Neustart werden automatisch die Standardwerte wiederhergestellt.
*Um den Wert per Hand zurückzusetzen:
# su -c "echo 1000 > /proc/sys/dev/raid/speed_limit_min"
*In Einzelfällen kann das Aushängen des Dateisystems (falls möglich) den Vorgang beschleunigen.
*Im Regelfall wird dies jedoch keinen Vorteil bringen.
*In jedem Fall widerspricht dies natürlich dem Grundgedanken eines RAIDs, die Daten in jedem Fall verfügbar zu halten:
# umount /dev/md0
*Generell sollte man von diesen Möglichkeiten keine Wunder erwarten.
*'''Resync''' und '''Rebuild''' erfordern im Allgemeinen das komplette Lesen und Neubeschreiben aller beteiligten Laufwerke und können damit maximal so schnell durchgeführt werden, wie es das langsamste, am RAID beteiligte, Laufwerk erlaubt.
*Zeiten im Bereich von mehreren Tagen sind bei entsprechender Größe völlig normal.
*Wenn man möchte, kann man während der Vorgänge mit watch den Fortschritt kontrollieren:
# watch cat /proc/mdstat
*Die Anzeige kann mit Strg + C beendet werden.
==Wechsel des Betriebssystems==
*Für den Fall, dass man das Betriebssystem neu aufsetzen muss oder ein zweites Betriebssystem auf dem Rechner installieren will, kann man das Software-RAID weiter verwenden – sofern das Betriebssystem nicht direkt auf dem Software-RAID angelegt ist.
*Dazu muss auf dem neuen System das Paket...
mdadm
Paketliste zum Kopieren:
# apt install mdadm
Oder mit apturl installieren, Link:
apt://mdadm
*...installiert werden.
*Spätestens bei einem Neustart sollten bestehenden Arrays automatisch erkannt und gestartet werden.
*Falls dies nicht funktioniert, weil z.B. Arrays mit alten Superblock-Versionen vorhanden sind, kann man dies auch per Hand aktivieren:
Achtung!
Auf keinen Fall darf man hier die Optionen "--create" verwenden, da sonst die Lesbarkeit auf den beteiligten Partitionen zerstört wird.
*Das RAID nutzbar machen:
**RAID aus den gefundenen Superblöcken neu assemblieren:
# mdadm --assemble --scan
**Hat man mehrere Software-RAIDs und möchte ein bestimmtes RAID zusammenführen, kann man dies durch die Angabe der UUID des entsprechenden RAIDs tun:
# mdadm --assemble --scan --uuid=6c926c35:380d7ab2:3603cf0e:ecfa67b9
**Durch die Angabe der einzelnen Partitionen:
# mdadm --assemble /dev/md0 /dev/sde1 /dev/sdf1 /dev/sdg1
**Soll von dem neuen RAID-Verbund gebootet werden (Root-Dateisystem), dann muss noch der Bootloader installiert und das initramfs aktualisiert werden.
==Live System==
*Um auf einen RAID-Verbund mittels einer Live-CD bzw. eines Live-USB zuzugreifen, muss das Programmpaket mdadm mit...
# apt install  --no-install-recommends mdadm
*...installiert werden.
*Die Option --no-install-recommends verhindert dabei die Installation des Mail-Server Postfix.
*Anschließend werden mit:
# mdadm --assemble --scan
*alle gefundenen RAID-Verbunde aktiviert.
*Mit dem Befehl:
# cat /proc/mdstat
*kann man dann wieder die gefundenen RAID-Verbunde anzeigen.
*Nun wird das RAID noch mit:
# mkdir /media/raid
# mount /dev/md0 /media/raid
*in den Verzeichnisbaum integriert.
*Jetzt kann man die Daten im Verzeichnis /media/raid lesen (bei Bedarf auch verändern), sowie auf eine externe Festplatte oder in ein Netzwerkverzeichnis kopieren.
*Wenn man auf defekte/fehlende Festplatten zugreifen muss, dann schlägt ein --assemble --scan fehl und die Partitionen müssen einzeln assemblieren werden.
*Dazu wird z.B. sda1 als Quelle angegeben (bei RAID 0 nicht möglich):
# mdadm --assemble --run /dev/md0 /dev/sda1
*Dabei bewirkt das --run, dass der Verbund aktiviert wird.
*Nach dem Einhängen in den Verzeichnisbaum sollte man auf die Daten zugreifen können.
*Weitere Möglichkeiten, z.B. bei der Reparatur des RAID, bieten die Root-Directory-, die Chroot- oder die Setup-Methode.
==Kombinierte RAIDs==
*Wem die oben genannten Möglichkeiten nicht ausreichen, kann auch nach eigenen Anforderungen verschiedenen RAID-Arten kombinieren.
===RAID51===
*So ist es zum Beispiel möglich, zwei RAID 5 zu spiegeln, also als RAID 1 zu betreiben:======
**Aus sde1, sdf1 und sdg1 wird ein RAID 5 erstellt
**Aus sdh1, sdj1 und sdk1 wird ebenfalls ein RAID 5 erstellt
**Aus den beiden RAID 5 wird dann ein RAID 1 erstellt:
# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sde1 /dev/sdf1 /def/sdg1
# mdadm --create --verbose /dev/md1 --level=5 --raid-devices=3 /dev/sdh1 /dev/sdj1 /dev/sdk1
# mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/md0 /dev/md1 
*Ein solcher Verbund würde als RAID 51 bezeichnet werden, also ein RAID 1 über mehrere RAID 5.
*Im Allgemeinen sind solche exotischen Kombinationen zwar selten sinnvoll (je komplexer, desto fehleranfälliger sind Wartung und Reparatur), aber prinzipiell sind beliebige Kombinationen möglich.
===RAID10===
*Eine sinnvolle Kombination, ein RAID 0 über mehrere RAID 1, also ein RAID 10, wird direkt von mdadm als RAID-Level unterstützt und muss nicht wie hier beschrieben per Hand angelegt werden.
*Alternativ verwendet man auch gerne mehrere RAIDs in Zusammenarbeit mit LVM, da dieses einen sehr flexiblen Umgang mit RAID-Verbünden ermöglicht.
*Zudem sind dadurch auch sehr große Dateisysteme mit etlichen Terabytes und sogar Petabytes realisierbar.
==RAID auflösen==
*Um den Verbund eines RAID aufzulösen, d.h. die Ressourcen wieder freizugeben, geht man wie folgt vor:
*Stoppen des RAID-Verbundes:
# umount /dev/md0
# mdadm --stop /dev/md0
*In der /etc/fstab die aufgelösten RAIDs entfernen.
*Mit einem Editor in der mdadm.conf die Array-Angaben löschen.
*Den Superblock der entfernten Partitionen löschen, hier am Beispiel von sde1 und sdf1:
# mdadm --zero-superblock /dev/sde1 /dev/sdf1
*Die Partitions-ID wieder auf normale Linux-ID ändern (bei MBR) beziehungsweise das RAID-Flag der Partition ausschalten (bei GPT).
*Auf die vorhandenen Daten kann anschließend nicht mehr zugegriffen werden.
*Die Partitionen auf den Festplatten sind aber immernoch vorhanden, solange diese nicht überschrieben werden.
==Bootloader==
*Betreibt man einen RAID-Verbund als Systemlaufwerk, ist es praktisch, wenn das System auch noch nach Ausfall einer Festplatte hochfahren kann.
*Das wird z.B. bei ferngewarteten Rechnern benötigt, auf die man keinen direkten Zugriff hat.
*Da sich der Bootloader GRUB 2 in der Standardkonfiguration nur auf einem der Laufwerke installiert, muss man etwas nachhelfen.
*Dazu installiert man den Bootloader auf allen dem RAID-Verbund angehörenden Laufwerken.
*'''MPT''': Installation des Bootloaders in alle MBR aller beteiligten Festplatten (grub-install /dev/sdX), wobei die neu eingerichteten Festplatten anzugeben sind.
*Am schnellsten geht es mit dem Befehl:
# dpkg-reconfigure grub-pc
*und der anschließenden Auswahl der gewünschten Festplatten.
*'''GPT''': Der Bootloader muss in die entsprechenden Boot-Partitionen installiert werden.
*Z.B. bei einer Installation mit GPT und BIOS bricht die Installation von GRUB 2 sonst ab und weist mit einer Fehlermeldung auf die fehlende Partition hin.
grub-installer: /usr/sbin/grub-setup: warn: This GPT partition label has no BIOS Boot Partition; embedding won't be possible!
*Damit die Boot-Partitionen durch die [https://de.wikipedia.org/wiki/Initrd initrd] auch einwandfrei gemountet werden, sollte nach Änderung die mdadm.conf und initrd aktualisiert werden.
==USB und RAID==
*RAID 0 (stripping) ist denkbar ungeeignet für ein USB-RAID, da bei diesem das Entfernen einer Platte direkt zum Defekt des RAID-Verbunds führt.
*Mit RAID 5 und 6 kann es kritisch werden, es sollte aber funktionieren, auch wenn davon stark abzuraten ist.
*RAID 1 (mirror) mit mehreren Partitionen auf verschiedenen USB-Festplatten ist prinzipiell kein Problem, auch wenn davon im Allgemeinen abzuraten ist.
*Wer trotzdem sicher ist, dass in Spezialfällen ein RAID mit USB-Geräten sinnvoll ist, sollte folgendes beachten:
**Bei USB-Festplatten muss man unterbinden, dass ein Benutzer versucht, diese einzuhängen, bzw. dass das System dies am Anfang nicht selbst probiert.
**Da alle am RAID beteiligten Partitionen die gleiche UUID haben sollten, kann man die /etc/fstab auf diese abstellen und um die Parameter nouser und noauto erweitern.
==RAID 1 zu RAID 0 konvertieren==
Ausgangssituation
*/dev/md0 ist ein Raid 1 aus /dev/sda1 und /dev/sdb1.
Ziel
*/dev/md0 soll ein Raid 0 aus beiden Partitionen werden.
Vorgehen
# mdadm --grow /dev/md0 -l 0
mdadm: level of /dev/md0 changed to raid0
*/dev/sda1 wurde aus dem Raid 1 entfernt.
# mdadm --zero-superblock /dev/sda1
# mdadm --grow /dev/md0 --level=4 --raid-devices=2 --add /dev/sda1 --backup-file=/root/raid.bak
mdadm: level of /dev/md0 changed to raid4
mdadm: added /dev/sda1
mdadm: Need to backup 128K of critical section..
mdadm: /dev/md0: could not set level to raid0
/dev/md0 ist jetzt ein Raid 4 das gesynced wird.
*Raid 4 ist hier ein notwendiger Zwischenschritt. Synchronisation abwarten...
*Dann Raid 4 zu Raid 0 konvertieren
# mdadm --grow /dev/md0 --level=0 --raid-devices=2 --backup-file=/root/raid.bak
*Wieder das Reshaping abwarten...
watch mdadm -D /dev/md0


*Fertig ist das Raid 0.
<noinclude>


=weiterführende Artikel=
== Anhang ==
[https://wiki.itw-berlin.net/index.php?title=Linux:Software-RAID:Anlegen Linux:Software-RAID:Anlegen]
=== Siehe auch ===
{{Special:PrefixIndex/Linux/RAID/}}


[https://wiki.itw-berlin.net/index.php?title=Linux:Software-RAID:Wartung Linux:Software-RAID:Wartung]
=== Links ===
==== Weblinks ====


[https://wiki.itw-berlin.net/index.php?title=Linux:Software-RAID:Fehlerbehebung Linux:Software-RAID:Fehlerbehebung]


=Quellen=
[[Kategorie:Linux/RAID]]
#[https://wiki.ubuntuusers.de/Software-RAID/ https://wiki.ubuntuusers.de/Software-RAID/]
#[https://www.thomas-krenn.com/de/wiki/Linux_Software_RAID https://www.thomas-krenn.com/de/wiki/Linux_Software_RAID]
#[https://de.wikipedia.org/wiki/RAID#Software-RAID https://de.wikipedia.org/wiki/RAID#Software-RAID]
#[http://tldp.org/HOWTO/Software-RAID-HOWTO.html The Software-RAID HOWTO]
#[https://raid.wiki.kernel.org/index.php/Linux_Raid Linux Raid Wiki]
#[https://raid.wiki.kernel.org/index.php/RAID_setup RAID Setup]
#[https://www.heise.de/ct/ausgabe/2013-6-Tipps-und-Tricks-rund-um-Linux-Software-RAID-2327050.html Festplattenpuzzles - Tipps und Tricks rund um Linux-Software-RAID]
#[https://www.tecchannel.de/a/workshop-software-raid-unter-linux-einrichten,2032820 Workshop - Software-RAID unter Linux einrichten]
#[http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch26_:_Linux_Software_RAID#.XvMxWKZCTXA Quick HOWTO : Ch26 : Linux Software RAID]
#[http://vger.kernel.org/vger-lists.html#linux-raid linux-raid Mailing List]
#[https://www.thomas-krenn.com/de/wiki/Ubuntu-Server-Installation_mit_Software-RAID Ubuntu-Server-Installation mit Software-RAID]
#[https://raid.wiki.kernel.org/index.php/RAID_superblock_formats https://raid.wiki.kernel.org/index.php/RAID_superblock_formats]


[[Category:Linux:Storage]]
</noinclude>

Aktuelle Version vom 11. Mai 2025, 20:49 Uhr

Linux/RAID - Datenträger zu logischen Laufwerken zusammenschließen

Beschreibung

Zusammenwirken der Festplatten wird softwareseitig organisiert

Die meisten modernen Betriebssysteme sind dazu in der Lage

  • FreeBSD, OpenBSD, Apple macOS, HP HP-UX, IBM AIX, Linux, Microsoft Windows ab Windows oder SUN Solaris

Die einzelnen Festplatten sind in diesem Fall entweder über einfache Festplattencontroller am Computer angeschlossen oder es werden externe Storage-Geräte wie Disk-Arrays von Unternehmen wie EMC, Promise, AXUS, Proware oder Hitachi Data Systems (HDS) an den Computer angeschlossen

Die Festplatten werden zunächst ohne RAID-Controller als sogenannte JBODs ("just a bunch of disks") in das System integriert, dann wird per Software-RAID (beispielsweise unter Linux mit dem Programm mdadm) die RAID-Funktionalität realisiert

  • Eine besondere Variante des Software RAID sind Dateisysteme mit einer integrierten RAID-Funktionalität
  • Ein Beispiel dafür ist das von Sun Microsystems entwickelte RAID-Z.[6]
Vorteile

Der Vorteil von Software-RAID ist, dass kein spezieller RAID-Controller benötigt wird

  • Die Steuerung wird von der RAID-Software erledigt, diese ist entweder schon Teil des Betriebssystems oder wird nachträglich installiert
  • Dieser Vorteil kommt besonders bei der Disaster Recovery zum Tragen, wenn der RAID-Controller defekt und nicht mehr verfügbar ist
  • Praktisch alle derzeit verfügbaren Software-RAID-Systeme benutzen die Festplatten so, dass diese auch ohne die spezifische Software ausgelesen werden können
Nachteile

Bei einem Software-RAID werden bei Festplattenzugriffen neben dem Hauptprozessor des Computers auch die System-Busse wie PCI stärker belastet als bei einem Hardware-RAID

  • Bei leistungsschwachen CPUs und Bus-Systemen verringert dies deutlich die Systemleistung
  • Bei leistungsstarken, wenig ausgelasteten Systemen ist dies belanglos
  • Storage-Server sind in der Praxis oft nicht voll ausgelastet; auf solchen Systemen können Software-RAID-Implementierungen unter Umständen sogar schneller sein als Hardware-RAIDs
  • Ein weiterer Nachteil ist, dass bei vielen Software-RAID kein Cache genutzt werden kann, dessen Inhalt auch nach einem Stromausfall erhalten bleibt, wie es bei Hardware-RAID-Controllern mit einer Battery Backup Unit der Fall ist
    • Dieses Problem lässt sich mit einer unterbrechungsfreien Stromversorgung für den gesamten PC vermeiden
    • Um die Gefahr von Datenverlusten und Fehlern in der Datenintegrität bei einem Stromausfall oder Systemabsturz zu minimieren, sollten außerdem die (Schreib-)Caches der Festplatten deaktiviert werden.[7]
  • Da die Platten eines Software-RAIDs prinzipiell auch einzeln angesprochen werden können, besteht bei gespiegelten Festplatten die Gefahr, dass Änderungen nur noch an einer Platte durchgeführt werden - wenn etwa nach einem Betriebssystem-Update die RAID-Software oder der Treiber für einen RAID-Festplatten-Controller nicht mehr funktionieren, eine der gespiegelten Festplatten aber weiterhin über einen generischen SATA-Treiber angesprochen werden kann
  • Entsprechende Warnhinweise oder Fehlermeldungen während des Bootens sollten deshalb nicht ignoriert werden, nur weil das System trotzdem funktioniert
  • Ausnahmen bilden hier Software-RAID mit Datenintegrität wie beispielsweise ZFS
  • Unvollständige Speichervorgänge werden zurückgesetzt
  • Fehlerhafte Spiegeldaten werden erkannt und durch korrekte Spiegeldaten ersetzt
  • Es wird wohl beim Lesen eine Fehlermeldung geben, da die fehlerhafte oder alte Spiegelseite nicht mit dem aktuellen Block übereinstimmt


Anhang

Siehe auch

Links

Weblinks