ZFS bringt NFS-Freigaben als eingebaute Funktion mit — kein separater NFS-Server nötig, ein einziges Property reicht. Das funktioniert unter Solaris, OpenIndiana und teilweise auch unter FreeBSD.

NFS-Freigabe erstellen

Dataset anlegen und per NFS freigeben:

zfs create rpool/daten

zfs set sharenfs=on rpool/daten

zfs get sharenfs rpool/daten
NAME        PROPERTY  VALUE  SOURCE
rpool/daten sharenfs  on     local

Das war es. Das Dataset ist jetzt per NFS im Netzwerk verfügbar — für alle Clients, ohne Einschränkung.

NFS-Optionen

Statt on lassen sich die üblichen NFS-Optionen direkt im Property angeben — zum Beispiel Zugriff nur für ein bestimmtes Subnetz:

# Nur Lesen/Schreiben für ein Subnetz
zfs set sharenfs="rw=@192.168.1.0/24" rpool/daten

# Nur Lesen für alle, Schreiben für ein Subnetz
zfs set sharenfs="ro,rw=@10.0.0.0/8" rpool/daten

# Freigabe prüfen
share -F nfs

Auf dem Client mounten:

mount -t nfs server:/rpool/daten /mnt/daten

Portabilität

Ein netter Nebeneffekt: ZFS-Properties wandern mit dem Pool. Exportiert man den Pool und importiert ihn auf einem anderen System, ist die NFS-Freigabe sofort wieder aktiv:

# Pool exportieren (z.B. vor dem Umstecken einer USB-Platte)
zpool export nfs-share

# Auf einem anderen System importieren — Share ist sofort da
zpool import nfs-share

Alle ZFS-Einstellungen — Compression, Quotas, Snapshots, Freigaben — bleiben erhalten. Für SMB-Freigaben statt NFS siehe ZFS SMB-Freigaben mit sharesmb. Mehr zu ZFS: ZFS Compression und Deduplication. Fragen? Einfach melden.