Gibt es RAID-Standards auf Byte-Ebene und wenn nicht, warum?

376
skeggse

Wenn Sie Datenbeständigkeit wünschen, erstellen Sie Sicherungen. Möglicherweise möchten Sie auch RAID verwenden, um die Betriebszeit zu verbessern und Online-Datenverlust zu verhindern. Man kann Software-RAID, Onboard / Motherboard-RAID oder einen separaten RAID-Controller verwenden.

Gibt es Standards, wie RAID Daten auf den physischen Festplatten speichert, und wenn dies nicht der Fall ist, warum nicht?

Was macht die Implementierung von RAID-Implementierungen aufgrund des "universellen" Standards interoperabel?

-1
Ich hoffe, Sie erkennen, dass die Verwendung eines RAID-Arrays nicht als Teil einer Sicherungsstrategie betrachtet werden sollte. Ramhound vor 8 Jahren 0
@ Ramhound Ich denke, ich habe es schlecht formuliert. Ja bitte. skeggse vor 8 Jahren 0
kannst du es klarer machen Sieht so aus, als würden Sie fragen (Entschuldigung, dass Sie stumpf sind): * Ich habe 100 Festplatten in RAID XY, die eine Karte von VendorName verwenden. Kann ich die Karte in AnotherVendor umwandeln und warum? * aaaaaa vor 8 Jahren 0
@aaaaaa Dies ist keine praktische Frage; Dies ist eine hypothetische Frage - meines Wissens speichert jede RAID 5-Implementierung Bytes auf eine andere Art und Weise auf der Festplatte, andernfalls wären sie alle interoperabel. Ich vermute, das liegt an Metadaten, daher frage ich mich, warum Implementierungen nicht standardisiert sind. skeggse vor 8 Jahren 0
Ich bin immer noch nicht zufrieden mit der neuesten Ausgabe. Das Anliegen von @Ramhound bleibt gültig. "Uptime" wird jetzt erwähnt, ein guter Grund, RAID zu verwenden. Das Problem ist, dass RAID im selben Satz immer noch als Verhinderung von Online-Datenverlust erwähnt wird. Obwohl RAID dies tun kann, gibt es in einigen Szenarien viele weitere Szenarien, in denen RAID keinen ausreichenden Schutz bieten kann. Daher haben wir (die besser wissen) die moralische Verpflichtung, Menschen mit einem riesigen Hammer, der sagt: " Verlassen Sie sich nicht auf RAID, um Daten zu erhalten! " (Dafür sind Backups gedacht.) TOOGAM vor 8 Jahren 0
Mit "Verhindern des Online-Datenverlusts" versuche ich, zu dem Zeitpunkt zu gelangen, in dem Daten erstellt und auf die Festplatte geschrieben, aber noch nicht gesichert wurden. Wie kann ich das klarer machen? skeggse vor 8 Jahren 0

2 Antworten auf die Frage

3
LawrenceC

Gibt es RAID-Standards auf Byte-Ebene und wenn nicht, warum?

Festplatten sind Geräte auf Blockebene, dh Sie können nicht einzelne Bytes lesen und schreiben, sondern nur ganze Blöcke. Traditionell waren dies 512 Bytes, aber 4096 Bytes werden immer häufiger.

Die Kommunikation mit einem Hardwaregerät ist fast immer mit Overhead verbunden. Wenn die angeforderte Datenmenge sehr gering ist, verbringen Sie mehr Zeit mit dem Overhead als mit dem Abrufen der Daten. Da Festplatten ein Massenspeichermedium sind, das zum Speichern von Massen von Daten und nicht von einzelnen Bytes gedacht ist, lohnt es sich wahrscheinlich nicht, auf Byteebene zu arbeiten.

So weit wie der Sweetspot - 512 ist schon lange im Einsatz. 4096 gibt es nur deshalb, weil Festplatten eine höhere physische Dichte erfordern, um mehr Daten zu speichern. Bei alten Bandlaufwerken, die als Blockgeräte funktionieren könnten, glaube ich, dass Sie die Blockgröße ändern können. Die ursprüngliche Blockgröße von IBM von 128 wurde gewählt, da sie mit 80 die nächstgrößte Potenz von 80 war - und 80 die Anzahl der Zeichen in einer Standard-Schreibmaschinenzeile ist.

Gibt es Standards, wie Daten auf den physischen Festplatten gespeichert werden?

Für Hardware-RAID gibt es wahrscheinlich nicht, es sei denn, ein Anbieter hat diese Informationen irgendwo veröffentlicht, und er möchte sie wahrscheinlich aus den unten angegebenen Gründen nicht veröffentlichen.

Für Software-RAID: Ich kenne keine Informationsquelle über das Format dynamischer Windows-Volumes (mit denen Sie Software-RAID ausführen können), aber in einigen Microsoft-Dokumenten ist dies möglicherweise vorhanden. Das Format, das Linux für lvm/ mdDisks verwendet, ist zumindest im Quellcode dokumentiert und wird wahrscheinlich an anderen Stellen erläutert, die für Google leicht zugänglich sind.

und wenn das nicht der Fall ist, warum dann nicht?

Die pessimistische Antwort ist, dass die Hersteller dazu angeregt werden, Sie einzusperren. Wenn Sie einen RAID-Controller haben, der aus dem Ruder läuft, und einen ASAP-Ersatz benötigen, da alle Ihre Festplatten für die Verwendung mit diesem Controller formatiert sind, kaufen Sie erneut beim Hersteller .

Die optimistische Antwort ist, dass dies einem Hardwarehersteller ermöglicht, die Struktur auf der Festplatte für die Hardware und / oder einen Software- / Firmware-Designer zu optimieren, um die Struktur auf der Festplatte für die verwendeten Algorithmen oder Techniken zu optimieren.

Was macht die Implementierung von RAID-Implementierungen aufgrund des "universellen" Standards interoperabel?

Eine Vereinbarung darüber, welche Blöcke / Bereiche auf der physischen Festplatte was bedeuten.

2
TOOGAM

Gibt es RAID-Standards auf Byte-Ebene und wenn nicht, warum?

Auf keinen Fall. Warum sollten wir Bytes verwenden? Wir neigen dazu, entweder Bits oder Sammlungen von Bits zu verwenden. Bei diesen Sammlungen handelt es sich in der Regel um eine bestimmte Anzahl, beispielsweise um 4096 Bit (512 Bytes), was der Größe eines herkömmlichen Festplattensektors entspricht, oder um größere Beträge. Dies liegt daran, dass die Kommunikationsstandards für Festplatten (wie SATA) dazu neigen, Festplatten einen Sektor zu einem bestimmten Zeitpunkt zu lesen. Die Leute, die RAID-Standards entwickeln, werden sich wahrscheinlich auf die Geschwindigkeit konzentrieren und eine "Stripe-Größe" wie 512 Byte oder 4 Kilobyte verwenden. Sie wählen wahrscheinlich nicht einen Wert wie "8-Bit", weil der Fokus nicht unbedingt auf "den Menschen, die eine einfache Technologie benötigen", einfach ist.

Ich ignoriere den ersten Absatz der Frage, weil sie den Hintergrund eines Szenarios zu beschreiben scheint und keine eigentliche Frage hat.

Gibt es Standards, wie Daten auf den physischen Festplatten gespeichert werden, und wenn dies nicht der Fall ist, warum nicht?

Sicher. Standards umfassen Dinge wie FAT32, Ext2, NTFS, Btrfs.

Was macht die Implementierung von RAID-Implementierungen aufgrund des "universellen" Standards interoperabel?

Einige RAID-Implementierungen sind interoperabel. RAID 1 ist möglicherweise besonders wahrscheinlich ... Wenn dies nicht funktioniert (bei einem einfachen Zwei-Platten-Setup), kann das Problem einfach inkompatible Header sein und keine großen technischen Probleme. Der Grund für die Nicht-Standardisierung kann einfach der Fall sein, wenn es keinen zwingenden Grund gibt, mehr zu standardisieren, als bisher getan wurde.

RAID5 ist möglicherweise eher kompatibel, die IF- Stripe-Größen sind gleich. Unterschiedliche Stripe-Größen bedeuten, dass ein System denken könnte, dass ein Bit als Paritätsbit behandelt werden soll, während ein anderes System denken könnte, dass das Bit als Datenbit behandelt werden soll.

Um von meiner eigenen Seite zu zitieren:

In der Definition der "Storage Network Industry Association" ("SNIA") für "Redundant Array of Independent Disks" ("RAID") 6 wird RAID 6 als "jede Form von RAID" definiert, die weiterhin Lese- und Schreibanfragen an alle ausführen kann Die virtuellen Festplatten des RAID-Arrays bei zwei gleichzeitigen Festplattenfehlern. “Die Definition fährt (in einem separaten Absatz) mit folgenden Worten ab:„ Verschiedene Methoden, einschließlich Dual-Check-Datenberechnungen (Parity und Reed Solomon), orthogonale Dual-Parity-Check-Daten und Für die Implementierung von RAID-Level 6 wurde eine Diagonalparität verwendet. “

Im Falle von RAID6 gibt es also einen Standard. Der Standard ist nur die Fähigkeit, Festplattenfehler zu überstehen. So definieren wir "RAID 6" und es gibt völlig andere (und inkompatible) Ansätze.

Dies ist wahrscheinlich eine gute Antwort auf andere Inkompatibilitäten auf RAID-Ebene. Der Begriff "RAID 1" beschreibt einen allgemeinen Ansatz und ein Feature-Set. Die allgemein unterstützten RAID-Spezifikationen sind jedoch nicht so wählerisch, dass sie die spezifischen Details erfordern, die für eine bessere Interoperabilität erforderlich sind.

Die Leute können sich gar nicht einig sein, was RAID10 ist. Es ist eindeutig dasselbe wie RAID 1 + 0 und ist eine Kombination der allgemeinen Konzepte, die als RAID 1 und RAID 0 bekannt sind. Natürlich ist RAID0 + 1 auch eine Kombination der allgemeinen Konzepte, die als RAID 1 und RAID 0 bekannt sind von diesen ist ein "Streifen von Spiegeln", während der andere ein "Spiegel von Streifen" ist. Welcher dieser Begriffe (RAID10 oder RAID0 + 1) ist jedoch der "Streifen von Spiegeln"? Die Antwort ist herstellerabhängig. Nicht alle Hersteller sind sich darüber einig (gemäß dieser Quelle: PC Guide-Artikel auf mehreren RAID-Stufen ). Ohne allgemeine Übereinstimmung dessen, was "RAID10" überhaupt bedeutet, Wie können wir allgemeines Einverständnis über weitaus spezifischere Details wie den Zweck bestimmter Bits erwarten? (Dieser Detaillierungsgrad wäre für die Interoperabilität erforderlich.)

Das ist also das Szenario. Was das "Warum" angeht, wird dies nicht genauer gehandhabt. Grund dafür ist, dass bei einer typischen Verwendung ein paar Laufwerke in ein System gepackt werden, sodass alles von einem einzigen RAID-Controller gesteuert wird. In etwas komplizierteren Szenarien verfügt ein großes Unternehmen möglicherweise über mehrere RAID-Controller. In der Regel können Probleme mit der Interoperabilität vermieden werden, indem sichergestellt wird, dass sie ein identisches Modell von RAID-Controllern verwenden. Darüber hinaus war Interoperabilität nicht ein Merkmal, das die meisten Leute einfach nicht besonders interessiert haben. Aufgrund der fehlenden großen Marktnachfrage hat sich der Markt einfach nicht darum gekümmert.