Hi,
I set up a ZFS file server a number of years ago. I'm currently upgrading the capacity of this server. When I set it up, I had 4 x 2.5 TB hard drives set up in raidz1. I'm migrating to 4 x 8 TB hard drives. I wanted to know if radz1 is still the best method of having redundancy, and whether there was any updated guidance on the best way to lay out FreeBSD with ZFS.
Thanks
With just 4 drives and at 8TB sizes I would probably go for two concatenated mirrors instead. With 3+1 RAIDZ1 and the rebuild times for for 8TB drives I'd feel too nervous about another disk going bad at the same time... A bit less space (2*8 instead of 3*8) but better speed.
Resilver rates are basically limited to the speed of one drive - and considering a typical 7200rpm 8TB drive will write around 170-200MB/s (sustained, in reality - at first it looks like it's much faster but that's due to things in the ARC) and at 50% usage, it'll take around 8*1000*1000 / 170 * *0.50 = 7 hours...
If everything goes well. Recently resilvered a 140TB RAID-Z2-array (2x(4+2) 10TB 7200rpm drives), and it took 4 days...
Well, actually 10 days since it restarted when the server ran out of memory when almost done the first time - turns out resilver would pull a lot of metadata (this server have/had like 160M files&directories, 24000 ZFS filesystems & 400 snapshots per filesystem) into the ARC cache, which grew over the limits and ... *boom*. Turns out 256GB RAM wasn't enough with the kernel settings we used
Some lessons learned for us:
- Do _not_ set/modify kern.maxvnodes (the ZFS tuning guide is wrong here) - especially do _not_ modify it after the systems is up and running. Seems the arc_max limit isn't really respected then for some strange reason so it'll grow way over the arc_max limit. Also - setting it to high numbers like 25000000 (25M) uses up a lot of RAM (like 11GiB) that better could be used as ARC cache too.
- 600 Samba smb processes use a lot of RAM (like 100-200MB per process).
- Resilver reads a lot of data into the ARC/memory
- Setting the vfs.zfs.arc_max to 128GB is too much (with our Samba usage) - 96GB is better. (The default (90% of RAM) is way too high).
- But then you better increase vfs.zfs.arc_meta_limit to 50GB (50% of arc_max) instead of the default (25% of arc_max) so more meta data fits into it...
- Buy more RAM.
