Basierend auf Ihrer Frage und den Kommentaren unten fragen Sie, ob es eine gute Idee ist, einen Pool zwischen zwei ungleich großen Festplatten zu installieren. Die kurze Antwort lautet: Es gibt nichts inhärentes Problem, wenn:
- Ihre Arbeitslast ist nicht leistungskritisch. Wenn dies der Fall ist, verwenden Sie einen einheitlichen Festplattentyp für den gesamten Pool. Andernfalls könnten die Festplatten unterschiedliche Leistungsmerkmale aufweisen, was zu sehr subtilen Leistungsproblemen führen kann, die schwer aufzuspüren sind. (Nehmen wir zum Beispiel an, Sie haben im selben Jahr zwei 10K-RPM-Festplatten vom selben Hersteller, eine mit 1 TB und eine mit 2 TB. Kein Problem, oder? Nein, eine davon wird ~ bekommen doppelter Durchsatz, obwohl max IOPS zwischen den Laufwerken gleich ist.)
- Sie sind in Ordnung ohne zusätzliche Redundanz. Beachten Sie, dass Sie in einer Striping-Situation die Wahrscheinlichkeit erhöhen, alle Ihre Daten zu verlieren, weil Sie von der Wahrscheinlichkeit eines Ausfalls einer Festplatte auf die Wahrscheinlichkeit eines Ausfalls von Laufwerk A oder von Laufwerk B (oder beiden) übergegangen sind. Selbst wenn ZFS mehrere Metadatenkopien enthält und eine zufällige Hälfte der Daten fehlt, haben Sie Schwierigkeiten, viele vollständige / verwendbare Dateien aus Ihrem Pool wiederherzustellen.
Es gibt jedoch immer noch unkluge Wege, um dies einzurichten. Wenn eine der Festplatten eine SSD ist und die andere eine HDD ist, zerstört Striping die Leistungsgewinne, die Sie durch die Verwendung einer SSD erzielt haben, und macht Sie wahrscheinlich ziemlich traurig. In dieser Situation würde ich empfehlen:
- Verwenden Sie die größere Festplatte als "Hauptdatenfestplatte" und teilen Sie die SSD anschließend in zwei Partitionen auf: Eine große Partition, die als L2ARC (
cache
) - Gerät zum Beschleunigen des Lesens häufig gelesener Daten verwendet wird, und eine kleine Partition, die als ZIL verwendet wird (log
) Gerät zur Beschleunigung synchroner Schreiblatenzen. Diese Lösung ist nett, da sie automatisch die vorteilhaftesten Daten auf der SSD zwischenspeichert, sodass Sie sich nicht allzu sehr darüber Gedanken machen müssen. Außerdem verlieren Sie alle Ihre Daten, wenn Sie in diesem Fall die Festplatte verlieren (Sie könnten bis zu ein paar Sekunden Schreibzugriffe verlieren, wenn die SSD stirbt. Das ist jedoch viel besser als alle Ihre Daten, wie im oben genannten gestreiften Fall.) . - Erstellen Sie einen separaten Pool für jede Festplatte, und behalten Sie manuell Dinge, die schnell sein sollen (Betriebssystem, ausführbare Dateien, Bibliotheken, Swap usw.) auf der SSD und auf langsame Weise (Filme, Fotoalben usw.) auf der Festplatte. Dies ist am besten, wenn der Computer häufig neu gestartet wird, da in der L2ARC zwischengespeicherte Daten nicht zwischen Neustarts bestehen bleiben. (Dies ist eine große Schwachstelle in der aktuellen L2ARC-Geschichte für Personal Computer IMO, aber derzeit wird daran gearbeitet.) Aus Sicht der Redundanz verlieren Sie offensichtlich nur das, was auf der Festplatte fehlgeschlagen ist.
- Bearbeiten, da diese Festplatten virtualisiert sind -
Da es sich hierbei um eine virtuelle Maschine handelt, sollten Sie, sofern Sie keine speziellen Parameter für die Leistung der Festplatten festgelegt haben, Sie nicht daran hindern, den Pool mit zwei nicht übereinstimmenden Festplattengrößen zu erstellen. Es ist jedoch viel einfacher zu verwalten, wenn Sie die Größe der Originalfestplatte nur über die Virtualisierungsplattform auf die Summe der vorgeschlagenen Festplattengrößen einstellen. Um diesen zusätzlichen Speicherplatz innerhalb des Gastsystems zu nutzen, müssen Sie ausführen zpool online -e <pool> <disk>
, und da dies ZoL ist, müssen Sie möglicherweise zuerst Ihre Partitionstabelle reparieren, wie in den Anweisungen hier beschrieben .
Aufgrund der einfachen Verwaltung sollten Sie diesen Ansatz unbedingt vorziehen. Ein kleiner Nachteil ist jedoch, dass ZFS die Größe des Metaslab nicht ändern kann. Metaslabs sind eine interne Datenstruktur, die für die Plattenspeicherzuordnung verwendet wird. Bis vor kurzem erstellte ZFS unabhängig von der Festplattengröße immer 200 Stück pro Platte (dies ist noch nicht abgeschlossen). Wenn Sie also die Festplattengröße von sehr klein auf sehr groß vergrößern, kann dies zu einer sehr hohen Anzahl von Metaslabs führen, die etwas mehr RAM und etwas mehr Speicherplatz benötigen. Dies ist nicht wahrnehmbar, es sei denn, die Festplattengröße ändert sich dramatisch (z. B. 10G -> 1T) und auch nur dann, wenn Sie Ihre Maschine an die Leistungsgrenze bringen. Die Auswirkungen auf die Leistung können Sie normalerweise umgehen, indem Sie Ihrer VM etwas mehr Arbeitsspeicher zuweisen.