Re: [Off Topic Hardware] RAID Geschwindigkeit

From: Bernd Walter <ticso(at)cicely8.cicely.de>
Date: Thu, 9 Jan 2003 16:20:44 +0100

On Thu, Jan 09, 2003 at 04:57:43PM +1100, Peter Ross wrote:
> Hallo,
>
> danke erst einmal allen fuer die Tips.
>
> Zum einen wieder was dazugelernt:-),
>
> zum anderen habe ich mich jetzt doch an den bonnie++ getraut (mir hatte
> jemand gesagt, dass er den Rechner so stressen wuerde, dass er praktisch
> tot sei - ganz so schlimm war es nicht, aber es hat doch einige Minuten
> die betroffenen Webserver etwas "zaeh" laufen lassen).

Vielleicht auf einem Windows...

> Hierbei bin ich auf Schreibwerte von ca. 10MB/sec und Lesewerte von ca.
> 22MB/sec gekommen.
>
> Vergleichend ein Wert von meiner 0815-60GB-Platte: 5,5 und 5,9 MB/sec.
>
> Naja, 10 MB sind auch nicht berauschend, aber vielleicht doch noch etwas
> eher im "Normalbereich". Das man SCSI nicht ereicht - nun ja, hatte ich
> auch nicht erwartet.

Das sind nicht die idealisierten Werte, die man bei einem linearen
Lesen bekommt, sondern etwas realistischere.
Eigendlich ein guter Wert.

> > Ein Zugriff ist immer ein Zugriff auf eine oder mehrere Platte(n).
> > Das kann nicht schneller sein als eine einzelne Platte.
>
> Meine Vermutung war: RAID-5 "verteilt" ja die Daten, wenn der
> RAID-Controller schlau genug ist, sie auch auf allen HDs am gleichen Platz
> zu lagern und auch Bloecke sinnvoll kombiniert, muessten vier Platten
> gleichzeitig Daten lesen, die - mal eine schnelle Ueberpruefung und
> Kombination vorausgesetzt - einen insgesamt dreimal so hohen Datenstrom
> erzeugen.
>
> Ganz sicher gibt es einen Overhead, die den Effekt mindert, aber ist die
> Grundannahme falsch?

Ein Raid kann nur durch Zugriffe auf mehrere Daten gleichzeitig
beschleunigen.
Wenn ein Hardwareraidcontroller schneller ist, dann in erster Linie
durch einen großen Cache.

Beim Lesen eines fehlerfreien R5 gibt es nur einen Overhead an den
Stripegrenzen, da man hier eine erhöhte Zugriffszeit bekommt und
weniger Vorteile durch den Plattencache hat.
Den Unterschied wirst du mit einer reduzierten Linearen Leistung
sehen.
UFS hat ein ähnliches Problem - die lineare Leistung wird mit Absicht
kaput gemacht, um andere Zugriffe zu beschleunigen.

Eine Platte braucht fast genausolange um 512 Byte zu lesen, wie sie
braucht als wenn du 64k liest.
Ist halt die Zugriffszeit die hier entscheidend ist.
Wenn du 64k lesen willst und 32k von der einen und 32k von der anderen
Platte liest, dann wird es langsammer, weil die längste Zugriffszeit
wirksamm ist.
Also wirst du die Stripegröße nicht zu klein wählen wollen.
Letzendlich arbeitest du beim lesen einer Datei immer mit einer Platte
und kannst auch nicht mehr Leistung erwarten.
Die Zugriffszeit ist eine statistische Größe und schwankt.
Deshalb ist ein Zugriff auf zwei Platte immer länger, als ein Zugriff
auf eine Platte.
Mit Spindelsyncronisation hat man früher versucht die Zugriffszeiten
aller Platten zu vereinheitlichen.
Inzwischen ist das Potential aber vollends bereits mit einer Platte
durch den Plattencache ausgereizt, sodas Spindelsyncronisation mit
verteilten Zugriffen nichts mehr ereichen kann.
Zu guter letzt verteilt Raid die Daten nicht nach der Auslastung auf
den Platten, sondern durch ein beim einrichten fest definiertes Schema.
Das ausgewählte Schema sollte möglichst gut mit dem Filesystem und
der Nutzung passen.
Wenn du dir die Beispiele in der vinum Manpage anschaust, dann wirst
du einige gute Vorschläge finden.
Die Vorschläge sind zwar nicht das bestmögliche, aber erfordern keine
genaueren Kenntnisse des Filesystems.

-- 
B.Walter              COSMO-Project         http://www.cosmo-project.de
ticso(at)cicely.de         Usergroup           info(at)cosmo-project.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 09 Jan 2003 - 16:21:02 CET

search this site