Mylex Controller

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Teil ist Artikel der Hardware Serie.
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

'Persönliche Werkzeuge