Debian Linux Raid nachträglich aufbauen

Eine Platte in einem Raid 1 Verbund ist defekt und wird ausgetauscht. Als Austauschplatte erhält man eine jungfräuliche Festplatte, die nun wieder in das Raid-System eingebunden werden muss. Wie binde ich eine Ersatz-Festplatte unter Debian Linux in das System ein?
Feststellen der Begebenheiten
In einem Raid 1 Verbund (Mirroring) ist wenigstens eine Festplatte immer mit den korrekten Daten bestückt. Nach einem Austausch der defekten Platte müssen also die Daten wieder auf diese gespielt werden und dsa Raid aktuell geschaltet werden. Normalerweise kein Hexenwerk, allerdings ist ein Reboot von nöten.
Zunächst muss aber fest gestellt werden, welche Platte nun die neue und welche Platte die alte mit den Daten ist.
Hierzu benutzt man den Befehl fdisk
# fdisk -l -c
und die Ausgabe könnte so aussehen:
Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0347b93a Device Boot Start End Blocks Id System /dev/sda1 * 1 13 102400 fd Linux raid autodetect /dev/sda2 13 536 4194304 82 Linux swap / Solaris /dev/sda3 536 60802 484088856 fd Linux raid autodetect Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System Disk /dev/md0: 104 MB, 104845312 bytes 2 heads, 4 sectors/track, 25597 cylinders Units = cylinders of 8 * 512 = 4096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/md0 doesn't contain a valid partition table Disk /dev/md1: 495.7 GB, 495705800704 bytes 2 heads, 4 sectors/track, 121021924 cylinders Units = cylinders of 8 * 512 = 4096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/md1 doesn't contain a valid partition table Disk /dev/dm-0: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/dm-0 doesn't contain a valid partition table Disk /dev/dm-1: 107.4 GB, 107374182400 bytes 255 heads, 63 sectors/track, 13054 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/dm-1 doesn't contain a valid partition table
Interessant hier ist zu sehen, dass auf der Festplatte /dev/sda die Partitionen vorhanden sind, Festplatte /dev/sdb ist leer. Somit ist die neue Festplatte identifiziert – /dev/sdb.
Demnach sollte die Raid-Ausgabe ähnlich aussehen:
# cat /proc/mdstat
Ausgabe
Personalities : [raid1] md1 : active raid1 sda3[0] 484087696 blocks super 1.2 [2/1] [U_] md0 : active raid1 sda1[0] 102388 blocks super 1.2 [2/2] [U_] unused devices: <none>
Partitionstabelle auf die neue Festplatte übertragen
Damit die neue Festplatte in den Raid-Verbund aufgenommen werden kann, muss sie die selben Partitionsinformationen beinhalten, wie es die derzeit aktuelle Festplatte tut.
Es müssen also zunächst die Partitionsinformationen übertragen werden:
# sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Da nun die Festplatte über Partitionen verfügt, sollten hier gleich die Boot-Informationen installiert werden, damit von der Platte auch gebootet werden kann.
# grub-install --no-floppy /dev/sdb # update-grub /dev/md0
Danach kann der Server neu gestartet werden
# shutdown -r now
Nun ist der Server mit 2 gleich gestalteten Festplatten ausgestattet und die Daten können gesynct werden.
Raid aufbauen – Datensynchronisation starten
Dies ist der letzte Schritt, der auch am längsten dauert. Die Daten müssen nun von der ersten Platte auf die 2. kopiert werden.
Hierzu bindet man einfach die zweite Platte in das Raid-System ein, die Synchronisation erfolgt dann automatisch.
Wichtig anzumerken ist bei diesem Punkt:
- erhöhte Festplattenaktivität, es müssen alle Daten kopiert werden
- ein Reboot startet die Synchronisation von vorn
Zum einbinden der neuen Festplatte in das bestehende Raid-System
# mdadm /dev/md0 -a /dev/sdb1 # mdadm /dev/md1 -a /dev/sdb3
Nun startet die Synchronisation von alleine.
Zu beobachten ist das unter dem mdstat
# cat /proc/mdstat