ZFS ashift Problem FreeBSD HD mit 4K

Leider lügen einige der sogenannten neuen Festplatten bei ihrer sector size. In Verbindung mit FreeBSD und ZFS führt dies jedoch zu Problemen. Früher musste hier umständlich mit gnop gearbeitet werden, mittlerweile kann der ashift-Wert einfach als sysctl-Variable gesetzt werden.

Beispiel

# zpool create tank raidz ada0 ada1 ada2
# zdb | grep ashift
         ashift: 9

→ Schlecht → 2^9 ist 512, somit also die falsche sector size.

⇒ das Ganze noch einmal (nachdem ich heute schon 4 mal gefragt wurde - der Pool MUSS NEU ERSTELLT WERDEN !)

# sysctl vfs.zfs.min_auto_ashift=12
# zpool destroy tank
# zpool create tank raidz ada0 ada1 ada2
# zdb | grep ashift
         ashift: 12

2^12 ist 4096, wie es sein sollte. ZFS erkennt die größte Sector Size uns verwendet diese für den Pool.

Um beim Erzeugen eines neuen Pools nicht immer an das Setzen der sysctl-Variable denken zu müssen bietet es sich an diese in /etc/sysctl.conf zu setzen.

Links