I really like having the NAS for several reasons. First and foremost, it takes the drives out of the servers and allows them to be administered independently. Next, I can split up media across the different NAS devices to reduce the load on a particular server. For instance…
I know that all of my security cameras will want to talk to their respective storage boxes on a consistent 24/7 basis. To keep this from interfering with someone watching movies, I simply assign one NAS to security and the network switch keeps the bandwidth usage to the security back ends and their respective NAS. I also separate music and photos to a separate NAS as these are relatively low bandwidth and can benefit from having their own shared NAS. Last, I keep the kids videos and non-kid videos on separate NAS boxes to alleviate bandwidth problems when let’s say two of my teens are watching two different shows, two of my under 10 kids are watching two separate videos, and me and my wife are watching separate videos. Now this situation does not happen too often but as you can see, the system can be serving 6 independent videos, recording videos from the security cameras and recording shows from the satellite systems with very little overall network bandwidth.
Each Network Attached Storage (NAS) device is an “old box” running the open source FreeNAS server. For instance, my NAS RAID 5 on port 4 consists of the following:
a - An old Pentium 333 MHz MoBo.
b - Three 128 Meg SIMMs for RAM.
c - An IDE to CF converter (~$9.00) and a 1 Gig CF (~$14.00) for the OS and associated files.
d - A RAID 5, 4 port, SATA II 3GB/Sec PCI card.
e - A 10/100/1000 PCI Intel Network Adapter.
f - Four 1 TB Western Digital SATA drives.
With all the above hardware, I have about $1000.00 invested. Try to find a commercial unit for anything close to that price!!! When I started making my NAS systems, I simply put in one HD at a time as money would allow and slowly built up from there.
Here is a good place to talk about a few essentials that most people do not think about in this day and age… How to save processor cycles and speed up data flow.
First off let’s talk about the Hard drive controller. You can get a cheap (less than $20.00) controller and use software RAID to handle the drives but this is at the expense of CPU cycles and data throughput. It also puts a heavy load on the PCI bus slowing things down even further. If however, you spend a little extra and buy a HD controller that has hardware RAID (I use RAID 5) built in, you save all that overhead.
Why do I use RAID 5? For me it seems like the best trade offs. If you use RAID 0/1 striping and mirroring, you only get half your “bought for” storage space (e.g. four 1 TB drives yields 2 TB storage). If you use no RAID (JBOD or the like) you get no data backup or safety net. RAID 5 allows you to get 3/4 your “bought for” storage (e.g. four 1 TB drives yields about 3 TB of storage) and you get data backup through parity. If one drive fails, replace it and the RAID 5 card will rebuild the failed drive… No data lost. It takes a bit of time, but I think it is worth it.
Now let’s talk a bit about the network card. This conversation goes much like the one above. If you buy a cheap (sub $20.00) network card, you simply get what you pay for. The reason the card is cheap is because there is very little processing hardware on the card, most of the processing happens via the loaded driver and thus the burden is on the system CPU.
Now, if you buy a bit more expensive cards, I like the $49.99 Intel cards myself, you keep most of the processing on the card and away from the main CPU. This also reduces bus traffic as each packet does not have to be analyzed and processed by the system CPU, and increases network throughput.
This same philosophy carries right on through to video and video capture cards which can be extremely system CPU intensive. This is why capture cards with MPEG encoding are imperative (IMHO).
‘nough said.