Zum Inhalt springen

Linux/RAID/Wartung: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „:Linux:“ durch „/Linux/“
K Textersetzung - „line>“ durch „line copy>“
 
(59 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=Software-RAID überwachen=
'''Linux/RAID/Wartung''' - Wartung eines Linux Software Raid
 
*Eine Kurzzusammenfassung für alle RAIDs erhält man mittels
 
# cat /proc/mdstat
 
*Eine Beispielausgabe eines Systems mit mehreren RAID-Verbünden ohne Ausfälle:


== Beschreibung ==
== Überwachung ==
; Software-RAID überwachen
System mit mehreren RAID-Verbünden ohne Ausfälle
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo cat /proc/mdstat
<syntaxhighlight lang="bash" line copy>
  Personalities : [raid6] [raid5] [raid4] [raid1] [linear] [multipath] [raid0] [raid10]
  Personalities : [raid6] [raid5] [raid4] [raid1] [linear] [multipath] [raid0] [raid10]
  md1 : active raid1 sde5[0] sdf5[1]
  md1 : active raid1 sde5[0] sdf5[1]
      195114936 blocks super 1.2 [2/2] [UU]
195114936 blocks super 1.2 [2/2] [UU]


  md0 : active raid1 sdf1[1] sde1[0]
  md0 : active raid1 sdf1[1] sde1[0]
      242676 blocks super 1.2 [2/2] [UU]
242676 blocks super 1.2 [2/2] [UU]


  md2 : active raid6 sdg1[4] sdh1[5] sdi1[6] sdj1[7] sda1[0] sdd1[3] sdb1[1] sdc1[2]
  md2 : active raid6 sdg1[4] sdh1[5] sdi1[6] sdj1[7] sda1[0] sdd1[3] sdb1[1] sdc1[2]
      2930304000 blocks super 1.2 level 6, 512k chunk, algorithm 2 [8/8] [UUUUUUUU]
2930304000 blocks super 1.2 level 6, 512k chunk, algorithm 2 [8/8] [UUUUUUUU]
 
</syntaxhighlight>
*Das Beispiel zeigt zwei RAID 1 (md0 und md1) mit je zwei Partitionen und ein RAID 6 (md2) mit 8 Partitionen.
 
*In der jeweils zweiten Zeile wird am Ende in eckigen Klammern der Zustand der einzelnen Partitionen angezeigt, wobei ein U bedeutet, dass das jeweilige Gerät in Ordnung (up) ist.
*Ausführliche Informationen zu einem RAID-Device liefert:
 
# mdadm --detail /dev/md0
 
=Hotspare hinzufügen=
 
*Ein RAID kann Ersatzplatten vorhalten und diese beim Ausfall einer anderen Datenträger automatisch als Ersatz nutzen.
 
*Solche Platten werden als Hotspares, oft auch einfach nur Spare, bezeichnet.
 
*Um eine Platte als Spare zu nutzen, muss diese zunächst entsprechend partitioniert werden.


*Danach kann diese zum Verbund hinzugefügt werden, hier am Beispiel des eingänglichen beschriebenen RAID 5 und einer neuen Partition /dev/sdi1:
Das Beispiel zeigt zwei RAID 1 (md0 und md1) mit je zwei Partitionen und ein RAID 6 (md2) mit 8 Partitionen
* In der jeweils zweiten Zeile wird am Ende in eckigen Klammern der Zustand der einzelnen Partitionen angezeigt, wobei ein U bedeutet, dass das jeweilige Gerät in Ordnung (up) ist


# mdadm /dev/md0 --add /dev/sdi1
; Ausführliche Informationen
Ausführliche Informationen zu einem RAID-Device liefert
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo mdadm --detail /dev/md0
</syntaxhighlight>


*Falls nun eine Partition ausfallen sollte, startet automatisch ein Rebuild, die Spare-Partition wird dabei aktiviert und als Ersatz für die ausgefallene Partition genutzt.
== Hotspare ==
; Hotspare hinzufügen
Ein RAID kann Ersatzplatten vorhalten und diese beim Ausfall einer anderen Datenträger automatisch als Ersatz nutzen
* Solche Platten werden als Hotspares, oft auch einfach nur Spare, bezeichnet
* Um eine Platte als Spare zu nutzen, muss diese zunächst entsprechend partitioniert werden


=Details ermitteln=
Danach kann diese zum Verbund hinzugefügt werden, hier am Beispiel des eingänglichen beschriebenen RAID 5 und einer neuen Partition /dev/sdi1:
<syntaxhighlight lang="bash" highlight="1" line copy>
mdadm /dev/md0 --add /dev/sdi1
</syntaxhighlight>


*Dieses Beispiel zeigt eine ausgefallene Platte in einem RAID 6.
Falls nun eine Partition ausfallen sollte, startet automatisch ein Rebuild, die Spare-Partition wird dabei aktiviert und als Ersatz für die ausgefallene Partition genutzt


== Details ==
; Details ermitteln
Dieses Beispiel zeigt eine ausgefallene Platte in einem RAID 6
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo cat /proc/mdstat
  Personalities : [raid6] [raid5] [raid4] [raid1] [linear] [multipath] [raid0] [raid10]
  Personalities : [raid6] [raid5] [raid4] [raid1] [linear] [multipath] [raid0] [raid10]
  md2 : active raid6 sdj1[7] sdi1[6] sdh1[5] sdg1[4] sdd1[3] sda1[0] sdb1[1] sdc1[2]
  md2 : active raid6 sdj1[7] sdi1[6] sdh1[5] sdg1[4] sdd1[3] sda1[0] sdb1[1] sdc1[2]
      3418688000 blocks super 1.2 level 6, 512k chunk, algorithm 2 [9/8] [UUUUUUUU_]
3418688000 blocks super 1.2 level 6, 512k chunk, algorithm 2 [9/8] [UUUUUUUU_]
 
  unused devices: <none>
  unused devices: <none>
</syntaxhighlight>


*In diesem Fall wurde das fehlerhafte Gerät bereits automatisch entfernt.
In diesem Fall wurde das fehlerhafte Gerät bereits automatisch entfernt
 
*Genauere Details, u.a. den Namen des defekten Geräts kann mit mdadm ermittelt werden.
 
# mdadm --detail /dev/md2
 
=Datenträger wechseln=
 
Achtung!
Bei einem RAID 0 äußert sich der Ausfall einer Platte im Totalausfall des gesamten RAID- Verbunds.
Das RAID 0 kann daher nicht mit den folgenden Anweisungen repariert werden, sondern muss neu aufgesetzt werden und die hoffentlich vorhandene Datensicherung eingespielt werden.
 
*Ist das defekte Gerät (hier im Beispiel /dev/sdk1) ermittelt, kann der entsprechende Datenträger ausgetauscht werden.


*Falls der Kernel das Gerät noch nicht aus dem Verbund entfernt hat (d.h. es wird beim Befehl mdadm --detail noch aufgeführt), muss es zunächst aus dem Verbund entfernt werden.
Genauere Details, u.&nbsp;a.&nbsp;den Namen des defekten Geräts kann mit mdadm ermittelt werden
<syntaxhighlight lang="bash" highlight="1" line copy>
mdadm --detail /dev/md2
</syntaxhighlight>


  # mdadm /dev/md2 --remove /dev/sdk1
== Datenträger wechseln ==
; Achtung
<blockquote>
  Bei einem RAID 0 äußert sich der Ausfall einer Platte im Totalausfall des gesamten RAID- Verbunds
Das RAID 0 kann daher nicht mit den folgenden Anweisungen repariert werden, sondern muss neu aufgesetzt werden und die hoffentlich vorhandene Datensicherung eingespielt werden
</blockquote>


*Nun kann die entsprechende Platte gewechselt werden.
Ist das defekte Gerät (hier im Beispiel /dev/sdk1) ermittelt, kann der entsprechende Datenträger ausgetauscht werden


*Ist eine entsprechende Austauschplatte eingebaut, muss diese zunächst partitioniert werden.
Falls der Kernel das Gerät noch nicht aus dem Verbund entfernt hat (d.&nbsp;h.&nbsp;es wird beim Befehl mdadm --detail noch aufgeführt), muss es zunächst aus dem Verbund entfernt werden
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo mdadm /dev/md2 --remove /dev/sdk1
</syntaxhighlight>


*Die neue Partition muss mindestens die gleiche Anzahl an Sektoren aufweisen, wie die bereits genutzten Partitionen.
Nun kann die entsprechende Platte gewechselt werden
* Ist eine entsprechende Austauschplatte eingebaut, muss diese zunächst partitioniert werden
* Die neue Partition muss mindestens die gleiche Anzahl an Sektoren aufweisen, wie die bereits genutzten Partitionen
* Von einer bestehenden Platte erhält man die Sektorenzahl der Partitionen (hier am Beispiel von /dev/sda) mittels:
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo parted /dev/sda u s print
</syntaxhighlight>


*Von einer bestehenden Platte erhält man die Sektorenzahl der Partitionen (hier am Beispiel von /dev/sda) mittels:


# parted /dev/sda u s print 
Ist die neue Platte entsprechend partitioniert, wird die neue Partition zum RAID-Verbund hinzugefügt (hier am Beispielaustausch von /dev/sdk1 in /dev/md2):
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo mdadm /dev/md2 --add /dev/sdk1
</syntaxhighlight>


Im Hintergrund beginnt nun ein Rebuild, aus den noch vorhandenen Partitionen, wird also der Inhalt für die neue Partition berechnet und geschrieben
* Je nach RAID-Level und Größe dauert ein Rebuild mehrere Stunden bis Tage
* Das System darf währenddessen neu gestartet oder heruntergefahren werden
* Ein Systemabsturz kann jedoch zu Datenverlust führen.
*  Manchmal lässt sich der Vorgang beschleunigen


*Ist die neue Platte entsprechend partitioniert, wird die neue Partition zum RAID-Verbund hinzugefügt (hier am Beispielaustausch von /dev/sdk1 in /dev/md2):
; Hinweis
<blockquote>
Wurden Partitionen einer Platte von verschiedenen RAIDs genutzt, dann kann es vorkommen, dass eine verwendete Datenträger teilweise defekt ist und sich beispielsweise die Partition von md0 im Status [U_] befindet, während alle anderen im Status [UU] sind
</blockquote>


# mdadm /dev/md2 --add /dev/sdk1
In diesem Fall müssen diese mit dem Befehl
<syntaxhighlight lang="bash" highlight="1" line copy>
mdadm /dev/mdX --fail /dev/sdXY
</syntaxhighlight>


* ...alle einzeln in den Modus [U_] versetzt werden


== Controller-Fehler ==


*Im Hintergrund beginnt nun ein Rebuild, aus den noch vorhandenen Partitionen, wird also der Inhalt für die neue Partition berechnet und geschrieben.
In Einzelfällen kann es vorkommen, dass aufgrund eines defekten Netzteils (oder Controller) ein RAID nicht mehr funktionsfähig ist
 
*Je nach RAID-Level und Größe dauert ein Rebuild mehrere Stunden bis Tage.
 
*Das System darf währenddessen neu gestartet oder heruntergefahren werden.
 
*Ein Systemabsturz kann jedoch zu Datenverlust führen. Manchmal lässt sich der Vorgang beschleunigen.
 
 
Hinweis:
Wurden Partitionen einer Platte von verschiedenen RAIDs genutzt, dann kann es vorkommen, dass eine verwendete Datenträger teilweise defekt ist und sich z.B. die Partition von md0 im Status [U_] befindet, während alle anderen im Status [UU] sind.
 
*In diesem Fall müssen diese mit dem Befehl...
 
 
# mdadm /dev/mdX --fail /dev/sdXY
 
 
*...alle einzeln in den Modus [U_] versetzt werden.
 
=Controller-Fehler=
 
In Einzelfällen kann es vorkommen, dass aufgrund eines defekten Netzteils (oder Controller) ein RAID nicht mehr funktionsfähig ist.


In so einem Fall liegt oft kein Schaden an den Datenträger vor und das Problem kann mit der folgenden Vorgehensweise behoben werden:
In so einem Fall liegt oft kein Schaden an den Datenträger vor und das Problem kann mit der folgenden Vorgehensweise behoben werden:


==RAID stoppen==
=== RAID stoppen ===
 
<syntaxhighlight lang="bash" highlight="1" line copy>
# mdadm --stop /dev/md0
sudo mdadm --stop /dev/md0
 
</syntaxhighlight>
==RAID manuell zusammenfügen==
*Das RAID muss manuell wieder zusammengefügt werden, dabei ist es wichtig, die letzte funktionierende Konfiguration zu verwenden.
 
*Bei dem o.g. Beispiel, ein RAID 5 mit 4 Partitionen, bei dem zwei Datenträger wegen Controller-Defekt ausgestiegen sind, müssen die ersten zwei Partitionen verwendet werden, da sie bis zum Ausfall noch zusammen aktiv waren.
 
==RAID reaktivieren==
*Nun reaktiviert man das Array mit:
 
# mdadm --assemble /dev/md0 /dev/sde1 /dev/sdf1 --force
 
==Weitere Partitionen wieder in den Verbund aufnehmen==
*Die weiteren Partitionen können nun mit:
 
# mdadm --re-add /dev/md0 /dev/sdg1 /dev/sdh1
 
*wieder in den Verbund aufgenommen werden.
 
=RAID erweitern=
 
*Falls zum Beispiel der Speicherplatz eines RAIDs nicht mehr ausreicht, kann man es durch weitere Datenträger bzw. Partitionen erweitern.
 
*Dies gilt allerdings nur für ein RAID 1, 5 oder 6. Das RAID darf während des Vorgangs eingebunden sein.


*Die neue Partition muss zunächst wie oben beschrieben als Hotspare hinzugefügt werden.  
=== RAID zusammenfügen ===
; RAID manuell zusammenfügen
* Das RAID muss manuell wieder zusammengefügt werden, dabei ist es wichtig, die letzte funktionierende Konfiguration zu verwenden
* Bei dem o.&nbsp;g.&nbsp;Beispiel, ein RAID 5 mit 4 Partitionen, bei dem zwei Datenträger wegen Controller-Defekt ausgestiegen sind, müssen die ersten zwei Partitionen verwendet werden, da sie bis zum Ausfall noch zusammen aktiv waren


*Danach kann das RAID um das neue Laufwerk erweitert werden:
=== RAID reaktivieren ===
**Das RAID neu aufbauen, um somit den neuen Speicherplatz nutzen zu können:
Nun reaktiviert man das Array mit
# mdadm --add /dev/md0 /dev/sdd1
<syntaxhighlight lang="bash" highlight="1" line copy>
# mdadm --grow --raid-devices=5 /dev/md0 --backup-file=/tmp/md0.bak
sudo mdadm -A /dev/md2
</syntaxhighlight>


*Die Option raid-devices gibt dabei die Anzahl der Geräte an, aus denen das RAID nach der Erweiterung bestehen soll.
oder


*In der mittels backup-file angegebenen Datei werden kritische Bereiche gesichert (typischerweise einige wenige MiB).
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo mdadm --assemble /dev/md2 /dev/sde1 /dev/sdf1 --force
</syntaxhighlight>


*Falls das System während der Erweiterung abstürzt, kann die Erweiterung später mittels...
=== Partitionen aufnehmen ===
; Partitionen in den Verbund aufnehmen
Die weiteren Partitionen können nun mit
* wieder in den Verbund aufgenommen werden


# mdadm /dev/md0 --continue --backup-file=/tmp/md0.bak
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo mdadm --re-add /dev/md0 /dev/sdg1 /dev/sdh1
</syntaxhighlight>


*...fortgesetzt werden.
== RAID erweitern ==
Falls zum Beispiel der Speicherplatz eines RAIDs nicht mehr ausreicht, kann man es durch weitere Datenträger bzw.&nbsp;Partitionen erweitern
* Dies gilt allerdings nur für ein RAID 1, 5 oder 6.
* Das RAID darf während des Vorgangs eingebunden sein


Die Sicherungsdatei darf nicht auf dem zu erweiternden RAID liegen!
Die neue Partition muss zunächst wie oben beschrieben als Hotspare hinzugefügt werden
*Die Verwendung von backup-file ist zwar nicht zwingend notwendig, wird aber dringend empfohlen.
* Danach kann das RAID um das neue Laufwerk erweitert werden:
*Das Dateisystem muss noch erweitert werden, damit der neu entstandene Speicherplatz genutzt werden kann.
*Das Dateisystem sollte dabei, wenn möglich, nicht eingehangen sein.
*Bei ext-Dateisystemen muss außerdem vorher eine Überprüfung durchgeführt werden.
*Am Beispiel von ext4:


    # umount /dev/md0           # Das Dateisystem aushängen
; RAID neu aufbauen
    # fsck.ext4 -f /dev/md0     # Die Prüfung erzwingen, selbst wenn vor Kurzem geprüft wurde
Das RAID neu aufbauen, um somit den neuen Speicherplatz nutzen zu können
    # resize2fs /dev/md0       # Das Dateisystem auf Maximalgröße erweitern
<syntaxhighlight lang="bash" highlight="1-2" line copy>
    # mount /dev/md0            # Das Dateisystem wieder einhängen
sudo mdadm --add /dev/md0 /dev/sdd1
sudo mdadm --grow --raid-devices=5 /dev/md0 --backup-file=/tmp/md0.bak
</syntaxhighlight>


*Die mdadm.conf sollte noch auf den aktuellen Stand gebracht werden (evtl. alte Einträge löschen).
Die Option raid-devices gibt dabei die Anzahl der Geräte an, aus denen das RAID nach der Erweiterung bestehen soll
* In der mittels backup-file angegebenen Datei werden kritische Bereiche gesichert (typischerweise einige wenige MiB)


*Der Status lässt sich wieder jederzeit einsehen.
Falls das System während der Erweiterung abstürzt, kann die Erweiterung später mittels
<syntaxhighlight lang="bash" highlight="1" line copy>
sudo mdadm /dev/md0 --continue --backup-file=/tmp/md0.bak
</syntaxhighlight>
...fortgesetzt werden


=weitere Artikel zum Thema=
Die Sicherungsdatei darf nicht auf dem zu erweiternden RAID liegen!
* Die Verwendung von backup-file ist zwar nicht zwingend notwendig, wird aber dringend empfohlen
* Das Dateisystem muss noch erweitert werden, damit der neu entstandene Speicherplatz genutzt werden kann
* Das Dateisystem sollte dabei, wenn möglich, nicht eingehangen sein
* Bei ext-Dateisystemen muss außerdem vorher eine Überprüfung durchgeführt werden


[[Linux:Software-RAID:Fehlerbehebung|Linux:Software-RAID:Fehlerbehebung]]
; Beispiel ext4
<syntaxhighlight lang="bash" highlight="1-4" line copy>
sudo umount /dev/md0 # Das Dateisystem aushängen
sudo fsck.ext4 -f /dev/md0 # Die Prüfung erzwingen, selbst wenn vor Kurzem geprüft wurde
sudo resize2fs /dev/md0 # Das Dateisystem auf Maximalgröße erweitern
sudo mount /dev/md0 # Das Dateisystem wieder einhängen
</syntaxhighlight>


[[RAID:Komplexe Aufgaben|RAID:Komplexe Aufgaben]]
Die mdadm.conf sollte noch auf den aktuellen Stand gebracht werden (evtl.&nbsp;alte Einträge löschen)
* Der Status lässt sich wieder jederzeit einsehen


[[Linux:Software-RAID|Linux:Software-RAID]]
<noinclude>


[[Linux:Software-RAID:Vorbereitung|Linux:Software-RAID:Vorbereitung]]
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/Linux/RAID}}


[[Linux:Software-RAID:Anlegen|Linux:Software-RAID:Anlegen]]
=== Links ===
==== Weblinks ====
# https://wiki.ubuntuusers.de/Software-RAID
# https://www.thomas-krenn.com/de/wiki/Linux_Software_RAID


=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]


[[Kategorie/Linux/Software-RAID]]
</noinclude>

Aktuelle Version vom 11. Mai 2025, 13:42 Uhr

Linux/RAID/Wartung - Wartung eines Linux Software Raid

Beschreibung

Überwachung

Software-RAID überwachen

System mit mehreren RAID-Verbünden ohne Ausfälle

sudo cat /proc/mdstat
<syntaxhighlight lang="bash" line copy>
 Personalities : [raid6] [raid5] [raid4] [raid1] [linear] [multipath] [raid0] [raid10]
 md1 : active raid1 sde5[0] sdf5[1]
 195114936 blocks super 1.2 [2/2] [UU]

 md0 : active raid1 sdf1[1] sde1[0]
 242676 blocks super 1.2 [2/2] [UU]

 md2 : active raid6 sdg1[4] sdh1[5] sdi1[6] sdj1[7] sda1[0] sdd1[3] sdb1[1] sdc1[2]
 2930304000 blocks super 1.2 level 6, 512k chunk, algorithm 2 [8/8] [UUUUUUUU]

Das Beispiel zeigt zwei RAID 1 (md0 und md1) mit je zwei Partitionen und ein RAID 6 (md2) mit 8 Partitionen

  • In der jeweils zweiten Zeile wird am Ende in eckigen Klammern der Zustand der einzelnen Partitionen angezeigt, wobei ein U bedeutet, dass das jeweilige Gerät in Ordnung (up) ist
Ausführliche Informationen

Ausführliche Informationen zu einem RAID-Device liefert

sudo mdadm --detail /dev/md0

Hotspare

Hotspare hinzufügen

Ein RAID kann Ersatzplatten vorhalten und diese beim Ausfall einer anderen Datenträger automatisch als Ersatz nutzen

  • Solche Platten werden als Hotspares, oft auch einfach nur Spare, bezeichnet
  • Um eine Platte als Spare zu nutzen, muss diese zunächst entsprechend partitioniert werden

Danach kann diese zum Verbund hinzugefügt werden, hier am Beispiel des eingänglichen beschriebenen RAID 5 und einer neuen Partition /dev/sdi1:

mdadm /dev/md0 --add /dev/sdi1

Falls nun eine Partition ausfallen sollte, startet automatisch ein Rebuild, die Spare-Partition wird dabei aktiviert und als Ersatz für die ausgefallene Partition genutzt

Details

Details ermitteln

Dieses Beispiel zeigt eine ausgefallene Platte in einem RAID 6

sudo cat /proc/mdstat
 Personalities : [raid6] [raid5] [raid4] [raid1] [linear] [multipath] [raid0] [raid10]
 md2 : active raid6 sdj1[7] sdi1[6] sdh1[5] sdg1[4] sdd1[3] sda1[0] sdb1[1] sdc1[2]
 3418688000 blocks super 1.2 level 6, 512k chunk, algorithm 2 [9/8] [UUUUUUUU_]

 unused devices: <none>

In diesem Fall wurde das fehlerhafte Gerät bereits automatisch entfernt

Genauere Details, u. a. den Namen des defekten Geräts kann mit mdadm ermittelt werden

mdadm --detail /dev/md2

Datenträger wechseln

Achtung

Bei einem RAID 0 äußert sich der Ausfall einer Platte im Totalausfall des gesamten RAID- Verbunds Das RAID 0 kann daher nicht mit den folgenden Anweisungen repariert werden, sondern muss neu aufgesetzt werden und die hoffentlich vorhandene Datensicherung eingespielt werden

Ist das defekte Gerät (hier im Beispiel /dev/sdk1) ermittelt, kann der entsprechende Datenträger ausgetauscht werden

Falls der Kernel das Gerät noch nicht aus dem Verbund entfernt hat (d. h. es wird beim Befehl mdadm --detail noch aufgeführt), muss es zunächst aus dem Verbund entfernt werden

sudo mdadm /dev/md2 --remove /dev/sdk1

Nun kann die entsprechende Platte gewechselt werden

  • Ist eine entsprechende Austauschplatte eingebaut, muss diese zunächst partitioniert werden
  • Die neue Partition muss mindestens die gleiche Anzahl an Sektoren aufweisen, wie die bereits genutzten Partitionen
  • Von einer bestehenden Platte erhält man die Sektorenzahl der Partitionen (hier am Beispiel von /dev/sda) mittels:
sudo parted /dev/sda u s print


Ist die neue Platte entsprechend partitioniert, wird die neue Partition zum RAID-Verbund hinzugefügt (hier am Beispielaustausch von /dev/sdk1 in /dev/md2):

sudo mdadm /dev/md2 --add /dev/sdk1

Im Hintergrund beginnt nun ein Rebuild, aus den noch vorhandenen Partitionen, wird also der Inhalt für die neue Partition berechnet und geschrieben

  • Je nach RAID-Level und Größe dauert ein Rebuild mehrere Stunden bis Tage
  • Das System darf währenddessen neu gestartet oder heruntergefahren werden
  • Ein Systemabsturz kann jedoch zu Datenverlust führen.
  • Manchmal lässt sich der Vorgang beschleunigen
Hinweis

Wurden Partitionen einer Platte von verschiedenen RAIDs genutzt, dann kann es vorkommen, dass eine verwendete Datenträger teilweise defekt ist und sich beispielsweise die Partition von md0 im Status [U_] befindet, während alle anderen im Status [UU] sind

In diesem Fall müssen diese mit dem Befehl

mdadm /dev/mdX --fail /dev/sdXY
  • ...alle einzeln in den Modus [U_] versetzt werden

Controller-Fehler

In Einzelfällen kann es vorkommen, dass aufgrund eines defekten Netzteils (oder Controller) ein RAID nicht mehr funktionsfähig ist

In so einem Fall liegt oft kein Schaden an den Datenträger vor und das Problem kann mit der folgenden Vorgehensweise behoben werden:

RAID stoppen

sudo mdadm --stop /dev/md0

RAID zusammenfügen

RAID manuell zusammenfügen
  • Das RAID muss manuell wieder zusammengefügt werden, dabei ist es wichtig, die letzte funktionierende Konfiguration zu verwenden
  • Bei dem o. g. Beispiel, ein RAID 5 mit 4 Partitionen, bei dem zwei Datenträger wegen Controller-Defekt ausgestiegen sind, müssen die ersten zwei Partitionen verwendet werden, da sie bis zum Ausfall noch zusammen aktiv waren

RAID reaktivieren

Nun reaktiviert man das Array mit

sudo mdadm -A /dev/md2

oder

sudo mdadm --assemble /dev/md2 /dev/sde1 /dev/sdf1 --force

Partitionen aufnehmen

Partitionen in den Verbund aufnehmen

Die weiteren Partitionen können nun mit

  • wieder in den Verbund aufgenommen werden
sudo mdadm --re-add /dev/md0 /dev/sdg1 /dev/sdh1

RAID erweitern

Falls zum Beispiel der Speicherplatz eines RAIDs nicht mehr ausreicht, kann man es durch weitere Datenträger bzw. Partitionen erweitern

  • Dies gilt allerdings nur für ein RAID 1, 5 oder 6.
  • Das RAID darf während des Vorgangs eingebunden sein

Die neue Partition muss zunächst wie oben beschrieben als Hotspare hinzugefügt werden

  • Danach kann das RAID um das neue Laufwerk erweitert werden:
RAID neu aufbauen

Das RAID neu aufbauen, um somit den neuen Speicherplatz nutzen zu können

sudo mdadm --add /dev/md0 /dev/sdd1
sudo mdadm --grow --raid-devices=5 /dev/md0 --backup-file=/tmp/md0.bak

Die Option raid-devices gibt dabei die Anzahl der Geräte an, aus denen das RAID nach der Erweiterung bestehen soll

  • In der mittels backup-file angegebenen Datei werden kritische Bereiche gesichert (typischerweise einige wenige MiB)

Falls das System während der Erweiterung abstürzt, kann die Erweiterung später mittels

sudo mdadm /dev/md0 --continue --backup-file=/tmp/md0.bak

...fortgesetzt werden

Die Sicherungsdatei darf nicht auf dem zu erweiternden RAID liegen!

  • Die Verwendung von backup-file ist zwar nicht zwingend notwendig, wird aber dringend empfohlen
  • Das Dateisystem muss noch erweitert werden, damit der neu entstandene Speicherplatz genutzt werden kann
  • Das Dateisystem sollte dabei, wenn möglich, nicht eingehangen sein
  • Bei ext-Dateisystemen muss außerdem vorher eine Überprüfung durchgeführt werden
Beispiel ext4
sudo umount /dev/md0 # Das Dateisystem aushängen
sudo fsck.ext4 -f /dev/md0 # Die Prüfung erzwingen, selbst wenn vor Kurzem geprüft wurde
sudo resize2fs /dev/md0 # Das Dateisystem auf Maximalgröße erweitern
sudo mount /dev/md0 # Das Dateisystem wieder einhängen

Die mdadm.conf sollte noch auf den aktuellen Stand gebracht werden (evtl. alte Einträge löschen)

  • Der Status lässt sich wieder jederzeit einsehen


Anhang

Siehe auch

Links

Weblinks

  1. https://wiki.ubuntuusers.de/Software-RAID
  2. https://www.thomas-krenn.com/de/wiki/Linux_Software_RAID