My Proxmox and ZFS Struggle: How I Fixed System Hangs and Degraded Pools by Moving to LVM
When I set up my Proxmox server, I used ZFS with M2- and SATA-SSDs because I wanted the benefits of data integrity and advanced features. However, I quickly ran into serious problems: my system would hang, my LXC containers became unresponsive, and IO delays skyrocketed. The zpool status
command showed my pool was degraded, and performance was terrible.
What I Learned About ZFS on Consumer SSDs
After digging through forums and community experiences, I realized that ZFS is very demanding on storage devices, and consumer-grade SSDs (still not completely sure how they differ) often can’t handle the sustained IO and write amplification ZFS requires. This mismatch leads to the symptoms I experienced: degraded pools, high IO latency, and system instability.
My Solution: Moving to LVM
Luckily, I already had an LVM storage on the same drive where Proxmox was installed as a second data source. I decided to migrate my VMs and containers from the problematic ZFS pool to this LVM storage.Thanks to Proxmox’s built-in storage migration tools, moving the data was straightforward and painless.
After the migration:
- The system became stable and responsive.
- IO delays dropped to negligible levels.
- Containers and VMs ran smoothly without hangs.
- The degraded pool issues disappeared entirely.
This confirmed that for my hardware setup using LVM was a far better fit than ZFS on consumer SSDs.
How to Fix a Degraded ZFS Pool
If you find yourself with a degraded ZFS pool, here’s a quick guide to get it back to health:
- Check the pool status
sudo zpool status
Identify any faulted or offline devices.
- Scrub the pool to detect and repair errors
sudo zpool scrub <poolname>
- Clear error counts after repair
sudo zpool clear <poolname>
How to Move Data from ZFS to LVM in Proxmox
Since I already had LVM storage on the same drive, migrating was easy:
- Add the LVM storage to Proxmox (if not already added, this is a tutorial of its own! Ask google/youtube for it).
- Use Proxmox’s “Move Disk” feature in the VM or container settings to migrate disks from ZFS to LVM.
- Verify the migrated VMs/CTs work correctly on the new storage.
- Remove or repurpose the old ZFS pool once migration is complete.
Final Thoughts
If you’re running Proxmox with ZFS on consumer SSDs and facing hangs, degraded pools, and high IO delays, consider whether your hardware matches ZFS’s demands. For many setups, LVM provides a simpler, more stable, and performant solution.Thanks to Proxmox’s flexible storage management, migrating between filesystems is straightforward, letting you find the best fit for your environment without starting from scratch. It really took my hours and a lot of headaches to get this fixed. But now I'm really happy with it.
Disclaimer: I wrote the blog post in raw form and let AI help shape it.