Unsere Linux-Serie beschreibt die verschiedenen Facetten der Administration des Dateisystems. Mit Ausnahme der ersten beiden Teile richtet sich die Serie explizit an Linux-Profis. Die achtteilige Artikelreihe behandelt dabei folgende Themen:
-
Dateisystemtypen: Dieser Abschnitt gibt einen Überblick über die von Linux unterstützten Dateisystemtypen.
-
Verwaltung des Dateisystems: In diesem Abschnitt lernen Sie, wie Sie Linux- und Windows-Partitionen, Disketten, Daten-CDs und -DVDs, USB-Memory-Sticks et cetera nutzen können. Der Abschnitt gibt auch Tipps, was zu tun ist, wenn sich eine Festplattenpartition als zu klein herausstellt.
-
Partitionierung der Festplatte: Die Partitionierung der Festplatte ist ein zentraler Bestandteil der Installation von Linux. Manchmal ist es aber auch im Betrieb von Linux erforderlich, eine neue Partition hinzuzufügen.
-
Dateisysteme: ext3 ist das wichtigste Linux-Dateisystem. Es ist abwärtskompatibel zu seinem Vorgänger ext2, enthält aber zusätzliche Journaling-Funktionen. reiserfs ist eine Alternative zu ext3. Das Dateisystem unterstützt ebenfalls Journaling und ist vor allem für den Umgang mit kleinen Dateien optimiert.
-
RAID: Mit RAID (Redundant Array of Inexpensive / Independent Disks) verknüpfen Sie die Partitionen mehrerer Festplatten miteinander, um auf diese Weise ein zuverlässigeres und/oder schnelleres Gesamtsystem zu erreichen. Dieser Abschnitt geht kurz auf die Grundlagen von RAID ein und beschreibt dann die Einrichtung eines RAID-0-Systems (Striping).
-
LVM: Der LogicalVolumeManager (kurz LVM) ermöglicht eine flexiblere Verwaltung von Partitionen. Mit LVM können Sie beispielsweise Partitionen mehrerer Festplatten zu einer virtuellen Partition vereinen. Zudem lässt sich die Größe der virtuellen Partition im laufenden Betrieb ändern.
-
DMA-Modus für IDE-Festplatten: Der so genannte Bus-Master-DMA-Modus kann den Zugriff auf IDE-Festplatten erheblich beschleunigen. Aus Kompatibilitätsgründen wird dieser Modus aber oft per Default nicht aktiviert.
Die Artikelserie basiert auf dem Kapitel 25 des Standardwerks "Linux - Installation, Konfiguration, Anwendung" von Michael Kofler aus dem Verlag Addison-Wesley. Sie können dieses über 1200 Seiten starke Buch auch in unserem Buchshop versandkostenfrei bestellen oder als PDF-eBook herunterladen.
Teil 1 |
|
---|---|
Teil 2 |
|
Teil 3 |
|
Teil 4 |
|
Teil 5 |
|
Teil 6 |
|
Teil 7 |
|
Teil 8 |
Der DMA-Modus
Der DMA-Modus ermöglicht eine besonders effiziente Datenübertragung zwischen IDE-Festplatten (sowie CD-ROM-oder DVD-Laufwerken) und dem Hauptspeicher. Die Übertragung erfolgt dabei nicht Byte für Byte über die CPU, sondern über einen DMA-Kanal (Direct Memory Access). Es wird also eine vorübergehende direkte Verbindung zwischen der Festplatte und dem Hauptspeicher hergestellt; die Übertragung wird durch den DMA-Controller gesteuert. Die Vorteile des DMA-Modus sind offensichtlich: die Datenübertragungsrate ist deutlich höher, gleichzeitig sinkt die CPU-Belastung beim Laden und Speichern großer Dateien. Der DMA-Modus ist notwendig, um IDE-Festplatten in optimaler Geschwindigkeit zu nutzen.
Wenn Sie mit aktueller Hardware und einer gängigen Linux-Distribution arbeiten, wird der DMA-Modus meist per Default aktiviert, und Sie müssen sich um nichts mehr zu kümmern. Immer ist das aber nicht der Fall: Selbst wenn alle Voraussetzungen für den DMA-Betrieb erfüllt sind (siehe unten), wird der DMA-Modus je nach Distribution, Kernel-Version bzw. Mainboard nicht automatisch aktiviert.
Der Grund: Der DMA-Modus kann in manchen Fällen zu Problemen mit der Zuverlässigkeit führen. Besonders problematisch ist die Verwendung des DMA-Modus bei CD- und DVD-Laufwerken. Die Ursachen sind meist schwer zu finden. Beispielsweise erlaubt die Spezifikation nur Festplattenkabel bis zu 45 cm Länge. Fast in jedem Rechner sind die Kabel länger. (Meistens funktioniert DMA dennoch, aber dafür gibt es keine Garantie.)
Aus diesen Gründen sollten Sie eigene Experimente mit dem DMA-Modus mit Vorsicht durchführen. Führen Sie vorher umount für alle nicht benötigten Partitionen aus. Umgekehrt gilt: Wenn Sie auf Ihrem Rechner Stabilitätsprobleme haben, deaktivieren Sie den DMA-Modus explizit, bis Sie sicher sind, dass Sie den DMA-Modus als Fehlerursache ausschließen können.
DMA funktioniert selbstverständlich auch mit den meisten SCSI-Controllern. Dort ist DMA allerdings ein seit langem genutztes Feature, das nicht extra aktiviert werden muss.
Weitere Informationen zum Thema Linux und DMA finden Sie im man-Text zu hdparm, in den Kommentaren von ide-dma.c (Kernelcode) sowie im UDMA-HOWTO und auf der Intel-Developers-Homepage:
/usr/src/linux/drivers/ide/ide-dma.c
http://www.tldp.org/HOWTO/Ultra-DMA.html
http://developer.intel.com/design/chipsets/drivers/busmastr/
DMA-Voraussetzungen überprüfen
Damit Sie den DMA-Modus nutzen können, müssen sowohl Ihr Mainboard als auch Ihre Festplatte diesen Modus unterstützen. Das ist mittlerweile bei nahezu allen modernen Mainboards und Festplatten der Fall. Was die Mainboard-Unterstützung anbelangt, empfiehlt sich ein Blick in das Handbuch sowie in die Kernel-Meldungen, die während des Bootens sowie durch das Kommando dmesg angezeigt werden. Entscheidend sind die beiden BM-DMA-Zeilen, die angeben, dass der DMA-Modus für alle vier IDE-Devices (hda bis hdd) unterstützt wird. (BM-DMA steht für Bus-Master-DMA.)
root# dmesg | grep -i dma
VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci00:07.1
ide0: BM-DMA at 0xff00-0xff07, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xff08-0xff0f, BIOS settings: hdc:DMA, hdd:pio
hda: 241254720 sectors (123522 MB) w/1821KiB Cache, CHS=15017/255/63, UDMA(100)
Ob auch Ihre Festplatte die DMA-Übertragung unterstützt, können Sie mit hdparm leicht feststellen (/dev/hda bezeichnet die erste IDE-Festplatte):
root# hdparm -i /dev/hda
Model=IC35L120AVV207-0, FwRev=V24OA63A, SerialNo=VNVD00G4G1L2KD
...
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
Das bedeutet, dass die Festplatte neun verschiedene DMA- und Ultra-DMA-Modi unterstützt. Der * bedeutet, dass die Festplatte den UDMA5-Modus verwenden würde, wenn der DMA-Modus aktiviert wäre. Der * gibt aber keinen Rückschluss darauf, ob das tatsächlich der Fall ist.
Ob einer der verfügbaren DMA-Modi bereits aktiv ist, können Sie mit hdparm -d feststellen:
root # hdparm -d /dev/hda
/dev/hda:
using_dma = 1 (on)
DMA-Modus aktivieren bzw. deaktivieren
Die Aktivierung erfolgt für jede Festplatte getrennt durch hdparm -d1. -d0 deaktiviert den Modus wieder, falls das erforderlich sein sollte.
root# hdparm -d1 /dev/hda
/dev/hda:
setting using_dma to 1 (on)
using_dma = 1 (on)
Sie können mit hdparm je nach Mainboard und Festplatte einige weitere Parameter verändern:
-cn aktiviert den 32-Bit-I/O-Support
-mn dient zum gleichzeitigen Einlesen mehrerer Blöcke (Maximum: siehe MaxMultSect mit hdparm -i)
-Xn aktiviert einen bestimmten DMA-Modus (statt des Default-Modus)
Lesen Sie aber unbedingt die Manual-Seite zu hdparm, bevor Sie mit diesen Optionen experimentieren! Insbesondere die -Xn-Option ist gefährlich und kann zu einem Totalabsturz samt Datenverlust führen!
DMA-Modus testen
Zur Kontrolle, ob alles funktioniert, können Sie beispielsweise einen umfangreichen Verzeichnisbaum in eine Partition der Festplatte kopieren, für die der DMA-Modus aktiviert wurde:
root# mkdir /test-partition/test1
root# cp -a /usr /test-partition/test1
root# cp -a /test-partition/test1 /test-partition/test2
Anschließend sollten Sie einen Blick in /var/log/messages werfen: Wenn Sie dort Fehlermeldungen oder Warnungen mit dem Text DMA disabled finden, hat der Kernel den DMA-Modus nach Problemen automatisch wieder abgeschaltet. In diesem Fall gab es offensichtlich Probleme, und es ist nicht sinnvoll, den DMA-Modus zu nutzen.
Mit hdparm -tT können Sie die maximal mögliche Datenübertragungsgeschwindigkeit zwischen Festplatte und Rechner ermitteln. Sie erhalten zwei Resultate: die Geschwindigkeit für Daten im Cache der Festplatte und die Geschwindigkeit für Daten, die von der Festplatte gelesen werden müssen. Die folgenden Zeilen zeigen, dass sich die Übertragungsgeschwindigkeit durch die Aktivierung des DMA-Modus vervielfacht. (Beide Geschwindigkeiten sind allerdings eher theoretischer Natur. In der Praxis – also beim Zugriff auf reale Dateien – werden Sie geringere Datenübertragungsgeschwindigkeiten erzielen, und auch die Geschwindigkeitsunterschiede zwischen dem Betrieb mit bzw. ohne DMA werden viel weniger stark ausgeprägt sein.)
root# dparm -d0 /dev/hda
setting using_dma to 0 (off)
using_dma = 0 (off)
root# hdparm -tT /dev/hda
Timing buffer-cache reads: 388 MB in 2.01 seconds = 193.03 MB/sec
Timing buffered disk reads: 8 MB in 3.53 seconds = 2.27 MB/sec
root# hdparm -d1 /dev/hda
setting using_dma to 1 (on)
using_dma = 1 (on)
root# hdparm -tT /dev/hda
Timing buffer-cache reads: 412 MB in 2.01 seconds = 204.98 MB/sec
Timing buffered disk reads:118 MB in 3.01 seconds = 39.20 MB/sec
CD-und DVD-Laufwerke: Obwohl fast alle marktüblichen CD-und DVD-Laufwerke den DMA-Modus unterstützen, gibt es damit in der Praxis (zumindest unter Kernel 2.4.n) häufiger Probleme als mit Festplatten. Das gilt insbesondere für das Schreiben von CDs und DVDs.
Tipp: Auch wenn Sie CD- bzw. DVD-Laufwerke mit der Kernel-Option ide-scsi betreiben und daher über Device-Namen wie /dev/scd0 oder /dev/sr0 ansprechen, müssen Sie hdparm für das zu Grunde liegende IDE-Device /dev/hdb, /dev/hdc etc. ausführen.
DMA-Modus automatisch beim Rechnerstart aktivieren
Wenn Sie sich davon überzeugt haben, dass der DMA-Modus funktioniert (aber nicht ohnedies schon per Default aktiviert ist), sollten Sie Ihr System so konfigurieren, dass der DMA-Modus beim Rechnerstart automatisch aktiviert wird.
Fedora und Red Hat: Per Default entscheidet der Kernel darüber, für welche IDE-Geräte der DMA-Modus aktiviert wird. Davon abweichende Einstellungen können Sie global in /etc/sysconfig/harddisks sowie individuell für jedes Laufwerk in den Dateien /etc/sysconfig/harddiskhda, -hdb etc. vornehmen. Die harddisk-Dateien werden während des Rechnerstarts vom Script /etc/rc.d/rc.sysinit ausgewertet.
SUSE: Bei SUSE 9.0 kann der DMA-Modus durch das YAST-Modul HARDWARE|IDE DMA-MODUS gesteuert werden. Intern wird der DMA-Modus durch das Script /etc/init.d/boot.d/S06boot.idedma aktiviert. Das Script wertet die Konfigurationsdatei /etc/sysconfig/hardware aus.
Ausblick
Dieser Teil zur DMA-Konfiguration unter Linux beendet unsere Artikelserie zum Linux-Dateisystem. Die Serie basiert auf dem Kapitel 25 des Standardwerks "Linux - Installation, Konfiguration, Anwendung" von Michael Kofler aus dem Verlag Addison-Wesley. Sie können dieses über 1200 Seiten starke Buch auch in unserem Buchshop versandkostenfrei bestellen oder als eBook herunterladen. (ala)
Teil 1 |
|
---|---|
Teil 2 |
|
Teil 3 |
|
Teil 4 |
|
Teil 5 |
|
Teil 6 |
|
Teil 7 |
|
Teil 8 |