Wo und wie kann ich erkennen, dass eine Deduplizierung stattfindet?
Am einfachsten, wenn du dir
zpool list anschaust und bei Dedup was anders als
1.00 steht. Wenn du genauere Informationen willst, kannst du auch
zdb -b rpool eingeben. Falls du doch noch keine Deduplizierung an hast, kannst du ermitteln lassen, wieviel die Deduplizierung bei dir bringen würde mit
zdb -S rpool.
ZFS benutzt block-level deduplication (nicht file-level) d.h. die duplicate blocks werden dedupliziert und weiterbenutzt (z.b. wenn du mehrere VMs mit demselben OS hast werden dann die blocks die gleich sind dedupliziert auf dem dataset)
Das ist aber ein großes * dran, denn meistens funktioniert das überhaupt nicht so wie man es erwartet für VMs (LXC ist eine andere Geschichte). Quintessenz ist aber, dass man es lassen sollte. Das ist die Erkenntnis aller, die es ausprobiert haben und es zu wenig Platzeinsparung bringt, dafür aber Unmengen an Ressourcen frisst. Also falls du keine hunderte von GB-RAM für ZFS verwenden möchtest würde ich es gleich aus lassen.
Hier hat das mal jemand zusammengefasst.
wenn du willst kannst du so aktivieren: zfs set dedup=on DATASET
wobei DATASET ist der name von deinem dataset
Hierzu sollte noch erwähnt werden, dass wenn man einmal Dedup eingeschaltet hat, der I/O-Pfad deines ZFS-Pools irreversibel verändert wird und nur zurückgebaut werden kann, wenn du die Daten in einen neuen Pool überträgst. Das Deaktivieren von Dedup ist immer möglich, macht den dann lahmen Pool aber leider nicht schneller.