Guspaz wrote:
I'm also running ZFS on a home file server, with a decent data set (44TB raw capacity across 15 drives). One thing I'd caution is to not cheap out on the GPU too much. My first attempt to build the server involved a Pentium Dual Core chip, because they very cheap and I didn't think I needed much CPU power for a file server. Big mistake! ZFS, at least, is relatively resource intensive, what with doing checksums on all data, and the encouragement to enable LZ4 compression on all your data due to the performance improvements.
The Pentium Dual Core chip I had in there floundered; ZFS wasn't multithreaded at the time (it looked like it used one process per pool, and nearly all my use was in one big pool), and the per-core performance of the Core 2 architecture (which was super outdated even when I bought the thing) was terrible: lots of stuff I'd do with the file server would max out a CPU core. Ultimately, I replaced it with a Core i7 920, which is also pretty out of date, but more than fast enough for ZFS (and it was free, pulled from my old desktop). Anyhow, this doesn't seem to be a problem, because you're considering modern chips.
In terms of your CPU choice, do you need a Xeon? Consider that some consumer parts support ECC RAM in server motherboards. The i3-4330 is half the cost of the E3-1275, and won't be that much slower. It's also a generation newer and uses less power. And the i3-4330 supports ECC RAM and the most important virtualization extensions. The E3's extra cache would help with virtualization, though.
EDIT: In terms of the compression comment, LZ4 (which was added to ZFS earlier this year) is capable of compression/decompression speeds that are high enough that it's bottlenecked on disk reads/writes rather than the CPU, so it generally improves performance by reducing how much data needs to be read/written.
That's a really big array - I only have 3 x 3TB drives. How much memory do you have on that box? One thing I have noticed is that memory usage is very important for ZFS.
Keep that in mind if you are planning on doing virtualization. I would max out the memory (32 GB) and keep an eye on performance to make sure everything runs well.