Linux Software Raid Partitionstabelle spiegeln – sfdisk kann nicht mit GPT umgehen

Auf einem Server mit mehreren 3TB Platten hatte ich nach einem Festplattenausfall das Problem, das ich nicht wie gewohnt sfdisk nutzen konnte um die Partitionstabelle auf die neue Festplatte zu kopieren.

Nach einiger Recherche und probieren (unter anderem auch mit parted) bin ich auf sgdisk gestoßen, dieses kann mit GPT Partitionen und hat einen Befehl zum Kopieren der Partitionstabelle.

Hierzu ist dieser Befehl nötig (ACHTUNG: kopiert SDA auf SDF, hier werden keine Fehler verziehen):

sgdisk -R=/dev/sdf /dev/sda

Wenn die Platte im gleichen System genutzt werden soll, wie die Ursprungsplatte müssen noch neue GUID’s generiert werden:

sgdisk -G /dev/sdf

Danach wie gewohnt mit

mdadm --add /dev/md0 /dev/sdf1

die einzelnen Partionen den Verbünden zuordnen und Kaffee trinken gehen.

Viel Glück 😉

Ubuntu Server Raid 1 Plattentausch

espeichert. Dazu waren bisher 2 * Samsung 320GB SATA Platten eingbaut die per Linux Software Raid gespiegelt sind (Level 1). Nachdem die Kapatität langsam dem Ende zugeht und die Platten bereits 3 Jahre auf dem Buckel haben, habe ich mich zu 750 GB Seagate 24/7 Modellen entschieden.

Meine Vorgehensweise habe ich hier aufgeführt. ACHTUNG: Während dieses Vorgangs besteht natürlich keine doppelte Datensicherheit für das Raid 1 da nur eine der beiden Platten aktiv ist. Im Falle eines Fehlers hat man aber eine vollständige „Kopie“ des Laufwerks (ausgebaut)

 

     

  1. Server herunterfahren
  2.  

  3. Eine der beiden bestehenden Raid Platten ausbauen und stattdessen eine der neuen Platten einbauen
  4.  

  5. Server hochfahren (bei karmic wurde das degraded Raid 1 nicht automatisch gestartet, hierzu habe ich „mdadm –assemble –run /dev/md0 /dev/sda1“ verwendet)
  6.  

  7. mit fdisk auf der neuen Platte die Raid Partition(en) erstellen und den Typ „fd“ nicht vergessen
  8.  

  9. Ein neues Raid mit der neuen Platte bauen und eine der beiden Member als missing angeben:
    mdadm --create /dev/md1 --level 1 --raid-devices=2 missing /dev/sdb1
  10.  

  11. Nun per rsync oder cp oder wie auch immer die Daten von der alten Platte auf die neue kopieren/schieben
  12.  

  13. Server herunterfahren
  14.  

  15. Die alte Platte ausbauen und die 2te neue Platte hinzufügen
  16.  

  17. Server hochfahren und das Raid „reparieren“ („sfdisk -d /dev/sda |sfdisk /dev/sdb“ um die Partitiontabelle von sda auf sdb zu übertragen und „mdadm –assemble –run /dev/md0 /dev/sda1 /dev/sdb1“ verwendet)
  18.  

  19. Dann kann unter /proc/mdstat der Fortschritt des syncs betrachten („watch cat /proc/mdstat“ zeigt die Ausgabe alle 2 s). Man kann während des syncs schon auf die Daten zugreife, sollte das jedoch zumindest schreibend unterlassen:

    md0 : active raid1 sda1[2] sdb1[0]

    732571904 blocks [2/1] [U_]

    [==>………………]  recovery = 12.8% (94198720/732571904) finish=206.3min speed=51553K/sec

     

  20.  

  21. THAT’s IT xD
  22.