Beschreibung: Prüfungskandidaten sollten in der Lage sein, SCSI-Geräte unter Verwendung des SCSI-BIOS und der notwendigen Linux-Werkzeuge zu konfigurieren. Sie sollten ebenso fähig sein, zwischen den verschiedenen SCSI-Typen zu unterscheiden. Dieses Lernziel beinhaltet die Handhabung des SCSI-BIOS zum Auffinden von verwendeten und freien SCSI-IDs und zum Setzen der korrekten ID-Nummer für verschiedene Geräte, im speziellen für das Boot-Device. Ebenso enthalten ist das Verwalten der Einstellungen im System-BIOS zur Bestimmung der gewünschten Bootreihenfolge, wenn sowohl SCSI- als auch IDE-Laufwerke verwendet werden.
Die wichtigsten Dateien, Bezeichnungen und Anwendungen
Das Small Computer System Interface (SCSI) ist jahrelang die Profi-Schnittstelle für Geräte wie Festplatten, CD-ROMs aber auch Scanner und anderer externer Geräte gewesen. Auch heute noch finden sich in den meisten Server-Installationen SCSI Geräte, anstelle der sonst üblichen IDE-Platten. SCSI-Geräte sind in der Regel um einiges teurer als ihre IDE-Pendants, bieten aber oft eine bessere Eignung für den Dauerbetrieb und haben auch sonst Features, die unter IDE nicht oder nur schwer zu realisieren sind (Hot-Pluging).
Grundsätzlich besteht ein SCSI System aus einem Bus, der in der Regel im Inneren des Computers durch ein 50poliges Flachbandkabel realisiert wird. Nach außen hin (für externe Geräte wie Scanner) wird ein abgeschirmtes Spezialkabel verwendet. An diesem Bus hängen die SCSI-Geräte, auch der Hostadapter.
Beim Aufbau des Busses müssen folgende Punkte beachtet werden:
Diese Regeln sind unbedingt einzuhalten, sonst kommt es mit Sicherheit zu Fehlern, deren Ursache oft sehr schwer ermittelbar ist.
Busbreite | Kabelbreite | Standard | Fast | Ultra |
---|---|---|---|---|
8-Bit | 50-polig | 5 MB/sec | 10 MB/sec | 20 MB/sec |
16-Bit | 68-polig | 10 MB/sec | 20 MB/sec | 40 MB/sec |
Durch entsprechende Kombinationen entstehen dadurch etwas verständlichere Namen wie Ultra-Wide-SCSI oder Fast-Wide-SCSI,...
Der Hostadapter hat üblicherweise die ID 7. Die Vergabe der ID sollte nicht wahllos geschehen, den die höchste ID hat immer auch die höchste Priorität im System. Hingegen hat die ID nichts mit der physikalischen Position am Bus zu tun.
Die IDs müssen entweder softwaremäßig (Adapter) oder über Schalter (externe Geräte) und Jumper (interne Geräte) eingestellt werden. Falls eine reine SCSI-Installation ohne IDE Platten eingerichtet werden soll, muß die Bootfestplatte die ID 0 haben.
Neben der SCSI-ID gibt es für jedes Gerät noch eine sogenannte LUN (Logical Unit Number), die eventuell existierende Untergeräte addressiert. So kann etwa ein SCSI-Plattenschrank mit 5 Festplatten aus der Sicht des SCSI-Busses nur ein Gerät mit einer SCSI-ID sein. Um die einzelnen Platten trotzdem ansprechen zu können werden die eigentlichen SCSI-IDs der Platten jetzt zu den LUNs des Plattenschrankes.
Um auch mehrere SCSI-Hostadapter in einem Rechner betreiben zu können, bekommt auch der SCSI-Bus selbst eine Nummerierung. Auch diese Busnummer fängt mit 0 zu zählen an, der erste SCSI-Bus hat also die Busnummer 0, der zweite die 1 usw.
Aus der Kombination der drei Angaben (durch Komma getrennt) lässt sich so eine eindeutige Adressierung innerhalb eines Systems erreichen. Jedes SCSI-Gerät kann mit der Adresse
Busnummer,SCSI-ID,LUNangesprochen werden. In den meisten Fällen werden Busnummer und LUN jeweils auf 0 gesetzt sein (wenn nicht mehrere SCSI-Adapter oder Geräte mit Untergeräten im Einsatz sind).
Auf einem solchen System muß ein Hostadapter mit eigenem BIOS installiert werden, damit auch von SCSI-Geräten gebootet werden kann. In diesem Punkt unterscheiden sich die Hostadapter stark voneinander. Billige Adapter, wie sie etwa beim Kauf eines SCSI-Scanners mitgeliefert werden, besitzen kein eigenes BIOS sondern dienen ausschließlich der Ansteuerung von SCSI-Geräten im laufenden Betrieb. Teurere Adapter weisen ein eigenes BIOS auf, das - analog zum BIOS des Computers selbst - auch ein Setup-Programm beinhaltet.
Durch eine Tastenkombination beim Hochfahren des Rechners (etwa Strg-A bei Adaptec-Adaptern) wird das Setup-Programm des SCSI-BIOS gestartet. Hier können verschiedene Einstellungen vorgenommen werden, die den Adapter selbst und die angeschlossenen Geräte betreffen (etwa seine SCSI-ID) und Informationen über alle angeschlossenen Geräte ermittelt werden. Dazu zählen insbesondere
Im System-BIOS muß dann noch eingestellt werden, daß von einem SCSI-Gerät gebootet werden soll. Um welches Gerät es sich handelt, kann das System-BIOS nicht bestimmen, dazu hat der Hostadapter ja sein eigenes BIOS. Bei der Einstellung der Boot-Reihenfolge im System-BIOS (Bootsequence) wird einfach nur SCSI angegeben. In diesem Fall übergibt das System-BIOS die Aufgabe des Bootens an das SCSI-BIOS, das wiederum über die entsprechenden Informationen verfügt, von welchem Gerät gebootet werden soll.
Ein Beispiel: Auf einem Linux-System sind ein Adaptec-SCSI Adapter AHA-2940 und ein Zip-Laufwerk am Parallelport installiert. Auch das Zip-Laufwerk ist ein SCSI-Gerät, der Parallelport dient hier als SCSI-Adapter (PPA-ParallelPort Adapter). Im Verzeichnis /proc/scsi findet sich folgender Inhalt:
dr-xr-xr-x ... aic7xxx | + -rw-r--r-- ... 0 dr-xr-xr-x ... ppa | + -rw-r--r-- ... 1 -r--r--r-- ... scsiJedes der beiden Verzeichnisse enthält eine Datei. Das Verzeichnis aic7xxx enthält eine Datei mit Namen 0, das Verzeichnis ppa eine mit Namen 1. Der Bus am Adaptec-Adapter ist also Bus 0, der am Parallelport Bus 1. Die Datei scsi enthält Informationen über alle angeschlossene Geräte, egal auf welchem Bus sie hängen.
CDROM-Laufwerke bekommen entsprechend die Namen /dev/sr0, /dev/sr1,... oder auch (gleichzeitig) /dev/scd0, /dev/scd1,... Das sr steht für SCSI-Removable also SCSI-Wechselplatte.
Eine andere Form der Adressierung wäre eindeutiger, die schon bekannte Form
Busnummer,SCSI-ID,LUNUm die beiden Adressierungsformen zueinander in Verbindung zu bringen, existiert das kleine Programm scsi_info, dem als Parameter der Name der Gerätedatei eines beliebigen SCSI-Gerätes mitgegeben wird. Als Ausgabe gibt das Programm dann die Adresse in der Form Busnummer,SCSI-ID,LUN und weitere Informationen aus /proc/scsi/scsi. Ein Aufruf von
scsi_info /dev/sdaergibt beispielsweise eine Ausgabe wie
SCSI_ID="0,2,0" MODEL="IBM DFHSS1F !c" FW_REV="1717"Mit diesem Hilfsmittel ist es also möglich, die tatsächlichen physikalischen Adressen zu ermitteln.