I will end here. After this jwilliams, you may continue yelling at the internet if you so desire.
I mention copy on write because it is fundamental to the way zfs works. It is what allows write integrity when updating existing data, it's what makes instant snaps possible, cloning filesystems, zfs send/receive replication ect. And yes...none of these are essential for simple media storage. Even so I can still think of situations where it could be useful, even just for media storage. For that matter, none of Snapraids features are essential either, only useful and convenient. Why not just have a plain system with a single drive? That would work too. See (again)...this is part of the choice. These ZFS are features there IF you do want to use them. And someone might find uses for them if they DO have them available.
End-to-end checksumming on ZFS has always meant that data will remain consistent from the time it hits host memory, through being written to disk, to being read back from disk later. Apparently you define it differently (semantics again). Of course it can't know whether you sent it bad data, no filesystem can. But hey, if you can manually create a checksum on a file in snapraid after you've copied it...that's great. That another +1 for snapraid then.
And you know what else? All those features you list for snapraid...are also great. That sounds like it has some good flexibility for a simple big media storage setup. But unlike you and ZFS, I might actually recommend snapraid to a friend if I determined it was a good fit for them, rather then continually dismissing it as "terrible" because it didn't fit MY needs.
For me, I will STILL trade those snapraid features for what ZFS has. Even if we limited the discussion to just a simple media storage setup....and we limit it to JUST talking about data redundancy and data integrity...I am willing to give up whatever snapraid has for zfs for one reason. The redundancy from raid and data integrity from checksums, and it's data correction if needed all happens in real time, on the fly with no intervention or scheduling required. The scrubbing is a bonus. Yes snapraid can do file level redundancy via "syncing", and checking data via "check", and fixing data via "fix". But these are all manually run separate functions! Ok, perhaps they can be scheduled to run automatically via certain jobs ect.....but in no way would I consider that robust and seamless. And that is why I would honestly rather have the continuous, on the fly, seamless data redundancy and integrity I get from the tight integration of OS/filesystem/logical volume manager that a ZFS rig gives me. Yes really I would.
But now lets extend the use case just a bit further. And this following is more for others reading who might be curious about what a zfs storage setup can give you. Vegemeister already touched on some of this, but it bears repeating. Like many others here I am an enthusiast, and it stands to reason that perhaps I'd like to use my home built storage server for just a little bit more than mostly static movie storage. If you do...or even if you think you might do more with your storage someday, here are some more features of a ZFS system that could prove to be VERY useful. Aside from the already discussed robust software raiding including single, double, or triple disk parity, and data integrity/correction from on the fly from checksums...you also have:
- a very fast native CIFS kernal (in solaris based systems)
- nfs v3 or v4
- afp support with netatalk package
- COMSTAR iSCSI and FC/FCOE ability
- compression
- encryption (with ZFS v30 and up, currently Solaris 11 only)
- Snapshots. Instant snaps of individual filesystems regardless of I/O load. After snaps, individual files or whole folders can be restored right from windows via previous versions!
- Cloning. Ability to create instant, writable, filesystem clones based on snaps which share a common set of blocks
- Replication. Robust, block level, incremental replication of filesystems via zfs/send receive which carry all metadata including ACL's ect.
- ARC. Caches reads in ram, and can use as much or as little ram as you care to give it
- L2ARC. Ability to add a large capacity second level of caching to a pool via a fast SSD to supplement the ARC.
- ZIL caching. Ability to add a separate high speed log device for the zil which acts as a write caching device to accelerate sync writes.
FreeBSD based systems have almost all the above except iSCSI, encryption, and native CIFS kernel (they use SAMBA instead). Now some of these features are of course available on others OS's and other filesystems. For me, having this total package available...in open source form fits MY needs.
Anyone building a large volume storgae system, even at home, should be making an informed choice. And once you are informed there is no "terrible" choice...only choice. If I can help inform a few people about a ZFS option I sure consider that service...not "bad advice." So....if anyone else out there is building storage take a look at the ZFS solutions. You might like them. Fortunately there are also lots of other options too. Use what fits you best!