Bonus: Setting System Tunables
Again, this is another area where it should not be this complex, yet here we are. ZFS was primarily designed as hard disk plus ultra exotic (back then) solid-state storage running over (back then) exotic 10GbE or Infiniband. Today, we have inexpensive SSDs, and inexpensive 10GbE networking. FreeNAS was primarily designed for hard drives and 1GbE connectivity. The heritage means that we can get appreciably more performance by setting a handful of tunable values. The below will let you get at least 40GB/s from a system like the Jellyfish Fryer.
To enter them, go to System -> Tunables. There you want to insert the following with Type “sysctl”:
You should end up with something like this. We are taking the opportunity to plug 45drives here.
To make it easier for copying and pasting:
- kern.ipc.maxsockbuf = 16777216
- net.inet.ip.intr_queue_maxlen = 2048
- net.inet.tcp.recvbuf_inc = 524288
- net.inet.tcp.recvbuf_max = 16777216
- net.inet.tcp.recvspace = 4194304
- net.inet.tcp.sendbuf_inc = 32768
- net.inet.tcp.sendbuf_max = 16777216
- net.inet.tcp.sendspace = 2097152
- net.route.netisr_maxqlen = 2048
Being fair, the iXsystems / FreeNAS teams are adding tuning for high-speed networking into the next version. This is long overdue. Just the above usually can get you anywhere from 100-200MB/s better performance on a 10GbE connection.
These need to be either defaulted or there needs to be dropdowns/ checkboxes for things like “Tune for all-flash” or “Tune for 10GbE”. There are a lot of different tunables in FreeNAS. This is a starting configuration we use which works okay. If you want to delve into this world, there is a lot you can do.
Or you can just buy a Lumaforge Jellyfish, or a FreeNAS Centurion and have someone else set this up for you. Perhaps the 45drives Stornado team will help set this up in the future. Frankly, buying storage makes a lot of sense. These companies certainly provide value and you want them to make a margin. When economic downturns hit, the 3-6% margin resellers tend to be the ones that often close their doors and you do not want to have “support” from a company that is out of business. With that said, the Jellyfish Fryer project is set to show you how the other half lives.
If you are a tech geek, that also needs video storage, there is a good chance you probably already use FreeNAS. If so, the incremental parts of this guide will likely take you under 15 minutes to do. Indeed, something that many creators in wealthy countries forget is that not everyone has access to $25,000 or $45,000 for storage. Not everyone can afford expensive hardware and premiums. Some people and organizations that can afford this storage are just plain thrifty.
For those tech geeks, thrifty spenders, and those who do not have access to the latest technology, the above guide will help you get to bare minimum costs for a solution like this. The guide, including writing, took only about four hours to write at around 3,500 words and with installations, and screenshots. It may seem like a lot to read, or watch, but in reality, if you save $5,000 in four hours, that is a fairly good hourly rate.
There is a case to be made that learning storage for a few hours has an awesome payback. Once you do it, when you need more storage in 2-3 years, you can replicate the process in an hour or less. Many of the frustrations we hear from STH readers around FreeNAS the team is working on. Wizards and more opinionated setup can cut this time in half. The iXsystems team actually has a script in the lab that does most of the FreeNAS steps for you so this could be something we see become a few clicks in the not-too-distant future.
I just wanted to close this piece by saying thank you again to Linus and the entire LTT team. This project was a lot of fun and the LTT team was extremely kind during a day of filming.