What is a NAS? Well, it’s like a hard drive in your computer, but that sits on your network instead. There are many advantages with this. You are able to have separate servers dedicated to storage that run special operating systems, such as TrueNAS, built for storage. You are also able to scale up your datacenter one piece at a time. If you need more storage, add more storage. If you need more compute, add more compute. You can scale them independently. Most importantly your data can be moved around and stored using a file system like ZFS.
There are some disadvantages, which is why we haven’t used network attached storage until recently. We just didn’t have the skill to tackle it and maintain performance. The problem is latency. Accessing information inside your own computer is faster. The hard drive sitting 2 inches away from the processor will be faster. It just doesn’t have to travel as far, or through as many different protocols. Accessing information 10 feet away, and going through 2-3 different computers, just takes more time. It’s still light speed, but it needs additional tweaking and caching to maintain high performance.
We use TrueNAS in our server architecture. It runs on an operating system called FreeBSD. I’ll go into a little more detail on operating systems in another article.
The NAS then connects with the compute nodes where you need them. These compute nodes could be your Adobe workstation, or a web server. For this we use a project called Network File System. NFS was first introduced in 1984. It is the protocol that allows for the network storage. Once you have NFS setup, you can mount a network share from your NAS to your compute/work computer, and the work computer thinks it’s just a regular folder. You move things into it, but it’s putting them onto a completely separate computer.
The elephant in the NAS room is networking. We had run into a pretty quick bottleneck on our network bandwidth after introducing the NAS into the storage architecture. It may not be noticeable when moving smaller files, but trying moving 1-2 Terabytes on gigabit ethernet. It can take hours to days.
We immediately upgraded our internal network structure to 10 gigabit, which turns out to be 1.5 GBps (You can move that full length video/movie in 1-2 seconds). With proper tuning, you can get close to this in real world transfer, but ours is not there. Our transfer rates are about 450 MBps, which is closer to 3-4 Gbps. We are working on tuning this, but at this point it’s fast enough for our purposes.
I chose to setup the NAS for another reason as well. I wanted to learn more about networking. In the, “What is a Datacenter?” article I referenced the three components of a datacenter. Compute, Storage, and Networking. Having a NAS forces you to use all three at a pretty low level in your stack. Where does that image live? Well, it lives on a different computer than the one that actually processes the image. This has forced us to troubleshoot and improve out networking architecture quite a bit.
Now, in the future there is a new style of computing architecture called, “Hyperconverged Infrastructure“. TrueNAS offers a solution for this called, “Truenas Scale”. I have tested this, but wasn’t satisfied with the reliability, performance, or the architecture quite yet. It is an option coming forward that we will let you know about if we make the transition.
Owner, Altha Technology