So erstellen Sie ein RAID-Array und warum wird es benötigt. RAID-Arrays und ihre Unterschiede

Eine Anfrage machen

Bitte füllen Sie die Kontaktfelder des Formulars aus


Erhalten Sie IT-News

Die mit * gekennzeichneten Felder sind Pflichtfelder

Beschreibung von RAID-Arrays ( , )

Beschreibung von RAID 0


Hochleistungs-Disk-Array ohne Fehlertoleranz
Gestreiftes Festplatten-Array ohne Fehlertoleranz

RAID 0 ist das leistungsstärkste und am wenigsten sichere aller RAIDs. Die Daten werden proportional zur Anzahl der Festplatten in Blöcke aufgeteilt, was zu einer höheren Geschwindigkeit führt Bandbreite. Die hohe Leistung dieser Struktur wird durch die parallele Aufzeichnung und den Verzicht auf redundantes Kopieren gewährleistet. Der Ausfall eines Laufwerks im Array führt zum Verlust aller Daten. Diese Ebene wird Striping genannt.

Vorteile:
- · höchste Leistung für Anwendungen, die eine intensive Verarbeitung von I/O-Anfragen und großen Datenmengen erfordern;
- · Leichtigkeit der Durchsetzung;
- · niedrige Kosten pro Volumeneinheit.
Mängel:
- · keine fehlertolerante Lösung;
- · Der Ausfall einer Festplatte führt zum Verlust aller Daten im Array.

Beschreibung von RAID 1


Redundantes oder gespiegeltes Festplatten-Array
Duplexing und Spiegelung
RAID 1 - Spiegelung - Spiegelreflexion zwei Scheiben. Die Redundanz der Struktur dieses Arrays gewährleistet seine hohe Fehlertoleranz. Das Array zeichnet sich durch hohe Kosten und geringe Produktivität aus.

Vorteile:
- · Leichtigkeit der Durchsetzung;
- Einfache Array-Wiederherstellung im Fehlerfall (Kopieren);
- · ausreichend hohe Leistung für Anwendungen mit hoher Anforderungsintensität.
Mängel:
- · hohe Kosten pro Volumeneinheit – 100 % Redundanz;
- · niedrige Datenübertragungsgeschwindigkeit.

Beschreibung von RAID 2


Fehlertolerantes Festplatten-Array mit Hamming-Code
Hamming-Code ECC
RAID 2 – verwendet Hamming Code ECC. Mithilfe der Codes können Sie Einzelfehler beheben und Doppelfehler erkennen.

Vorteile:
- · schnelle Fehlerkorrektur („on the fly“);
- sehr hohe Geschwindigkeit bei der Übertragung großer Datenmengen;
- · Mit zunehmender Anzahl an Festplatten sinken die Gemeinkosten.
- · genug einfache Umsetzung.
Mängel:
- · hohe Kosten bei geringer Anzahl an Festplatten;
- · geringe Geschwindigkeit der Anfragebearbeitung (nicht für transaktionsorientierte Systeme geeignet).

Beschreibung von RAID 3


Fehlertolerantes Array mit paralleler Datenübertragung und Parität
Parallele Übertragungsplatten mit Parität

RAID 3 – Daten werden nach dem Striping-Prinzip auf Byte-Ebene mit einer Prüfsumme (CS) auf einer der Festplatten gespeichert. Das Array hat nicht das Problem einer gewissen Redundanz wie bei RAID-Level 2. Zur Erkennung fehlerhafter Ladungen werden in RAID 2 verwendete Prüfsummenlaufwerke benötigt. Die meisten modernen Controller sind jedoch in der Lage, mithilfe spezieller Signale oder zusätzlicher Kodierung von Informationen, die auf die Festplatte geschrieben und zur Korrektur zufälliger Ausfälle verwendet werden, festzustellen, wann eine Festplatte ausgefallen ist.

Vorteile:
- · sehr hohe Datenübertragungsgeschwindigkeit;
- · Festplattenfehler haben kaum Auswirkungen auf die Geschwindigkeit des Arrays;
- · Geringe Gemeinkosten für die Implementierung von Redundanz.
Mängel:
- · schwierige Umsetzung;
- · Geringe Leistung mit hoher Anforderungsintensität für kleine Datenmengen.

Hallo an alle Seitenleser! Freunde, ich wollte schon lange mit Ihnen darüber sprechen, wie man ein RAID-Array (redundantes Array unabhängiger Festplatten) auf einem Computer erstellt. Trotz der scheinbaren Komplexität des Themas ist in Wirklichkeit alles sehr einfach und ich bin sicher, dass viele Leser diese sehr nützliche Technologie im Zusammenhang mit der Sicherheit Ihrer Daten sofort annehmen und gerne nutzen werden.

So erstellen Sie RAID-Array und warum es benötigt wird

Es ist kein Geheimnis, dass unsere Informationen auf einem Computer praktisch unversichert sind und sich auf einer einfachen Festplatte befinden, die im ungünstigsten Moment ausfällt. Das ist schon lange bekannt Festplatte der schwächste und unzuverlässigste Ort in unserer Systemeinheit, da er mechanische Teile enthält. Diejenigen Benutzer, die aufgrund des Versagens der „Schraube“ jemals wichtige Daten verloren haben (mich eingeschlossen), fragen sich nach einiger Zeit des Kummers, wie sie solche Probleme in Zukunft vermeiden können, und das Erste, was mir in den Sinn kommt, ist Folgendes Erstellen eines RAID-Arrays.

Der Sinn einer redundanten Anordnung unabhängiger Festplatten besteht darin, Ihre Dateien auf Ihrer Festplatte zu speichern, falls diese Festplatte komplett ausfällt! Sie fragen sich, wie das geht, es ist ganz einfach, Sie benötigen nur zwei (vielleicht sogar unterschiedlich große) Festplatten.

Im heutigen Artikel erstellen wir unter Verwendung des Betriebssystems Windows 8.1 die einfachste und beliebteste Festplatte aus zwei leeren Festplatten. RAID 1-Array, es wird auch „Spiegelung“ genannt. Die Bedeutung eines „Spiegels“ besteht darin, dass die Informationen auf beiden Festplatten dupliziert (parallel geschrieben) werden und die beiden Festplatten exakte Kopien voneinander sind.

Wenn Sie eine Datei auf die erste Festplatte kopiert haben, erscheint auf der zweiten genau dieselbe Datei, und wie Sie bereits verstanden haben, bleiben alle Ihre Daten darauf erhalten, wenn eine Festplatte ausfällt zweite Festplatte ( Spiegel). Die Wahrscheinlichkeit, dass zwei Festplatten gleichzeitig ausfallen, ist vernachlässigbar.

Der einzige Nachteil eines RAID 1-Arrays besteht darin, dass Sie zwei Festplatten kaufen müssen, diese aber bei der Installation als eine funktionieren Systemeinheit B. zwei Festplatten mit einer Kapazität von jeweils 500 GB, dann stehen für die Speicherung von Dateien die gleichen 500 GB und nicht 1 TB zur Verfügung.

Wenn eine der beiden Festplatten ausfällt, tauschen Sie sie einfach aus, fügen sie als Spiegel zu einer bereits installierten Festplatte mit Daten hinzu und fertig.

Persönlich, seit vielen Jahren, Ich benutze es bei der Arbeit RAID 1-Array aus zwei 1-TB-Festplatten und vor einem Jahr ist etwas Schlimmes passiert, eine Festplatte hat ihr Leben verloren, ich musste sie sofort ersetzen, dann dachte ich mit Entsetzen, was passieren würde, wenn ich kein RAID-Array hätte, a Ein leichter Schauer lief mir über den Rücken, denn die über mehrere Jahre hinweg angesammelten Daten wären verschwunden, und so tauschte ich einfach das defekte „Terabyte“ aus und arbeitete weiter. Zu Hause habe ich übrigens auch einen kleinen RAID-Verbund aus zwei 500-GB-Festplatten.

Softwareerstellung RAID 1 ein Array aus zwei leeren Festplatten unter Verwendung von Windows 8.1

Zunächst bauen wir zwei saubere Festplatten in unsere Systemeinheit ein. Ich nehme zum Beispiel zwei 250-GB-Festplatten.

Was zu tun ist, wenn die Größe der Festplatten unterschiedlich ist oder Sie bereits Informationen zu einer Festplatte haben, lesen Sie in unserem nächsten Artikel.

Öffnen Sie die Datenträgerverwaltung

Datenträger 0 - Solid-State-Laufwerk SSD mit installiertem Betriebssystem Windows-System 8.1 auf Partition (C:).

Scheibe 1 Und Scheibe 2- Festplatten mit einer Kapazität von 250 GB, aus denen wir ein RAID 1-Array zusammenstellen.

Klicken Sie mit der rechten Maustaste auf eine beliebige Festplatte und wählen Sie „Spiegelungsvolume erstellen“

Fügen Sie eine Festplatte hinzu, die als Spiegel für die zuvor ausgewählte Festplatte dient. Wir haben Datenträger 1 als erstes gespiegeltes Volume ausgewählt, das heißt, wir wählen Datenträger 2 auf der linken Seite aus und klicken auf die Schaltfläche „Hinzufügen“.

Wählen Sie den Buchstaben des Software-RAID-1-Arrays aus, ich lasse den Buchstaben (D:). Weiter

Aktivieren Sie das Kontrollkästchen Schnelle Formatierung und klicken Sie auf Weiter.

In der Datenträgerverwaltung werden gespiegelte Volumes blutrot angezeigt und haben einen einzelnen Laufwerksbuchstaben, in unserem Fall (D:). Kopieren Sie alle Dateien auf eine beliebige Festplatte und sie werden sofort auf einer anderen Festplatte angezeigt.

Im Fenster „Dieser PC“ Das Software-RAID-1-Array wird als eine Festplatte angezeigt.

Wenn eine der beiden Festplatten ausfällt, wird das RAID-Array in der Datenträgerverwaltung mit dem Fehler „Failed Redundancy“ gekennzeichnet, alle Daten auf der zweiten Festplatte sind jedoch sicher.

ÜBERFALL- eine Abkürzung, die für Redundant Array of Independent Disks steht – „ausfallsicheres Array unabhängiger Festplatten“ (früher wurde manchmal das Wort „Inexpensive“ anstelle von „Independent“ verwendet). Das Konzept einer Struktur aus mehreren zu einer Gruppe zusammengefassten Festplatten, die Fehlertoleranz bietet, wurde 1987 in der bahnbrechenden Arbeit von Patterson, Gibson und Katz geboren.

Ursprüngliche RAID-Typen

RAID-0
Wenn wir glauben, dass RAID „Fehlertoleranz“ (redundant...) ist, dann ist RAID-0 „Null-Fehlertoleranz“, also das Fehlen davon. Die RAID-0-Struktur ist ein „striped array of disks“. Datenblöcke werden der Reihe nach einzeln auf alle im Array enthaltenen Festplatten geschrieben. Dies erhöht die Leistung, idealerweise um das Vielfache der Anzahl der im Array enthaltenen Festplatten, da die Aufzeichnung zwischen mehreren Geräten parallel erfolgt.
Allerdings sinkt die Zuverlässigkeit um den gleichen Betrag, da Daten verloren gehen, wenn eine der im Array enthaltenen Festplatten ausfällt.

RAID-1
Dies ist der sogenannte „Spiegel“. Schreibvorgänge werden auf zwei Festplatten parallel ausgeführt. Die Zuverlässigkeit eines solchen Arrays ist höher als die einer einzelnen Festplatte, die Leistung steigt jedoch geringfügig (oder steigt überhaupt nicht).

RAID-10
Ein Versuch, die Vorteile zweier RAID-Typen zu kombinieren und ihnen ihre inhärenten Nachteile zu nehmen. Nehmen wir eine RAID-0-Gruppe mit Gesteigerte produktivität, und jedem von ihnen (oder dem gesamten Array) „Spiegel“-Festplatten zuweisen, um Daten vor Verlust infolge eines Fehlers zu schützen, erhalten wir ein fehlertolerantes Array mit erhöhter Leistung durch die Verwendung von Striping.
Heutzutage ist dies „in freier Wildbahn“ einer der beliebtesten RAID-Typen.
Nachteile – alle oben genannten Vorteile bezahlen wir mit der Hälfte der Gesamtkapazität der im Array enthaltenen Festplatten.

RAID-2
Blieb eine völlig theoretische Option. Dabei handelt es sich um ein Array, in dem Daten mit einem fehlerresistenten Hamming-Code kodiert sind, der aufgrund seiner Redundanz die Wiederherstellung einzelner fehlerhafter Fragmente ermöglicht. Beim Auslesen von Daten aus Magnetköpfen werden übrigens verschiedene Modifikationen des Hamming-Codes sowie seiner Nachfolger verwendet Festplatte und optische CD/DVD-Lesegeräte.

RAID-3 und 4
„Kreative Weiterentwicklung“ der Idee des Datenschutzes mit redundantem Code. Der Hamming-Code ist unverzichtbar im Fall eines „ständig unzuverlässigen“ Stroms, der mit kontinuierlichen, schwach vorhersehbaren Fehlern gesättigt ist, wie beispielsweise einem verrauschten Luftkommunikationskanal. Bei Festplatten sind jedoch nicht Lesefehler das Hauptproblem (wir gehen davon aus, dass Festplatten Daten in der Form ausgeben, in der wir sie geschrieben haben, sofern sie funktionieren), sondern der Ausfall der gesamten Festplatte.
Für solche Bedingungen können Sie ein Striping-Schema (RAID-0) kombinieren und zum Schutz vor dem Ausfall einer der Festplatten die aufgezeichneten Informationen durch Redundanz ergänzen, die es Ihnen ermöglicht, Daten wiederherzustellen, wenn ein Teil davon verloren geht. indem Sie hierfür eine zusätzliche Festplatte zuweisen.
Wenn wir eine der Datenfestplatten verlieren, können wir die darauf gespeicherten Daten mithilfe einfacher mathematischer Operationen an den Redundanzdaten wiederherstellen. Wenn die Festplatte mit den Redundanzdaten ausfällt, können wir immer noch Daten vom Festplatten-Array vom Typ RAID-0 lesen.
Die Optionen RAID-3 und RAID-4 unterscheiden sich darin, dass im ersten Fall einzelne Bytes verschachtelt werden und im zweiten Fall Gruppen von Bytes, „Blöcke“, verschachtelt werden.
Der Hauptnachteil dieser beiden Schemata ist die extrem niedrige Schreibgeschwindigkeit auf das Array, da jeder Schreibvorgang eine Aktualisierung der „Prüfsumme“ verursacht, eines Redundanzblocks für die geschriebenen Informationen. Es ist offensichtlich, dass die Leistung eines RAID-3- und RAID-4-Arrays trotz der Streifenstruktur durch die Leistung einer einzelnen Festplatte begrenzt ist, nämlich derjenigen, auf der der „Redundanzblock“ liegt.

RAID-5
Aus dem Versuch, diese Einschränkung zu umgehen, entstand neben RAID-10 der nächste RAID-Typ, der derzeit am weitesten verbreitet ist. Wenn das Schreiben eines „Redundanzblocks“ auf die Festplatte das gesamte Array einschränkt, verteilen wir ihn auch auf die Festplatten des Arrays und erstellen für diese Informationen eine nicht zugewiesene Festplatte, damit die Redundanzaktualisierungsvorgänge auf alle Festplatten des Arrays verteilt werden. Das heißt, wie im Fall von RAID-3(4) verwenden wir Festplatten zum Speichern von N Informationen in der Menge von N + 1 Festplatten, aber im Gegensatz zu Typ 3 und 4 wird diese Festplatte auch zum Speichern von Daten verwendet, die mit Redundanzdaten gemischt sind , wie der Rest N.
Mängel? Was wäre es ohne sie? Das Problem mit der langsamen Aufnahme wurde teilweise gelöst, aber immer noch nicht vollständig. Allerdings ist das Schreiben auf ein RAID-5-Array langsamer als das Schreiben auf ein RAID-10-Array. Aber RAID-5 ist „kostengünstiger“. Bei RAID-10 bezahlen wir die Fehlertoleranz mit genau der Hälfte der Festplatten, bei RAID-5 ist es nur eine Festplatte.

Allerdings nimmt die Schreibgeschwindigkeit proportional zur Zunahme der Anzahl der Festplatten im Array ab (im Gegensatz zu RAID-0, wo sie nur zunimmt). Dies liegt daran, dass das Array beim Schreiben eines Datenblocks den Redundanzblock neu berechnen muss, für den es die verbleibenden „horizontalen“ Blöcke liest und den Redundanzblock entsprechend ihren Daten neu berechnet. Das heißt, für einen Schreibvorgang führt ein Array aus 8 Festplatten (7 Datenfestplatten + 1 zusätzliche) 6 Lesevorgänge in den Cache durch (die verbleibenden Datenblöcke von allen Festplatten werden zur Berechnung des Redundanzblocks berechnet) und berechnet daraus den Redundanzblock Blöcke und führen Sie zwei Schreibvorgänge durch (Schreiben eines Blocks aufgezeichneter Daten und Überschreiben eines Redundanzblocks). IN moderne Systeme Das Problem wird teilweise durch Caching gemildert, aber dennoch führt die Verlängerung der RAID-5-Gruppe zwar zu einer proportionalen Erhöhung der Lesegeschwindigkeit, aber auch zu einer entsprechenden Verringerung der Schreibgeschwindigkeit.
Die Situation mit verminderter Leistung beim Schreiben auf RAID-5 führt manchmal zu interessantem Extremismus, zum Beispiel http://www.baarf.com/ ;)

Da RAID-5 jedoch hinsichtlich des Festplattenverbrauchs pro „linearem Megabyte“ die effizienteste RAID-Struktur ist, wird es häufig dort eingesetzt, wo die Reduzierung der Schreibgeschwindigkeit kein entscheidender Parameter ist, beispielsweise für die langfristige Datenspeicherung oder für Daten, die hauptsächlich gelesen werden.
Unabhängig davon sollte erwähnt werden, dass die Erweiterung eines RAID-5-Festplatten-Arrays durch Hinzufügen einer zusätzlichen Festplatte zu einer vollständigen Neuberechnung des gesamten RAID führt, was Stunden und in manchen Fällen sogar Tage dauern kann, wobei die Leistung des Arrays katastrophal abfällt.

RAID-6
Weiterentwicklung der RAID-5-Idee. Wenn wir die zusätzliche Redundanz nach einem anderen Gesetz als dem von RAID-5 berechnen, können wir den Zugriff auf die Daten aufrechterhalten, wenn zwei Festplatten des Arrays ausfallen.
Der Preis hierfür ist eine zusätzliche Platte für die Daten des zweiten „Redundanzblocks“. Das heißt, um Daten zu speichern, die dem Volumen von N Festplatten entsprechen, müssen wir N + 2 Festplatten verwenden. Die „Mathematik“ der Berechnung von Redundanzblöcken wird komplizierter, was zu einer noch stärkeren Reduzierung der Schreibgeschwindigkeit im Vergleich zu RAID-5 führt , aber die Zuverlässigkeit steigt. Darüber hinaus übertrifft es in einigen Fällen sogar die Zuverlässigkeitsstufe von RAID-10. Es ist leicht zu erkennen, dass RAID-10 auch den Ausfall von zwei Festplatten im Array überstehen kann, wenn diese Festplatten jedoch zum gleichen „Spiegel“ oder zu unterschiedlichen, aber nicht zwei gespiegelten Festplatten gehören. Und die Wahrscheinlichkeit einer solchen Situation kann nicht ausgeschlossen werden.

Durch die „Hybridisierung“ kommt es zu einem weiteren Anstieg der Anzahl der RAID-Typen, so entsteht RAID-0+1, aus dem sich das bereits diskutierte RAID-10 entwickelt hat, oder alle möglichen chimären RAID-51 und so weiter.
Glücklicherweise kommen sie nicht in der Tierwelt vor und bleiben normalerweise ein „Traum des Geistes“ (naja, mit Ausnahme des oben bereits beschriebenen RAID-10).

Das Problem, die Zuverlässigkeit der Informationsspeicherung zu erhöhen und gleichzeitig die Leistung eines Datenspeichersystems zu steigern, beschäftigt Entwickler von Computerperipheriegeräten schon seit langem. Was die Erhöhung der Speicherzuverlässigkeit betrifft, ist alles klar: Informationen sind eine Ware und oft sehr wertvoll. Zum Schutz vor Datenverlust wurden viele Methoden erfunden, von denen die bekannteste und zuverlässigste ist Sicherung Information.

Das Problem der Leistungssteigerung des Festplattensubsystems ist sehr komplex. Das Wachstum der Rechenleistung moderner Prozessoren hat zu einem deutlichen Ungleichgewicht zwischen den Fähigkeiten von Festplatten und den Anforderungen von Prozessoren geführt. Gleichzeitig können weder teure SCSI-Laufwerke noch IDE-Laufwerke Sie retten. Wenn jedoch die Fähigkeiten einer Festplatte nicht ausreichen, kann dies möglicherweise teilweise gelöst werden dieses Problem Ist es möglich, mehrere Festplatten zu haben? Natürlich ändert das bloße Vorhandensein von zwei oder mehr Festplatten auf einem Computer oder Server nichts an der Sache – Sie müssen dafür sorgen, dass diese Laufwerke (parallel) zusammenarbeiten, damit die Leistung des Festplattensubsystems verbessert wird Schreib-/Lesevorgänge. Ist es außerdem möglich, durch den Einsatz mehrerer Festplatten nicht nur die Leistung, sondern auch die Zuverlässigkeit der Datenspeicherung zu verbessern, sodass der Ausfall einer der Festplatten nicht zu Informationsverlusten führt? Genau diesen Ansatz haben bereits 1987 die amerikanischen Forscher Patterson, Gibson und Katz von der University of California in Berkeley vorgeschlagen. In ihrem Artikel „A Case for Redundant Arrays of Inexpensive Discs, RAID“ beschrieben sie, wie mehrere kostengünstige Festplatten zu einem einzigen logischen Gerät kombiniert werden könnten, was zu einer höheren Systemkapazität und Leistung führt, ohne dass der Ausfall einzelner Festplatten dies verhindert zum Ausfall des gesamten Systems führen.

Seit der Veröffentlichung des Artikels sind 15 Jahre vergangen, aber die Technologie zum Aufbau von RAID-Arrays hat auch heute noch nicht an Relevanz verloren. Das Einzige, was sich seitdem geändert hat, ist die Dekodierung des RAID-Akronyms. Tatsache ist, dass RAID-Arrays anfangs überhaupt nicht auf billigen Festplatten aufgebaut waren, daher wurde das Wort „Inexpensive“ (preiswert) in „Independent“ (unabhängig) geändert, was zutreffender war.

Darüber hinaus hat sich die RAID-Technologie inzwischen weit verbreitet. Während RAID-Arrays vor einigen Jahren noch in teuren Unternehmensservern mit SCSI-Festplatten zum Einsatz kamen, sind sie heute selbst für Einsteigerserver zu einer Art De-facto-Standard geworden. Darüber hinaus wächst der Markt für IDE-RAID-Controller sukzessive, das heißt, die Aufgabe, RAID-Arrays auf Workstations mit günstigen IDE-Festplatten aufzubauen, wird immer dringlicher. So haben einige Motherboard-Hersteller (Abit, Gigabyte) bereits damit begonnen, IDE-RAID-Controller auf den Boards selbst zu integrieren.

RAID ist also ein redundantes Array unabhängiger Festplatten (Redundant Arrays of Independent Discs), dessen Aufgabe es ist, Fehlertoleranz sicherzustellen und die Leistung zu steigern. Fehlertoleranz wird durch Redundanz erreicht. Das heißt, ein Teil der Speicherplatzkapazität wird für offizielle Zwecke zugewiesen und ist für den Benutzer unzugänglich.

Eine erhöhte Leistung des Festplattensubsystems wird durch den gleichzeitigen Betrieb mehrerer Festplatten gewährleistet. In diesem Sinne gilt: Je mehr Festplatten im Array vorhanden sind (bis zu einer bestimmten Grenze), desto besser.

Zusammen arbeiten Die Festplatten im Array können entweder durch parallelen oder unabhängigen Zugriff organisiert werden.

Beim parallelen Zugriff wird der Speicherplatz zur Datenaufzeichnung in Blöcke (Strips) unterteilt. Ebenso werden die auf die Festplatte zu schreibenden Informationen in dieselben Blöcke unterteilt. Beim Schreiben werden einzelne Blöcke auf unterschiedliche Festplatten geschrieben (Abb. 1) und mehrere Blöcke gleichzeitig auf unterschiedliche Festplatten geschrieben, was zu einer Leistungssteigerung bei Schreibvorgängen führt. Die notwendigen Informationen werden zudem in separaten Blöcken gleichzeitig von mehreren Festplatten gelesen (Abb. 2), wodurch sich auch die Leistung proportional zur Anzahl der Festplatten im Array erhöht.

Es ist zu beachten, dass das parallele Zugriffsmodell nur implementiert wird, wenn die Größe der Datenschreibanforderung größer ist als die Größe des Blocks selbst. Andernfalls ist eine parallele Aufzeichnung mehrerer Blöcke einfach nicht realisierbar. Stellen wir uns eine Situation vor, in der die Größe eines einzelnen Blocks 8 KB beträgt und die Größe einer Anforderung zum Schreiben von Daten 64 KB beträgt. In diesem Fall Hintergrundinformation ist in acht Blöcke zu je 8 KB aufgeteilt. Wenn Sie über ein Array mit vier Festplatten verfügen, können Sie vier Blöcke oder 32 KB gleichzeitig schreiben. Offensichtlich sind im betrachteten Beispiel die Schreib- und Lesegeschwindigkeiten viermal höher als bei Verwendung einer Festplatte. Diese Situation ist jedoch ideal, da die Anforderungsgröße nicht immer ein Vielfaches der Blockgröße und der Anzahl der Festplatten im Array ist.

Ist die Größe der aufgezeichneten Daten kleiner als die Blockgröße, kommt ein grundlegend anderes Zugriffsmodell zum Einsatz – der unabhängige Zugriff. Darüber hinaus kann dieses Modell auch dann implementiert werden, wenn die Größe der geschriebenen Daten größer als die Größe eines Blocks ist. Beim unabhängigen Zugriff werden alle Daten einer einzelnen Anfrage auf eine separate Festplatte geschrieben, d. h. die Situation ist identisch mit der Arbeit mit einer Festplatte. Der Vorteil des parallelen Zugriffsmodells besteht darin, dass mehrere gleichzeitig eintreffende Schreib-(Lese-)Anfragen alle unabhängig voneinander auf separaten Festplatten ausgeführt werden (Abb. 3). Eine ähnliche Situation ist beispielsweise bei Servern typisch.

Gemäß verschiedene Arten Für den Zugriff gibt es verschiedene Arten von RAID-Arrays, die in der Regel durch RAID-Level gekennzeichnet sind. Neben der Art des Zugriffs unterscheiden sich RAID-Level auch in der Art und Weise, wie sie redundante Informationen aufnehmen und generieren. Redundante Informationen können entweder auf einer speziell zugewiesenen Festplatte abgelegt oder zwischen allen Festplatten gemischt werden. Es gibt mehrere weitere Möglichkeiten, diese Informationen zu generieren. Die einfachste davon ist die vollständige Duplizierung (100-prozentige Redundanz) oder Spiegelung. Darüber hinaus werden Fehlerkorrekturcodes sowie Paritätsberechnungen verwendet.

RAID-Level

Derzeit gibt es mehrere standardisierte RAID-Level: von RAID 0 bis RAID 5. Darüber hinaus werden Kombinationen dieser Level sowie proprietäre Level (z. B. RAID 6, RAID 7) verwendet. Die häufigsten Stufen sind 0, 1, 3 und 5.

RAID 0

RAID-Level 0 ist streng genommen kein redundantes Array und bietet dementsprechend keine zuverlässige Datenspeicherung. Dennoch wird diese Ebene häufig in Fällen verwendet, in denen eine hohe Leistung des Festplattensubsystems gewährleistet werden muss. Besonders beliebt ist diese Ebene an Arbeitsplätzen. Beim Erstellen eines RAID-Level-0-Arrays werden Informationen in Blöcke unterteilt, die auf separate Festplatten geschrieben werden (Abb. 4), d. h. es entsteht ein System mit parallelem Zugriff (sofern die Blockgröße dies natürlich zulässt). Mit der Möglichkeit, gleichzeitige E/A von mehreren Laufwerken durchzuführen, bietet RAID 0 maximale Datenübertragungsgeschwindigkeiten und maximale Effizienz Speicherplatznutzung, da kein Speicherplatz zum Speichern von Prüfsummen erforderlich ist. Die Umsetzung dieses Levels ist sehr einfach. RAID 0 wird hauptsächlich in Bereichen verwendet, in denen schnelle Übertragung große Datenmenge.

RAID 1 (gespiegelte Festplatte)

RAID Level 1 ist ein Array von Festplatten mit 100 Prozent Redundanz. Das heißt, die Daten werden einfach vollständig dupliziert (gespiegelt), wodurch ein sehr hohes Maß an Zuverlässigkeit (und Kosten) erreicht wird. Beachten Sie, dass es zur Implementierung von Level 1 nicht erforderlich ist, die Festplatten und Daten zunächst in Blöcke zu partitionieren. Im einfachsten Fall enthalten zwei Festplatten die gleichen Informationen und bilden eine logische Festplatte (Abb. 5). Wenn eine Festplatte ausfällt, werden ihre Funktionen von einer anderen ausgeführt (was für den Benutzer absolut transparent ist). Darüber hinaus verdoppelt diese Stufe die Lesegeschwindigkeit von Informationen, da dieser Vorgang gleichzeitig von zwei Festplatten ausgeführt werden kann. Dieses Informationsspeicherschema wird hauptsächlich in Fällen verwendet, in denen die Kosten für die Datensicherheit viel höher sind als die Kosten für die Implementierung eines Speichersystems.

RAID 2

RAID Level 2 ist ein Datenredundanzschema, das Hamming-Code (siehe unten) zur Fehlerkorrektur verwendet. Die geschriebenen Daten werden nicht wie bei RAID 0 auf Basis einer Blockstruktur gebildet, sondern auf Basis von Wörtern, und die Wortgröße entspricht der Anzahl der Festplatten zum Aufzeichnen von Daten im Array. Wenn das Array beispielsweise über vier Festplatten zum Schreiben von Daten verfügt, entspricht die Wortgröße vier Festplatten. Jedes einzelne Bit eines Wortes wird auf eine separate Festplatte im Array geschrieben. Wenn ein Array beispielsweise über vier Festplatten zum Aufzeichnen von Daten verfügt, wird eine Folge von vier Bits, also ein Wort, so auf das Festplatten-Array geschrieben, dass sich das erste Bit auf der ersten Festplatte befindet zweites Bit auf dem zweiten usw.

Darüber hinaus wird für jedes Wort ein Fehlerkorrekturcode (ECC) berechnet, der auf dedizierte Festplatten zur Speicherung von Steuerinformationen geschrieben wird (Abb. 6). Ihre Anzahl entspricht der Anzahl der Bits im Steuerwort, und jedes Bit des Steuerworts wird auf eine separate Festplatte geschrieben. Die Anzahl der Bits im Steuerwort und dementsprechend die erforderliche Anzahl an Datenträgern zum Speichern von Steuerinformationen wird nach folgender Formel berechnet: wobei K die Bittiefe des Datenworts ist.

Bei der Berechnung mit der angegebenen Formel wird L natürlich auf die nächste ganze Zahl aufgerundet. Um jedoch nicht mit Formeln herumzuspielen, können Sie eine andere mnemonische Regel verwenden: Die Bittiefe des Steuerworts wird durch die Anzahl der Bits bestimmt, die für die binäre Darstellung der Wortgröße erforderlich sind. Wenn die Wortgröße beispielsweise vier beträgt (in binärer Schreibweise 100), sind zum Schreiben dieser Zahl in binärer Form drei Ziffern erforderlich, was bedeutet, dass die Steuerwortgröße drei beträgt. Wenn also vier Festplatten zum Speichern von Daten vorhanden sind, sind drei weitere Festplatten zum Speichern der Steuerdaten erforderlich. Wenn Sie sieben Festplatten für Daten haben (in Binärschreibweise 111), benötigen Sie ebenfalls drei Festplatten zum Speichern von Steuerwörtern. Wenn acht Festplatten für Daten reserviert sind (in binärer Schreibweise 1000), werden vier Festplatten für Steuerinformationen benötigt.

Der Hamming-Code, der das Steuerwort bildet, basiert auf der Verwendung der bitweisen „Exklusiv-OR“-Operation (XOR) (auch „Disparität“ genannt). Denken Sie daran, dass die logische Operation XOR eins ergibt, wenn die Operanden nicht übereinstimmen (0 und 1), und null, wenn sie übereinstimmen (0 und 0 oder 1 und 1).

Das mit dem Hamming-Algorithmus erhaltene Steuerwort selbst ist die Umkehrung des Ergebnisses der bitweisen Exklusiv-ODER-Verknüpfung der Nummern der Informationsbits des Wortes, deren Werte gleich 1 sind. Betrachten Sie zur Veranschaulichung ursprüngliches Wort 1101. Die erste (001), dritte (011) und vierte (100) Ziffer dieses Wortes enthält eine. Daher ist es notwendig, für diese Bitnummern eine bitweise Exklusiv-ODER-Verknüpfung durchzuführen:

Das Steuerwort selbst (Hamming-Code) wird durch bitweise Invertierung des resultierenden Ergebnisses erhalten, d. h. es ist gleich 001.

Beim Auslesen der Daten wird der Hamming-Code erneut berechnet und mit dem Quellcode verglichen. Um zwei Codes zu vergleichen, wird eine bitweise „exklusive ODER“-Operation verwendet. Ist das Vergleichsergebnis in allen Bits Null, so ist der Messwert korrekt, andernfalls ist sein Wert die Nummer des fehlerhaft empfangenen Bits des Hauptcodes. Das Quellwort sei beispielsweise gleich 1100000. Da sich die Einsen an der sechsten (110) und siebten (111) Stelle befinden, ist das Kontrollwort gleich:

Wenn beim Lesen das Wort 1100100 aufgezeichnet wird, ist das Steuerwort dafür gleich 101. Wenn wir das ursprüngliche Steuerwort mit dem empfangenen vergleichen (bitweise Exklusiv-ODER-Verknüpfung), erhalten wir:

das heißt, ein Lesefehler an der dritten Position.

Wenn man also genau weiß, welches Bit fehlerhaft ist, kann man es schnell und einfach korrigieren.

RAID 2 ist einer der wenigen Level, der es Ihnen ermöglicht, nicht nur einzelne Fehler im laufenden Betrieb zu korrigieren, sondern auch doppelte Fehler zu erkennen. Darüber hinaus ist es von allen Ebenen mit Korrekturcodes die redundanteste. Dieses Datenspeicherschema wird selten verwendet, da es eine große Anzahl von Anforderungen nicht gut verarbeiten kann, komplex zu organisieren ist und nur wenige Vorteile gegenüber RAID 3 bietet.

RAID 3

RAID Level 3 ist ein fehlertolerantes Array mit parallelem I/O und einem zusätzliche Festplatte, auf dem Kontrollinformationen aufgezeichnet sind (Abb. 7). Bei der Aufzeichnung wird der Datenstrom auf Byte-Ebene (möglicherweise jedoch auch auf Bit-Ebene) in Blöcke unterteilt und gleichzeitig auf alle Festplatten des Arrays geschrieben, mit Ausnahme der für die Speicherung von Steuerinformationen vorgesehenen. Zur Berechnung der Kontrollinformationen (auch Prüfsumme genannt) wird eine Exklusiv-Oder-Operation (XOR) auf die zu schreibenden Datenblöcke angewendet. Wenn eine Festplatte ausfällt, können die darauf befindlichen Daten mithilfe der Kontrolldaten und der auf fehlerfreien Festplatten verbleibenden Daten wiederhergestellt werden.

Betrachten Sie zur Veranschaulichung Blöcke mit jeweils vier Bits. Es seien vier Festplatten zum Speichern von Daten und eine Festplatte zum Aufzeichnen von Prüfsummen vorhanden. Wenn eine Folge von Bits 1101 0011 1100 1011 vorhanden ist, die in Blöcke zu je vier Bits unterteilt ist, muss zur Berechnung der Prüfsumme die folgende Operation ausgeführt werden:

Somit beträgt die auf die fünfte Festplatte geschriebene Prüfsumme 1001.

Wenn eine der Festplatten, beispielsweise die dritte, ausfällt, steht der Block 1100 nicht zum Lesen zur Verfügung. Sein Wert kann jedoch mithilfe der Prüfsumme und der Werte der verbleibenden Blöcke mithilfe derselben „exklusiven ODER“-Operation leicht wiederhergestellt werden:

Block 3=Block 1Block 2Block 4

Prüfsumme.

In unserem Beispiel erhalten wir:

Block 3=1101001110111001= 1100.

RAID Level 3 weist eine deutlich geringere Redundanz auf als RAID 2. Durch die Aufteilung der Daten in Blöcke weist RAID 3 eine hohe Leistung auf. Beim Lesen von Informationen wird nicht mit Prüfsummen auf die Festplatte zugegriffen (es sei denn, es liegt ein Fehler vor), was bei jedem Schreibvorgang der Fall ist. Da jeder I/O-Vorgang praktisch auf alle Festplatten im Array zugreift, ist die gleichzeitige Verarbeitung mehrerer Anforderungen nicht möglich. Diese Stufe eignet sich für Anwendungen mit großen Dateien und geringer Zugriffshäufigkeit. Zu den Vorteilen von RAID 3 zählen außerdem ein leichter Leistungsabfall im Fehlerfall und eine schnelle Wiederherstellung von Informationen.

RAID 4

RAID Level 4 ist ein fehlertolerantes Array unabhängiger Festplatten mit einem Laufwerk zum Speichern von Prüfsummen (Abbildung 8). RAID 4 ähnelt in vielerlei Hinsicht RAID 3, unterscheidet sich von letzterem jedoch vor allem durch die deutlich größere Blockgröße der zu schreibenden Daten (größer als die Größe der zu schreibenden Daten). Dies ist der Hauptunterschied zwischen RAID 3 und RAID 4. Nach dem Schreiben einer Gruppe von Blöcken wird (analog zu RAID 3) eine Prüfsumme berechnet, die auf die dafür vorgesehene Festplatte geschrieben wird. Mit einer größeren Blockgröße als RAID 3 können mehrere Lesevorgänge gleichzeitig durchgeführt werden (unabhängiges Zugriffsdesign).

RAID 4 verbessert die Leistung kleiner Dateiübertragungen (durch Parallelisierung des Lesevorgangs). Da bei der Aufzeichnung jedoch die Prüfsumme auf der zugewiesenen Festplatte berechnet werden muss, sind hier gleichzeitige Vorgänge nicht möglich (es besteht eine Asymmetrie der Eingabe- und Ausgabevorgänge). Die betrachtete Ebene bietet keine Geschwindigkeitsvorteile bei der Übertragung großer Datenmengen. Dieses Speicherschema wurde für Anwendungen entwickelt, bei denen Daten zunächst in kleine Blöcke aufgeteilt werden, sodass eine weitere Aufteilung nicht erforderlich ist. RAID 4 ist eine gute Lösung für Dateiserver, bei denen Informationen hauptsächlich gelesen und selten geschrieben werden. Dieses Datenspeicherschema ist zwar kostengünstig, seine Implementierung ist jedoch recht komplex, ebenso wie die Datenwiederherstellung im Fehlerfall.

RAID 5

RAID-Level 5 ist ein fehlertolerantes Array unabhängiger Festplatten mit verteilter Speicherung von Prüfsummen (Abb. 9). Datenblöcke und Prüfsummen, die auf die gleiche Weise wie bei RAID 3 berechnet werden, werden zyklisch auf alle Festplatten des Arrays geschrieben, d. h. es gibt keine dedizierte Festplatte zum Speichern von Prüfsummeninformationen.

Bei RAID 5 sind alle Festplatten im Verbund gleich groß, die insgesamt zum Schreiben zur Verfügung stehende Kapazität des Festplattensubsystems wird jedoch um genau eine Festplatte kleiner. Wenn beispielsweise fünf Festplatten eine Größe von 10 GB haben, beträgt die tatsächliche Größe des Arrays 40 GB, da 10 GB für Steuerinformationen reserviert sind.

RAID 5 verfügt wie RAID 4 über eine unabhängige Zugriffsarchitektur, das heißt, im Gegensatz zu RAID 3 bietet es eine große Anzahl logischer Blöcke zum Speichern von Informationen. Daher bietet ein solches Array, wie im Fall von RAID 4, den Hauptvorteil bei der gleichzeitigen Verarbeitung mehrerer Anfragen.

Der Hauptunterschied zwischen RAID 5 und RAID 4 besteht in der Art und Weise, wie die Prüfsummen platziert werden.

Das Vorhandensein einer separaten (physischen) Festplatte, auf der Informationen über Prüfsummen gespeichert sind, führt hier wie in den drei vorherigen Ebenen dazu, dass Lesevorgänge, die keinen Zugriff auf diese Festplatte erfordern, mit hoher Geschwindigkeit ausgeführt werden. Allerdings ändert jeder Schreibvorgang die Informationen auf der Steuerplatte, sodass RAID 2, RAID 3 und RAID 4 keine parallelen Schreibvorgänge zulassen. RAID 5 hat diesen Nachteil nicht, da Prüfsummen auf alle Festplatten im Array geschrieben werden, sodass mehrere Lese- oder Schreibvorgänge gleichzeitig durchgeführt werden können.

Praktische Anwendung

Für die praktische Umsetzung von RAID-Arrays sind zwei Komponenten erforderlich: das Festplatten-Array selbst und der RAID-Controller. Der Controller übernimmt die Funktionen der Kommunikation mit dem Server (Workstation), der Generierung redundanter Informationen beim Schreiben und der Überprüfung beim Lesen sowie der Verteilung von Informationen auf Festplatten gemäß dem Betriebsalgorithmus.

Strukturell können Controller entweder extern oder intern sein. Auf dem Motherboard sind auch RAID-Controller integriert. Darüber hinaus unterscheiden sich Controller in der unterstützten Festplattenschnittstelle. So sind SCSI-RAID-Controller für den Einsatz in Servern gedacht und IDE-RAID-Controller eignen sich sowohl für Einstiegsserver als auch für Workstations.

Ein besonderes Merkmal von RAID-Controllern ist die Anzahl der unterstützten Kanäle hart verbinden Festplatten. Obwohl mehrere SCSI-Laufwerke an einen Controller-Kanal angeschlossen werden können, wird der Gesamtdurchsatz des RAID-Arrays durch den Durchsatz eines Kanals begrenzt, der dem Durchsatz der SCSI-Schnittstelle entspricht. Somit kann die Verwendung mehrerer Kanäle die Leistung des Festplattensubsystems erheblich verbessern.

Bei der Verwendung von IDE-RAID-Controllern wird das Problem der Mehrkanaligkeit noch akuter, da zwei Festplatte an einen Kanal angeschlossen (mehr Festplatten werden von der Schnittstelle selbst nicht unterstützt) kann keinen Parallelbetrieb ermöglichen – über die IDE-Schnittstelle können Sie zu einem bestimmten Zeitpunkt nur auf eine Festplatte zugreifen. Daher müssen IDE-RAID-Controller mindestens zweikanalig sein. Es gibt auch Vier- und sogar Achtkanal-Controller.

Ein weiterer Unterschied zwischen IDE-RAID- und SCSI-RAID-Controllern besteht in der Anzahl der unterstützten Ebenen. SCSI-RAID-Controller unterstützen alle Hauptebenen und in der Regel mehrere weitere kombinierte und proprietäre Ebenen. Die von IDE-RAID-Controllern unterstützten Ebenen sind viel bescheidener. Normalerweise sind dies die Null- und die erste Ebene. Darüber hinaus gibt es Controller, die die fünfte Ebene und eine Kombination aus erster und Null unterstützen: 0+1. Dieser Ansatz ist durchaus logisch, da IDE-RAID-Controller in erster Linie für Workstations konzipiert sind und der Schwerpunkt daher auf der Erhöhung der Datenintegrität (Level 1) bzw. der Leistung bei parallelem I/O (Level 0) liegt. In diesem Fall ist kein unabhängiges Festplattenschema erforderlich, da der Fluss von Schreib-/Leseanforderungen auf Workstations viel geringer ist als beispielsweise auf Servern.

Die Hauptfunktion eines RAID-Arrays besteht nicht darin, die Kapazität des Festplattensubsystems zu erhöhen (wie aus seinem Design hervorgeht, kann die gleiche Kapazität für weniger Geld erhalten werden), sondern darin, eine zuverlässige Datenspeicherung sicherzustellen und die Leistung zu steigern. Für Server besteht darüber hinaus die Forderung nach einem unterbrechungsfreien Betrieb, auch wenn eines der Laufwerke ausfällt. Der unterbrechungsfreie Betrieb wird durch Hot-Swapping gewährleistet, d. h. das Entfernen einer fehlerhaften SCSI-Festplatte und das Installieren einer neuen, ohne den Strom auszuschalten. Da das Festplattensubsystem bei Ausfall eines Laufwerks betriebsbereit bleibt (mit Ausnahme von Level 0), ermöglicht Hot-Swapping eine für Benutzer transparente Wiederherstellung. Die Übertragungsgeschwindigkeit und Zugriffsgeschwindigkeit mit einer nicht funktionierenden Festplatte werden jedoch merklich reduziert, da der Controller Daten aus redundanten Informationen wiederherstellen muss. Es gibt zwar eine Ausnahme von dieser Regel: RAID-Systeme der Stufen 2, 3, 4 beginnen schneller zu arbeiten, wenn ein Laufwerk mit redundanten Informationen ausfällt! Dies ist natürlich, da in diesem Fall der Pegel „im laufenden Betrieb“ auf Null wechselt, was hervorragende Geschwindigkeitseigenschaften aufweist.

Bisher ging es in diesem Artikel um Hardwarelösungen. Es gibt aber auch Software, die beispielsweise von Microsoft für Windows 2000 Server angeboten wird. Allerdings werden in diesem Fall einige anfängliche Einsparungen durch die zusätzliche Belastung vollständig ausgeglichen CPU, das zusätzlich zu seiner Hauptaufgabe gezwungen ist, Daten auf Festplatten zu verteilen und Prüfsummen zu berechnen. Eine solche Lösung kann nur bei deutlichem Überschuss an Rechenleistung und geringer Serverlast als akzeptabel angesehen werden.


Sergej Pachomow

ComputerPress 3"2002

Alle modernen Mainboards sind mit einem integrierten RAID-Controller ausgestattet, Topmodelle verfügen sogar über mehrere integrierte RAID-Controller. Inwieweit integrierte RAID-Controller von Heimanwendern nachgefragt werden, ist eine andere Frage. Auf jeden Fall modern Hauptplatine bietet dem Benutzer die Möglichkeit, ein RAID-Array aus mehreren Festplatten zu erstellen. Allerdings weiß nicht jeder Heimanwender, wie man ein RAID-Array erstellt, welche Array-Ebene er wählen soll und hat im Allgemeinen keine Ahnung von den Vor- und Nachteilen der Verwendung von RAID-Arrays.
In diesem Artikel geben wir kurze Empfehlungen zum Erstellen von RAID-Arrays auf Heim-PCs und zeigen anhand eines konkreten Beispiels, wie Sie die Leistung eines RAID-Arrays unabhängig testen können.

Geschichte der Schöpfung

Der Begriff „RAID-Array“ tauchte erstmals 1987 auf, als die amerikanischen Forscher Patterson, Gibson und Katz von der University of California Berkeley in ihrem Artikel „A Case for Redundant Arrays of Inexpensive Discs, RAID“ beschrieben, wie man auf diese Weise mehrere kombinieren kann kostengünstige Festplatten in einem logischen Gerät zusammenzufassen, sodass die resultierende Kapazität und Leistung des Systems erhöht wird und der Ausfall einzelner Laufwerke nicht zum Ausfall des gesamten Systems führt.

Seit der Veröffentlichung dieses Artikels sind mehr als 20 Jahre vergangen, aber die Technologie zum Aufbau von RAID-Arrays hat auch heute noch nicht an Relevanz verloren. Das Einzige, was sich seitdem geändert hat, ist die Dekodierung des RAID-Akronyms. Tatsache ist, dass RAID-Arrays anfangs überhaupt nicht auf billigen Festplatten aufgebaut waren, daher wurde das Wort „Inexpensive“ (preiswert) in „Independent“ (unabhängig) geändert, was zutreffender war.

Funktionsprinzip

RAID ist also ein redundantes Array unabhängiger Festplatten (Redundant Arrays of Independent Discs), dessen Aufgabe es ist, Fehlertoleranz sicherzustellen und die Leistung zu steigern. Fehlertoleranz wird durch Redundanz erreicht. Das heißt, ein Teil der Speicherplatzkapazität wird für offizielle Zwecke zugewiesen und ist für den Benutzer unzugänglich.

Eine erhöhte Leistung des Festplattensubsystems wird durch den gleichzeitigen Betrieb mehrerer Festplatten gewährleistet. In diesem Sinne gilt: Je mehr Festplatten im Array vorhanden sind (bis zu einer bestimmten Grenze), desto besser.

Der gemeinsame Betrieb von Festplatten in einem Array kann entweder über parallelen oder unabhängigen Zugriff organisiert werden. Beim parallelen Zugriff wird der Speicherplatz zur Datenaufzeichnung in Blöcke (Strips) unterteilt. Ebenso werden die auf die Festplatte zu schreibenden Informationen in dieselben Blöcke unterteilt. Beim Schreiben werden einzelne Blöcke auf unterschiedliche Festplatten und mehrere Blöcke gleichzeitig auf unterschiedliche Festplatten geschrieben, was zu einer Leistungssteigerung bei Schreibvorgängen führt. Die notwendigen Informationen werden zudem in separaten Blöcken gleichzeitig von mehreren Festplatten gelesen, wodurch sich auch die Leistung proportional zur Anzahl der Festplatten im Array erhöht.

Es ist zu beachten, dass das parallele Zugriffsmodell nur implementiert wird, wenn die Größe der Datenschreibanforderung größer ist als die Größe des Blocks selbst. Ansonsten ist eine parallele Aufzeichnung mehrerer Blöcke nahezu unmöglich. Stellen wir uns eine Situation vor, in der die Größe eines einzelnen Blocks 8 KB beträgt und die Größe einer Anforderung zum Schreiben von Daten 64 KB beträgt. In diesem Fall werden die Quellinformationen in acht Blöcke zu je 8 KB zerschnitten. Wenn Sie über ein Array mit vier Festplatten verfügen, können Sie vier Blöcke oder 32 KB gleichzeitig schreiben. Offensichtlich sind im betrachteten Beispiel die Schreib- und Lesegeschwindigkeiten viermal höher als bei Verwendung einer einzelnen Festplatte. Dies gilt nur für eine ideale Situation, aber die Anforderungsgröße ist nicht immer ein Vielfaches der Blockgröße und der Anzahl der Festplatten im Array.

Ist die Größe der aufgezeichneten Daten kleiner als die Blockgröße, kommt ein grundlegend anderes Modell zum Einsatz – der unabhängige Zugriff. Darüber hinaus kann dieses Modell auch verwendet werden, wenn die Größe der zu schreibenden Daten größer als die Größe eines Blocks ist. Beim unabhängigen Zugriff werden alle Daten einer einzelnen Anfrage auf eine separate Festplatte geschrieben, d. h. die Situation ist identisch mit der Arbeit mit einer Festplatte. Der Vorteil des unabhängigen Zugriffsmodells besteht darin, dass mehrere gleichzeitig eintreffende Schreib-(Lese-)Anfragen alle unabhängig voneinander auf separaten Festplatten ausgeführt werden. Diese Situation ist beispielsweise für Server typisch.

Je nach Zugangsart gibt es unterschiedliche Arten verschiedene Typen RAID-Arrays, die normalerweise durch RAID-Level gekennzeichnet sind. Neben der Art des Zugriffs unterscheiden sich RAID-Level auch in der Art und Weise, wie sie redundante Informationen aufnehmen und generieren. Redundante Informationen können entweder auf einer dedizierten Festplatte abgelegt oder auf alle Festplatten verteilt werden. Es gibt viele Möglichkeiten, diese Informationen zu generieren. Die einfachste davon ist die vollständige Duplizierung (100-prozentige Redundanz) oder Spiegelung. Darüber hinaus werden Fehlerkorrekturcodes sowie Paritätsberechnungen verwendet.

RAID-Level

Derzeit gibt es mehrere RAID-Level, die als standardisiert gelten können – dies sind RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5 und RAID 6.

Es kommen auch verschiedene Kombinationen von RAID-Levels zum Einsatz, wodurch Sie deren Vorteile kombinieren können. Typischerweise handelt es sich dabei um eine Kombination aus einer Art Fehlertoleranzstufe und einer Nullstufe zur Verbesserung der Leistung (RAID 1+0, RAID 0+1, RAID 50).

Beachten Sie, dass alle modernen RAID-Controller die JBOD-Funktion (Just a Bench Of Disks) unterstützen, die nicht für die Erstellung von Arrays gedacht ist, sondern die Möglichkeit bietet, einzelne Festplatten an den RAID-Controller anzuschließen.

Zu beachten ist, dass die auf Mainboards für Heim-PCs integrierten RAID-Controller nicht alle RAID-Level unterstützen. Dual-Port-RAID-Controller unterstützen nur die Level 0 und 1, während RAID-Controller mit mehr Ports (z. B. ein 6-Port-RAID-Controller integriert in Südbrücke Chipsatz ICH9R/ICH10R) - auch Level 10 und 5.

Wenn wir über Motherboards sprechen, die auf Intel-Chipsätzen basieren, implementieren sie außerdem auch die Intel Matrix RAID-Funktion, mit der Sie gleichzeitig RAID-Matrizen mehrerer Ebenen auf mehreren Festplatten erstellen und jedem von ihnen einen Teil des Speicherplatzes zuweisen können.

RAID 0

RAID-Level 0 ist streng genommen kein redundantes Array und bietet dementsprechend keine zuverlässige Datenspeicherung. Dennoch wird diese Ebene in Fällen aktiv genutzt, in denen eine hohe Leistung des Festplattensubsystems sichergestellt werden muss. Beim Erstellen eines RAID-Level-0-Arrays werden Informationen in Blöcke unterteilt (manchmal werden diese Blöcke auch als Stripes bezeichnet), die auf separate Festplatten geschrieben werden, d. h. es entsteht ein System mit parallelem Zugriff (sofern die Blockgröße dies natürlich zulässt). ). Durch die gleichzeitige E/A von mehreren Festplatten bietet RAID 0 die schnellsten Datenübertragungsgeschwindigkeiten und maximale Speicherplatzeffizienz, da kein Speicherplatz für Prüfsummen erforderlich ist. Die Umsetzung dieses Levels ist sehr einfach. RAID 0 wird hauptsächlich in Bereichen eingesetzt, in denen eine schnelle Übertragung großer Datenmengen erforderlich ist.

RAID 1 (gespiegelte Festplatte)

RAID-Level 1 ist ein Array aus zwei Festplatten mit 100-prozentiger Redundanz. Das heißt, die Daten werden einfach vollständig dupliziert (gespiegelt), wodurch ein sehr hohes Maß an Zuverlässigkeit (und Kosten) erreicht wird. Beachten Sie, dass es zur Implementierung von Level 1 nicht erforderlich ist, die Festplatten und Daten zunächst in Blöcke zu partitionieren. Im einfachsten Fall enthalten zwei Festplatten die gleichen Informationen und bilden eine logische Festplatte. Wenn eine Festplatte ausfällt, werden ihre Funktionen von einer anderen ausgeführt (was für den Benutzer absolut transparent ist). Array-Wiederherstellung läuft einfaches Kopieren. Darüber hinaus verdoppelt diese Stufe die Lesegeschwindigkeit von Informationen, da dieser Vorgang gleichzeitig von zwei Festplatten ausgeführt werden kann. Diese Art von Informationsspeicherungsschema wird hauptsächlich in Fällen verwendet, in denen die Kosten für die Datensicherheit viel höher sind als die Kosten für die Implementierung eines Speichersystems.

RAID 5

RAID 5 ist ein fehlertolerantes Festplatten-Array mit verteilter Prüfsummenspeicherung. Bei der Aufzeichnung wird der Datenstrom auf Byte-Ebene in Blöcke (Stripes) unterteilt und gleichzeitig in zyklischer Reihenfolge auf alle Platten des Arrays geschrieben.

Angenommen, das Array enthält N Festplatten und die Stripe-Größe D. Für jede Portion n–1 Streifen wird die Prüfsumme berechnet P.

Streifen d 1 auf der ersten Festplatte aufgezeichnet, Streifen d 2- beim zweiten und so weiter bis zum Streifen dn–1, das geschrieben wird an ( N–1)te Festplatte. Weiter geht's N-Disk-Prüfsumme wird geschrieben p n, und der Vorgang wird zyklisch ab der ersten Festplatte wiederholt, auf die der Stripe geschrieben wird d n.

Aufnahmevorgang (n–1) Streifen und deren Prüfsumme werden für alle gleichzeitig erstellt N Festplatten.

Die Prüfsumme wird mithilfe einer bitweisen Exklusiv-Oder-Operation (XOR) berechnet, die auf die zu schreibenden Datenblöcke angewendet wird. Also, wenn ja N Festplatte, D- Datenblock (Stripe), dann wird die Prüfsumme nach folgender Formel berechnet:

pn=d1 d 2 ... d 1–1.

Wenn eine Festplatte ausfällt, können die darauf befindlichen Daten mithilfe der Kontrolldaten und der auf den Arbeitsplatten verbleibenden Daten wiederhergestellt werden.

Betrachten Sie zur Veranschaulichung Blöcke mit jeweils vier Bits. Es seien nur fünf Festplatten zum Speichern von Daten und zum Aufzeichnen von Prüfsummen vorhanden. Wenn eine Folge von Bits 1101 0011 1100 1011 vorhanden ist, die in Blöcke zu je vier Bits unterteilt ist, muss zur Berechnung der Prüfsumme die folgende bitweise Operation ausgeführt werden:

1101 0011 1100 1011 = 1001.

Somit beträgt die auf die fünfte Festplatte geschriebene Prüfsumme 1001.

Wenn eine der Festplatten, zum Beispiel die vierte, ausfällt, erfolgt die Blockierung d 4= 1100 ist beim Lesen nicht verfügbar. Sein Wert kann jedoch mithilfe der Prüfsumme und der Werte der verbleibenden Blöcke mithilfe derselben „exklusiven ODER“-Operation leicht wiederhergestellt werden:

d4 = d1 d 2d 4S. 5.

In unserem Beispiel erhalten wir:

d4 = (1101) (0011) (1100) (1011) = 1001.

Bei RAID 5 sind alle Festplatten im Verbund gleich groß, die insgesamt zum Schreiben zur Verfügung stehende Kapazität des Festplattensubsystems wird jedoch um genau eine Festplatte kleiner. Wenn beispielsweise fünf Festplatten 100 GB groß sind, beträgt die tatsächliche Größe des Arrays 400 GB, da 100 GB für Steuerinformationen reserviert sind.

RAID 5 kann auf drei oder mehr Festplatten aufgebaut werden. Mit zunehmender Anzahl an Festplatten in einem Array nimmt dessen Redundanz ab.

RAID 5 verfügt über eine unabhängige Zugriffsarchitektur, die dies ermöglicht gleichzeitige Ausführung mehrere Lese- oder Schreibvorgänge.

RAID 10

RAID-Level 10 ist eine Kombination aus den Leveln 0 und 1. Die Mindestanforderung für diesen Level sind vier Laufwerke. In einem RAID 10-Verbund aus vier Laufwerken werden diese paarweise zu Level-0-Arrays zusammengefasst, und diese beiden Arrays werden als logische Laufwerke zu einem Level-1-Array zusammengefasst. Auch ein anderer Ansatz ist möglich: Zunächst werden die Festplatten zu gespiegelten Arrays zusammengefasst Ebene 1 und dann logische Laufwerke basierend auf diesen Arrays - in ein Array der Ebene 0.

Intel Matrix RAID

Die betrachteten RAID-Arrays der Level 5 und 1 werden zu Hause selten verwendet, was vor allem an den hohen Kosten solcher Lösungen liegt. Am häufigsten wird für Heim-PCs ein Level-0-Array auf zwei Festplatten verwendet. Wie wir bereits festgestellt haben, bietet RAID-Level 0 keine sichere Datenspeicherung, und daher stehen Endbenutzer vor der Wahl: Erstellen Sie ein schnelles, aber unzuverlässiges RAID-Level-0-Array oder, was die Kosten für Speicherplatz verdoppelt, ein RAID-Level-1-Array Dies bietet eine zuverlässige Datenspeicherung, bietet jedoch keine nennenswerten Leistungsvorteile.

Um dieses schwierige Problem zu lösen, hat Intel die Intel Matrix Storage-Technologie entwickelt, die die Vorteile von Tier-0- und Tier-1-Arrays auf nur zwei physischen Festplatten vereint. Und um zu betonen, dass es sich in diesem Fall nicht nur um ein RAID-Array handelt, sondern um ein Array, das sowohl physische als auch logische Festplatten kombiniert, wird im Namen der Technologie anstelle des Wortes „Array“ das Wort „Matrix“ verwendet “.

Was ist also eine RAID-Matrix mit zwei Festplatten und Intel Matrix Storage-Technologie? Die Grundidee besteht darin, dass es möglich ist, den Festplattenspeicher in mehrere Teile aufzuteilen, von denen jeder als separates RAID-Array fungiert, wenn das System über mehrere Festplatten und ein Motherboard mit einem Intel-Chipsatz verfügt, der die Intel Matrix Storage-Technologie unterstützt.

Schauen wir uns ein einfaches Beispiel einer RAID-Matrix an, die aus zwei Festplatten mit jeweils 120 GB besteht. Jede der Festplatten kann in zwei logische Festplatten aufgeteilt werden, beispielsweise 40 und 80 GB. Anschließend können zwei logische Laufwerke gleicher Größe (z. B. jeweils 40 GB) zu einer RAID-Level-1-Matrix und die restlichen logischen Laufwerke zu einer RAID-Level-0-Matrix zusammengefasst werden.

Grundsätzlich ist es mit zwei physischen Festplatten auch möglich, nur eine oder zwei RAID-Level-0-Matrizen zu erstellen, es ist jedoch nicht möglich, nur Level-1-Matrizen zu erhalten. Das heißt, wenn das System nur über zwei Festplatten verfügt Intel-Technologie Mit Matrix Storage können Sie die folgenden Arten von RAID-Matrizen erstellen:

  • eine Matrix der Ebene 0;
  • zwei Matrizen der Ebene 0;
  • Level-0-Matrix und Level-1-Matrix.

Wenn das System über drei Festplatten verfügt, können folgende Arten von RAID-Matrizen erstellt werden:

  • eine Matrix der Ebene 0;
  • eine Matrix der Ebene 5;
  • zwei Matrizen der Ebene 0;
  • zwei Matrizen der Stufe 5;
  • Level-0-Matrix und Level-5-Matrix.

Wenn das System über vier Festplatten verfügt, ist es zusätzlich möglich, eine RAID-Matrix der Stufe 10 sowie Kombinationen aus Stufe 10 und Stufe 0 oder 5 zu erstellen.

Von der Theorie zur Praxis

Wenn wir über Heimcomputer sprechen, sind RAID-Arrays der Stufen 0 und 1 am beliebtesten und beliebtesten. Die Verwendung von RAID-Arrays mit drei oder mehr Festplatten in Heim-PCs ist eher eine Ausnahme von der Regel. Dies liegt daran, dass einerseits die Kosten von RAID-Arrays proportional zur Anzahl der daran beteiligten Festplatten steigen und andererseits bei Heimcomputern die Kapazität des Festplatten-Arrays von vorrangiger Bedeutung ist , und nicht seine Leistung und Zuverlässigkeit.

Daher werden wir in Zukunft die RAID-Level 0 und 1 auf Basis von nur zwei Festplatten betrachten. Ziel unserer Forschung ist es, die Leistung und Funktionalität von RAID-Arrays der Stufen 0 und 1 zu vergleichen, die auf der Grundlage mehrerer integrierter RAID-Controller erstellt wurden, sowie die Abhängigkeit der Geschwindigkeitseigenschaften des RAID-Arrays vom Stripe zu untersuchen Größe.

Tatsache ist, dass sich die Lese- und Schreibgeschwindigkeit bei Verwendung eines RAID-Level-0-Arrays zwar theoretisch verdoppeln sollte, die Steigerung der Geschwindigkeitseigenschaften in der Praxis jedoch viel weniger bescheiden ausfällt und je nach RAID-Controller unterschiedlich ausfällt. Dasselbe gilt auch für ein RAID-Level-1-Array: Auch wenn sich die Lesegeschwindigkeit theoretisch verdoppeln sollte, läuft es in der Praxis nicht so flüssig.

Für unseren RAID-Controller-Vergleichstest haben wir das Gigabyte GA-EX58A-UD7-Motherboard verwendet. Dieses Board basiert auf dem Intel X58 Express-Chipsatz mit der ICH10R Southbridge, die über einen integrierten RAID-Controller für sechs SATA II-Ports verfügt, der mit der Intel Matrix RAID-Funktion die Organisation von RAID-Arrays der Level 0, 1, 10 und 5 unterstützt. Darüber hinaus integriert das Gigabyte GA-EX58A-UD7-Board den GIGABYTE SATA2 RAID-Controller, der über zwei SATA II-Ports mit der Möglichkeit verfügt, RAID-Arrays der Level 0, 1 und JBOD zu organisieren.

Auf dem GA-EX58A-UD7-Board befindet sich außerdem ein integrierter SATA III-Controller Marvell 9128, auf dessen Basis zwei SATA III-Ports mit der Möglichkeit implementiert sind, RAID-Arrays der Level 0, 1 und JBOD zu organisieren.

So verfügt das Gigabyte GA-EX58A-UD7-Board über drei separate RAID-Controller, auf deren Basis Sie RAID-Arrays der Level 0 und 1 erstellen und miteinander vergleichen können. Erinnern wir uns daran, dass der SATA III-Standard abwärtskompatibel mit dem SATA II-Standard ist und daher auf dem Marvell 9128-Controller basiert, der Laufwerke mit unterstützt SATA-Schnittstelle III können Sie auch RAID-Arrays mithilfe von Laufwerken mit SATA II-Schnittstelle erstellen.

Der Prüfstand hatte folgenden Aufbau:

  • Prozessor - Intel Core Prozessor i7-965 Extreme Edition;
  • Hauptplatine - Gigabyte GA-EX58A-UD7;
  • BIOS-Version- F2a;
  • Festplatten- zwei Western Digital WD1002FBYS-Laufwerke, ein Western Digital WD3200AAKS-Laufwerk;
  • integrierte RAID-Controller:
  • ICH10R,
  • GIGABYTE SATA2,
  • Marvell 9128;
  • Speicher - DDR3-1066;
  • Speicherkapazität - 3 GB (drei Module zu je 1024 MB);
  • Speicherbetriebsmodus - DDR3-1333, Dreikanal-Betriebsmodus;
  • Grafikkarte - Gigabyte GeForce GTS295;
  • Netzteil - Tagan 1300W.

Die Tests wurden unter der Kontrolle des Operationssaals durchgeführt Microsoft-Systeme Windows 7 Ultimate (32-Bit). Operationssystem wurde auf einem Western Digital WD3200AAKS-Laufwerk installiert, das an den Port des in der ICH10R South Bridge integrierten SATA II-Controllers angeschlossen wurde. Das RAID-Array wurde auf zwei WD1002FBYS-Laufwerken mit SATA II-Schnittstelle aufgebaut.

Um die Geschwindigkeitseigenschaften der erstellten RAID-Arrays zu messen, haben wir das Dienstprogramm IOmeter verwendet, das den Industriestandard zur Messung der Leistung von Festplattensystemen darstellt.

IOmeter-Dienstprogramm

Da wir diesen Artikel als eine Art Benutzerhandbuch zum Erstellen und Testen von RAID-Arrays gedacht haben, wäre es logisch, mit einer Beschreibung des Dienstprogramms IOmeter (Input/Output Meter) zu beginnen, bei dem es sich, wie bereits erwähnt, um eine Art Dienstprogramm handelt Industriestandard zur Messung der Leistung von Festplattensystemen. Dieses Dienstprogramm ist kostenlos und kann von http://www.iometer.org heruntergeladen werden.

Das Dienstprogramm IOmeter ist ein synthetischer Test und ermöglicht die Arbeit mit Festplatten, die nicht in logische Partitionen unterteilt sind. So können Sie Laufwerke unabhängig von der Dateistruktur testen und den Einfluss des Betriebssystems auf Null reduzieren.

Beim Testen ist es möglich, ein bestimmtes Zugriffsmodell oder „Muster“ zu erstellen, mit dem Sie die Ausführung bestimmter Vorgänge durch die Festplatte festlegen können. Im Falle der Schöpfung spezifisches Modell Der Zugriff ist erlaubt, um die folgenden Parameter zu ändern:

  • Größe der Datenübertragungsanfrage;
  • zufällige/sequenzielle Verteilung (in %);
  • Verteilung der Lese-/Schreibvorgänge (in %);
  • Die Anzahl der einzelnen E/A-Vorgänge, die parallel ausgeführt werden.

Das IOmeter-Dienstprogramm erfordert keine Installation auf einem Computer und besteht aus zwei Teilen: IOmeter selbst und Dynamo.

IOmeter ist ein Überwachungsteil des Programms mit einer benutzerdefinierten Funktion grafische Oberfläche, sodass Sie alle notwendigen Einstellungen vornehmen können. Dynamo ist ein Lastgenerator ohne Schnittstelle. Jedes Mal, wenn Sie IOmeter.exe ausführen, wird der Dynamo.exe-Lastgenerator automatisch gestartet.

Um mit dem IOmeter-Programm zu arbeiten, führen Sie einfach die Datei IOmeter.exe aus. Dadurch wird das Hauptfenster des IOmeter-Programms geöffnet (Abb. 1).

Reis. 1. Hauptfenster des IOmeter-Programms

Es ist zu beachten, dass Sie mit dem Dienstprogramm IOmeter nicht nur lokale Festplattensysteme (DAS), sondern auch an das Netzwerk angeschlossene Speichergeräte (NAS) testen können. Sie können damit beispielsweise die Leistung des Server-Festplatten-Subsystems (Dateiserver) testen, indem Sie mehrere verwenden Netzwerk-Clients. Daher beziehen sich einige der Lesezeichen und Tools im Fenster des IOmeter-Dienstprogramms speziell auf Netzwerkeinstellungen Programme. Es ist klar, dass wir beim Testen von Festplatten und RAID-Arrays diese Programmfunktionen nicht benötigen und daher nicht den Zweck aller Registerkarten und Tools erläutern.

Wenn Sie also das IOmeter-Programm starten, wird auf der linken Seite des Hauptfensters (im Topologiefenster) eine Baumstruktur aller laufenden Lastgeneratoren (Dynamo-Instanzen) angezeigt. Jede ausgeführte Dynamo-Lastgeneratorinstanz wird als Manager bezeichnet. Darüber hinaus ist das IOmeter-Programm multithreaded und jeder einzelne Thread, der auf einer Dynamo-Lastgenerator-Instanz ausgeführt wird, wird als Worker bezeichnet. Die Anzahl der laufenden Worker entspricht immer der Anzahl der logischen Prozessorkerne.

In unserem Beispiel verwenden wir nur einen Computer mit einem Quad-Core-Prozessor, der die Hyper-Threading-Technologie unterstützt, sodass nur ein Manager (eine Instanz von Dynamo) und acht (entsprechend der Anzahl der logischen Prozessorkerne) Worker gestartet werden.

Um Festplatten in diesem Fenster zu testen, ist es eigentlich nicht nötig, etwas zu ändern oder hinzuzufügen.

Wenn Sie den Namen des Computers mit der Maus in der Baumstruktur der laufenden Dynamo-Instanzen auswählen, dann im Fenster Ziel auf der Registerkarte Festplattenziel Alle auf dem Computer installierten Festplatten, Festplatten-Arrays und anderen Laufwerke (einschließlich Netzlaufwerke) werden angezeigt. Dies sind die Laufwerke, mit denen IOmeter arbeiten kann. Medien können gelb oder blau markiert sein. Logische Partitionen der Medien sind gelb markiert und physische Geräte ohne dass darauf logische Partitionen erstellt werden. Ein logischer Abschnitt kann durchgestrichen sein oder nicht. Tatsache ist, dass das Programm, damit es mit einer logischen Partition arbeiten kann, zunächst vorbereitet werden muss, indem darauf eine spezielle Datei erstellt wird, deren Größe der Kapazität der gesamten logischen Partition entspricht. Wenn die logische Partition durchgestrichen ist, bedeutet dies, dass der Abschnitt noch nicht zum Testen vorbereitet ist (er wird in der ersten Testphase automatisch vorbereitet). Wenn der Abschnitt jedoch nicht durchgestrichen ist, bedeutet dies, dass bereits eine Datei vorhanden ist auf der logischen Partition erstellt und vollständig zum Testen bereit.

Beachten Sie, dass es trotz der unterstützten Fähigkeit, mit logischen Partitionen zu arbeiten, optimal ist, Laufwerke zu testen, die nicht in logische Partitionen partitioniert sind. Sie können eine logische Festplattenpartition ganz einfach löschen – über ein Snap-In Datenträgerverwaltung. Um darauf zuzugreifen, klicken Sie einfach Rechtsklick Maus-auf-Symbol Computer auf dem Desktop und wählen Sie das Element im sich öffnenden Menü aus Verwalten. Im sich öffnenden Fenster Computermanagement Auf der linken Seite müssen Sie das Element auswählen Lagerung, und darin - Datenträgerverwaltung. Danach auf der rechten Seite des Fensters Computermanagement Alle angeschlossenen Laufwerke werden angezeigt. Per Rechtsklick auf auf die gewünschte Festplatte und wählen Sie das Element im sich öffnenden Menü aus Volume löschen... können Sie eine logische Partition auf einer physischen Festplatte löschen. Wir möchten Sie daran erinnern, dass beim Löschen einer logischen Partition von einer Festplatte alle darauf befindlichen Informationen gelöscht werden, ohne dass eine Wiederherstellung möglich ist.

Im Allgemeinen können Sie mit dem IOmeter-Dienstprogramm nur leere Festplatten oder Festplatten-Arrays testen. Das heißt, Sie können eine Festplatte oder ein Festplatten-Array, auf dem das Betriebssystem installiert ist, nicht testen.

Kehren wir also zur Beschreibung des IOmeter-Dienstprogramms zurück. Im Fenster Ziel auf der Registerkarte Festplattenziel Sie müssen die Festplatte (oder das Festplatten-Array) auswählen, die getestet werden soll. Als nächstes müssen Sie die Registerkarte öffnen Zugriffsspezifikationen(Abb. 2), anhand dessen das Testszenario bestimmt werden kann.

Reis. 2. Rufen Sie die Registerkarte „Spezifikationen“ des IOmeter-Dienstprogramms auf

Im Fenster Globale Zugriffsspezifikationen Es gibt eine Liste vordefinierter Testskripte, die dem Bootmanager zugewiesen werden können. Da wir diese Skripte jedoch nicht benötigen, können sie alle ausgewählt und gelöscht werden (hierfür gibt es eine Schaltfläche). Löschen). Klicken Sie anschließend auf die Schaltfläche Neu um ein neues Testskript zu erstellen. Im sich öffnenden Fenster Zugriffsspezifikation bearbeiten Sie können das Startszenario für eine Festplatte oder ein RAID-Array definieren.

Angenommen, wir möchten die Abhängigkeit der Geschwindigkeit des sequentiellen (linearen) Lesens und Schreibens von der Größe des Datenübertragungsanforderungsblocks herausfinden. Dazu müssen wir eine Sequenz von Boot-Skripten im sequentiellen Lesemodus mit unterschiedlichen Blockgrößen und dann eine Sequenz von Boot-Skripten im sequentiellen Schreibmodus mit unterschiedlichen Blockgrößen generieren. Typischerweise werden Blockgrößen als Reihe gewählt, wobei jedes Mitglied doppelt so groß ist wie das vorherige, und das erste Mitglied dieser Reihe ist 512 Bytes groß. Das heißt, die Blockgrößen sind wie folgt: 512 Byte, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 KB, 1 MB. Es macht keinen Sinn, die Blockgröße für sequentielle Operationen größer als 1 MB zu machen, da sich bei solch großen Datenblockgrößen die Geschwindigkeit sequentieller Operationen nicht ändert.

Erstellen wir also ein Ladeskript im sequentiellen Lesemodus für einen Block von 512 Bytes.

Auf dem Feld Name Fenster Zugriffsspezifikation bearbeiten Geben Sie den Namen des Ladeskripts ein. Beispiel: Sequential_Read_512. Als nächstes auf dem Feld Größe der Übertragungsanforderung Wir legen die Datenblockgröße auf 512 Bytes fest. Schieberegler Prozentuale zufällige/sequenzielle Verteilung(das prozentuale Verhältnis zwischen sequentiellen und selektiven Operationen) verschieben wir ganz nach links, sodass alle unsere Operationen nur sequentiell sind. Nun, der Schieberegler , der das prozentuale Verhältnis zwischen Lese- und Schreibvorgängen festlegt, wird ganz nach rechts verschoben, sodass alle unsere Vorgänge schreibgeschützt sind. Weitere Parameter im Fenster Zugriffsspezifikation bearbeiten kein Änderungsbedarf (Abb. 3).

Reis. 3. Bearbeiten Sie das Fenster „Zugriffsspezifikation“, um ein sequentielles Leseladeskript zu erstellen
mit einer Datenblockgröße von 512 Byte

Klicken Sie auf die Schaltfläche OK, und das erste von uns erstellte Skript wird im Fenster angezeigt Globale Zugriffsspezifikationen auf der Registerkarte Zugriffsspezifikationen IOmeter-Dienstprogramme.

Ebenso müssen Sie Skripte für die verbleibenden Datenblöcke erstellen. Um Ihnen die Arbeit zu erleichtern, ist es jedoch einfacher, das Skript nicht jedes Mal neu zu erstellen, indem Sie auf die Schaltfläche klicken Neu, und nachdem Sie das zuletzt erstellte Szenario ausgewählt haben, drücken Sie die Taste Kopie bearbeiten(Kopie bearbeiten). Danach öffnet sich das Fenster erneut Zugriffsspezifikation bearbeiten mit den Einstellungen unseres zuletzt erstellten Skripts. Es reicht aus, nur den Namen und die Größe des Blocks zu ändern. Nachdem Sie ein ähnliches Verfahren für alle anderen Blockgrößen durchgeführt haben, können Sie mit der Erstellung von Skripten für die sequentielle Aufzeichnung beginnen, was bis auf den Schieberegler auf die gleiche Weise geschieht Prozentuale Lese-/Schreibverteilung, der das prozentuale Verhältnis zwischen Lese- und Schreibvorgängen festlegt, muss ganz nach links verschoben werden.

Ebenso können Sie Skripte zum selektiven Schreiben und Lesen erstellen.

Nachdem alle Skripte fertig sind, müssen sie dem Download-Manager zugewiesen werden, d. h. angeben, mit welchen Skripten sie funktionieren sollen Dynamo.

Dazu prüfen wir noch einmal, was sich im Fenster befindet Topologie Der Name des Computers (also des Lastmanagers auf dem lokalen PC) wird hervorgehoben und nicht der einzelne Worker. Dadurch wird sichergestellt, dass Lastszenarien allen Workern gleichzeitig zugewiesen werden. Weiter im Fenster Globale Zugriffsspezifikationen Wählen Sie alle von uns erstellten Lastszenarien aus und klicken Sie auf die Schaltfläche Hinzufügen. Alle ausgewählten Lastszenarien werden dem Fenster hinzugefügt (Abb. 4).

Reis. 4. Zuweisen der erstellten Lastszenarien zum Lastmanager

Danach müssen Sie zur Registerkarte gehen Versuchsaufbau(Abb. 5), wo Sie die Ausführungszeit jedes von uns erstellten Skripts festlegen können. Tun Sie dies in einer Gruppe Laufzeit Legen Sie die Ausführungszeit des Lastszenarios fest. Es reicht aus, die Zeit auf 3 Minuten einzustellen.

Reis. 5. Festlegen der Ausführungszeit des Lastszenarios

Darüber hinaus im Feld Testbeschreibung Sie müssen den Namen des gesamten Tests angeben. Im Prinzip gibt es auf dieser Registerkarte noch viele weitere Einstellungen, die für unsere Aufgaben jedoch nicht benötigt werden.

Nachdem alle notwendigen Einstellungen vorgenommen wurden, empfiehlt es sich, den erstellten Test durch Klicken auf die Schaltfläche mit dem Bild einer Diskette in der Symbolleiste zu speichern. Der Test wird mit der Erweiterung *.icf gespeichert. Anschließend können Sie das erstellte Lastszenario nutzen, indem Sie nicht die Datei IOmeter.exe, sondern die gespeicherte Datei mit der Erweiterung *.icf ausführen.

Jetzt können Sie direkt mit dem Testen beginnen, indem Sie auf den Button mit der Flagge klicken. Sie werden aufgefordert, den Namen der Datei mit den Testergebnissen anzugeben und ihren Speicherort auszuwählen. Die Testergebnisse werden in einer CSV-Datei gespeichert, die dann einfach nach Excel exportiert werden kann und durch Setzen eines Filters in der ersten Spalte die gewünschten Daten mit Testergebnissen ausgewählt werden kann.

Während des Tests sind auf der Registerkarte Zwischenergebnisse zu sehen Ergebnisanzeige, und Sie können auf der Registerkarte bestimmen, zu welchem ​​Lastszenario sie gehören Zugriffsspezifikationen. Im Fenster Zugewiesene Zugriffsspezifikation Ein ausgeführtes Skript wird in Grün, abgeschlossene Skripte in Rot und nicht ausgeführte Skripte in Blau angezeigt.

Deshalb haben wir uns die grundlegenden Techniken für die Arbeit mit dem IOmeter-Dienstprogramm angesehen, die zum Testen einzelner Festplatten oder RAID-Arrays erforderlich sind. Beachten Sie, dass wir nicht über alle Funktionen des IOmeter-Dienstprogramms gesprochen haben, eine Beschreibung aller seiner Funktionen würde jedoch den Rahmen dieses Artikels sprengen.

Erstellen eines RAID-Arrays basierend auf dem GIGABYTE SATA2-Controller

Also beginnen wir mit der Erstellung eines RAID-Arrays basierend auf zwei Festplatten mithilfe des auf der Platine integrierten GIGABYTE SATA2 RAID-Controllers. Natürlich stellt Gigabyte selbst keine Chips her und daher verbirgt sich unter dem GIGABYTE SATA2-Chip ein umetikettierter Chip eines anderen Unternehmens. Wie können Sie aus der Treiber-INF-Datei herausfinden, wir reden überüber den Controller der JMicron JMB36x-Serie.

Der Zugriff auf das Controller-Setup-Menü ist beim Systemstart möglich. Dazu müssen Sie die Tastenkombination Strg+G drücken, wenn die entsprechende Aufschrift auf dem Bildschirm erscheint. Natürlich zuerst rein BIOS-Einstellungen Sie müssen den Betriebsmodus von zwei SATA-Ports, die zum GIGABYTE SATA2-Controller gehören, als RAID definieren (andernfalls ist der Zugriff auf das RAID-Array-Konfiguratormenü nicht möglich).

Das Setup-Menü für den GIGABYTE SATA2 RAID-Controller ist recht einfach. Wie bereits erwähnt, verfügt der Controller über einen Dual-Port und ermöglicht die Erstellung von RAID-Arrays der Stufe 0 oder 1. Über das Controller-Einstellungsmenü können Sie ein RAID-Array löschen oder erstellen. Beim Erstellen eines RAID-Arrays können Sie dessen Namen angeben, die Array-Ebene (0 oder 1) auswählen, die Stripe-Größe für RAID 0 festlegen (128, 84, 32, 16, 8 oder 4 KB) und auch die Größe des RAID-Arrays bestimmen Array.

Sobald das Array erstellt ist, sind keine Änderungen mehr daran möglich. Das heißt, Sie können für das erstellte Array beispielsweise seinen Level oder seine Stripe-Größe nicht nachträglich ändern. Dazu müssen Sie zunächst das Array (mit Datenverlust) löschen und anschließend erneut erstellen. Tatsächlich gilt dies nicht nur für den GIGABYTE SATA2-Controller. Die Unfähigkeit, die Parameter der erstellten RAID-Arrays zu ändern, ist ein Merkmal aller Controller, das sich aus dem eigentlichen Prinzip der Implementierung eines RAID-Arrays ergibt.

Sobald ein Array auf Basis des GIGABYTE SATA2-Controllers erstellt wurde, können dessen aktuelle Informationen mit dem GIGABYTE RAID-Configurer-Dienstprogramm angezeigt werden, das automatisch zusammen mit dem Treiber installiert wird.

Erstellen eines RAID-Arrays basierend auf dem Marvell 9128-Controller

Die Konfiguration des Marvell 9128 RAID-Controllers ist nur über die Einstellungen möglich Board-BIOS Gigabyte GA-EX58A-UD7. Generell muss gesagt werden, dass das Menü des Marvell 9128 Controller-Konfigurators etwas grob ist und unerfahrene Benutzer in die Irre führen kann. Auf diese kleineren Mängel werden wir jedoch etwas später eingehen, zunächst aber auf die wichtigsten eingehen Funktionalität Marvell 9128-Controller.

Obwohl dieser Controller SATA III-Laufwerke unterstützt, ist er auch vollständig mit SATA II-Laufwerken kompatibel.

Mit dem Marvell 9128-Controller können Sie ein RAID-Array der Level 0 und 1 basierend auf zwei Festplatten erstellen. Für ein Array der Ebene 0 können Sie die Stripe-Größe auf 32 oder 64 KB festlegen und außerdem den Namen des Arrays angeben. Darüber hinaus gibt es eine erklärungsbedürftige Option wie Gigabyte Rounding. Trotz des Namens, der dem Namen des Herstellers ähnelt, hat die Gigabyte Rounding-Funktion damit nichts zu tun. Darüber hinaus besteht keine Verbindung zum RAID-Level-0-Array, obwohl es in den Controller-Einstellungen speziell für ein Array dieses Levels definiert werden kann. Tatsächlich ist dies der erste der von uns erwähnten Mängel im Marvell 9128-Controller-Konfigurator. Die Gigabyte-Rundungsfunktion ist nur für RAID-Level 1 definiert. Sie ermöglicht die Verwendung von zwei Laufwerken (z. B. von unterschiedlichen Herstellern oder verschiedene Modelle), deren Kapazität sich geringfügig voneinander unterscheidet. Die Gigabyte Rounding-Funktion legt den Unterschied in den Größen der beiden Festplatten, die zum Erstellen eines RAID-Level-1-Arrays verwendet werden, genau fest. Im Marvell 9128-Controller können Sie mit der Gigabyte Rounding-Funktion den Unterschied in den Größen der Festplatten auf 1 oder 10 einstellen GB.

Ein weiterer Fehler im Marvell 9128-Controller-Konfigurator besteht darin, dass der Benutzer beim Erstellen eines RAID-Level-1-Arrays die Möglichkeit hat, die Stripe-Größe (32 oder 64 KB) auszuwählen. Allerdings ist das Stripe-Konzept für RAID-Level 1 überhaupt nicht definiert.

Erstellen eines RAID-Arrays basierend auf dem im ICH10R integrierten Controller

Am gebräuchlichsten ist der in die ICH10R Southbridge integrierte RAID-Controller. Wie bereits erwähnt, verfügt dieser RAID-Controller über 6 Ports und unterstützt nicht nur die Erstellung von RAID 0- und RAID 1-Arrays, sondern auch RAID 5 und RAID 10.

Der Zugriff auf das Controller-Setup-Menü ist beim Systemstart möglich, wofür Sie die Tastenkombination Strg + I drücken müssen, wenn die entsprechende Aufschrift auf dem Bildschirm erscheint. Natürlich sollten Sie zunächst in den BIOS-Einstellungen den Betriebsmodus dieses Controllers als RAID festlegen (andernfalls ist der Zugriff auf das RAID-Array-Konfiguratormenü nicht möglich).

Das Setup-Menü des RAID-Controllers ist recht einfach. Über das Controller-Einstellungsmenü können Sie ein RAID-Array löschen oder erstellen. Beim Erstellen eines RAID-Arrays können Sie dessen Namen angeben, die Array-Ebene auswählen (0, 1, 5 oder 10), die Stripe-Größe für RAID 0 festlegen (128, 84, 32, 16, 8 oder 4K) und auch bestimmen die Größe des Arrays.

Vergleich der RAID-Leistung

Um RAID-Arrays mit dem IOmeter-Dienstprogramm zu testen, haben wir sequentielle Lese-, sequentielle Schreib-, selektive Lese- und selektive Schreiblastszenarien erstellt. Die Datenblockgrößen in jedem Lastszenario waren wie folgt: 512 Byte, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 KB, 1 MB.

Auf jedem der RAID-Controller haben wir ein RAID 0-Array mit allen zulässigen Stripe-Größen und ein RAID 1-Array erstellt. Um den Leistungsgewinn durch die Verwendung eines RAID-Arrays bewerten zu können, haben wir außerdem auch eine einzelne Festplatte getestet auf jedem der RAID-Controller.

Schauen wir uns also die Ergebnisse unserer Tests an.

GIGABYTE SATA2-Controller

Schauen wir uns zunächst die Ergebnisse des Tests von RAID-Arrays auf Basis des GIGABYTE SATA2-Controllers an (Abb. 6-13). Im Allgemeinen erwies sich der Controller als im wahrsten Sinne des Wortes mysteriös und seine Leistung war einfach enttäuschend.

Reis. 6.Geschwindigkeit sequentiell
und selektive Festplattenoperationen
Western Digital WD1002FBYS

Reis. 7.Geschwindigkeitssequentiell

mit einer Stripe-Größe von 128 KB
(GIGABYTE SATA2-Controller)

Reis. 12.Seriengeschwindigkeit
und selektive Operationen für RAID 0
mit einer Stripe-Größe von 4 KB
(GIGABYTE SATA2-Controller)

Reis. 13.Seriengeschwindigkeit
und selektive Operationen
für RAID 1 (GIGABYTE SATA2 Controller)

Betrachtet man die Geschwindigkeitseigenschaften einer Festplatte (ohne RAID-Array), beträgt die maximale sequentielle Lesegeschwindigkeit 102 MB/s und die maximale sequentielle Schreibgeschwindigkeit 107 MB/s.

Beim Erstellen eines RAID 0-Arrays mit einer Stripe-Größe von 128 KB erhöht sich die maximale sequentielle Lese- und Schreibgeschwindigkeit auf 125 MB/s, was einer Steigerung von etwa 22 % entspricht.

Bei Stripe-Größen von 64, 32 oder 16 KB beträgt die maximale sequentielle Lesegeschwindigkeit 130 MB/s und die maximale sequentielle Schreibgeschwindigkeit 141 MB/s. Das heißt, mit den angegebenen Stripe-Größen erhöht sich die maximale sequentielle Lesegeschwindigkeit um 27 % und die maximale sequentielle Schreibgeschwindigkeit um 31 %.

Tatsächlich reicht dies für ein Level-0-Array nicht aus, und ich würde mir eine höhere maximale Geschwindigkeit sequentieller Vorgänge wünschen.

Bei einer Stripe-Größe von 8 KB bleibt die maximale Geschwindigkeit sequentieller Vorgänge (Lesen und Schreiben) ungefähr gleich wie bei einer Stripe-Größe von 64, 32 oder 16 KB, allerdings gibt es offensichtliche Probleme beim selektiven Lesen. Wenn die Datenblockgröße auf bis zu 128 KB ansteigt, erhöht sich die selektive Lesegeschwindigkeit (wie erwartet) proportional zur Datenblockgröße. Beträgt die Datenblockgröße jedoch mehr als 128 KB, sinkt die selektive Lesegeschwindigkeit auf nahezu Null (auf ca. 0,1 MB/s).

Bei einer Stripe-Größe von 4 KB sinkt nicht nur die selektive Lesegeschwindigkeit, wenn die Blockgröße mehr als 128 KB beträgt, sondern auch die sequentielle Lesegeschwindigkeit, wenn die Blockgröße mehr als 16 KB beträgt.

Durch die Verwendung eines RAID 1-Arrays auf einem GIGABYTE SATA2-Controller ändert sich die sequentielle Lesegeschwindigkeit nicht wesentlich (im Vergleich zu einem einzelnen Laufwerk), aber die maximale sequentielle Schreibgeschwindigkeit wird auf 75 MB/s reduziert. Denken Sie daran, dass bei einem RAID 1-Array die Lesegeschwindigkeit im Vergleich zur Lese- und Schreibgeschwindigkeit einer einzelnen Festplatte steigen und die Schreibgeschwindigkeit nicht sinken sollte.

Basierend auf den Testergebnissen des GIGABYTE SATA2-Controllers kann nur eine Schlussfolgerung gezogen werden. Die Verwendung dieses Controllers zur Erstellung von RAID 0- und RAID 1-Arrays ist nur dann sinnvoll, wenn alle anderen RAID-Controller (Marvell 9128, ICH10R) bereits verwendet werden. Obwohl es ziemlich schwierig ist, sich eine solche Situation vorzustellen.

Marvell 9128-Controller

Der Marvell 9128-Controller zeigte im Vergleich zum GIGABYTE SATA2-Controller deutlich höhere Geschwindigkeitseigenschaften (Abb. 14-17). Tatsächlich treten die Unterschiede auch dann auf, wenn der Controller mit einer Festplatte arbeitet. Wenn für den GIGABYTE SATA2-Controller die maximale sequentielle Lesegeschwindigkeit 102 MB/s beträgt und mit einer Datenblockgröße von 128 KB erreicht wird, beträgt die maximale sequentielle Lesegeschwindigkeit für den Marvell 9128-Controller 107 MB/s und wird mit einer Datenblockgröße erreicht Blockgröße von 16 KB.

Beim Erstellen eines RAID 0-Arrays mit Stripe-Größen von 64 und 32 KB erhöht sich die maximale sequentielle Lesegeschwindigkeit auf 211 MB/s und die sequentielle Schreibgeschwindigkeit auf 185 MB/s. Das heißt, mit den angegebenen Stripe-Größen erhöht sich die maximale sequentielle Lesegeschwindigkeit um 97 % und die maximale sequentielle Schreibgeschwindigkeit um 73 %.

Es gibt keinen signifikanten Unterschied in der Geschwindigkeitsleistung eines RAID 0-Arrays mit einer Stripe-Größe von 32 und 64 KB, jedoch ist die Verwendung eines 32-KB-Stripes vorzuziehen, da in diesem Fall die Geschwindigkeit sequentieller Vorgänge mit einer Blockgröße von weniger als 128 KB wird etwas höher ausfallen.

Beim Erstellen eines RAID 1-Arrays auf einem Marvell 9128-Controller bleibt die maximale sequentielle Betriebsgeschwindigkeit im Vergleich zu einer einzelnen Festplatte praktisch unverändert. Wenn also für eine einzelne Festplatte die maximale Geschwindigkeit sequenzieller Vorgänge 107 MB/s beträgt, beträgt sie für RAID 1 105 MB/s. Beachten Sie außerdem, dass bei RAID 1 die Leistung beim selektiven Lesen leicht abnimmt.

Generell ist anzumerken, dass der Marvell 9128 Controller über gute Geschwindigkeitseigenschaften verfügt und sowohl zum Aufbau von RAID-Arrays als auch zum Anschluss einzelner Festplatten daran verwendet werden kann.

Controller ICH10R

Der im ICH10R integrierte RAID-Controller erwies sich als der leistungsstärkste aller von uns getesteten Controller (Abbildung 18-25). Bei der Arbeit mit einem einzelnen Laufwerk (ohne Erstellung eines RAID-Arrays) entspricht seine Leistung nahezu der des Marvell 9128-Controllers. Die maximale sequentielle Lese- und Schreibgeschwindigkeit beträgt 107 MB und wird mit einer Datenblockgröße von 16 KB erreicht.

Reis. 18. Sequentielle Geschwindigkeit
und selektive Operationen
für Western Digital WD1002FBYS-Festplatte (ICH10R-Controller)

Wenn wir über das RAID 0-Array auf dem ICH10R-Controller sprechen, hängt die maximale sequentielle Lese- und Schreibgeschwindigkeit nicht von der Stripe-Größe ab und beträgt 212 MB/s. Die Größe des Stripes hängt nur von der Größe des Datenblocks ab Maximalwert sequentielle Lese- und Schreibgeschwindigkeiten. Wie die Testergebnisse zeigen, ist es für RAID 0 auf Basis des ICH10R-Controllers optimal, einen Stripe mit einer Größe von 64 KB zu verwenden. In diesem Fall wird die maximale sequentielle Lese- und Schreibgeschwindigkeit mit einer Datenblockgröße von nur 16 KB erreicht.

Zusammenfassend betonen wir also noch einmal, dass der im ICH10R verbaute RAID-Controller alle anderen integrierten RAID-Controller in der Leistung deutlich übertrifft. Und da er auch über eine größere Funktionalität verfügt, ist es optimal, diesen bestimmten Controller zu verwenden und die Existenz aller anderen einfach zu vergessen (es sei denn, das System verwendet natürlich SATA III-Laufwerke).