Sollte ich ZFS-Zpools mit ganzen Festplatten oder Partitionen erstellen?


14

Ich mache Zpools auf einem FreeBSD-Computer. Beim Erstellen von Zpools beobachte ich diese beiden Fälle:

  1. Wenn ich nehme raw disksund erstelle, kann zpoolich Zpools bilden und sie funktionieren perfekt.

  2. Wenn ich Datenträger gpartim freebsd-zfsFormat formatiere und dann zpool mache, funktionieren sie auch einwandfrei.

Was mich verwirrt, ist, welcher Ansatz für die Erstellung von Zpools besser ist?

Antworten:


8

Wenn möglich, ist es besser, ganze Festplatten mit ZFS zu verwenden.
In Ihrem Anwendungsfall ist keine Partitionierung erforderlich.


Was meinst du mit your use case. Können Sie einen Fall nennen, in dem eine Partitionierung nützlich sein könnte?
Shivams

Partitionierung ist in ZFS nur dann sinnvoll, wenn Sie eine esoterische Konfiguration haben oder bestimmte SSD-Lösungen verwenden oder mit ZIL- und L2ARC-Geräten etwas Seltsames tun . Und selbst dann ist es am besten, nur ganze Geräte / Festplatten zu verwenden.
ewwhite

Aber warum ist es besser, ganze Festplatten zu verwenden?
leetNightshade

1
@leetNightshade Da es bei der Verwendung von ZFS nicht viel Sinn macht, Festplatten zu partitionieren, benötigen Dateisysteme keine eigenen Partitionen. Wenn ZFS die Festplatte "besitzt", kann der Schreibcache der Festplatte eine bessere Leistung erzielen. Siehe solarisinternals.com/wiki/index.php/…
jlliagre

1
@ Grogi Gibt es gute Beweise dafür?
leetNightshade

5

Verwenden Sie ein Slice / eine Partition für ZFS pro physischer Disc und lassen Sie etwas Speicherplatz unpartitioniert. Auf diese Weise können Sie dies immer noch tun, wenn Sie jemals ein Laufwerk ersetzen müssen und der Austausch 10 Sektoren kleiner ist ( http://www.freebsddiary.org/zfs-with-gpart.php ).

Das macht Solaris automatisch, das macht FreeNAS ( https://forums.freenas.org/index.php?threads/zfs-on-partitioned-disks.37079/ ) und das macht ZoL, wenn Sie ihm eine ganze Festplatte geben - es wird es partitionieren ...

Der Aufwand für die Übersetzung der Position auf der Partition in die Position auf dem tatsächlichen Gerät ist vernachlässigbar. Sobald die Partition korrekt an der Grenze des physischen Sektors ausgerichtet ist, gibt es keinen Grund dafür, dass sie sich anders verhält als das gesamte Blockgerät.

Bei ZoL ist mir nur bekannt, dass ZoL den Festplattenplaner noopauf den Zeitpunkt umschaltet, an dem die gesamte Festplatte an vdev übergeben wurde. Nichts hindert Sie daran, es manuell einzustellen.

Einige tun dies jedoch nicht ... Erstellen Sie keine weiteren Partitionen für ZFS pro Festplatte. Wenn Sie die obigen Hinweise ignorieren möchten, erstellen Sie niemals vdevs daraus in demselben zpool. Dies wird im Grunde die Leistung beeinträchtigen, da ZFS die Daten zwischen den vdevs aufteilt und sequentielle iops sich in einen Such-Albtraum verwandeln ...


Können Sie das Verhalten von zfs in Bezug auf Suchalptraum mit gemeinsam genutzten / verwendeten Festplatten-Slices näher erläutern?
satch_boogie

Einfachstes Szenario: Sie erstellen einen Pool aus zwei vdevs, jeweils einer Partition auf derselben Festplatte. Jetzt möchten Sie einen Datenblock schreiben, der groß genug ist und sich über beide vdevs erstreckt. Trotz des sequentiellen Schreibens von Daten muss das Laufwerk zwischen zwei verschiedenen Speicherorten suchen, um sie zu speichern.
Grogi

Ist dieses Verhalten dasselbe, wenn Pool_A (sda1, sdb1, sdc3) und Pool_B (sda2, sdb2, sdc3) verwendet
satch_boogie

Sie müssen nicht gleichzeitig an sie schreiben ... Wenn Sie die vdevs in einem Pool haben, können Sie nichts tun ...
Grogi

0

In meinem Kopf stellt sich diese Frage aus Zweifel, ob ich spät bestimmen kann, was sich auf dieser Festplatte befindet. Wenn Sie also einen Pool auf dem gesamten Laufwerk erstellen (ja, bei Bedarf mit der Option -f), erstellt zpool praktisch eine gpt-Partitionstabelle und Partitionen von Solaris wie folgt:

(fdisk -l ...)
...
Disklabel type: gpt
Disk identifier: 4CBE587E-23AF-8E4B-A7F0-B44AD6083171

Device          Start        End    Sectors  Size Type
/dev/sdd1        2048 3907010559 3907008512  1,8T Solaris /usr & Apple ZFS
/dev/sdd9  3907010560 3907026943      16384    8M Solaris reserved 1

Es ist also wirklich nicht nötig, Partitionen manuell zu erstellen ...


Ich denke nicht darüber nach, was Solaris am besten für freebsd macht. Bei Spiegeln können Sie beispielsweise Festplatten durch größere ersetzen und die Poolgröße im Handumdrehen mit einem Befehl oder sogar automatisch erweitern, wenn Sie als solche konfiguriert sind.
cstamas
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.