🌐
Proxmox
forum.proxmox.com › home › forums › proxmox backup server › proxmox backup: installation and configuration
ZFS Datastore on PBS - ZFS Recordsize/Dedup... | Proxmox Support Forum
May 9, 2024 - It looks to me like ZFS Deduplication is not really needed for PBS, because PBS does already the deduplication. I have on my Pool with a lot of backups a dedup ratio of 1,1. So dedup happens a bit on ZFS side, but seems to me not worth it. Same for ZFS-Compression, runs here with ZSTD as Compression algorithm.
🌐
Reddit
reddit.com › r/proxmox › pbs deduplication zfs only?
r/Proxmox on Reddit: PBS deduplication zfs only?
June 8, 2022 -

Hi,

so im currently testing the proxmox backup server für my vms. I was wondering if the deduplication / dirtybit only works with zfs or if it also works on "normal" ext4 formated disks (mounted directory).

Best

🌐
Reddit
reddit.com › r/proxmox › correlation of zfs dedup, compression and proxmox backup server
r/Proxmox on Reddit: Correlation of ZFS dedup, compression and Proxmox Backup Server
November 18, 2020 -

Today I played around with some settings in ZFS and Proxmox Backup Server. I use Proxmox Backup Server with a ZFS raidz2 as storage for the Backup space. The ZFS pool was created manually without the proxmox-backup-manager command.

I noticed that the WebUI shows a deduplication factor of (in my case) 94.02 but the zfs pool shows dedupratio 1.00x.

Does Proxmox Backup Server not use ZFS' deduplication functionality? Should I enable deduplication and compression in the ZFS pool? Which compression algorithm should I use?

EDIT: I have tested a bit with ZFS and Proxmox Backup Server for quite a while (both hardware and VMs) and ZFS' deduplication and compression have next to 0 gains. As pointed out by the comments deduplication does not make sense as Proxmox stores backups in binary chunks (mostly of 4MiB) and does the deduplication and most of the compression there. ZFS compression with zstd-12 ended up on a compressratio of 1.02x which is not very significant.

TL;DR It's not necessary to use ZFS compression or deduplication because it's both already handled by Proxmox's way of storing Archives and Block Devices.

🌐
Reddit
reddit.com › r/zfs › deduplication - request for success stories and empirical best practices
r/zfs on Reddit: Deduplication - Request for Success Stories and Empirical Best Practices
May 26, 2023 -

Good Morning everyone!

As the title states, would you be willing to share any useful and positive information you may have around deduplication? Really just looking for some success stories and what you have found to work well in reference to deduplication.

Typically all I ever hear and read about ZFS deduplication is "just don't. and if you think you might benefit, still don't." or "it benefits a very niche workload but not enough to be worth it... so just don't".

I am really curious if anyone has found a good use for it, how successful was it, what has the experience been like, and what configurations (hardware and software) are in use?

Thank you to anyone who is willing to share.

And last, I have a hot downvote for anyone showing up with a "just don't" post...

Top answer
1 of 5
7
Well the problems seem to be RAM usage, write speed and how much someone can actually profit from deduplication. so if you need a success story: get 2TB RAM, a bunch of M2 SSDs, use only one dataset (as dedup only works inside one dataset) and always write many copies of the same files instead of linking them. then you will have success. that said (i was obv joking): i'd really like to see some kind of offline dedup in the future. personally i won't profit much but a cron job which checks daily wouldnt hurt me. and who doesnt one free space
2 of 5
6
I did have a successful dedup deployment, but I also knew exactly what I was getting into and the sort of data I was putting in there. Basically, I had a system with a pool of spinning disk, 128GB of RAM and dedup tables on SATA SSD... no, not NVMe. I had very little reason to pull data quickly from it since it was literally an archive store for my VM's and arbitrary user data (Nextcloud). It also was pretty good for SQL dumps and the like. I ran backups to it daily using ZFS SEND / RECV and it just happily ingested all the data I gave it, then I would snapshot the pool and do another dump the next day. Between compression and dedup I think I was averaging about 3:1 or which was pretty damned good in my opinion, and accessing the data actually ended up being a lot quicker than I had anticipated. Of course, accesses were single-threaded since I only needed to pull data for a restore and that didn't happen often and was just me doing it. Media data got backed up to a second pool in the same system, so the 128GB of RAM was doing "double-duty". I had 100GB of RAM dedicated to ARC that was split among the two pools, but media data doesn't dedup well and backing up the media data to the dedup pool in testing was noticeably slower than the non-dedup pool. In the end it worked well for my use case. It was retired about 6 months ago so sorry I can't pull recent statistics; I moved my backups to a new system (hosted on unRAID) that ingests the backups via rsync and does a "file level dedup" (the solution is called BackupPC)... this gives me less administrative headache since I don't have to manage two pools and the array can be expanded a lot more easily.
🌐
Reddit
reddit.com › r/zfs › openzfs deduplication is good now and you shouldn't use it
r/zfs on Reddit: OpenZFS deduplication is good now and you shouldn't use it
October 28, 2024 - I used to be a dedup expert, and in general what you call "real time dedup" is a lot better than post process dedup for most tasks, but for it to be truly viable, you need to have variable block size dedup, and here ZFS falls short with its fixed block size. If you add something in the middle of a huge file, all the blocks basically change due to alignment, while a variable block size dedup will have some kind of secret sauce that detects that it's still mostly the same blocks. ... There is work being done in that area as well. What is still missing before block cloning can be used for offline dedup is support for the syscall `FIDUPERANGE` which is being worked on here: https://github.com/openzfs/zfs/pull/15393
🌐
Reddit
reddit.com › r/proxmox › zfs deduplication of pve backups?
r/Proxmox on Reddit: ZFS deduplication of PVE backups?
November 11, 2024 -

I'm using Proxmox at home to host the usual things. One ZFS NVMe pool for all the containers/VMs and one ZFS HDD pool for nightly backups.

I just setup a second PC with TrueNAS for some "just in case" backups of the backups (from PVE and other sources around the house).

Each VM has 1-2 dozen nearly identical backups, so I decided to try ZFS' deduplication feature. I copied over backups for 4 VMs (500G total) and was shocked to see no gains/efficiency from the deduplication, not even 1.01!

Some of those backups are from a VM that was powered off, so the original disk was definitely unchanged. Shouldn't the resulting backups be bit-identical? Does anyone know if Proxmox includes some metadata that might spoil block-level deduplication?

🌐
TrueNAS
truenas.com › docs › references › zfsdeduplication
ZFS Deduplication | TrueNAS Documentation Hub
March 2, 2026 - Reduced ZFS Performance Deduplication adds extra lookups and hashing calculations into the ZFS data pathway, which slows ZFS down significantly. A deduplicated pool does not reach the same speeds as a non-deduplicated pool. When data is not sufficiently duplicated, deduplication wastes resources, slows the server down, and has no benefit.
🌐
Lobsters
lobste.rs › s › kuhlap › openzfs_deduplication_is_good_now_you
OpenZFS deduplication is good now and you shouldn't use it | Lobsters
October 28, 2024 - They have a dedup table that can scale dynamically with memory and will miss things when memory pressure grows but not degrade performance (beyond the extra writes required when dedup fails).
Find elsewhere
🌐
despair labs
despairlabs.com › blog › posts › 2024-10-27-openzfs-dedup-is-good-dont-use-it
OpenZFS deduplication is good now and you shouldn't use it
October 26, 2024 - Fast dedup improves all three, making it far easier to balance these factors and rather less of a disaster if it doesn’t work out. However, it is still only of benefit if you have a truly enormous amount of data, that gets copied a lot, and aren’t able to take advantage of other “zero-copy” options within OpenZFS, like block cloning or snapshot clones.
🌐
GitHub
github.com › jim-collier › x9dedupe
GitHub - jim-collier/x9dedupe: The first ZFS offline deduplication tool. Also deduplicates Btrfs and XFS. · GitHub
Stores extended file attributes to both incrementally compare, and incrementally dedup. Significantly speeds up successive runs and reduces disk wear.¹ · Xattrs can survive copying to different filesystems & across networks, with optional ...
Starred by 32 users
Forked by 2 users
Languages: Shell
🌐
Hacker News
news.ycombinator.com › item
OpenZFS deduplication is good now and you shouldn't use it | Hacker News
November 3, 2024 - To me, this is "obviously" the wrong approach in most cases. When I'm writing data, I want that write to complete as fast as possible, even at the cost of disk space. That's why I don't save files I'm actively working on in 7zip archives · But later on, when the system is quiet, I would love ...
🌐
Proxmox
forum.proxmox.com › home › tags
deduplication | Proxmox Support Forum
Therefore I can either: dedicate all of my SSDs and HDDs to one large PBS that is remote from my PVEs, or split my resources: locally (with the PVEs) place... ... There are a large amounts of improvements in ZFS 2.3.0 if you use NVME and deduplication: https://github.com/openzfs/zfs/releas...
🌐
Reddit
reddit.com › r/zfs › anyone doing zfs deduplication?!
r/zfs on Reddit: Anyone doing ZFS deduplication?!
November 5, 2022 -

I know ZFS deduplication is discouraged, because apparently it takes a lot of RAM and CPU. But 1 GB RAM and 1 CPU core per 1 TB data is not that costly. These days, most PCs and laptops have +16 GB RAM and +8 cores, with 1–2 TB of NVME.

Any problem if I relocate 1 TB to a deduplicated data set on NVMe, with hardware mentioned above? The OS is not deduplicated, just data.

Anyone doing ZFS deduplication here? How much space do you save, what is your RAM, CPU and performance?

Apparently, the savings are not that much either.

Software such as Restic or Borg do deduplication easily, with great speeds and deduplication ratios. I could use these software, but I prefer not to use third party apps.

Update. From the comments, deduplication is continued to be discouraged. The savings are small, not worth the trouble.

Top answer
1 of 5
12
Let me tell you a little story from my first foray into using dedup. This was back in... 2010? or so, when I was running a 4*500G raidz5 on OpenSolaris, in VMware on my Windows desktop. The pool was mostly storing ~1G files and I had dedup turned on because I figured any space saving would be helpful. Things were basically fine until the pool filled up, at which point I had to start seriously deleting quite a bit of stuff. Deleting files on that pool would cause ZFS to completely hang for about 20 minutes, maxing the disks out with random I/O. Deleting different files usually caused another 20 minute hang, and any attempt to unhang it by rebooting the VM made it start all over again on import. Eventually I worked out what it was doing: loading the relevant parts of the dedup tables from disk so it could mark the blocks as freed. (You, the reader, already know this problem was dedup-related, but I didn't and it took me a while to work it out.) Things did get better once a significant part of the tables were cached. Dedup wasn't really saving me any space either so using it was pointless, but if you want to remove dedup from existing data the only way to do it is to rewrite that data. Fortunately for me I didn't have any requirement for high availability, because it took a while to do that. It's worth pointing out that I didn't have a RAM problem -- the problem was that the dedup tables weren't in the RAM, they were highly fragmented all over the disks. More RAM would've helped only so long as I never rebooted the VM. Anyway, that was then. Today we have SSDs, L2ARC, dedicated metadata and dedup devices, large recordsize support, faster dedup-capable checksum algorithms and significantly better overall hardware. I suspect that a pool with dedup tables on NVMe will probably be tolerable, especially if you're careful to use large record sizes and limit dedup to just a small set of data that it's helpful for. But I haven't tested it in earnest, and any problems likely won't show up immediately or be obviously attributable to dedup.
2 of 5
9
Apparently, the savings are not that much either. Savings entirely depend on the type of data. If you have hundreds of VMs and all are running the same OS all that data is deduplicated down to basically a single instance of the VHD and a couple of blocks for the custome parts of the VHD of each VM (this is exaggerated). This would be where deduplication shines. A regular single instance like John Doe's Linux Computer with a couple of Steam games, some mp3s and the odd Office file will usually experience a deduplication rate of only a couple of percent ... usually less than 10%. One could argue that memory capacity is more than 10% more expensive than storage capacity it's not worth it. Restic or Borg do deduplication easily Restic and Borg don't do deduplication on your existing data - they are backup tools and their deduplication is done when writing to the backup destination. This is completely diofferent to what ZFS deduplication does. In the case of ZFS it's built into the block-level layer and it's completely transparent to the OS or user. The active data in the file system (including metadata) is deduplicated. You could compare it to software like fdupes or rdfind but they only work on-top of the file system either, they find files that are duplicates of others and replace them with links to the first find of that file. This is not transparent to the OS or the user, it can be noticed and it can cause trouble. Block-level deduplication as done by ZFS has no direct-compare candidate in the Linux world (no, not even BTRFS deduplication) - to my knowledge there is only one file system available that does have comparable (and indeed even better) functionality and performance (with regard to deduplication) and that is NetApps WAFL file system - which might have been the source of inspiration for some of ZFS's features.
🌐
Mckusick
mckusick.com › bookrefs › zfs_dedup.html
ZFS Deduplication (Jeff Bonwick's Blog)
Like all zfs properties, the 'dedup' property follows the usual rules for ZFS dataset property inheritance. Thus, even though deduplication has pool-wide scope, you can opt in or opt out on a per-dataset basis. ... It all depends on your data. If your data doesn't contain any duplicates, enabling dedup will add overhead (a more CPU-intensive checksum and on-disk dedup table entries) without providing any benefit.
🌐
Medium
medium.com › @PlanB. › breaking-down-zfs-deduplication-and-proxmox-backup-formats-3d63e45fa19b
Breaking Down ZFS Deduplication and Proxmox Backup Formats | by Mr.PlanB | Medium
December 14, 2024 - Instead of writing duplicate blocks to disk, ZFS stores references to the original block, reducing storage usage. Deduplication can be highly effective in scenarios where data contains a lot of redundancy, such as:
🌐
LinuxConfig
linuxconfig.org › home › zfs deduplicaton: save disk space
ZFS Deduplicaton: Save Disk Space - LinuxConfig
We demonstrate the feature, compare results with dedup on and off, and discuss RAM requirements and best use cases. ... ZFS deduplication is powerful for environments with highly redundant data like VM images or backup repositories.
Published: December 5, 2025