ZFS Ashift
Bei ZFS bezeichnet ashift die Blockgröße (Sektorgröße), mit der ZFS intern auf einem vdev arbeitet.
Der Wert ist ein Exponent zur Basis 2:
Bedeutung von ashift 9 bis 12
| ashift | Sektorgröße | Entspricht |
|---|---|---|
| 9 | 512 Byte | klassische 512B-Sektoren |
| 10 | 1.024 Byte | 1 KB |
| 11 | 2.048 Byte | 2 KB |
| 12 | 4.096 Byte | 4 KB (Standard heute) |
Warum ashift wichtig ist
ZFS schreibt immer in ashift-großen Blöcken auf die Platte.
Wenn:
-
die physische Sektorgröße der Platte größer ist als ashift
-
oder das Storage intern mit größeren Blöcken arbeitet
→ entstehen Read-Modify-Write-Zyklen, was:
-
Performance kostet
-
unnötige Schreibvorgänge erzeugt
-
SSDs schneller altern lässt
Praxisbezug (heute sehr wichtig)
Moderne Festplatten & SSDs
-
Fast alle HDDs: 4K physische Sektoren (Advanced Format)
-
SSDs / NVMe: intern ebenfalls ≥ 4K
👉 ashift=12 ist heute der sichere Standard
Typische Szenarien
ashift=9 (512B)
❌ Nicht mehr empfehlenswert
-
schlecht für moderne HDDs/SSDs
-
Performanceeinbrüche möglich
-
kann nicht nachträglich geändert werden
ashift=12 (4K)
✅ Best Practice
-
kompatibel mit:
-
HDDs
-
SSDs
-
NVMe
-
RAID-Controllern
-
-
minimaler Platzverlust
-
stabile Performance
ashift > 12 (z. B. 13 = 8K)
⚠️ Nur sinnvoll bei:
-
speziellen Enterprise-Systemen
-
dediziertem Storage mit garantierter Blockgröße
Wichtig: ashift ist final
-
Wird beim Erstellen des vdevs festgelegt
-
Nicht änderbar
-
Auch beim Ersetzen einzelner Platten bleibt ashift gleich
👉 Fehlerhafte Wahl = Pool neu erstellen
Empfehlung (kurz & klar)
| Einsatz | Empfehlung |
|---|---|
| Heimserver / NAS | ashift=12 |
| SSD / NVMe | ashift=12 |
| Unbekannte Hardware | ashift=12 |
| Alte 512B-Platten | trotzdem ashift=12 |
Prüfen, welchen ashift ein Pool hat
Wenn du möchtest, erkläre ich dir auch:
-
Zusammenspiel von ashift & recordsize
-
Einfluss auf ZVOLs / VM-Storage
-
ashift bei RAIDZ vs. Mirror
-
Performance-Tuning für SSD-Pools