Proxmox and Intel VROC

I would not recommend classic hardware RAID nor fake RAID on today's hardware. ZFS RAIDZ does raid better with better recovery options (you can move the drives to any other hardware and mount it if you need), and (with few exceptions) the performance is great (or at least good enough). Don't accept any vendor lock-in you don't need.
 
The purpose for the raid system is redundancy. The servers will go offshore to some unmanned installations so redundancy on the disk system is a must.
 
Looking at buying in some HPE servers for Proxmox where I have the option for using Intel VROC for my RAID configuration. Is the Intel VROC functionality supported with Proxmox our should I opt in for a classic RAID controller?

For additional info from Intel: https://www.intel.com/content/www/us/en/software/virtual-raid-on-cpu-vroc.html
Not real raid. We had to use it on Ubuntu server, boot disks. Does not work out of the box, finally we put classic Linux software raid. Avoid.
 
was just going to post that ZFS mirror/RAID is hardware independent. We’ve used that for boot redundancy and then Ceph so I don’t have a direct answer as to compatibility.
 
The purpose for the raid system is redundancy. The servers will go offshore to some unmanned installations so redundancy on the disk system is a must.

I absolutely would not run something like that without redundancy, but getting the redundancy from zfs's raid is better in a lot of ways than getting it from dedicated hardware. It is more flexible, and smarter. For example when rebuilding after replacing a drive with a hardware raid controller, the raid controller doesn't know what is free space, so has to rebuild the entire drive, but zfs does know what's free, so it doesn't need to rebuild free space.

Hardware raid only reads from the parity block to do rebuilds or if one of the other drives reports a read error. If a drive reads the wrong data, but doesn't report an error, then you get corrupted data, it isn't repaired from the parity. On ZFS every read is checked against a stored hash to verify the data is good, so in case a drive returns bad data ZFS will find out, it will recover from the parity block, and return only good data to your program (and will write it out to fix the bad version on the other disk).

And as SteveITS hinted at above, you can move the redundancy up the stack with Ceph to have what looks like a raid spread across 4 or more servers, so the redundancy covers not just a failed drive, but failed servers. This is much more complicated and adds requirements like fast networking, but might be a good choice if you are building something with multiple proxmox hosts.
 
  • Like
Reactions: UdoB
The purpose for the raid system is redundancy.
You may want to take a second and reconsider what that means.

While using mirroring or parity/ec creates disk level fault tolerance in a storage solution, REDUNDANCY is a function of system level fault tolerance; if redundancy is a mission criteria, you need to deploy redundant heads as well as disks.

And then- a storage pool can get broken/corrupt/destroyed without underlying disk fault; proper backup with restoral capability within your defined RTO is also a consideration.

With regards to Hardware RAID vs ZFS- there are a ton of discussions on the forum about this subject. to summarize:
Hardware raid: block level parity. fast.
ZFS: File level parity awareness, so checksums are granular- corruption is detected and corrected on a file level. tightly coupled LVM. CoW, so snapshots are built in and "free." in line compression, dedup. requires more resources (RAM) then lvm on raid. fast writes on first 100% capacity writes, progressively slower after that. performance penalty increases as free space decreases below 20% of pool capacity.
 
  • Like
Reactions: UdoB