Software-Raid-1 nachträglich unter Ubuntu 6.10 einrichten

Viele kennen das Problem: Das System ist eingerichtet und nachträglich will man ein RAID-1 einrichten. Hier eine kurze Anleitung.

Zuerst muss der Linux-Software-Raid-Manager installiert werden:

# apt-get install mdadm

Wir vergewissern uns, dass beide Festplatten (in diesem Fall /dev/sda und /dev/sdb) von fdisk erkannt wurden:

# fdisk -l

Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 512 = 8225280 bytes

Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 512 = 8225280 bytes

Für jede Partition, die ins Raid aufgenommen werden soll, muss der Typ auf „Linux raid Autodetect„ geändert werden:

Dies nehmen wir nun auf der ersten Platte vor:

# fdisk /dev/sda

Folgendes ist einzugeben

Command (m for help): t
Partition number (1-8): 1
Hex code (type L to list codes): fd

Dies wird für alle Partitionen wiederholt. (in unserem Fall nur 1 und 5 –> „/“ und „swap“) Das Ganze sollte dann nachher wie folgt aussehen:

#fdisk -l


Device Boot Start End Blocks Id System
/dev/sda1 1 30024 241167748+ fd Linux raid autodetect
/dev/sda2 30025 30401 3028252+ 5 Extended
/dev/sda5 30025 30401 3028221 fd Linux raid autodetect

Mit abschließender Eingabe von “w” wird die Konfiguration geschrieben.

Nun wird die Partitionstabelle der ersten Platte auf die zweite Platte kopiert:

# sfdisk -d /dev/sda | sfdisk /dev/sdb

Dies muss dann noch einmal kontrolliert werden:

# fdisk –l

Device Boot Start End Blocks Id System
/dev/sda1 1 30024 241167748+ fd Linux raid autodetect
/dev/sda2 30025 30401 3028252+ 5 Extended
/dev/sda5 30025 30401 3028221 fd Linux raid autodetect

Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 30024 241167748+ fd Linux raid autodetect
/dev/sdb2 30025 30401 3028252+ 5 Extended
/dev/sdb5 30025 30401 3028221 fd Linux raid autodetect

Wenn beide Platten nun übereinstimmen, kann das Array erstellt werden: Das Array wird, zum Schutz vor Datenverlust während der Installation, vorerst nur auf sdb1 erstellt. Die andere Platte wird später erst eingebunden.

# mdadm -C /dev/.static/dev/md0 -l 1 -n 2 missing /dev/sdb1
# mdadm -C /dev/.static/dev/md1 -l 1 -n 2 missing /dev/sdb5

Formatieren

# mkfs.ext3 /dev/md0
# mkswap /dev/md1

Temporäre Mountpoints erstellen

# mkdir /mnt/src
# mkdir /mnt/dst

Ursprungssystem mounten:

# mount -o bind / /mnt/src

Das neue RAID-Array mounten:

# mount /dev/md0 /mnt/dst

Daten kopieren:

# rsync -avH –progress /mnt/src/ /mnt/dst/

Die Grub-Konfiguration anpassen

# vi /mnt/dst/boot/grub/menu.lst

Hier wird /dev/sda1 gegen /dev/md0 ausgetauscht.

title Ubuntu, kernel 2.6.17-10-386
root (hd0,0)
kernel /boot/vmlinuz-2.6.17-10-386 root=/dev/md0 ro quiet splash locale=de_DE
initrd /boot/initrd.img-2.6.17-10-386
quiet
savedefault
boot

Die fstab-Konfiguration anpassen:

1. (sda1 gegen md0 austauschen)

/etc/fstab

/dev/md0 / ext3 defaults,errors=remount-ro 0 1

2. Die Swap-Partition wird über eine UUID in die Fstab eingebunden. Diese ist über

# blkid oder # lshal

herauszufinden. Die neue ID muss dann in den entsprechenden Bereich eingetragen werden.

# /dev/md1
UUID=XXXXXXXXXXXXXXXXXXXX none swap sw 0 0

Daraufhin beide Konfigdateien in das alte System kopieren:

cp -dp /mnt/etc/fstab /etc/fstab
cp -dp /mnt/boot/grub/menu.lst /boot/grub

Neustarten, beten, dass alles klappt :-) und über ein # df kontrollieren, ob md0 eingehängt wurde:

root@kss:/# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/md0 237383680 766676 224558620 1% /
varrun 517924 120 517804 1% /var/run
varlock 517924 0 517924 0% /var/lock
procbususb 10240 80 10160 1% /proc/bus/usb
udev 10240 80 10160 1% /dev
devshm 517924 0 517924 0% /dev/shm
lrm 517924 18136 499788 4% /lib/modules/2.6.17-10-386/volatile

Daraufhin können die Partitionen der ersten Platte ebenfalls dem RAID hinzugefügt werden:

# mdadm –add /dev/md0 /dev/sda1
# mdadm –add /dev/md1 /dev/sda5

Status beobachten:

# watch cat /proc/mdstat

Das Duplizieren dauert ca. 80 Minuten, Status abwarten und das System laufen lassen!

3…2….1…und fertig ist das Raid.

2 Antworten zu “Software-Raid-1 nachträglich unter Ubuntu 6.10 einrichten”

  1. tom sagt:

    # mdadm -C /dev/.static/dev/md0 -l 1 -n 2 missing /dev/sdb1
    # mdadm -C /dev/.static/dev/md1 -l 1 -n 2 missing /dev/sdb5

    geht bei 7.10 nicht da werden die /dev/md0p1 schon erstellt??

    oder habe ich was falsch gemacht?

  2. max sagt:

    Toll! Leider hat mein Provider im Standardimage noch LILO drauf. Auf was muss ich bei LILO achten um beim reboot nicht in die Falle zu laufen?