Samstag, 10. August 2013

Installation eines Debian Servers mit Software Raid-1 im Degraded Mode

Problembeschreibung


Die Frage warum man einen Linux Server mit Software Raid-1im Vorfeld (während der Installation/Konfiguration) mit einen "degraded" Raid-1 installieren möchte ist mehr als berechtigt. Folgendes Szenario hat mich jedoch hierzu bewogen.
Ein Dell PowerEdge SC1435 sollte einen anderen Server ersetzen. Der alte Server wurde mit 2 Festplatten im Software Raid-1 Verbund betrieben. Der neue sollte ebenfalls 2 (jedoch grössere) Festplatten bekommen. Wer den Dell SC1435 kennt, der weiss das nur 2 SATA Anschlüsse vorhanden sind. Das Problem war nun: Wie bekomme ich die Daten von der alten Festplatte relativ problemlos auf die neue Festplatte?

Lösungsansatz

Während der Installation des Dell Systems wurden sowohl die neue als auch die alte Festplatte in den Server eingebaut. Somit waren alle SATA Kanäle belegt und beide Raids liegen zu dieser Zeit im degraded Modus (da jeweils eine Festplatte fehlte). Nun habe ich im Debian Installer (Wheezy) auf der neuen Festplatte (sda) ein Software Raid-1 konfiguriert. Hierzu habe ich die Festplatte nach Wunsch in 2 Partitionen (System/Daten sda1 -> "md0" und Swap sda2 -> "md1") partitioniert. Als Verwendung der Paritionen geben wir natürlich bei beiden Linux Software Raid an. Anschliessend konfigurieren wir das Software Raid mit 2 md Devices. Beim erzeugen der Devices geben wir an, das wir 2 Disks/Devices haben und keine Spar Disks. Nun soll man die Devices für den Verbund auswählen. Hier wählen wir für "md0" NUR "/dev/sda1" aus, keine weiteren! Dasselbe wiederholen wir dann für "md1" wo wir NUR "/dev/sda2" auswählen. Der Installer nimmt dies erstaunlicherweise ohne sich zu beschweren.
Anschliessend führen wir die Installation zu Ende und Konfigurieren unser System mit den benötigten Diensten. Irgendwann erreichen wir den Punkt wo wir die Daten von den alten System kopieren möchten. Hierzu mounten wir einfach die alte Festplatte (falls nicht bereits geschehen) und kopieren was wir benötigen. Nach dem erfolgreichen kopieren fahren wir das System herunter und tauschen die alte Festplatte gegen die 2. neue Festplatte. Nun müssen wir nur noch das Raid-1 neu bauen lassen.

Als erstes müssen wir hierzu auf der 2. Festplatte (/dev/sdb) eine völlig identische Partitionierung wie auf der ersten Festplatte (/dev/sda) herstellen. Hierfür kann man "sfdisk" verwenden.
sfdisk -d /dev/sda | sfdisk /dev/sdb
.
.
.
Successfully wrote the new partition table
Re-reading the partition table ...
.
.
Die Ausgabe ist ziemlich verbose und sollte irgendwo die Meldung beinhalten das die Partitionstabelle erfolgreich geschrieben wurde.

Als nächstes lassen wir uns sicherheitshalber mal den Raid Status einschliesslich der zugeordneten Partitionen anzeigen.
root@xx:~# cat /proc/mdstat
Personalities : [raid1]
md1 : active (auto-read-only) raid1 sda2[0]
      97980288 blocks super 1.2 [2/1] [U_]
     
md0 : active raid1 sda1[0]
      1855336256 blocks super 1.2 [2/1] [U_]
     
unused devices: <none>

Nun sehen wir das wir bei "md0" die Partition "sda1" enthalten ist, und wir als 2. Partition "sdb1" hinzufügen müssen (für "md1" ist dies "sdb2").


root@xx:~# mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: added /dev/sdb1
root@xx:~# mdadm --manage /dev/md1 --add /dev/sdb2
mdadm: added /dev/sdb2
Das System resynchronisiert nun das Raid Array, den Status hierzu können wir z.B. mit mdstat überprüfen.
root@xx:~# watch -n5 cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[2] sda2[0]
      97980288 blocks super 1.2 [2/1] [U_]
          resync=DELAYED
    
md0 : active raid1 sdb1[2] sda1[0]
      1855336256 blocks super 1.2 [2/1] [U_]
      [>....................]  recovery =  0.4% (8669312/1855336256) finish=276.1min speed=111432K/sec
    
unused devices: <none>

Referenzen:

  • http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html
  • http://www.howtoforge.com/replacing_hard_disks_in_a_raid1_array

Keine Kommentare:

Kommentar veröffentlichen