Goal A reliable server configuration which serves as the off-site backup for several, distributed servers as well as hosting a few virtual machines. Each server's backups should be encrypted, incremental and de-duplicated. The virtual machines are relatively low in resource requirements (all taken together ~2 GB RAM, 100 GB storage), and need to be administered remotely. The final configuration needs to be able to withstand one or two hard-drive failures. Replacement of failed hard-drives does not need to happen online, but should be simple enough (e.g. identify failed drive, replace with clean drive of same capacity, boot, wait for rebuild). The system should be able to detect and remedy Bitrot.

Hardware I would like to employ an HP N54L, 8GB ECC RAM, 4 x 4TB WD RED, 2 x 120 GB TOSHIBA disks. I also have an HP P410 controller which I could use, if that is the best option.

Plan My current idea is to use the 4 x 4 TB as software or hardware RAID 5 for storage of backups and VMs, 2 x 120 GB as hardware RAID 1 for the OS/hypervisor. Install Debian, set up Proxmox VE 4 on top, one VM for BorgBackup plus additional VMs.

File systems ZFS might eat up too much RAM to run reliably especially since there will also be some VMs, BTRFS does not offer bitrot detection if you use the nodatacow-option to counter bad performance for VMs. Ext4 does not offer protection from Bitrot.

Which filesystem can I employ?

  • 1
    based on your comments regarding the filesystem types you are eliminating and why, I'm forced to conclude that there is no widely-supported option that satisfies all your criteria. I'd probably go with BRTFS and take the performance hit. Besides since your link to "performance for VMs" points to the "#Fragmentation" portion of the wiki, and fragmentation is a well understood phenoma, its probably best to just try to manage fragmentation, instead of design around it. Jan 26, 2016 at 14:00
  • Do you want to be able to replace disks by merely replacing the physical drive, without having to issue commands? Jan 28, 2016 at 11:05
  • Issuing commands is fine. If it requires in-depth knowledge of the filesystem internals or a lengthy decision tree it might not be suitable. I would like to be able to do a test-run by taking one of the drives offline, putting a clean one back in, and having the system rebuild in less than a day.
    – Riley
    Jan 28, 2016 at 13:31
  • Currently I am leaning towards Hardware RAID1 for the system disks, BTRFS RAID10 (instead of RAID5) for the storage disks. I would then pass through a directory on the storage disks to the VM running Borgbackup in order to circumvent the BTRFS issue with fragmentation and performance with regards to large vm containers. The other VMs should be fine, as they are going to run only small services with low number of writes.
    – Riley
    Jan 28, 2016 at 13:38

1 Answer 1


ZFS and BTRFS offer protection from bitrot, you have to choose between the two.

you also want deduplication

my suggestion is ZFS

for encryption i suggest ZFS on top of LUKS ,ZVOL for VMs

it is important that you encrypt at lower level than dedup

  • Deduplication is already handled by Borg backup and is not needed at the filesystem level. I went with BTRFS for now.Thank you for your input!
    – Riley
    Mar 4, 2016 at 15:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .