|
|
(84 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| '''Linux/Software-RAID''' - physikalische Festplatten zu logischen Laufwerken zu vereinen | | '''Linux/[[RAID]]''' - Datenträger zu logischen Laufwerken zusammenschließen |
|
| |
|
| == Beschreibung == | | == Beschreibung == |
| ; Software-[[Redundant Array of Independent Disks]] | | ; Zusammenwirken der Festplatten wird softwareseitig organisiert |
| * Schnellerer Datenzugriff
| | Die meisten modernen Betriebssysteme sind dazu in der Lage |
| * Erhöhte Verfügbarkeit | | * FreeBSD, OpenBSD, Apple macOS, HP HP-UX, IBM AIX, Linux, Microsoft Windows ab Windows oder SUN Solaris |
| * im Falle eines Festplattendefektes
| |
|
| |
|
| Es werden nur Partitionen gleicher Größe verwendet, da sonst Speicherkapazitäten ungenutzt bleiben
| | 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 |
| * Hardware-RAID und Software-RAID machen beide das Gleiche
| |
| * Von Software-RAID spricht man, wenn das Zusammenwirken der Festplatten komplett softwareseitig organisiert wird
| |
|
| |
|
| Dieser Artikel Beschreibt die Nutzung eines Software-RAIDs
| | 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 |
| * Welches die Interaktion von mehreren Laufwerken in einem Linux-Betriebssystem organisiert | | * Eine besondere Variante des Software RAID sind Dateisysteme mit einer integrierten RAID-Funktionalität |
| * ohne dafür einen Hardware-RAID-Controller zu verwenden | | * Ein Beispiel dafür ist das von Sun Microsystems entwickelte RAID-Z.[6] |
|
| |
|
| <!--
| | {| class="wikitable options big" |
| Von Hetzner mit einem Betriebssystem bereitgestellte Server, oder über den [https://docs.hetzner.com/de/robot Robot] installierte Systeme sind bei mehr als zwei Laufwerken bereits mit dem empfohlenen RAID-Level (1 oder 6) versehen. Weiterhin können Sie das [https://docs.hetzner.com/de/robot/dedicated-server/operating-systems/installimage/ Installimage-Script] im [https://docs.hetzner.com/de/robot/dedicated-server/troubleshooting/hetzner-rescue-system/ Rescue-System] verwenden, um angepasste Installationen durchzuführen, dabei unter anderem eine gewünschte Software-RAID-Konfiguration einzustellen und dieses auch mit LVM kombinieren.
| | | 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 |
| == Software- vs. Hardware-RAID ==
| | * Dieser Vorteil kommt besonders bei der Disaster Recovery zum Tragen, wenn der RAID-Controller defekt und nicht mehr verfügbar ist |
| ; Pro Software-RAID
| | * Praktisch alle derzeit verfügbaren Software-RAID-Systeme benutzen die Festplatten so, dass diese auch ohne die spezifische Software ausgelesen werden können |
| Software-RAIDs gibt es als Open-Source-Software
| | |- |
| * Bei Defekt des Betriebssystems, kann das RAID oft noch mit einer neuen Installation des gleichen Betriebssystems wieder eingelesen werden | | | Nachteile || |
| * Bei Software-RAIDs auf BIOS-Ebene (Host-RAID-Systemen) ist das nicht immer so | | 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 |
| ; Contra Software-RAID
| | * Bei leistungsstarken, wenig ausgelasteten Systemen ist dies belanglos |
| Benutzt den Prozessor und verbraucht Ressourcen
| | * 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 |
| * Bei einem RAID, das auf dem Betriebssystem (OS) eingerichtet wurde, profitiert das OS selber nicht vom RAID
| | * 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 |
| ; Pro Hardware-RAID
| | ** 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] |
| * Entlastung der Host-CPU.Alle Berechnungen werden vom RAID-Controller gemacht | | * 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 |
| * Steht schon beim Booten zur Verfügung | | * Entsprechende Warnhinweise oder Fehlermeldungen während des Bootens sollten deshalb nicht ignoriert werden, nur weil das System trotzdem funktioniert |
| ** Das OS profitiert vom RAID | | * Ausnahmen bilden hier Software-RAID mit Datenintegrität wie beispielsweise ZFS |
| * Unterstützt eine Vielzahl von Betriebssystemen
| | * Unvollständige Speichervorgänge werden zurückgesetzt |
| | | * Fehlerhafte Spiegeldaten werden erkannt und durch korrekte Spiegeldaten ersetzt |
| ; Contra Hardware-RAID
| | * Es wird wohl beim Lesen eine Fehlermeldung geben, da die fehlerhafte oder alte Spiegelseite nicht mit dem aktuellen Block übereinstimmt |
| * 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
| |
| <blockquote>
| |
| ''' 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
| |
| </blockquote>
| |
|
| |
|
| <noinclude> | | <noinclude> |
Zeile 50: |
Zeile 39: |
| == Anhang == | | == Anhang == |
| === Siehe auch === | | === Siehe auch === |
| {{Special:PrefixIndex/{{BASEPAGENAME}}}} | | {{Special:PrefixIndex/Linux/RAID/}} |
| ==== Links ====
| |
| ; HowTo
| |
| # [[Linux/Software-RAID/Vorbereitung]]
| |
| # [[Linux/Software-RAID/Anlegen]]
| |
| # [[Linux/Software-RAID/Wartung]]
| |
| # [[Linux/Software-RAID/Fehlerbehebung]]
| |
| # [[Linux/Software-RAID/Aufgaben]]
| |
|
| |
|
| ===== Weblinks ===== | | === Links === |
| # [https://docs.hetzner.com/de/robot/dedicated-server/raid/linux-software-raid/ https://docs.hetzner.com/de/robot/dedicated-server/raid/linux-software-raid/]
| | ==== Weblinks ==== |
| # [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]
| |
|
| |
|
| [[Kategorie:Linux/Software-RAID]] | | |
| | [[Kategorie:Linux/RAID]] |
|
| |
|
| </noinclude> | | </noinclude> |
|
| |
| = Linux Software RAID =
| |
|
| |
| == Status des Software-RAID auslesen ==
| |
|
| |
| Verwenden Sie dazu folgenden Befehl:
| |
| cat /proc/mdstat
| |
|
| |
| Ausgabe für ein nicht vorhandenes RAID:
| |
| Personalities : [raid1]
| |
| unused devices: <none>
| |
|
| |
| Ausgabe für ein RAID1:
| |
| Personalities : [raid1]
| |
| md2 : active raid1 sda3[2] sdb3[1]
| |
| 234405504 blocks super 1.2 [2/2] [UU]
| |
| bitmap: 0/2 pages [0KB], 65536KB chunk
| |
|
| |
| md1 : active raid1 sda2[2] sdb2[1]
| |
| 523712 blocks super 1.2 [2/2] [UU]
| |
|
| |
| md0 : active raid1 sda1[2] sdb1[1]
| |
| 33521664 blocks super 1.2 [2/2] [UU]
| |
|
| |
| unused devices: <none>
| |
|
| |
| Ausgabe für ein RAID0 (Die <tt>/boot</tt>-Partition <tt>md0</tt> muss immer als RAID1 eingerichtet sein, um davon booten zu können)
| |
| Personalities : [raid1] [raid0]
| |
| md2 : active raid0 sda3[0] sdb3[1]
| |
| 883956736 blocks super 1.2 512k chunks
| |
|
| |
| md1 : active raid0 sda2[0] sdb2[1]
| |
| 52393984 blocks super 1.2 512k chunks
| |
|
| |
| md0 : active raid1 sda1[0] sdb1[1]
| |
| 523264 blocks super 1.2 [2/2] [UU]
| |
|
| |
| unused devices: <none>
| |
|
| |
| Wenn unter einer der Partitionen ein Fortschritts-Balken dargestellt wird, läuft derzeit ein RAID-Resync-Prozess:
| |
| md0 : active raid1 sdb1[0] sdc1[1]
| |
| 2095040 blocks super 1.2 [2/2] [UU]
| |
| [====>................] resync = 32.7% (418656/2095040) finish=4.2min speed=131219K/sec
| |
|
| |
| == Hinzufügen eines Software-RAID-Arrays ==
| |
|
| |
| In unserem Beispiel-Szenario sind die Laufwerke <tt>/dev/sda</tt> bereits <tt>/dev/sdb</tt> in RAID1-Arrays konfiguriert, welche das Betriebssystem enthalten:
| |
|
| |
| cat /proc/mdstat
| |
| Personalities : [raid1]
| |
| md2 : active raid1 sda3[2] sdb3[1]
| |
| 234405504 blocks super 1.2 [2/2] [UU]
| |
| bitmap: 0/2 pages [0KB], 65536KB chunk
| |
|
| |
| md1 : active raid1 sda2[2] sdb2[1]
| |
| 523712 blocks super 1.2 [2/2] [UU]
| |
|
| |
| md0 : active raid1 sda1[2] sdb1[1]
| |
| 33521664 blocks super 1.2 [2/2] [UU]
| |
|
| |
| unused devices: <none>
| |
|
| |
| Es sind jedoch zwei weitere Laufwerke vorhanden (<tt>/dev/sdc</tt> und <tt>/dev/sdd</tt>), die wir als Daten-Laufwerk in einem RAID1-Array nutzen möchten. Dazu muss zuerst das RAID-Array hinzugefügt werden:
| |
|
| |
| mdadm --create --verbose /dev/md3 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
| |
|
| |
| Anschließend sollte die RAID-Konfiguration wie folgt aussehen:
| |
|
| |
| cat /proc/mdstat
| |
| Personalities : [raid1]
| |
| md3 : active raid1 sdc1[0] sdd1[1]
| |
| 2095040 blocks super 1.2 [2/2] [UU]
| |
| [====>................] resync = 32.7% (418656/2095040) finish=4.2min speed=131219K/sec
| |
|
| |
| md2 : active raid1 sda3[2] sdb3[1]
| |
| 234405504 blocks super 1.2 [2/2] [UU]
| |
| bitmap: 0/2 pages [0KB], 65536KB chunk
| |
|
| |
| md1 : active raid1 sda2[2] sdb2[1]
| |
| 523712 blocks super 1.2 [2/2] [UU]
| |
|
| |
| md0 : active raid1 sda1[2] sdb1[1]
| |
| 33521664 blocks super 1.2 [2/2] [UU]
| |
|
| |
| unused devices: <none>
| |
|
| |
| Nun kann die neue Partition nach Belieben formatiert (hier EXT4) und eingehängt werden:
| |
|
| |
| mkfs.ext4 /dev/md3
| |
| mount /dev/md3 /mnt
| |
|
| |
| == E-Mail-Benachrichtigung bei Ausfall einer Festplatte im Software-RAID ==
| |
|
| |
| '''Voraussetzung:''' Ein Mailserver Ihrer Wahl (z.B. [https://de.wikipedia.org/wiki/Sendmail Sendmail]) muss bereits installiert und konfiguriert sein.
| |
|
| |
| === Debian/Ubuntu/CentOS ===
| |
| Öffnen Sie <tt>/etc/mdadm/mdadm.conf</tt> bzw. <tt>/etc/mdadm.conf</tt> (CentOS) in einem Editor und passen Sie folgende Zeile an
| |
| MAILADDR holu@example.com
| |
|
| |
| Hier kann direkt eine Zieladresse angegeben werden. Alternativ bietet es sich an, alle an root gerichteten Emails via <tt>/etc/aliases</tt> an eine bestimmte Mailadresse weiterzuleiten.
| |
|
| |
| Optional kann auch die Absenderadresse konfiguriert werden:
| |
| MAILFROM mdadm@example.com
| |
|
| |
| Wichtig bei Debian und Ubuntu ist, dass <tt>AUTOCHECK</tt> in der Datei <tt>/etc/default/mdadm</tt> auf <tt>true</tt> gestellt ist
| |
| grep AUTOCHECK= /etc/default/mdadm
| |
| AUTOCHECK=true
| |
|
| |
| === openSUSE ===
| |
| Öffnen Sie <tt>/etc/sysconfig/mdadm</tt> in einem Editor und verändern Sie die Variable <tt>MDADM_MAIL</tt> auf die gewünschte Adresse, an die Benachrichtigungen gesendet werden sollen:
| |
| MDADM_MAIL="holu@example.com"
| |
|
| |
| === Konfiguration prüfen ===
| |
| Ihre Konfiguration lässt sich mittels folgendem Befehl verifizieren, welcher per <tt>mdadm</tt> eine Test-Mail generiert und an die angegebene Adresse versendet:
| |
| mdadm --monitor --test --oneshot /dev/md0
| |
|
| |
| Weiterhin sollten Sie noch sicherstellen, dass die Datei <tt>/etc/cron.daily/mdadm</tt> folgende Zeile enthält, welche für das tägliche Monitoring des RAIDs zuständig ist:
| |
| exec --monitor --scan --oneshot
| |
|
| |
| == Software-RAID auflösen ==
| |
|
| |
| Um ein Software-RAID aufzulösen können folgende Befehle verwendet werden. Falls es sich dabei um die System-Partitionen handelt, sollte dazu das [https://docs.hetzner.com/de/robot/dedicated-server/troubleshooting/hetzner-rescue-system/ Rescue-System] gebootet werden.
| |
|
| |
| mdadm --stop /dev/md0
| |
| mdadm --stop /dev/md1
| |
| mdadm --stop /dev/md2
| |
| mdadm --remove /dev/md0
| |
| mdadm --remove /dev/md1
| |
| mdadm --remove /dev/md2
| |
|
| |
| Danach können die Laufwerke wieder normal formatiert werden (zb. mit ext4):
| |
| mkfs.ext4 /dev/sda
| |
| mkfs.ext4 /dev/sdb
| |
|
| |
| Das Ergebnis kann mittels..
| |
| cat /proc/mdstat
| |
| ...und...
| |
| fdisk -l
| |
| überprüft werden. Das Software-RAID sollte nun verschwunden sein
| |