| Startseite |
| Was ist Linux? |
| Wir über uns |
| Tips & Tricks |
| Forum |
| Events |
| Bildergalerien |
| Downloads |
| Glossar |
| Links |
| Kontakt |
| Impressum |
| Einrichtung SW-RAID unter openSUSE 11.0 |
|
|
| Geschrieben von A. Dammers | |
| Samstag, 09. August 2008 | |
|
Es soll ein Linux-Rechner mit einem Software-RAID, bestehend aus zwei SCSI-Festplatten , unter openSUSE 11.0 aufgebaut werden. Suse unterstützt zwar prinzipiell Software-RAIDs, nur kann es Probleme mit dem Bootmanager geben. Lilo kann, genauso wie GRUB, mit RAID-Arrays umgehen, jedoch nicht mit Raid-Arrays in der Version 1.0, so wie sie openSUSE ab Version 10.3 installiert. Also blieb hier nur GRUB als Bootmanager übrig. Beim Installieren von GRUB mit dem openSUSE-Installer gab es zwar keine Fehlermeldung, aber der Rechner bootete anschliessend einfach nicht vom RAID-Array. Das Problem wurde wie folgt umgangen: Beide Festplatten wurden gleich partitioniert: (kleiner Bootbereich, Root-, Backup- und Swap-Partition.) Bis auf den Bootbereich wurden alle in RAID1-Arrays zusammengefasst. Der Bootmanager GRUB wurde in den Bootbereich (kein RAID !) der ersten Festplatte installiert. Erst später wurden beide Bootbereiche händisch auch zu einem RAID1-Array zusammengefasst. Somit ergibt sich folgende (Anfangs-)Partionierung: Anfangs-Partitionierung /dev/md1 500MB F MD Raid swap /dev/md0 4,5GB F MD Raid (ext3) / /dev/md2 3,2GB F MD Raid (ext3) /backup /dev/sda 9,1GB IBM dev/sda1 101,9MB F Linux Native (ext2) /boot /dev/sda5 4,5GB Linux RAID /dev/md0 /dev/sda6 502MB Linux RAID /dev/md1 /dev/sda7 3,2GB Linux RAID /dev/md2 /dev/sdb 9,1GB IBM /dev/sdb1 101,9MB F Linux Native (ext2) /dev/sdb5 4,5GB Linux RAID /dev/md0 /dev/sdb6 502MB Linux RAID /dev/md1 /dev/sdb7 3,2GB Linux RAID /dev/md2 Und so soll es später aussehen: /dev/md1 500MB F MD Raid swap /dev/md0 4,5GB F MD Raid (ext3) / /dev/md2 3,2GB F MD Raid (ext3) /backup /dev/md3 100MB F MD Raid (ext3) /boot /dev/sda 9,1GB IBM DNES-309170 /dev/sda1 101,9MB Linux RAID /dev/md3 /dev/sda5 4,5GB Linux RAID /dev/md0 /dev/sda6 502MB Linux RAID /dev/md1 /dev/sda7 3,2GB Linux RAID /dev/md2 /dev/sdb 9,1GB IBM DNES-309170 /dev/sdb1 101,9MB Linux RAID /dev/md3 /dev/sdb5 4,5GB Linux RAID /dev/md0 /dev/sdb6 502MB Linux RAID /dev/md1 /dev/sdb7 3,2GB Linux RAID /dev/md2 ------------------------------------------------------------------------------------------------------------------------------------------------- Nachfolgend wird beschrieben, welche Schritte zu umwandeln von sda1 und sdb1 in ein RAID1-Array nötig sind, nachdem das Betriebssystem openSUSE 11 installiert wurde. a) Sichern von /boot per dump nach z.B. /backup mit: # dump -0f /backup/boot.dmp /boot (alternativ geht es auch mit tar o.ä.) b) System ID der Partitionen sda1 und sdb1 ändern: # umount /boot ( !!! ganz wichtig !!! ) # fdisk /dev/sda > t RET > 1 RET > fd RET ( Partition aktiv setzen ) > a RET > 1 RET > w RET ( !!!Vorsicht!!! Schreibt die Tabelle! ) # ( Dasselbe natürlich mit der zweiten Platte, hier /dev/sdb ) c) RAID-Set erzeugen: # mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sd[ab]1 # mke2fs /dev/md3 d) Partition in /etc/fstab eintragen: (/dev/sda1 muss gelöscht werden) /dev/md3 /boot ext2 acl,user_xattr 1 2 e) Dump zurücksichern: # mount /boot # cd /boot # /sbin/backup -a -o -x -f /backup/boot.dmp f) GRUB auf beide MBRs schreiben: # umount /boot # grub > find /grub/stage1 hd(0,0) hd(1,0) > device (hd0) /dev/sda > root (hd0,0) > setup (hd0) ( hier erscheint die Ausgabe, dass Grub sich geschrieben hat ) > device (hd0) /dev/sdb > root (hd0,0) > setup (hd0) ( dito für die zweite Platte ) > quit # g) UUID des RAID-Arrays (nicht das von der Partition) in mdadm.conf eintragen: echo "ARRAY /dev/md3 level=raid1" >> /etc/mdadm.conf # mdadm --detail --scan | grep md3 | cut -f5 '-d ' >> /etc/mdadm.conf in mdadm.conf die letzten beiden Zeilen zusammenfügen so dass es so aussieht: ARRAY /dev/md3 level=raid1 UUID=e941580b:6a808de0:a0545fa4:ed10508e h) in /boot/grub/menu.lst unter Kernel=... den Parameter "resume=/dev/md1" tauschen gegen "noresume". Anschl. ausführen von "grub-install /dev/sda" und "grub-install /dev/sdb" Sonst ist md1 (Swap) für Suspend Snapshots reserviert und deshalb nicht als Swap benutzbar. D.h. #mdadm --query --detail /dev/md1 -> sollte unter State: „active“ und nicht „active,not Started“ anzeigen und #cat /proc/mdstat -> sollte nicht: „active(auto-read-only)“ anzeigen. i) rebooten # shutdown -r now Anschliessend sollte man für Überwachungszwecke folgende Dienste aktivieren: (unter Yast2 -> System->SystemServices(Runlevel)) - mdadmd (Starten unter 3+5) - smartd (Starten unter 2+3+5) Mit einem Editor kann man in /etc/mdadm.conf noch eine Mailadresse anfügen, an die eine Fehlermeldung geschickt wird, sobald es Probleme mit dem Raid-Array gibt: z.B.: MAILADDR root@localhost Das gleiche gilt für das SelfMonitoringTool „Smart“, also die Festplattenüberwachung. Mit einem Editor hängt man an die gewünschte Zeile in /etc/smartd.conf folgendes an „-m root@localhost -M test“ z.B. DEVICESCAN -m root@localhost -M test Damit GRUB weiss, von welcher Partition/Platte er im Fehlerfall alternativ booten soll, kann man die zweite Festplatte als Fallback einstellen: D.h. mit einem Editor in der Datei /boot/grub/menu.lst einen Eintrag für die zweite FP machen. z.B.: # Standard Booten von hd0 default 0 # Fallback auf hd1, falls hd0 scheitert fallback 1 # Booten disc 0 kernel title openSUSE 11.0 - 2.6.25.9-0.2 Festplatte 1 root (hd0,0) kernel /vmlinuz-2.6.25.9-0.2-pae root=/dev/md0 noresume splash=silent showopts vga=0x314 initrd /initrd-2.6.25.9-0.2-pae # Booten disc 1 kernel title openSUSE 11.0 - 2.6.25.9-0.2 Festplatte 2 root (hd1,0) kernel /vmlinuz-2.6.25.9-0.2-pae root=/dev/md0 noresume splash=silent showopts vga=0x314 initrd /initrd-2.6.25.9-0.2-pae Anschliessend muss noch folgendes ausgeführt werden: "grub-install /dev/sda" und "grub-install /dev/sdb" Siehe auch: http://web.archive.org/web/20040329235257/ http://www.tu-harburg.de/schiffbau/rzt/docs/raid.shtml |