Einrichten von zfs für mehrere Laufwerke mit Redundanz unter Ubuntu

535
sharf

Derzeit habe ich ein Ubuntu-Server-Setup mit 2 4-TB-Festplatten mit jeweils ext4 in einem RAID 1 (ohne zfs). Ich möchte eine vollständige Redundanz im Falle eines Laufwerksausfalls haben.

Ich füge der Maschine weitere 2 4-TB-Laufwerke hinzu. Ich werde dies wahrscheinlich in Zukunft noch einmal tun, also denke ich, dass ich zu zfs wechseln sollte, um dies zu unterstützen.

Ich habe in einigen Handbüchern gelesen, dass Sie mit zfs sowohl Striping als auch Mirroring durchführen können, was meiner Meinung nach der Weg ist, den ich gehen möchte.

Normalerweise würde ich die Laufwerke in zwei Paare zerlegen und dann die beiden Paare überfallen, um ein schnelles, redundantes "8-TB-Laufwerk" zu erhalten.

Wie würde ich das in zfs erreichen? Und würde das die einfache Hinzufügung weiterer Antriebe ermöglichen?

1

1 Antwort auf die Frage

1
Dan

Es ist sehr einfach, das zu konfigurieren (Line-Splitting, um die Struktur besser sichtbar zu machen):

# zpool create <poolname> \ mirror <disk1> <disk2> \ mirror <disk3> <disk4> 

Dadurch wird ein Pool mit zwei Streifen erstellt, von denen jeder ein Spiegel zwischen zwei Festplatten ist. Dies ist ein schönes flexibles Setup (leichtes Hinzufügen neuer Laufwerke, leicht verständlich). Um in Zukunft einen weiteren Spiegel hinzuzufügen, müssen Sie Folgendes tun:

# zpool add -n <poolname> \ mirror <disk5> <disk6> would update '<poolname>' to the following configuration: <poolname> mirror <disk1> <disk2> mirror <disk3> <disk4> mirror <disk5> <disk6> 

(Wenn Sie diese Option -nverwenden, wird zuerst ein Testlauf ausgeführt und die Pool-Konfiguration wird zur Überprüfung ausgedruckt. Dies würde ich immer empfehlen, um Fehlkonfigurationen zu vermeiden, die sich nach dem Umsetzen schwer / unmöglich rückgängig machen lassen!)

Beachten Sie jedoch, dass dieses Setup "ineffizient" ist, da es nur die Datensicherheit für einen Festplattenfehler gewährleistet : Sie sind nur für zwei Fehler sicher, wenn sie auf verschiedenen Streifen auftreten. Dies ist in ~ 67% der Fälle mit zwei Festplattenfehler der Fall. Die redundanten Daten belegen weiterhin 50% Ihres Pools.

Es gibt ein weniger flexibles ZFS-spezifisches RAID-Format namens RAID-Z, mit dem Sie alle Ihre Festplatten zusammenfassen können und einen effizienten Datenschutz erhalten. (Ich sage weniger flexibel, da es in der Zukunft schwierig ist, weitere Festplatten zum Pool hinzuzufügen, obwohl diese Funktion derzeit bearbeitet wird.) Es gibt Varianten raidz1und raidz2Varianten, mit denen Sie bis zu 1 bzw. bis zu 2 Festplatten verlieren können. egal welche Festplatten ausfallen. Bei vier Festplatten gleicher Größe verwendet die raidz2Variante weiterhin 50% Ihres Speichers für die Redundanz, garantiert jedoch, dass Sie zwei Festplattenausfälle überstehen. Die raidz1Variante reduziert Ihren Redundanz-Overhead von 50% auf nur 25%, garantiert jedoch nur, dass Sie nur einen Festplattenausfall überstehen.

Würden zur Klarstellung folgende Antworten in den Codeausschnitten mit 4-TB-Laufwerken mit einem virtuellen 8-TB-Laufwerk enden, die jedoch redundant sind? Derzeit habe ich 2 der 4-TB-Laufwerke in einem Raid 1 mit Daten darauf. Wäre es möglich, Ihrer Antwort hier zu folgen, um 2 neue 4 TB in ZFS mit einer Spiegelung einzurichten, die Daten zu kopieren, diese Laufwerke zu formatieren und sie in einem anderen Spiegel dem Pool hinzuzufügen? würde das mit einem virtuellen (redundanten) 4tb-Laufwerk beginnen, als auf 8tb aufzurüsten? sharf vor 5 Jahren 0
"Ja" zu allen Fragen, die Sie gestellt haben :). Dan vor 5 Jahren 0
Großartig! Letzte Frage, dies ist für nicht kritische Medien (Plex Server) nichts unersetzlich, nur zeitaufwändig. Würde die grundlegende Spiegelung für nur ein Laufwerk für die meisten Fälle ausreichen? Ich denke das so. Und würde zfs ein fehlerhaftes Laufwerk melden? sharf vor 5 Jahren 0
Ein Datenträger mit Redundanz scheint in Ordnung zu sein, wenn Sie die Daten neu erstellen können. ZFS führt periodische Scrubs durch, um beschädigte Blöcke zu reparieren, und es kann fehlerhafte Festplatten in beliebigen E / A (entweder normale Lese- / Schreibvorgänge oder während des Scrubs) feststellen, und es werden Fehler in der Ausgabe von "zpool status" angezeigt. (Sie sollten jedoch auch eine Art Warnung konfigurieren, damit Sie den Pool nicht manuell überprüfen müssen.) Dan vor 5 Jahren 0
Genial! Vielen Dank sharf vor 5 Jahren 0