I know that I shouldn't use ZFS with hardware RAID so that ZFS can know everything about the disks and manage them correctly, but what about write-protected battery backup? Most motherboards (or as I understand it) don't have battery protected read/write operations.
Here's an experiment you should do with your battery backed raid. Setup a raid 1, format it, copy a bunch of files to it. Ideally just setup like a 4gb partition or whatever.
Shut the computer down, pull the first drive from the raid 1 and use dd on linux to randomly zero 512 byte blocks in that 4gb partition.. about 5-10 512byte blocks should do it.
then put it back on the raid controller, boot it up and see if your files are corrupt. Repeat the experiment on the other drive. Or for giggles, do it a few times, copying files in two different terminal windows (two threads copying, in other words)
then run md5sum on the file(s) in the copy.
Different, eh? How about that.
It's because the raid controller doesn't do any kind of checksumming or anything to make sure what it reads is actually what was written.
ZFS does. That's one of the reasons it has crazy overhead. In fact, it'll log that it isn't what it should be and "resilver" the corruption to correct the problem.
with the battery-backed raid 1, the controller doesn't actually know which drive contains proper data, and which drive has corrupted what was stored.
With shitty consumer drives, data integrity is out the window to encourage you to buy their 10x more expensive other SKUs
Is there any way to get battery backup without the hardware RAID? I want to use ZFS but not have to have a battery for the whole server. I guess that's what I really wanted to ask. I'm probably going to be using crappy consumer drives.
zfs is somewhat tolerant of losing power.. you would lose whatever was in ram which is up to as much as can be written to your disks in about 2 seconds. Probably on the order of 500mb to 1gb (which is kind of a lot). A $125 UPS would work pretty well though
Yeah why are you apposed to a cheap ups? Seems like a no brainer.