ZFS auf Linux/ Resilvering

ResilveringBearbeiten

Beim Resilvering werden beschädigte Daten eines Spiegelpaares oder eines RAID-Z-Verbundes anhand von Redundanzen bzw. Paritätsinformationen wiederhergestellt. Bei einem Pool, der lediglich aus mehreren durch Striping verbundenen Festplatten besteht, können Daten nicht rekonstruiert werden, da die Redundanz fehlt.

Die folgenden Wiederherstellungszeiten einer ausgefallenen Festplatte konnten beim Vergleich eines RAID 6 mit einem RAID-Z2 bestehend aus jeweils 8 Festplatten ermittelt werden:


Füllstand RAID 6 RAID-Z2
leer 18 Stunden 2 Sekunden
voll 18 Stunden 30 Stunden

Sowohl die Wiederherstellung des leeren als auch des vollen RAID 6 dauert genauso lange, wie das zuvor getestete Anlegen. Somit hat der Füllstand im Falle eines Festplattenausfalls weder einen positiven noch einen negativen Einfluss. Beim RAID-Z2 ist die Abhängigkeit zwischen Speicherbelegung und Dauer des Resilverings deutlich zu erkennen. Während die Rekonstruktion eines leeren RAID-Z2 in zwei Sekunden abgeschlossen ist, dauert sie bei einem sehr hohen Füllstand mit 30 Stunden, nahezu doppelt so lange, wie die eines RAID 6. Somit kann das RAID-Z2 nur bis zu einer Belegung von reichlich 50% durch eine kürzere Wiederherstellungszeit punkten. Grund dafür ist die dynamische Breite der Stripes, wodurch die Rekonstruktion der RAID-Struktur wesentlich aufwendiger ist und mehr Zeit in Anspruch nimmt. Bevor die eigentliche Wiederherstellung der Daten beginnt, muss anhand von Metadaten erst die Position und Größe aller Stripes berechnet werden.

To-Do:

Recordsize statt Stripe, Was für ein RAID?