Archiv für 30. August 2006

30
Aug

Ubuntu Migration auf ein Software Raid 5

Man kann ohne grossen Aufwand eine existierende Ubuntu Installation auf ein Software Raid migrieren. Dies geht natürlich ohne Probleme auch mit anderen Linux Distributionen.

Ich wollte damit unbedingt meine wertvolle Musik- und Fotosammlung etwas sicherer machen, da ich doch einige Wochen damit verbracht habe, meine komplette CD Sammlung zu Digitalisieren und auch die Fotos würde ich nur ungerne verlieren.

Nach dem Einbau der neuen Platten (bei mir zwei neue SATA Harddisks) einfach von der Ubuntu Live CD Booten damit man nicht das laufende System migriert, was unter Umständen zu Datenverlust führen kann.

Als ersten müssen die neuen Harddisks richtig partitioniert werden. Am einfachsten geht das mit cfdisk. Meine neuen Platten sind /dev/sdb und /dev/sdc.

sudo cfdisk /dev/sdb

Ich habe mir eine Partition für /boot (/dev/sdb1), eine für Swap (/dev/sdb5) und eine für Root (/dev/sdb6) angelegt. Partitionstyp muss Linux raid autodetect (fd) sein.

Die Partitionstabelle kann nun einfache auf die andere Harddisk kopiert werden:

sudo sfdisk -d /dev/sdb > /tmp/part.txt
sudo sfdisk /dev/sdc < /tmp/part.txt

Jetzt sind die Platten für das Erstellen des Software Raid bereit.

sudo mknod /dev/md0 b 9 0
sudo mknod /dev/md1 b 9 1
sudo mknod /dev/md2 b 9 2
sudo mdadm --create /dev/md0 -n3 -l1 -f missing /dev/sdb1 /dev/sdc1
sudo mdadm --create /dev/md1 -n3 -l5 -f missing /dev/sdb5 /dev/sdc5
sudo mdadm --create /dev/md2 -n3 -l5 -f missing /dev/sdb6 /dev/sdc6
cat /proc/mdstat

Wichtig sind vor allem zwei Dinge: Die /boot Partition muss ein Raid 1 sein, damit Grub auf die Partition zugreifen kann und wir binden die dritte Disk noch nicht ein, da ja auf dieser noch das aktuelles System ist. Wir verwenden dazu einfach ‘missing’ anstelle ‘/dev/sdaX’.

Nun erstellen wir das Dateisystem…

sudo mkreiserfs /dev/md0
sudo mkswap /dev/md1
sudo mkreiserfs /dev/md2

… und mounten das Raid …

sudo mkdir -p /mnt/raid
sudo mount /dev/md2 /mnt/raid
sudo mkdir -p /mnt/raid/boot
sudo mount /dev/md0 /mnt/raid/boot
sudo swapon /dev/md1

… und kopieren unser System auf das Raid (Ich habe in dem Fall auch eine /boot und eine Root Partition) …

sudo mkdir -p /mnt/nonraid
sudo mount /dev/sda6 /mnt/nonraid
sudo mount /dev/sda1 /mnt/nonraid/boot
sudo cp -arvd /mnt/nonraid/* /mnt/raid

Nun haben wir eine Kopie auf das Raid kopiert und können das Booten vom Raid vorbereiten.

Wir passen nun /etc/fstab an, damit die Raid Devices benutzt werden.

sudo vim /mnt/raid/etc/fstab

und das sollte folgende Eintrage haben:

/dev/md0        /boot           reiserfs notail         0       1
/dev/md1        none            swap    sw              0       0
/dev/md2        /               reiserfs notail         0       1

Noch die Einträge für den Bootloader Grub anpassen…

> sudo vim /mnt/raid/boot/grub/menu.lst

und das Raid eintragen…

...
# kopt=root=/dev/md2 ro
...
kernel          /vmlinuz root=/dev/md2 ro quiet splash
initrd          /initrd.img
...

Natürlich muss nun Grub auch noch in den MBR der beiden neuen Platten kopiert werden.

sudo grub
grub> device (hd1) /dev/sdb
grub> root (hd1,0)
grub> setup (hd1)
grub> device (hd2) /dev/sdc
grub> root (hd2,0)
grub> setup (hd2)

Nun ist unser neues Sytsem bereit für den ersten Test! Also die Kiste neu Starten und nicht vergessen von einer der neuen Platten zu Booten. Bei mir ist das F8.

sudo reboot

Funktioniert das neue System einwandfrei, kann das alte System gelöscht und auch ins Raid eingebunden werden.
ACHTUNG: Ab hier wird das alte System gelöscht und es gibt kein Zurück mehr!

sudo sfdisk -d /dev/sdb > /tmp/part.txt
sudo sfdisk /dev/sda < /tmp/part.txt
sudo mkreiserfs /dev/sda1
sudo mkswap /dev/sda5
sudo mkreiserfs /dev/sda6
sudo mdadm --manage /dev/md0 -a /dev/sda1
sudo mdadm --manage /dev/md1 -a /dev/sda6
sudo mdadm --manage /dev/md2 -a /dev/sda6

Je nach Plattengrösse kann das Einbinden schon seine Zeit dauern. Man kann den Fortschritt mit

watch cat /proc/mdstat

verfolgen, was in etwas so aussieht:

Personalities : [raid1] [raid5]
md2 : active raid5 sda6[3] sdb6[1] sdc6[2]
301828992 blocks level 5, 64k chunk, algorithm 2 [3/2] [_UU]
[===================>.]  recovery = 95.3% (143906432/150914496) finish=3.5min speed=32710K/secmd1
: active raid5 sda5[0] sdb5[1] sdc5[2]
8787328 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]md0 : active raid1 sda1[0] sdb1[1] sdc1[2]
979840 blocks [3/3] [UUU]
unused devices:

Geschaft!! Nun werden alle Daten auf die drei Harddisks geschrieben, was zum einten den Speed erhöt und vor allem die Datensicherheit.

Wer aber seine Daten wirklich sicher haben will, sollte eine sporadische Sicherung auf eine separate (normalerweise nicht gemountete) Festplatte machen, da ein Raid keinen Schutz vor einem versehentlichen ‘rm -rf /’ bietet!




August 2006
M D M D F S S
    Sep »
 123456
78910111213
14151617181920
21222324252627
28293031  

Werbung


Buttonitis