zyrusthc-linux.no-ip.org

A Linux Fan Page .... Shellscripts , Mohaa - Cod2 - Battlefield2 - CS - CSS - ET Webinterface ......

Logo zyrusthc-linux.no-ip.org
Freitag, 14. August 2020
  • Benutzer

  • Besucher
    Heute:
    58
    Gestern:
    98
    Gesamt:
    333.644
  • Benutzer & Gäste
    3668 Benutzer registriert, davon online: 46 Gäste
 
Start Einloggen Einloggen Die Mitglieder Das Foren-Team Suchfunktion
1932 Beiträge & 333 Themen in 13 Foren
Keine neuen Beiträge, seit Ihrem letzten Besuch am 14.08.2020 - 17:06.
  Login speichern
Forenübersicht » Linux » Howto + Tips und Tricks » HOWTO: Bestehendes Linux auf Software Raid migrieren (VERALTET mkraid!)

vorheriges Thema   nächstes Thema  
1 Beitrag in diesem Thema (offen) Seiten (1): (1)
Autor
Beitrag
Zyrusthc ist offline Zyrusthc  
HOWTO: Bestehendes Linux auf Software Raid migrieren (VERALTET mkraid!)
Administrator
712 Beiträge - Alter Hase
Zyrusthc`s alternatives Ego
Diese Howto beschreibt wie ihr eurer bestehendes Linux auf einen Softwareraid migriert.

Wer kennt das nicht und hat seid Ewigkeiten sein Linux produktiv am laufen und hat so viel Arbeit reingsteckt das man es gar nicht aufzählen könnte. Ständige Backups machen und immer hoffen wenn sich ne Platte verabschiedet das das Backup aktuell ist.
Diesen Problem kann man entgegenwirken und zwar mit einem Softwareraid , auf den man einfach sein laufendes System migriert.

  • 1. Vorbereiten
  • 2. Backup
  • 3. RAID erstellen
  • 4. Daten in das Raid spiegeln
  • 5. System anpassen/Bootbar machen
  • 6. Reboot und Test




1. Vorbereiten


Als erstes muss der Kernel auf eurem bestehenden System angepasst werden , damit er auch Softwareraid versteht!
Es müssen folgende Optionen aktiviert werden:

Device Drivers --->Multi-device support (RAID and LVM) --->
[ * ] Multiple devices driver support (RAID and LVM)
<*> RAID support
<M> RAID-0 (striping) mode
<M> RAID-1 (mirroring) mode

Raid0 und Raid1 können auch fest [ * ] eingebunden werden, fals ihr keine initrd verwendet!

Anmerkung: In diesem Howto wird Raid0 und 1 gleichzeitig verwendet, da wir die /tmp Partition in einen Raid0 legen. Der Grund dafür ist , da ja unter /tmp bekanntlich keine wichtigen Daten liegen und man von Performance in diesem Verzeichnis bei einigen Anwendungen profitieren kann.

Ist die Konfiguration des Kernels erledigt, muss dieser neu übersetzt werden. Also...
make && make install && lilo
Das war es auch schon zum Thema Kernel , startet euren Rechner jetzt neu und bootet mit dem soeben erstellten Kernel.

Startet das System nun einwandfrei, können wir mit dem nächsten Schritt weiter machen
und zwar den Anlegen der /etc/raidtab. Installiert das Paket mdadm und erstellt die /etc/raidtab.
Die Datei könnte folgendermassen aussehen:
Zitat
# Raid für /
raiddev /dev/md0 #Das spätere Raiddevice

raid-level 1 # Der Raidlevel hier ein mirror "spiegel"
nr-raid-disks 2 #Beteiligte Festplatten
nr-spare-disks 0 #keine Reservefestplatte
chunk-size 4 #Blockgrösse
persistent-superblock 1 #Block mit Informationen über das raid
device /dev/hda1 #1. Festplatte
raid-disk 0
device /dev/hdb1 #2. Festplatte
raid-disk 1

raiddev /dev/md1 #Das spätere Raiddevice für /tmp

raid-level 0 # Der Raidlevel hier ein stripset "zusammengefasst"
nr-raid-disks 2 #Beteiligte Festplatten
nr-spare-disks 0 #keine Reservefestplatte
chunk-size 4 #Blockgrösse
persistent-superblock 1 #Block mit Informationen über das raid
device /dev/hda2 #1. Festplatte
raid-disk 0
device /dev/hdb2 #2. Festplatte
raid-disk 1



Jetzt muss nur noch die zweite Platte für unseren RAID vorbereitet werden.
Dazu müssen wir uns erst einmal einen Überblick über die Partitionstabelle verschaffen.
Dies kann man mit dem Befehl : fdisk -l erledigen.
In meinen Fall sieht die Ausgabe so aus:
Zitat
Platte /dev/hda: 160.0 GByte, 160041885696 Byte
255 Köpfe, 63 Sektoren/Spuren, 19457 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes

Gerät boot. Anfang Ende Blöcke Id System
/dev/hda1 * 1 764 6136798+ fd Linux raid autodetect
/dev/hda2 765 19257 118158043+ fd Linux raid autodetect
/dev/hda3 19258 19457 1630566 82 Linux Swap / Solaris


Platte /dev/hdb: 160.0 GByte, 160041885696 Byte
255 Köpfe, 63 Sektoren/Spuren, 19457 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes

Gerät boot. Anfang Ende Blöcke Id System
/dev/hdb1 * 1 764 6136798+ fd Linux raid autodetect
/dev/hdb2 765 19257 118158043+ fd Linux raid autodetect
/dev/hdb3 19258 19457 1630566 82 Linux Swap / Solaris


Die Partitionierung kann man mit fdisk erledigen , weil man dort die Möglichkeit hat die genaue Blockgrösse der Partitionen anzugeben!
Wichtig ist noch das du den Partitonstype auf 0xfd besser
gesagt "Linux raid autodetect" setzt und bei der ersten Platte von der gebootet werden soll das Bootflag aktivierst.

Wenn eure zweite Platte im Raid /dev/hdb ist, ruft ihr fdisk /dev/hdb auf , danach drückt ihr einfach mal m . Jetzt bekommt ihr die Hilfe angezeigt, hier legt ihr nun auf /dev/hdb genau die selbe Partitionstabelle an wie auf /dev/hda. Als Partitionstype muss 0xfd angeben werden!
Wichtig ist auch das die Partitionen exact die selbe Blockgrösse haben. Bei zwei gleiche Platten sollte es keine Probleme geben , bei zwei verschiedenen Festplatten müsst ihr die Blockgrösse der kleineren Annehmen. Erstellt auch eine zweite SWAP Partition genau wie auf /dev/hda, später ordnen wir den SWAP Partitionen die gleiche Priorität zu , damit haben sie eine RAID0 Ähnliche Performance.

So viel zu den Vorbereitungen.


2. Backup


Da immer etwas schief gehen kann, ist es empfohlen ein Backup des gesamten Systems zu machen!
Benötigt wird eine sepaerate Festplatte.

Hierbei stehen die Werkzeuge rsync oder dd_rescue zur Verfügung.
Angenommen /dev/hda ist eure Systemplatte und /dev/sda eine Backupfestplatte die über USB angeschlossen ist...
Der Befehl für dd_rescue könnte dann folgendermassen aussehen:
dd_rescue /dev/hda /dev/sda
Macht ein komplettes Backup von /dev/hda nach /dev/sda inclusive MBR.
Wobei zu bemerken ist das die Zielplatte bei dieser Methode grösser sein muss!

Beim Backup mittels rsync muss zunächst erst einmal die Backupfestplatte in das Dateisystem eingebunden werden. Erst dann können wir die Daten kopieren.
mkdir /mnt/backup && mount -t ext3 /dev/sda1 /mnt/backup
Wenn die Backupfestplatte eingebunden wurde , dann können wir die Daten syncronisieren:
rsync -av / /mnt/backup --exclude /mnt/backup --exclude /proc --exclude /sys && umount /mnt/backup

Je nach Grösse der Systemfestplatte wird dieser Vorgang einige Zeit in Anspruch nehmen.
dd_rescue brauch wesentlich länger als rsync, weil dd_rescue Die gesamten Blöcke überträgt. Ich empfehle die rsync Variante!


3. RAID erstellen


Wenn das Backup erledigt ist, legen wir den Raid an mit:
mkraid /dev/md0

Den Status kannst du mit cat /proc/mdstat verfolgen.
So jetzt noch den Raid für /tmp
mkraid /dev/md1

Wenn der Prozess abgeschlossen ist kannst du das Filesystem auf dem Raid einrichten.
mkfs -t ext3 /dev/md0
mkfs -t ext3 /dev/md1


So nun ist dein Raid fertig erstellt und einsatzbereit.


4. Daten in das Raid spiegeln


Jetzt können wir das System von /dev/hda auf den Raid kopieren.
Das erledigen wir wieder mit rsync.
mkdir /mnt/raiddisk
mount -t ext3 /dev/md0 /mnt/raiddisk
rsync -av / /mnt/raiddisk --exclude /mnt/raiddisk --exclude /proc --exclude /tmp --exclude /sys



5. System anpassen/Bootbar machen


Wenn die Daten dann alle rübergeschaufelt sind editierst du die /mnt/raiddisk/etc/fstab und /mnt/raiddisk/etc/mtab passe hier die Devices an , sprich aus hda wird md0.
Bsp. /mnt/raiddisk/etc/fstab
Zitat
/dev/md0 / ext3 defaults 1 1
/dev/md1 /tmp ext3 defaults 1 2
# SWAP
/dev/hda5 swap swap defaults,pri=1 0 0
/dev/hdb5 swap swap defaults,pri=1 0 0


Hier seht ihr auch gleich den Eintrag der für die SWAP Partitionen gemacht werden muss.

Da sich die Devices zum Booten ja geändert haben, muss die /mnt/raiddisk/etc/lilo.conf auch angepasst werden.
Wichtig ist dabei das "boot=/dev/hda" angeben wird und nicht "boot=/dev/md0"!
Hier mal eine Beispielkonfiguration für den lilo:
Zitat
default="261713"
boot=/dev/hda
map=/boot/map
install=menu
keytable=/boot/de-latin1-nodeadkeys.klt
menu-scheme=wb:bw:wb:bw
compact
prompt
nowarn
timeout=100
message=/boot/message
image=/boot/vmlinuz-2.6.17.13
label="261713"
root=/dev/md0
initrd=/boot/initrd-2.6.17.13.img
append="splash=silent"
vga=794
read-only


Man beachte "root=/dev/md0" und "boot=/dev/hda".
Danach kann der Lilo neu in den MBR geschrieben werden.
mkdir /mnt/raiddisk/tmp /mnt/raiddisk/sys /mnt/raiddisk/proc
chroot /mnt/raiddisk
lilo
exit
umount /mnt/raiddisk



6. Reboot und Test


reboot
So wenn jetzt alles glatt gelaufen ist müsste das System von dem Raid booten.

Sollte das System nicht starten, könnt ihr gerne in meinen Forum einen Thread erstellen in dem wir versuchen dann das Problem zu lösen.

Ansonsten nach dem Reboot den Status des Raid dringent mit cat /proc/mdstat prüfen.
Zitat
Personalities : [raid1] [raid0]

md0 : active raid1 hda1[0] hdb1[1]
6136704 blocks [2/2] [UU]

md1 : active raid0 hda2[0] hdb2[1]
9204992 blocks 4k chunks

unused devices: <none>


Das [UU] zeigt das beide Platten im Raid laufen wenn eine Ausfällt sieht`s so aus [_U] oder [U_].

So ich hoffe dieses Howto hilft den ein oder anderem.

Greeez Oli



Greeez Oli


Dieser Beitrag wurde 11 mal editiert, zuletzt von Zyrusthc am 18.01.2009 - 02:48.
Beitrag vom 15.11.2006 - 08:06
Diesen Beitrag melden   nach weiteren Posts von Zyrusthc suchen Zyrusthc`s Profil ansehen Zyrusthc eine E-Mail senden Zyrusthc eine private Nachricht senden Zyrusthc`s Homepage besuchen Zyrusthc zu Ihren Freunden hinzufügen zum Anfang der Seite
Baumstruktur - Signaturen verstecken
Seiten (1): (1) vorheriges Thema   nächstes Thema

Gehe zu:  
Es ist / sind gerade 0 registrierte(r) Benutzer und 46 Gäste online. Neuester Benutzer: Scarez
Mit 3855 Besuchern waren am 02.09.2011 - 14:07 die meisten Besucher gleichzeitig online.
Aktive Themen der letzten 24 Stunden | Foren-Topuser
 
Seite in 0.27354 Sekunden generiert


Diese Website wurde mit PHPKIT WCMS erstellt
PHPKIT ist eine eingetragene Marke der mxbyte GbR © 2002-2009