-
I'd like some clarification on how dedup works on an old pool (which had dedup enabled) that was updated to use fast dedup. Per Fast Dedup Review Guide,
Can someone clarify this? It sounds like old dedup table is left as-is, and now there's a second dedup table. So you actually end up with more memory usage. 😮 Is that right? (if it's not, maybe #16481 should just be closed?) So then how do writes work if there's 2 dudp tables? Does it end up checking for dupes against both tables? Does it only check against the new table? Do entries in the old table just remain read-only, or do they somehow get updated at any point? Surely if a block referenced by the old table is freed, that old table must be updated? Do you maybe end up with the same block having entries in both dedup tables, thus having 1 copy on disk for each dedup table it appears in? Or perhaps "the old ones will continue to work as they always have" simply means that an old pool which does not enable the in other words, is it old pools that leave |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 5 replies
-
ZFS has separate dedup tables for each checksum algorithm. Once you upgrade while already having dedup table(s) for some algorithm(s) those will keep using old dedup. But if you delete all your data using some algorithm or switch algorithm to previously unused, then its new dedup table will use new format. Obviously data using different checksum algorithms can not deduped with each other. But there is no double accounting. |
Beta Was this translation helpful? Give feedback.
Exactly correct.
Every block in ZFS has a block pointer, containing the location on disk and a bunch of metadata about the block. All block pointers …