|
|
(41 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| '''Linux/RAID''' - Datenträger zu logischen Laufwerken zusammenschließen | | '''Linux/[[RAID]]''' - Datenträger zu logischen Laufwerken zusammenschließen |
|
| |
|
| == Beschreibung == | | == Beschreibung == |
| ; Software-[[RAID]] | | ; 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
| |
|
| |
|
| === Partitionsgröße ===
| | 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 |
| Es werden nur Partitionen gleicher Größe verwendet, da sonst Speicherkapazitäten ungenutzt bleiben
| |
| * Hardware-RAID und Software-RAID machen beide das Gleiche
| |
| * Von Software-RAID spricht man, wenn das Zusammenwirken der Festplatten komplett softwareseitig organisiert wird
| |
|
| |
|
| 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
| | 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 |
| | |
| 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.
| |
| | |
| === Software-RAID ===
| |
| Von Software-RAID spricht man, wenn das Zusammenwirken der Festplatten '''komplett softwareseitig organisiert''' wird
| |
| * Auch der Begriff '''Host based RAID''' ist geläufig, da nicht das Speicher-Subsystem, sondern der eigentliche Computer die RAID-Verwaltung durchführt
| |
| * Die meisten modernen Betriebssysteme wie FreeBSD, OpenBSD, Apple macOS, HP HP-UX, IBM AIX, Linux, Microsoft Windows ab Windows NT oder SUN Solaris sind dazu in der Lage
| |
| * 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 (z. B. 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 | | * 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] | | * Ein Beispiel dafür ist das von Sun Microsystems entwickelte RAID-Z.[6] |
|
| |
|
| ; Pro
| | {| class="wikitable options big" |
| * Der Vorteil von Software-RAID ist, dass '''kein spezieller RAID-Controller benötigt''' wird
| | | Vorteile || |
| * Die '''Steuerung wird von der RAID-Software erledigt''', diese ist entweder schon Teil des Betriebssystems oder wird nachträglich installiert | | Der Vorteil von Software-RAID ist, dass kein spezieller RAID-Controller benötigt wird |
| * Dieser Vorteil '''kommt besonders bei der Disaster Recovery zum Tragen''', wenn der RAID-Controller defekt und nicht mehr verfügbar ist | | * 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 | | * Praktisch alle derzeit verfügbaren Software-RAID-Systeme benutzen die Festplatten so, dass diese auch ohne die spezifische Software ausgelesen werden können |
| | | |- |
| ; Contra
| | | Nachteile || |
| * Bei einem Software-RAID werden '''bei Festplattenzugriffen neben dem Hauptprozessor des Computers auch die System-Busse wie PCI stärker belaste'''t als bei einem Hardware-RAID
| | 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 leistungsschwachen CPUs und Bus-Systemen verringert dies deutlich die Systemleistung |
| * Bei leistungsstarken, wenig ausgelasteten Systemen ist dies belanglos | | * Bei leistungsstarken, wenig ausgelasteten Systemen ist dies belanglos |
Zeile 39: |
Zeile 27: |
| ** Dieses Problem lässt sich mit einer unterbrechungsfreien Stromversorgung für den gesamten PC vermeiden | | ** 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] | | ** 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 | | * 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 | | * 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 z. B. ZFS | | * Ausnahmen bilden hier Software-RAID mit Datenintegrität wie beispielsweise ZFS |
| * Unvollständige Speichervorgänge werden zurückgesetzt | | * Unvollständige Speichervorgänge werden zurückgesetzt |
| * Fehlerhafte Spiegeldaten werden erkannt und durch korrekte Spiegeldaten ersetzt | | * 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 | | * Es wird wohl beim Lesen eine Fehlermeldung geben, da die fehlerhafte oder alte Spiegelseite nicht mit dem aktuellen Block übereinstimmt |
| | |} |
|
| |
|
| == Status auslesen ==
| | <noinclude> |
| | |
| 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
| |
| | |
| == RAID hinzufügen ==
| |
| 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 ==
| |
| ; E-Mail-Benachrichtigung bei Ausfall einer Festplatte im Software-RAID
| |
| | |
| ; Voraussetzung
| |
| <blockquote>
| |
| Ein Mailserver Ihrer Wahl (z.B. [https://de.wikipedia.org/wiki/Sendmail Sendmail]) muss bereits installiert und konfiguriert sein.
| |
| </blockquote>
| |
| | |
| ; 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
| |
| | |
| == 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
| |
|
| |
|
| == Anhang == | | == Anhang == |
| === Siehe auch === | | === Siehe auch === |
| * [[RAID/SoftwareHardwareRAID]]
| | {{Special:PrefixIndex/Linux/RAID/}} |
| | |
| {{Special:PrefixIndex/{{BASEPAGENAME}}/}} | |
| | |
| === HowTo ===
| |
| # [[Linux/RAID/Vorbereitung]]
| |
| # [[Linux/RAID/Anlegen]]
| |
| # [[Linux/RAID/Wartung]]
| |
| # [[Linux/RAID/Fehlerbehebung]]
| |
| # [[Linux/RAID/Aufgaben]]
| |
|
| |
|
| === Links === | | === Links === |
| ==== Weblinks ==== | | ==== Weblinks ==== |
| # [https://docs.hetzner.com/de/robot/dedicated-server/raid/linux-software-raid/ https://docs.hetzner.com/de/robot/dedicated-server/raid/linux-software-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]
| |
|
| |
|
| [[Kategorie:Linux/RAID]] | | [[Kategorie:Linux/RAID]] |
|
| |
|
| </noinclude> | | </noinclude> |