| As always, it depends on your use-case. I have several file-servers all use ZFS exclusively. and 10x that number of servers using ZFS as the system FS. Rule of thumb that I like: 1GB RAM/TB of storage. This seems to give me the best bang-for-our-buck. For a small (under 20) number of office users, doing general 'office' stuff, using Samba, it's overkill. For large media shares with heavy editor access, and heavy strains on the network, it's a minimum. Depends on what the server is serving. DeDUP is a different story. The RAM is used to store the frequently accessed data. If you are using DeDUP you fill the motherboard with as much RAM as will fit. NO EXCEPTIONS! This may have been the line of thinking that scared you away from it. I have a 100TB server that is just used for writing data to and is never read from (sequential file back-ups before it's moved to "long term storage"). It has 8GB of RAM, and is barely touched. I also have a 20TB server with 2TB of RAM, that keeps the RAM maxed out with DeDUP usage. ECC: It's insurance, and it's worth it. |
You effectively (unless you use allocation classes) need to keep the entire DDT in RAM all the time if you don't want any write to a dedup-enabled dataset to potentially require blocking on reading the relevant segment from spinning disks into RAM (thus tanking performance even worse than dedup normally does). It's not really related to the mechanisms in the rest of ZFS for keeping {frequently,recently} used data cached in RAM.