3-Ware 9750-4i RAID 1 – Plattentausch und Filesystem auf 4 TB vergrößern

3-Ware 9750-4i RAID 1 – Plattentausch und Filesystem auf 4 TB vergrößern

Der Unterschied zwischen günstigen und teuren RAID Controller Karten stellt sich oft erst in seltenen Momenten dar – aktuell bei mir gerade mal wieder bei einem 3-Ware RAID Controller Modell 9750-4i. Ein RAID 1 aus zwei 1 TB Platten wurde etwas zu klein und musste durch größere 4 TB Platten erweitert werden.

In der Theorie wäre meine Vorgehensweise so:
– Die 1. Platte mit 4 TB Platte tauschen
– RAID Rebuild mit neuer Platte starten und abwarten
– Die 2. Platte mit 4 TB Platte tauschen
– RAID Rebuild erneut starten und abwarten
– anschließend Volumes und Filesysteme vergrößern und fertig…

In der Praxis scheitert das Ganze beim Vergößeren der RAID1 Unit – der 3Ware Controller kennt zwar theoretisch einen Befehl dafür, das klappt aber wohl nur wenn man z.B: bei einem RAID5 eine weitere Platte ins System hängen will. Mit einem RAID1 funktioniert es schlicht so nicht. Die Hilfe von tw_cli ist nicht wirklch sehr hilfreich, oder wer kann mit „[disk=<p:-p..>]“ wirklich viel anfangen?

Der Trick mit dem es funktioniert ist das komplette RAID1 zu zerpflücken und ein Laufwerk zu entfernen bevor die Daten auf die neue Platte kopiert werden:

  1. RAID1 Array aufteilen. Es entstehen zwei Arrays mit dem gleichen Inhalt und der gleichen Größe.
    tw_cli /c0/u1 migrate type=single
    

    Die bisherige Partitionen /dev/sd* welche auf das RAID1 Einheit /u1 zeigen bleiben erhalten. Man bekommt eine neue Einheit /u2 welche aus der zweiten Platte besteht.

  2. Jetzt können wir die zweite Platte/Einheit /u2 komplett vom Controller entfernen und anschließend die größere Platte einbauen.
    tw_cli /c0/u2 del
    
  3. Die neue Platte im Controller anlegen, das geht im BIOS oder im fertig gestartetem System mit folgendem Befehl:
    tw_cli /c0 add type=single disk=1
    

    die neue Platte/Einheit /u2 sollte jetzt die volle Plattengröße anzeigen (4 TB).

  4. Jetzt werden alle Daten von der alten Platte /u1 auf die neue /u2 übertragen

    dd if=/dev/sdc of=/dev/sdd bs=64k
    

    Wer in einer zweiten Konsole watch -n60 "kill -USR1 $(pgrep ^dd)" startet, bekommt alle 60 Sekunden beim dd Befehl den aktuellen Fortschritt angezeigt. Bei 183 MB/s waren meine knapp 1TB an Daten in etwas mehr als 1,5 Stunden kopiert. Von den gelegentlichen Neustarts die nötig sind ist dies die einzige längere Downtime die man hinnehmen muss.

  5. Die verbliebene alte Festplatte kann jetzt aus dem Controller entfernt und durch die neue 4TB Platte ersetzt werden.
    tw_cli /c0/u1 del
    
  6. Und jetzt kommt der spannende Teil, wir erstellen aus einer Platte die noch nicht in Verwendung ist und der 4 TB Platte mit den Daten /u2 ein neues RAID
    tw_cli /c0/u2 migrate type=raid1 disk=1
    

    Der Rebuild sollte jetzt in Kürze starten:

    watch „tw_cli /c0 show“

    beobachtet den Rebuild Prozess…

  7. Anschließend muss man nur noch die Partitionen vergrößern

    parted /dev/sdd resizedisk 3 2000G

    Vergrößert die 3. Partition wobei die 2000G nicht die Größe sondern den Endpunkt der Partition darstellen!

  8. Und das Filesystem anpassen

    resize2fs -p /dev/sdd3

    Der Parameter „-p“ vergrößert das Filesystem auf das maximal mögliche – je nach Größe der Partition.

Ich hoffe dem einen oder anderen Hilft diese Anleitung weiter, mir wird sie künftig auf jeden Fall etwas Zeit einsparen! 🙂

Schreibe einen Kommentar

Menü schließen