Linux software raid
Inhaltsverzeichnis
Voraussetzungen
- Verwenden Sie gleiche Festplatten!
- Laden Sie eine bootfähige Linux-CD herunter - z.B. die SystemResCD http://www.sysresccd.org/Download
Vorarbeiten
Booten von der SystemRescueCD.
Danach müssen die Festplatten partitioniert werden. Falls Partitionen bereits vorhanden sind, dann müssen die s.g. "Partitiontypes" auf "FD" angepasst werden. Dieser Typ definiert die Partition zum "RAID-Autodetect" Typ. Somit wird diese Partition als Teil eines RAID Verbundes beim booten vom Kernel erkannt. Dieses wird am besten mit "cfdisk" erledigt. I.d.R. wird ein RAID1 aufgesetzt, also ein voll gespiegelter Festplattenverbund. Das Festplattenlayout sollte man sich vorher überlegen, oder einfach das Standardlayout vom Zphone übernehmen.
Danach müssen die RAID-Sets aufgesetzt werden.
Wichtig ist, dass bei dieser Methode das RAID auf Partitionsebene gemacht wird! Beim den nachfolgenden Kommandos gehen alle Daten verloren!!!
Prüfen Sie ob beide Festplatten gleich partitioniert sind! Falls es nicht der Fall, holen Sie diese nach. Dieses kann auch mit cfdisk erledigt werden.
Raid einrichten
Das Software Raid unter Linux wird mit dem Kommando "mdadm" verwaltet. Diese schreibt die Raidsignaturen direkt auf die jeweiligen Partitionen.
Zum Anlegen der Raidsets gehen Sie wie folgt vor:
/dev/md0 - Bootpartition:
mdadm --create /dev/md0 --name=BOOT --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
/dev/md1 - Datenpartition:
mdadm --create /dev/md1 --name=DATA --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
Sie können den Verlauf des Arraybuilds mit folgendem Kommando überwachen
root@sysresccd /root % cat /proc/mdstat Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md1 : active raid1 sdb2[1] sda2[0] 243585472 blocks [2/2] [UU] [>....................] resync = 0.0% (2176/243585472) finish=1852.0min speed=2176K/sec md0 : active raid1 sdb1[1] sda1[0] 56128 blocks [2/2] [UU] unused devices: <none>
Formatieren
Nachdem die Arrays aufgebaut sind, können diese formatiert werden. Dieses kann auch bereits während des Arraybuilds passieren. Allerdings ist es besser die Dinge sequenziell zu machen...
/dev/md0 - Bootpartition:
mkfs.ext3 /dev/md0
/dev/md1 - Datenpartition:
mkfs.ext3 /dev/md1
Zphone installieren
Nachdem nun die formatierten Arrays zur Verfügung stehen, können diese gemountet und mit Daten bespielt werden. Wenn Sie eine SystemResCD verwenden gehen Sie wie folgt vor:
Dateisysteme einhängen:
mkdir /mnt/zphone mount /dev/md1 /mnt/zphone mkdir /mnt/zphone/boot mount /dev/md0 /mnt/zphone/boot
Zphone "zu Fuß" installieren:
Dieses setzt eine funktionierende Internetverbindung voraus!
cd /mnt/zphone wget http://dl.metasec.de/zphone_master_image_current.tar.bz2 tar --numeric-owner -xvjf /mnt/zphone/zphone_master_image_current.tar.bz2 -C /mnt/zphone
Bootmanager anpassen
Wichtig: Der jeweilige Bootkernel ist unter /mnt/zphone/boot zu prüfen. Dieses Beschreibung ist nur mit Beispieldaten verfasst
/etc/lilo.conf
lba32 boot=/dev/sda install=/boot/boot-menu.b map=/boot/map delay=20 timeout=20 prompt vga=normal default=ast image=/boot/vmlinuz-2.6.24 label=ast read-only root=/dev/md1 append="" initrd=/boot/initrd.img-2.6.24 image=/boot/vmlinuz-2.6.24 label=ast_rescue read-only root=/dev/md1 append="init S " initrd=/boot/initrd.img-2.6.24
fstab anpassen
/etc/fstab
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> /dev/md1 / ext3 defaults,errors=remount-ro 0 1 /dev/md0 /boot ext2 defaults 0 2 /dev/sda3 none swap sw 0 0 /dev/sdb3 none swap sw 0 0 proc /proc proc defaults 0 0
Bootmanager installieren
chroot /mnt/zphone /bin/bash mount /proc lilo umount /proc exit
Soweit der lilo beim installieren des Bootrecords keine Fehler ausgibt, können Sie mit "reboot" die Maschine neu booten. Entfernen Sie die CD und starten Sie von Festplatte...
Sonstige Anpassungen
udev network interfaces resolv.conf
Troubelshooting
http://gnu.linux-sysadmin.org/cms/show_article/5044.html
Es kann sein dass das Paket mdadm nicht vorhanden ist. Dieses stellt man spätestens beim booten fest :-> Dieses lässt sich einfach beheben, indem man im chroot ein
apt-get install mdadm
ausführt. Dabei werden auch neue initrd Dateien erzeugt. Deshalb muss der lilo nach dem Update der initrd ausgeführt werden!!!