Home · Kontakt · Impressum
contents index previous up next
Next: 16.5.2 scsiinfo Up: 16.5 SCSI Previous: 16.5 SCSI

Unterabschnitte


16.5.1 Linux und SCSI

SCSI wird von Linux bestens unterstützt. Dies klappt so gut, daß viele andere Geräte (z. B. USB-Speicher und IDE-CD-Brenner) auch als SCSI-Emulationen verwaltet werden.

16.5.1.1 SCSI-Subsystem

Das SCSI-Subsystem basiert auf einem 3-Schichten-Modell, wie Sie es in Abbildung 16.1 sehen können. Die oberste Schicht liegt am nächsten zur Benutzer-/Kernel-Schnittstelle, während die unterste Schicht näher zur Hardware liegt. Die Treiber aus der obersten Schicht werden durch eine Abkürzung, die aus zwei Buchstaben besteht, bezeichnet. Dort gibt die folgenden vier Schnittstellen:

SD
ist eine Schnittstelle zu der Familie der allgemeinen Festplatten, wie es hd für das IDE-Subsystem ist. Eine der häufigsten verwendeten Aufgaben für blockorientierte Geräte ist das Einhängen von Partitionen ins Dateisystem.
Beispiel: mount -t ext2 /dev/sda3 /daten
Natürlich steht auch der Befehl fdisk (10.1.1) für SCSI-Festplatten zur Verfügung.
SR
ist die Schnittstelle zu den CD-ROM- bzw. DVD-Laufwerken. Im Gegensatz zu den Festplatten wird hier in der Regel nicht eine Partition sondern der gesamte Datenträger gemountet.
Beispiel: mount -t iso9660 /dev/sr0 /media/cdrom
Natürlich können Sie über diese Schnittstelle auch Audio-CDs lesen. Allerdings wird diese Audio-CD nicht gemountet. Dies ist logisch, da die CD kein Dateisystem enthält.
ST
ist eine zeichenorientierte Schnittstelle zum Lesen und Schreiben von Bandlaufwerken. So können Sie das Kommando mt für den Datentransfer und Kontrolle solcher Geräte verwenden.
SG
ist eine SCSI-Emulationsschnittstelle auf der Basis eines zeichenorientierten Gerätes. Die Schnittstelle ermöglicht es SCSI-Kommandos an Nicht-SCSI-Geräte zu senden. So können Programme wie SANE für Scanner, cdrecord und cdrdao für CD-Brenner und cdparanoia für das digitale Auslesen von Audio-CDs auf diese Geräte zugreifen.

Die Treiber für die passenden Schnittstellen heißen sd_mod.o, sr_mod.o, st.o und sg.o. Die unterschiedliche Namensgebung ist historisch bedingt. Sie finden die Treiber in einem der Modulverzeichnisses des Kernels mit dem Namen scsi.

ole@enterprise:~> find /lib/modules/ -name scsi
/lib/modules/2.4.21-215-athlon/kernel/drivers/scsi

Abbildung 16.1: Die Schichten des SCSI-Subsystems
\includegraphics[width=12cm]{pic/fig_scsi_schichten}


16.5.1.2 SCSI-Adressierung

Unter Linux wird eine vierstufige Adressierung für ein SCSI-Gerät verwendet. Diese besteht aus

In den meisten Fällen besitzt Ihr System nur einen Hostadapter. Die Zählweise beginnt bei 0. Jeder Hostadapter kann einen oder mehr Busse kontrollieren. Im Normalfall gibt es nur einen Bus. Auf jedem Bus können nun, je nach SCSI-Variante 7 oder 15 Geräte angeschlossen sein. Dabei beginnt die Zählweise bei 0. Diese ID ist für die Bootplatte reserviert, während der SCSI-Hostadapter eigentlich immer die ID 7 bekommt. Die Abkürzung LUN für Logical Unit Number bezeichnet eine Untereinheit in einem SCSI-Geräte. Dies können z. B. die CDs in einem Storage Center sein oder die einzelnen Festplatten in einem SCSI-Storagetower.

16.5.1.3 SCSI im Proc-Verzeichnis

Wie schon bei anderen Hardwarekomponenten spiegelt sich die Verwaltung der SCSI-Systeme im Proc-Dateisystem wieder. Der Kernel liefert die Informationen über das Verzeichnis /proc/scsi, in dem weitere virtuelle Dateien und Verzeichnisse stehen.

enterprise:~ # ls /proc/scsi
aic7xxx  ide-scsi  scsi  sg  usb-storage-0

Informationen über die angeschlossenen Geräte erhalten Sie über die virtuelle Datei /proc/scsi/scsi. So zeigt das untere Beispiel einen Rechner mit drei angeschlossenen SCSI-Geräten. Dabei handelt es sich um ein echtes SCSI-Gerät (IOMEGA) und zwei SCSI-Simulationen, nämlich um einen ATAPI-CD-Brenner und um einen USB-Speicherstift. Aus diesem Grund werden hier gleich drei SCSI-Controller aufgeführt.

enterprise:~ # cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 04 Lun: 00
  Vendor: IOMEGA   Model: ZIP 100          Rev: E.02
  Type:   Direct-Access                    ANSI SCSI revision: 02
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: PLEXTOR  Model: CD-R   PX-W4824A Rev: 1.01
  Type:   CD-ROM                           ANSI SCSI revision: 02
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: 3SYSTEM  Model: USB FLASH DISK   Rev: 1.00
  Type:   Direct-Access                    ANSI SCSI revision: 02

Im Verzeichnis aic7xxx finden wir in unserem Beispiel die Daten über den SCSI-Controller der Firma Adaptek. Die darin enthaltene Datei 0 beschreibt den ersten SCSI-Controller mit seinen angeschlossenen Geräten.

enterprise:~ # ls /proc/scsi/aic7xxx/
0
enterprise:~ # cat /proc/scsi/aic7xxx/0
Adaptec AIC7xxx driver version: 6.2.36
Adaptec 2940 SCSI adapter
aic7870: Single Channel A, SCSI Id=7, 16/253 SCBs
Allocated SCBs: 5, SG List Length: 102
...
Target 3 Negotiation Settings
        User: 10.000MB/s transfers (10.000MHz, offset 127)
Target 4 Negotiation Settings
        User: 10.000MB/s transfers (10.000MHz, offset 127)
        Goal: 3.300MB/s transfers
        Curr: 3.300MB/s transfers
        Channel A Target 4 Lun 0 Settings
                Commands Queued 198
                Commands Active 0
                Command Openings 1
                Max Tagged Openings 0
                Device Queue Frozen Count 0
...

Auch die IDE-SCSI-Emulation wird als SCSI-Controller gewertet. Deshalb findet sich auch hier extra ein Verzeichnis. Dieses Verzeichnis enthält ebenfalls eine Datei. Da es sich hierbei um den zweiten SCSI-Controller in der Hierachie handelt, hat die Datei den Namen 1. Die Informationen hier sind war eindeutig, aber auch ziemlich nutzlos.

enterprise:~ # ls /proc/scsi/ide-scsi/
1
enterprise:~ # cat /proc/scsi/ide-scsi/1
SCSI host adapter emulation for IDE ATAPI devices


contents index previous up next
Next: 16.5.2 scsiinfo Up: 16.5 SCSI Previous: 16.5 SCSI
  © 2004 by IT-Dozent Ole Vanhoefer · Zum Seitenanfang