Linux, Firewire, SATA oder warum ich mit Linux manchmal die Krise bekomme
Nun... Es war einmal ein Rechner, da war ein Firewire-Controller Adaptec FireConnect 8300 eingebaut. Dieser läuft auch recht gut. An diesen hingen 3 x 1 TByte LaCie Bigger Disk Extreme und 2 x 1,6 TByte LaCie Bigger Disk Extreme Platten. Mal davon abgesehen, das diese Platten recht anfällig für Ausfälle sind (man kann dazu auch gerne mal in der Linux Firewire Mailingliste
mehr nachlesen), hatte ich mit den 1,6 TB Platten immer nur Probleme unter Linux (egal mit welcher Kernelversion).
Ein Problem äußerte sich z.B. darin, das man für ein paar Sekunden
Daten ganz normal auf die Platte geschrieben wurden, aber dann
plötzlich die Platte "mit sich selbst" beschäftigt war. Das konnte man
mit iostat sehen. Dort lag die Auslastung (%util) plötzlich bei 100% und bei top
unter wa
sah man ebenfalls 100%. Nach ein paar weiteren Sekunden schrieb die
Platte dann wieder und das Ganze ging dann wieder von Vorne los. Es kam
dann mal der Vorschlag auf, für diese Platte den cfq-I/O-Scheduler
einzustellen (echo "cfq" >
/sys/block/<FESTPLATTENNAME>/queue/scheduler). Das bringt
tatsächlich etwas Speed, löst das Problem aber
nicht. Seltsamerweise hatte und habe ich mit
den 1 TByte LaCie Platten in dieser Hinsicht keine Probleme. Da nun
Firewire-Support unter Linux unter Kernel 2.6.12 das erstemal als
stable deklariert wurde, hab ich gleich Ubuntu 5.10 installiert, das
diesen Kernel schon mitbringt. Die 1,6 TB Platten liefen aber immer
noch nicht vernünftig. Nun, da
diese LaCie-Platten intern immer im Raid 0-Verbund arbeiten (die Bigger
Disk Extreme Platten haben intern 4 Festplatten) und diese
Platten im Dauerbetrieb nicht unbedingt gut aussehen (heißt oft kaputt gehen), mußte eine andere
Lösung her.
Also geguggt und gefunden: Ein 3ware 9500S-4LP SATA-Controller und ein Stardom-RAID-Tower
sollte es sein. 3ware deshalb, weil der Linuxsupport wirklich
vorbildlich ist. In den RAID-Tower 5 x 400 GB Seagate Platten rein und
ein RAID 5 konfiguriert. Damit war dann schon mal das RAID 0 Problem
der LaCie's gelöst und der Ausfall einer Platte kann dann schon mal
nicht mehr alle Daten vernichten. Der RAID-Tower hat das nette Feature
nicht nur Firewire 800 und USB 2.0 sondern auch einen SATA-Anschluß zu
haben (es gibt auch einen mit SCSI). Das war dann auch das Kaufargument, da ich eigentlich von
Firewire weg wollte. Große Platten, Firewire und Linux scheint momentan noch nicht der letzte Brüller zu sein - auch wenn die
Firewire-Mailingliste sehr hilfreich ist und gerne weiterhilft. Gesagt
getan: SATA-Controller rein, Tower per SATA angeschlossen... Und der
Controller erkennt natürlich den Tower nicht. Aha. Toll. Alle
SATA-Ports durchprobiert, Controller in verschiedene Slots gesteckt,
div. Konfigurationen probiert.... War nix zu machen. Der Controller
tauchte in der Plattenliste nicht auf. Also 3ware-Support angerufen.
Dort teilte mir dann auch gleich mit, das man solche RAID-Tower gar
nicht unterstütze und man gefälligst einzelne Platten anschließen
solle. Ich wollte dann den technischen Hintergrund wissen, wieso das
nicht funktionieren sollte, denn für den Controller stellt sich das
RAID nach aussen ja nur als eine Platte dar und SATA unterstützt ja
immerhin 48bit-Adressierung, so das die 1,6 TByte netto ja eigentlich
kein Problem machen sollten. Funktioniert nicht, wird nicht supportet. Ende der Durchsage... Aha. Toll. Also bei Raidsonic
angerufen. Dem Support-Techniker erzählte ich dann gleich von meinem
Telefongespräch von eben mit 3ware. Der mußte dann gleich schmunzeln
und verwieß mich auf's Handbuch Kapitel 4. Dort steht nämlich, das man
den IDE-Kanal wechseln muß, denn Kanal 0 wird von Firewire genutzt und
Kanal 1 von SATA. Und Default ist Firewire. Drum erkennt der
SATA-Controller den Tower nicht. Blöderweise befindet sich aber Kapitel
4 nicht in der gedruckten Anleitung (die ich gelesen habe) sondern auf
der mitgelieferten CD als PDF. Also: Gesagt und eingestellt und siehe
da: Der Tower erscheint als 1,6 TByte Platte in der Festplattenliste
des Controllers. :-) Feini fein...
Also Ubuntu Linux Version 5.10 gebootet, Treiber für den 3ware-Controller lädt ohne Probleme und mit fdisk -l
sehe ich dann auch gleich die Platte und richte die Partition ein, XFS
Filesystem installieren, mounten und is gut. :-) Aber wir sind ja noch
nicht fertig. Ich möchte erstmal sehen, wie das Ganze performend. Also
ein ganz einfacher Test mit dd:
dd bs=1024 if=/dev/zero of=/sataplatte
Ungefähr 5 MByte/sec Write-Speed. Nicht berauschend. Und das trotz (scheinbar)
aktivierten Write-Back-Cache des Controllers? Also wieder an Firewire
800 ran und Test wiederholt. Ergebnis: Ungefähr 27 MByte/sec
Write-Speed. Aha. Toll. Jetzt blick ich gar nicht mehr durch. Na dann
bleib ich erstmal bei Firewire. Vielleicht finde ich in diesem
Jahrtausend noch raus, woran die schlechte Performance der
SATA-Kompontenten liegt.
Update:
Tja... Also an SATA scheint nicht das eigentliche Problem zu sein. Denn
in der Praxis hat sich jetzt gezeigt, das bei Firewire der Durchsatz
genauso schlecht ist wie bei SATA. Ich muß wohl weitersuchen...
Update:
Aha... Wenn man den richtigen Schalter findet, läuft die Sache gleich
viel besser ;-) Da ich bei dem Controller die RAID-Funktionalität nicht
nutze, kann ich im BIOS des Controllers nur JBOD einstellen. Das
aktiviert allerdings den Write-Back-Cache nicht. Das macht die Sache
relativ langsam. Mit aktivieren Write-Back geht's schon erheblich
flotter. Trotzdem hätte ich mir selbst ohne Write-Back mehr Performance
erwartet. Der Write-Back-Cache ist halt immer so eine Sache bei
Stromausfall oder so was in der Gegend...
Posted at 11:16nachm. Juli 21, 2005 by cetixx in Computers | Kommentare [0]