22.4. Datenintegrität

Das dritte Problem, welches aktuelle Platten haben, ist ihre Unzuverlässigkeit. Obwohl sich die Zuverlässigkeit von Festplatten in den letzten Jahren stark verbessert hat, handelt es sich bei ihnen nach wie vor um die Komponente eines Servers, die am ehesten ausfällt. Fällt eine Festplatte aus, können die Folgen katastrophal sein: Es kann Tage dauern, bis eine Platte ersetzt und alle Daten wiederhergestellt sind.

Die traditionelle Art, dieses Problem anzugehen, war es, Daten zu spiegeln, also zwei Kopien der Daten auf getrennten Platten zu verwahren. Diese Technik wird auch als RAID Level 1 oder RAID-1 bezeichnet. Jeder Schreibzugriff findet auf beiden Datenträgern statt. Ein Lesezugriff kann daher von beiden Laufwerken erfolgen, sodass beim Ausfall eines Laufwerks die Daten immer noch auf dem anderen Laufwerk verfügbar sind.

Spiegeln verursacht allerdings zwei Probleme:

Eine alternative Lösung ist Parity, das in den RAID-Leveln 2, 3, 4 und 5 implementiert ist. Von diesen ist RAID-5 der interessanteste. So wie in VINUM implementiert, ist es eine Variante einer gestripten Anordung, welche einen Block jedes Stripes als Paritätsblock für einen der anderen Blöcke verwendet. Wie in RAID-5 vorgeschrieben, ist die Position dieses Paritätsblockes auf jedem Stripe unterschiedlich. Die Nummern in den Datenblöcken geben die relativen Blocknummern an.

Abbildung 22-3. RAID-5 Aufbau



Im Vergleich zur Spiegelung hat RAID-5 den Vorteil, dass es signifikant weniger Speicherplatz benötigt. Lesezugriffe sind vergleichbar schnell mit jenen bei einem Striped-Aufbau, aber Schreibzugriffe sind deutlich langsamer (etwa 25% der Lesegeschwindigkeit). Wenn eine Platte ausfällt, kann das Array in einem "schwachen" Modus weiterarbeiten: Ein Lesezugriff auf eine der übrigen erreichbaren Platten wird normal ausgeführt, ein Lesezugriff auf die ausgefallene Platte muss aber zunächst mit dem zugehörigen Block aller verbleibender Platten rückberechnet werden.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <[email protected]>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <[email protected]>.