Mylex Controller
Aus Gentoo Linux Wiki
| Laptops • Motherboards • Servers • Eingabegeräte • RAID Controller • TV Karten • Wireless • Andere Hardware • Andere Architekturen • alphabetischer Hardware Index |
Inhaltsverzeichnis |
Dieser Text behandelt die Installation von Mylex Controllern unter gentoo mit dem 2.6er Kernel. Eine Liste unterstützter Hardware befindet sich in der Datei README.DAC960 (http://glide.stanford.edu/lxr/source/Documentation/README.DAC960?v=linux-2.6.10) in den Kernelquellen.
[Bearbeiten] Controller einrichten
Je nach Firmware-Version und Ausstattung haben die Mylex-Controller ein BIOS oder ein BIOS plus ein Firmware RAID-Tool zum Einrichten, Konfigurieren und Überprüfen der Platten und/oder Arrays. Nimm Dir zuerst die Zeit, README.DAC960 zu lesen, um die Fähigkeiten der Controller und des DAC960-Treibers sowie den generellen Umgang mit beiden zu verstehen.
[Bearbeiten] Booten
Beim Booten wird die BIOS-Verson angezeigt, zusammen mit Array-/Platteininformationen und der Meldung "Press <ALT-M> for BIOS options". In diesem BIOS sind jedoch nur wenige Einstellungsmöglichkeiten, wie z.B. "BIOS on/off" oder "8GB BIOS Geometry on/off".
[Bearbeiten] RAID-Tool in die Firmware integriert
Je nach Modell erscheint beim Systemstart nach dem BIOS-Hinweis eine zweite Meldung, "Press <ALT-R> for RAID Configuration options" (U.a. DAC960PD und DAC960PDU). Hier kann die eigentliche RAID-Konfiguraton vorgenommen werden, und die Einstellungen auch auf eine DOS-formatierte Diskette gespeichert oder von ihr eingelesen werden, was für den späteren Gebrauch im Notfall absolut zu empfehlen ist!
[Bearbeiten] RAID-Tool nicht in die Firmware integriert
Hat der Controller keine RAID-Tools in der Firmware (ältere Controller und meist die, mit nur einem Flash-Baustein in den zwei Sockeln zwischen Slotblech und PCI-Kontaktleiste, z.B. der DAC960LB), so muß zum Erstellen, zur Verwaltung und Überprüfung von Arrays ein externes Programm, DACCF.EXE, verwendet werden.
Support und Downloads sind auf der LSI-Webseite erhältlich (LSI hat Mylex aufgekauft). Im Bereich "Downloads" das Produkt auswählen ("AcceleRAID xxx" oder "DAC960xx" z.B.), die aktuelle bzw. zum Controller passende DACCF.EXE holen, auf die Diskette kopieren, von der erstellten Floppy booten und DACCF.EXE ausführen. Das Tool bietet die selben Möglichkeiten wie das Tool in der Firmware der anderen Controller.
[Bearbeiten] Firmware-Versionen
Ein Wort zu den Firmware-Versionen: Bei den genannten Controllern mit nur einem Flash-Baustein ist bei Version 2.xx Ende, Firmware der Versionen 3.xx funktioniert nur mit "2-Flash-Controllern", siehe dazu auch unbedingt die in den Firmware-Downloads enthaltenen README-Dateien!
Z.B. die Version 3.52-0-2:
"This firmware code is for DACPU / DACPD / DACP-MY4 models (has 2 EEPROM chips) controller ONLY. DO NOT USE on model DAC-PL or in any OEM version of the controllers."
These flash utilities will not work with -MY3 model controllers. A -MY3 controller has version 2.x firmware and with only 1 EEPROM chip.
Ebenso ist bei den 3.xx-Versionen zwischen solchen zu unterscheiden, die nur auf Mainboards mit XBDA laufen, und solchen, die kein XBDA benötigen.
Generell ist absolut davon abzuraten, Compaq, Siemens und andere OEM-Versionen mit einer Mylex/LSI-Firmware zu flashen.
[Bearbeiten] Partitionen einrichten
Je System Drive sind bis zu sieben Partitionen ansprechbar. Diese vergleichsweise niedrige Zahl ist bereits frühzeitig beim Entwurf des RAID - und natürlich beim Layout der Partitionierung - zu berücksichtigen!
Sind mehr Partitionen nötig, etwa für eine große Applikation, so sind daher entsprechend mehr System Drives vorzusehen. fdisk wird niemanden daran hindern, etwa eine Partition c0d0p8 anzulegen -- nur gibt es dann keine Gerätedatei, um darauf zuzugreifen. Resultat: dieser Plattenplatz bleibt unbenutzbar.
Die Zählung bei c (Controler) und d (Disk) beginnt jeweils bei 0. Im Gegensatz dazu beginnt die Zählung bei p (Partition) bei 1.
/dev/rd/c0d0 - Controller 1, Drive 1 /dev/rd/c0d0p1 - Controller 1, Drive 1, Partition 1 ... /dev/rd/c0d0p4 - Controller 1, Drive 1, Partition 4 ... /dev/rd/c1d1p7 - Controller 2, Drive 2, Partition 7
Die /etc/fstab sieht dann z.B. folgendermaßen aus:
/dev/rd/c0d0p1 /boot ext3 noatime 0 2 /dev/rd/c0d0p4 / ext3 noatime 0 1 /dev/rd/c0d0p2 none swap sw 0 0 /dev/rd/c0d0p3 /var/log ext3 noatime 0 2
[Bearbeiten] Kernel konfigurieren und compilieren
[Bearbeiten] Kernel mit devfs
genkernel --menuconfig all
Folgende Kerneloptionen müssen ausgewählt werden:
Device Driver
Devices
<*> Mylex DAC960/DAC1100 PCI RAID Controller support
File Systems
Pseudo Filesystems
[*] /dev file system support (OBSOLUTE)
[*] Automatically mount at boot
[Bearbeiten] Kernel mit udev
genkernel --udev --menuconfig all
Der Parameter --udev sorgt dafür, daß die udev Unterstützung mit in die initrd-Datei eingebunden wird.
Nun noch die Mylex-Treiber aktivieren und devfs ausschalten. Folgende Kerneloptionen müssen dazu aus- bzw. abgewählt werden:
Device Driver
Devices
<*> Mylex DAC960/DAC1100 PCI RAID Controller support
File Systems
Pseudo Filesystems
File Systems
Pseudo Filesystems
[ ] /dev file system support (OBSOLUTE)
[ ] Automatically mount at boot
[Bearbeiten] Bootparameter
[Bearbeiten] Grub & Kernel mit devfs
In die grub.conf schreibe man dann:
title Kernel mit Mylexunterstützung (devfs) root (hd0,0) kernel /kernel-2.6.11-gentoo-r5 root=/dev/ram0 real_root=/dev/rd/host0/target0/part5 init=/linuxrc ramdisk_size=8192 initrd /initrd-2.6.11-gentoo-r5
Hier noch kurz den Aufbau von real_root erklären.
/dev/rd/host0/target0/disc (the volume) /dev/rd/host0/target0/part1 (partition) /dev/rd/host0/target0/part2 (partition) /dev/rd/host0/target0/part3 (partition)
[Bearbeiten] Grub & Kernel mit udev
In die grub.conf schreibe man dann:
title Kernel mit Mylexunterstützung (udev) root (hd0,0) kernel /kernel-2.6.16-gentoo-r9 root=/dev/ram0 real_root=/dev/rd/c0d0p0 init=/linuxrc ramdisk_size=8192 udev initrd /initrd-2.6.16-gentoo-r9
rd/c0d0 (die Festplatte) rd/c0d0p1 (erste Partition) rd/d0d0p2 (zweite Partition) rd/c0d0p3 (dritte Partition)
[Bearbeiten] LILO
Es gibt mehrere Möglichkeiten, die Devices anzusprechen:
In der /etc/lilo.conf ist der boot= - Parameter anzugeben. Ist z.B. das RAID5-Array "Controller #1, Disk #1" und die root-Partition Partition #4:
# c<ontroller>0d<rive>0 boot = /dev/rd/c0d0 ... # c<ontroller>0d<rive>0p<artition>1 root = /dev/rd/c0d0p4
Je nach Kernel-, LILO- und Controller-Version finden manche LILOs mit root=/dev/rc/c0d0p3 die Partition, andere nicht. Produziert der Rechner jedes Mal beim Booten eine Kernel Panic, hilft es unter Umständen, die Devices mit Major und Minor anzusprechen. Die Major für den ersten Mylex-Controller ist die 48 (hex 30):
Controller #1, disk #1: Major 48 (=hex 30), Minor 00 (=hex 00)) Controller #1, disk #1, Partition #4: Major 48 (=hex 30), Minor 04 (=hex 04))
# 30;00 boot = 3000 ... # 30;04 root = 3004
[Bearbeiten] Reboot/Halt
Wenn der Controller beim Reboot/Boot nach Halt inkonsistente System Drives oder unrecoverable mirror race meldet, hilft es meist, vor dem tatsächlichen halt oder reboot noch einmal die Disks zu syncen:
Die Datei /etc/init.d/reboot.sh abändern:
# Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 echo "flush-cache" > /proc/rd/c0/user_command # Flush cache to disk /sbin/reboot -idp # hmm, if the above failed, that's kind of odd ... # so let's force a reboot /sbin/reboot -f
Die Datei /etc/init.d/shutdown.sh abändern:
# Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 echo "flush-cache" > /proc/rd/c0/user_command # Flush cache to disk /sbin/halt -ihdp # hmm, if the above failed, that's kind of odd ... # so let's force a halt /sbin/halt -f
In beide Dateien wird
/bin/sync
eingefügt, der Controller schreibt den Inhalt des Cache-RAMs auf die Platten, bevor ihm der Strom entzogen wird.
Alternativ kann das Kommando auch in die Datei /etc/conf.d/local.stop eingefügt werden, diese wird bei einem Update von baselayout nicht überschrieben:
# /etc/conf.d/local.stop # This is a good place to unload any misc. # programs you started above. # For example, if you are using OSS and have # "/usr/local/bin/soundon" above, put # "/usr/local/bin/soundoff" here. echo "flush-cache" > /proc/rd/c0/user_command # Flush cache to disk
[Bearbeiten] Quellen
- http://glide.stanford.edu/lxr/source/Documentation/README.DAC960?v=linux-2.6.10
- http://manuals.fujitsu-siemens.com/serverbooks/content/unix/linux/info/readme.htm
- http://manuals.fujitsu-siemens.com/serverbooks/content/unix/linux/info/readme.htm#IIONE
- http://forums.gentoo.org/viewtopic-t-146244-highlight-mylex.html
- http://portal.suse.de/sdb/de/1999/04/mylex_dac960.html
- http://home.arcor.de/thomas.litsch/s-mylex.htm
- http://www.raidcenter.de/viewtopic.php?t=81&view=next&sid=110d63a7d11870a2045ae003e3f7d427
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=286809
- http://osx.freshmeat.net/projects/mylexui/
- http://webpages.charter.net/decibelshelp/LinuxHelp_UDEVPrimer.html
