Dies ist eine alte Version des Dokuments!


ZFS RAID-Z Pool erstellen und verwalten

ZFS »RAID-Z« Pools sind neben den »ZFS Mirror Pools« eine weitere Möglichkeit die Datenintegrität und Verfügbarkeit auch beim Ausfall einer oder sogar mehrerer Platten zu gewährleisten. Das Prinzip ist das gleiche wie bei konventionellen RAID-Systemen1), hier wird zu den Daten eine Parität ermittelt und sowohl die Daten, wie auch die Parität werden so auf den Platten verteilt, dass beim Fehlen der Informationen auf einer Platte (RAID-5) oder mehreren Platten ( ≥ RAID-6) aus den verbliebenen Informationen die fehlende Information restauriert werden kann.

Grundsätzliches

Vereinfacht, kann man sich das Paritätsschema folgendermaßen zB anhand einer »ungeraden Kreuzparität« vorstellen:

0 0 1 0 1 1 0 0 | 1
1 0 1 1 0 1 0 1 | 1
0 0 0 1 1 0 1 1 | 0
-------------------
1 0 0 0 0 0 1 1 | 0

Die erste Zeile »0 0 1 0 1 1 0 0« repräsentieren hierbei die Daten auf einer Platte und die abschließende »1« ergibt sich als Parität durch die ungerade Anzahl der Einsen in den Daten. Die letzte Zeile (unter der gestrichelten Linie) ergibt sich wiederum aus der Anzahl der Einsen in den Datenblöcken darüber. Eine Eins bei einer ungeraden Anzahl Einsen, eine Null bei einer geraden Anzahl Einsen (wobei Null Einsen als gerade Anzahl gewertet wird) Fällt nun zB die erste Platte aus, können aus den verbliebenen Daten die verlorenen Daten der ersten Platte rekonstruiert werden. In der Praxis laufen diese Vorgänge zwar wesentlich komplexer ab aber im Prinzip läuft das nach diesem Schema ab.

Die heute gebräuchlichsten paritäts-basierten RAID-Level sind »RAID-5« und »RAID-6«, wobei bei einem »RAID-5« eine Platte und bei einem »RAID-6« zwei Platten des RAID-Verbunds ausfallen können, ohne das Daten verloren gehen. Bei einem ZFS-RAID entspricht ein »raidz1« (»single-parity«) einem »RAID-5« und ein »raidz2« einem »RAID-6« (»double-parity«). ZFS stellt darüber hinaus ein »raidz3« (»triple-parity«) zur Verfügung, wo man den Ausfall einer dritten Platte ohne Datenverlust hinnehmen kann.

Der Hauptunterschied zu klassischen RAID-Systemen liegt bei RAID-Z in der Vermeidung des »write-holes«, welches entsteht wenn Daten und Prüfsummen (Paritäten) noch nicht vollständig auf die Platten geschrieben wurden und es während diesem Vorgangs zu einem Systemausfall kommt. In so einem Fall sind die Daten auf dem RAID-System nicht konsistent und idR unbrauchbar. ZFS macht sich hier ihr »Copy-On-Write« (CoW) zunutze, wo eine Schreibaktion erst dann als abgeschlossen gilt, wenn alle Teil-Vorgänge (zB das Errechnen und Schreiben der Prüfsumme etc) ebenfalls abgeschlossen sind. Da ZFS vorhandene Daten nicht überschreibt sondern zuerst eine Kopie des zu bearbeitenden Blocks anlegt und dort dann die Änderungen vornimmt, kann bei einem fehlerhaften oder unterbrochenen Schreibvorgang jederzeit auf die alten Daten zurückgegriffen werden. So verfährt ZFS generell, dass ist kein Merkmal nur der ZFS-RAID Komponenten.

»RAID-Z Pools« anlegen

tux/zfs_raid-z.1350570626.txt.gz (17867 views) · Zuletzt geändert: 2012/10/18 16:30 von wikisysop
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0