Sunday, January 17, 2016

DIY NAS + Plex Server Build

I’ve been running a network attached storage (NAS) device for many years.  I’ve really enjoyed the Netgear ReadyNAS product as an  easy to use reliable appliance.  I started out with a ReadyNAS NV+ and upgraded about 5 years later to a ReadyNAS Ultra.  I’m still happy with the unit but I need to add more storage and I want to use my NAS box to also serve movies and other media.  To do that I need a lot more storage and I need more processing power.  The Plex media server that I’m going to use transcodes the movies to the target viewing platform on the fly so it’s fairly CPU intensive, a lot more than the ReadyNAS is designed for.  It’s time to build a custom NAS and media server.


NOTE:  If you’d like to skip all of the detail, I put a bill-of-materials at the bottom so you can see what I used in my build.

My requirements were as follows:

  • Low power consumption (it’s going to be on all the time) like any NAS
  • Just enough processing power to serve as a NAS and deliver two 1080P movies at the same time.
  • 12 or more TB of space
  • Support for some sort of RAID-5 or 6
  • Easy to maintain but provide ability to get directly to the OS and implement enhancements and perform simple maintenance in the future.
  • Small form factor.  I don’t want a giant box in the office and I’m use to my little ReadyNAS.


Design:

Summary

I settled on FreeNAS as the software that I would install on some custom hardware.  
  • FreeBSD Unix -- robust mature, and reliable.
  • FreeNAS file server -- enterprise features, reliable, strong community support
  • Plex media server -- feature, feature rich, nailed what I wanted in a media server
  • A small Asrock 8 core cpu motherboard with built in networking, USB, and 12 SATA ports for disk drives.  
  • 32GB of ECC memory
  • SilverStone Mini-ITX case with 8 hot-swappable drive bays which is perfect for NAS.
  • Western Digital Red SATA3 drives for main storage with a cheap SSD for boot

Operating system, NAS, and Media Server software

The FreeNAS installer installs Free BSD Unix and tightly integrates the FreeNAS file server software all in one go.  That means that it’s simple to install.

FreeNAS runs on FreeBSD, a very solid release of Unix.  I’m somewhat fluent in Unix so I’ll be able to ssh into the box directly and tweak, monitor, and move data around directly on the server saving me a lot of time and headache.

The FreeNAS distribution supports Plex as a Plugin.  One of the things that sets FreeNAS apart from other distributions (like NAS4Free) is the the plugin architecture.  It not only makes installing other software onto the server easy (via web interface) but safe.  FreeNAS implements “jails”, a lightweight VM architecture that looks like a separate machine to whatever is running within the jail.  This means that if that “jail” machine crashes, it won’t bring down the core system running the server and file services.  More importantly, should someone break into the machine because of a hole in the Plex server software, the user can’t see anything that’s not exposed to the Plex machine.  All that the Plex server can see is the media directory in my case.  In essence, an attacker only breaks into a jail.


The primary job of the NAS system is to be... well a NAS (file server). FreeNAS uses a modern file system, ZFS, developed by Sun Microsystems to be enterprise grade.  It supports multiple raid types, from mirroring to RAID-5, RAID-6.  One of the really powerful features of ZFS is the avoidance of “write holes” upon failure.  This is because file changes or newly created files are written as a complete transaction to a separate area.  If the transaction fails in the middle for any reason, the whole transaction is aborted and the original file is left untouched.  In addition, if ZFS detects that a file chunk might be corrupt on a disk, it repairs it on the fly.  Also, the system will run a regularly scheduled “scrub” looking for rotting data and repair it.

Because I’m leaving the fold of a fully integrated solution by Netgear, support all aspects of the new solution fall upon me.  One of the failure modes I was worried about was what happens when a motherboard fails or other event that will result in disks ending up on different channels as part of the repair.  Normally when that happens, the OS can be brought back up on a new system but it has no idea what is going on and therefore can’t re-mount the file system (assuming you are running RAID and files are written across multiple drives).  When this does happen, you lose everything.  FreeNAS ZFS has the ability to “import” a storage pool.   FreeNAS stores the config on all of the drives and knows how each serial number is configured in the array.  A simple import tells FreeNAS to look at the drives installed, read the configuration and reassemble the array back to the way it was.  Once complete, you are back in business.  FreeNAS is well documented (so far) and the support community is above average, so I’ll have lots of help.  I am a little worried since my time with freenas is only a month.  I’ve lost several drives on ReadyNAS systems and have never lost a bit of data because of it.

FreeNAS comes with some other advanced storage features like “snapshots”.  A snapshot causes a line to be drawn in time and enables you to go back to that exact point in time on the storage system to recover an earlier version of a file.  A lot of admins use snapshots as a quick backup during the day.  If a file is corrupt, users can go back to what the file looked like at the point the snapshot was taken.  Automatic snapshots can be taken hourly, daily or whenever.  Automated snapshots allows users to roll back to an earlier file directly from the windows file manager.



FreeNAS comes with a graphical reporting tool that covers various CPU metrics, disk, IO, and more.

All of the configuration that I’ve done so far on the new system has been done from a WEB UI although a lot of the admin could be done at a command prompt on the server, I’m a relative newbie to FreeNAS + FreeBSD flavor and I don’t do this kind of work daily so having all of it automated and bundled in a nice WEB user interface rocks.  I’ve used a terminal via SSH to quickly get in and move files around and do some monitoring during the test phase.

Plex Media Server software

I’ve already mentioned that I chose Plex to be my media server software.  My friend John Doxey turned me on to Plex, and my quick research showed its been around for a long time.  I liked the architecture, and it nailed what I wanted to do so the decision to use Plex was easy.
  • Simple to use
  • You don’t have to pre-transcode files to run on different devices (TV, TiVo, Apple TV, iPhone, IPad, PC...).  This is because Plex figures out what’s needed for the target device and transcodes the file on the fly.   This is one of the reasons I never bothered goofing around with ripping my DVDs.
  • You can share your library with friends.
  • Works with all my devices including TiVo, Apple TV, Apple mobile devices, and even my TV.  I have a Samsung smart TV and I installed the Plex client on it.  The Samsung setup took just a minute but the best user interface is the new gen Apple TV. The menu on all of the devices, including the TiVo are almost exactly the same but the one for Apple TV works the best for me.   My son used his iPhone and sent the movie to his chromecast device on the TV in his room.
  • Plex allows you to sync a movie to your mobile device as well.  

Hardware

Once I chose what software I was going to run  and some of the design guidelines mentioned above, I needed to choose the hardware for my build that was compatible with design objectives and software I wanted to run.  I started with  with a blog by Brian Moses called “Brian’s BLOG”.  I was sucked in quickly because past builds required that I research every possible component type, brand, and configuration.  Brian had built a few FreeNAS systems and had many of the same requirements that I have in his latest build.  This allowed me to take a different approach, compare what Brian did with other options and go.  Brian’s build pretty much rocked and many of the components he used were well reviewed by others.  For example, I would have liked to have had a smaller case, but I just couldn’t find one that had any better reviews.

Motherboard

Brian reviewed a couple of motherboards from Asrock.  Both of these boards received very high reviews by others for NAS implementations, especially because they had 12 SATA connectors for disks, 8 of them are the high speed SATA3 types.  In addition, a very active user  community recommends the use of error correcting memory (ECC) when running a FreeNAS server and Asrock supports ECC memory.  Although a low power 4 core machine would be fine for most home NAS servers, I chose the ASROCK C2750D4I with 8 cores.  It had to provide the processing power needed to run the media server when someone watched a movie in addition to its NAS responsibilities.  To provide a comparison, this processor isn’t as powerful as one in most laptops (maybe more power than a chromebook) but it fits the bill for its purpose.  Here are the core features:
  • Mini-ITX form factor, meaning it’s small and therefore will allow me to get a smaller case.
  • It comes with an Intel Avaton* processor on it, saving me the hassle of trying to figure out what processor is compatible, as well as trying to choose the right heatsink.  The case (mentioned below) is small, so something requiring a large heatsink was out ofthe question.. (* Avaton is part of the Intel Atom processor line).
  • The Intel processor is 8 cores without hyperthreading or turbo mode, but they won’t slow down when all cores are busy (that I know of anyway).
  • It doesn’t eat up so much power that it needs a giant CPU cooler or CPU fan, just a passive heat sink.  (*I did end up putting a small cpu fan that would provide enough airflow over the processor so that when it’s running at 100% it wouldn’t cook the motherboard.
  • It has dual high-speed ethernet ports but I only need one.
  • No fancy graphics card (means lower power consumption).
  • USB ports for my mini-keyboard and a simple VGA port for the console output which is very rarely used on a server.  (All management is mostly done via a WEB browser and once it’s running I remote into it with SSH)
  • It supports up to 64GB memory on the board which will be more than enough. I loaded it with 32, and that should be sufficient, even with some additional load in the future.  
  • The 8 high speed disk SATA3 ports will allow me to scale up past my 12 terabyte requirement running RAID5+ easily.  I’ll use the other SATA2 connectors for the boot device and possibly an external bus for removable backups.
  • I supports error correcting memory (ECC), which is highly recommended for FreeNAS systems.
  • Has Intelligent Platform Management Interface (IPMI) on it.  This is a more enterprise feature but very cool.  IPMI allows the owner to talk directly to the motherboard as long as it’s plugged in and on the network.  It doesn’t need to be turned on.  This enables admins to diagnose the motherboard and power it up remotely.  When it is running I can use the IPMI to see the temperatures, status on all of the fans (three on the case and one blowing on the processor), and other metrics.  Asrock went the extra mile and made all of this accessible with a browser so there’s nothing special to install on your workstation in order to talk to it.  Lastly, the IPMI allows you to go to the console on the machine right from the IPMI screens, a huge bonus.  The IPMI implementation was an unexpected surprise.
  • The motherboard has 3 USB ports but they are only USB2.  I would have much preferred USB3 so that I could use an external USB3 drive directly attached to it for backing up.

Memory

This is normally a simple choice but as it turns out, it wasn’t..  The motherboard is super super picky about exactly the type and make of memory.  Brian suggested one type but I tried two others that had the correct spec but didn’t work.  I put in 4 8GB sticks of ECC memory as I was guessing that it would all be used when I fired up the transcoder on top of the NAS responsibilities.  It may be a bit overkill but system stats indicate that most of it is used.  FreeNAS will suck up a lot of memory if you have it in order to improve memory and as a result, I see no performance sapping “swapping” due to insufficient amount of RAM.  I did see that all of it was used just for NAS when I had 16GB installed but I didn’t notice any swap stats before I upgraded to 32GB.

Case & Power

Brian’s Blog recommended the SilverStone Mini-ITX NAS case that I ended up with.  It had really good reviews by others and it’s perfect for a multi-disk NAS box.  Looking a YouTube review showed the value of the SATA backplane for the drive bay which meant that I would have fewer cuts on my hands when the build was complete.  
  • 8 slots for quick changing drives (possibly hot pluggable)
  • Room for more internal storage
  • Designed for the small motherboard (mini-ITX)
  • Comes with very large fans that move a lot of air quietly.
  • It has USB connectors on the front, but they were worthless because the cable that is supplied wouldn’t work with the motherboard.  No big one.
  • I put a 450W power supply that is possibly little over built.  No need to cut it close.  The one thing that I didn’t like about the power supply was the 20pin main cable was a pain to install because it was split for other types of boards.

Storage

I use a low cost SSD drive for the boot device.  It’s cheap and reliable.  A lot of other FreeNAS builders use a mini-USB stick in the USB slot as the boot device.  This is definitely doable and the install even lets you mirror the boot storage on two of them.  Traffic to the boot device is minimal once the system boots.  Because I may want to install other packages, I wanted a little more room and I needed the USB slots that are on the system for keyboard and ability to attach external drives if needed (definitely needed during install :) dropping in a SSD is a good solution.

I ended up buying 8 WD 3TB drives for the NAS as part of this project.  I thought I could get away with fewer drives (total storage), but when I started loading my video files (my entire DVD collection) plus all of the data from the old NAS which includes 1+ TB of photos), it was clear that I would be at capacity day 1.  You can extend a NAS system like this without a complete rebuild but when you run Z2, but you have to add a minimum of 4 drives.  Suffice it to say, setting it up correctly at the beginning was going to be a lot easier for me while I still have my original NAS on-line.  I ended up pulling everything off and adding a few more drives in the middle of my setup so that I would have some growing room.  

I’m running the system with RAIDZ2, which means I can lose two drives and the storage pool will still hum along (in degraded mode).  This translates to really having 6 drives.  Z2 means that instead of having parity spread over the disks, dual parity was written.  This config was recommended on various community sites when you get into the high terabyte range.  The thinking is that while rebuilding the parity on the replacement drive (when you get around to installing it) leaves a lot of data vulnerable to a second drive failure.  With Z2, you can lose a second drive while the first one is rebuilding (or before you even get the replacement drives installed) and not loose all your data.

Setup and Configuration

Assembling all the parts is straightforward, only requiring good glasses (and a couple of screwdrivers) in order to attach some of the small leads to the pins on the motherboard and reading the fine print in the manual.  I wanted a small case but knew that with that comes the penalty of very cramped living space.  I only spilled a little blood during the project which proves most of the sharp edges were removed inside the case.  I added a small CPU like fan mounted in front of the heatsink after testing for a few weeks.  Watching a 1080P movie definitely pushed the CPU to 100% utilization on all cores driving the heat up past 50 C.  I figured that when summer rolled in and started cooking my office, I’d need all the cooling I could get to keep from frying the motherboard.   

The drive bay has a hot-pluggable backplane.  By attaching all of the drive cables to the drive backplane, I could (and did) easily add drives later by simply sliding them in.  I wasn’t sure that the motherboard would support hot plugging drives so I powered down when I snapped them in.

Tip:  
Put the serial numbers on the faceplate of the drive holders.  If a drive fails, FreeNAS tells you the serial number to replace, not the slot of the failed drive.  Because FreeNAS doesn’t know what hardware it will be using (unlike my NetGear and other vertically integrated appliances) or where the drives are physically located it needs a generic way to indicate which drive should be replaced.  

The most frustrating part of this build was getting the right memory. If you didn’t have the right memory installed it wouldn’t do anything and wouldn’t tell you why.  If you have the wrong memory installed you get nothing but blank screen.  WTF!  Most people think the motherboard is busted when it won’t even come up to an error or “POST” screen.  It would be nice to get some sort of error code that would have lead me in the right direction during debugging.  Use the link to memory that I have in the BOM below and you’ll be fine.

The last thing you do before installing software are final changes to the hardware settings via the CMOS screen.  Working through the SATA configuration was a bit confusing, especially since there were two controllers on it with different features for each.  I disabled the on-board hardware RAID to improve boot speed as I didn’t need HW RAID because I’d be running software raid via FreeNAS.  The Intel controller SATA menu blended in with the Marvell config so it took me a few minutes to figure out why it wouldn’t see the SSD boot drive that I installed.  (Yes, like an excited kid at christmas, I missed the nuance of the menu)

The real fun begins on install of FreeNAS.  Installing was easier and faster than I thought.  After downloading and using a simple piece of free software to put the bootable image on a tiny USB stick it was a simple matter of booting off the USB stick and answering a couple of questions after it booted the installer.  This is one of the reasons I love Unix/Linux.  It’s a very focused operating system that doesn’t pack gigs of crap that need to be loaded in order to work.

Once up, the console tells you the IP address that the server is running on.  You then turn off the console on the server and put away the keyboard because pretty much everything else is done via the WEB.  By the way, I also have a mini 7 inch screen with a wireless mini keyboard that I can hide or fit into a small closet if I ever move the server.

During the first time config, FreeNAS immediately starts a wizard which steps you through naming the server, creating a storage pool and setting up sharing for windows, mac or unix (or all).  It also steps you through setting up the server so that it can send you email when there is a problem (like when a drive fails).  Not having a simple email notification feature led to doom when my neighbor lost her entire NAS drive after both drives failed.  Had she been notified and known about the drive failure sooner, disaster might have been avoided.  (the full story later)

The final steps to to add user names for the family and a group for the group share and I was done with the NAS configuration part.  Final steps included some tweeks to turn off automatic console access (a security problem) and a few other minor tweaks just because I can.  A reboot ensured that it would come up properly and register its name on my network.
The next step was to install Plex.  A very quick read on how to do this using the menus and I was off and running.  Click on plugins, choose Plex, click install.  Once installed I opened a storage window to my media directory to the Plex “jail” using the instructions from the web.  Once that was done and I started the Plex service, it could see the media directory but it had no other access to the rest of the system.  If there is a security bug in Plex, only the media files are at risk (very cool design).  From that point on, the Plex server was configured like any other on a Windows or mac system.

The real work is moving all the data onto the new NAS from the old NAS server and from other various sources.  I tried using a Unix utility called rsync, but I gave up.  The idea was to have the two servers connect directly rather than having my PC pull from one and shove data back down the network to the other server.  Server to server would be faster and would free my PC to do more real work.  I was able to get a rsync client working on the ReadyNAS and copy to the new NAS but it seemed slow, and it would fail after several hours.  Attempts to run the client from the new NAS never worked.  I have a feeling I am missing a config option in the system somewhere.  I gave up after a day or two of fighting it and used my laptop to move all of the data.  

Tip:  
Use “tcc”  from JPSoft or Syncback from 2brightsparks to do your file moves.  Using file manager in Windows to move large amounts of files can be problematic and at times frustrating and it doesn’t log what it did or allow you to easily skip files that don’t need to be copied because they already exist.  There are times when file manager will just freeze but the biggest issues is that if it encounters any sort of error it stops. This means that you could start a copy just before you go to bed and get up in the morning to find the 12+ hour job had stopped with a question 5 minutes after you started it (ask me how I know).  TCC lite is free from JPSoft.  It is a command/console replacement for Windows cmd.exe (cmd.exe isn’t removed).  It has tons more functionality built into all of the file management commands (like copy, move, delete to name a few).  I have SyncbackPro but I mainly used copy in a tcc console window.  The other bonus is both of these tools log everything that happens.  I’ve been using tcc for over 15 years (the previous name was 4NT).  Most of my copy commands look like the following:

copy /su w:\group  z:\group >copy-log.txt  2>&1

This above command simply says to copy, including subdirectories, and “update” stuff from my old-nas share to the new system and send the logs for standard-out and errors to copy-log.txt.  The “u” in the above command is for update, which means that if the file with the same name and date/time are on the target system, don’t bother doing another copy.  This is really handy if your PC blows up in the middle of a large copy job or you need to kill it and pick it up later for any reason.  You can’t do a “update” with file manager or the Windows copy command.  You can run this tcc copy command as many times as you want and it will only copy new or updated files on the source to the destination saving you days.  I always send long running jobs to a log file so that I can look at it later and verify what it did or debug any issues.  It’s a habit I built from my days as a Unix & Linux admin.

Setting up this system sounds complicated but its not really and I saved money.  If I had purchased another beefy hardware appliance that would do the job of NAS and media server, it would have cost me a lot more and wouldn’t have had the enterprise features and flexibility that I have now.  Yes, buying off the shelf would have saved me construction, but that was the fun part.  Have fun, save money.  I looked for a small over the counter NAS that I could buy that would have had more CPU power for transcoding and maybe 6 slots for drives but they were a lot more money.    Nowadays, its normally cheaper to buy a server or PC for home from places like HP but in this case I got a better solution for less.  In addition, I like the enterprise grade features in FreeNAS and their architectural approach to things like using jails for the plugin architecture.  ZFS came from Sun Microsystems years ago and was open sourced.  It’s given very high marks by a legion of  knowledgeable geeks in small companies or labs.

I have enough storage to grow into and the processor was a perfect fit.  Because the transcoder will take advantage of as many CPUs as are available, it wasn’t overkill.  When I see the processor running at 100% and I’m getting the performance from the video I want, it means that I purchased exactly the right amount.  I’ll get around to attaching a watt meter and update this with the power utilization.  Since I have solar, I’m not too worried about cost but saving power means others use my excess green energy.

Lessons Learned

  1. It is difficult to expand volumes by just adding disks when using RAIDZ.  If it's a raidz2, then you need to add a minimum of 4 disks.  
  2. It's easier to build out to the max storage at the beginning.  Do it if you can.
  3. Put in 32GB.  Plex will run with zero swapping (but in fairness, I forgot to look at swap stats when it only had 16).  I know I probably have some headroom for additional use.
  4. This case seems to work fine without a CPU cooler.  It moves air in with 2 fans and out with one large one.  (Update: I added a small cpu fan to blow onto the heatsink).  It never gets over 50c.
  5. Use a minimal number of ZFS "Datasets" on your storage pool.  Each dataset acts as if it were a separate file system.  Therefore, you can't "move" directories between datasets (you can, but it just does a copy which is very very low comparatively).  Example.  You have a dataset called ./group/foo and one called ./group/bar.  Moving a directory or file from anywhere under ../foo to ../bar initiates a copy, not a move.  Just use minimal datasets and create directories under them unless you need to use other "Dataset" features, like the ability to set encryption, compression, quotas differently for different areas.  There are other reasons to chop your storage pool up (ability to control what is auto-compressed, snapshot scope, etc.  I have two so far, “home” and “group”.
  6. Research what others are doing and recommend.  One example is to turn off the auto-login for the console.  This is a pretty big security hole.  99% of your access will be via ssh anyway.

There are other ways to do this and if you need just a home NAS, you can save in several ways.  Another approach that a coworker took was to just build a mini system to act as the media server that attaches to a low-cost NAS.  If you want to save even more, I like they way this guy set his up.   Who needs a case :)  Feel free to drop me a line if you have questions.

As a final note...  The highly reliable fault-tolerant system I built to be my file server doesn’t mean I don’t have to back up anymore.  You still need to backup anything you don’t want to lose.  I’ve written several articles on backup, and I’ll continue to use external drives and cloud backup for the most important files.  As a lesson for others, I have a neighbor that had a redundant storage server in her home used for a small business.  One of the drives failed but it had no email notification feature so she didn’t know.  When I arrived to work on some other issues for her I went into the admin page for the unit and discovered one of the drives on the mirror had failed.  We immediately started a backup to an external USB drive so her data would be safe before we touched anything.  The copy failed part way into the backup and the file system is no longer available.  She’s going to contact tech support before we try anything else but I’m afraid the drive is done and anything not on the USB drive is gone.  Even though RAID provides a lot of robust protection for your data there are a lot of failure modes that can lead to you losing everything.  Remember the old failure mode called fire?  I’ll stop there and let you read some of the other articles that I’ve authored on this topic.

All in all I’m happy with the new NAS after a month of running and am almost ready to sell my trusted NAS to another happy home.

Bill of Material (BOM)

What follows is a shopping cart of sorts.  Enjoy.

Motherboard: ASRock Intel Avoton C2750
    • CPU (Included): Intel Avoton C2750 Processor (2.4GHz, Octa-Core)
    • 8 cores, 8 threads
    • Memory: 4x 240pin DDR3-1600/1333 DIMM Slots, Dual Channel, ECC, Unbuffered, Max Capacity Of 64GB
    • Slots: 1x PCI-Express 3.0 x8 Slot
    • SATA: 8x SATA3 Ports, 4x SATA2 Ports
    • Ports: 3x USB 2.0 Ports (2 rear, 2 via header controlled by USB_SEL1 and USB_SEL2 jumper), 1x VGA Port, 1x Serial Port, 2x RJ45 LAN Ports, 1x RJ45 Dedicated IPMI LAN Port

Crucial 16GB Kit (8GBx2) DDR3/DDR3L-1600MT/s (PC3-12800) DR x8 ECC UDIMM Server Memory CT2KIT102472BD160B/CT2CP102472BD160B
NOTE:  This motherboard is super picky regarding memory.  The net is filled with frustration of guys with motherboards that won't even get to POST. In fact, I had the same issue.  Changing to the supported memory resolved my issue.
    • Increases system performance
    • Easy to install
    • Premium quality memory from a trusted brand
    • Limited Lifetime Warranty
    • Identical To: CT2CP102472BD160B

The following 32gb unit DOES NOT WORK Crucial 32GB Kit (16GBx2) DDR3/DDR3L-1600 MT/s (PC3-12800)

    • Support 12 total drives with 8 hot-swappable 3.5" or 2.5" SAS/SATA and 4 fixed 2.5" drives
    • Premium brushed aluminum front door
    • Support graphics card up to 11" with supporter design from TJ08-E
    • Lockable power button design and adjustable LED from GD07
    • Includes three 120mm fans with filtered intake vents
    • Uses front-panel USB 3.0 funky giant cable that won't work with the Asrock

  • SilverStone Technology 450W SFX Form Factor 80 PLUS GOLD Full Modular Power Supply with +12V single rail, Active PFC (ST45SF-G)
  • Probably overkill.  Purchased with incomplete info
    • Support standard SFX form factor and ATX via included bracket
    • 80 PLUS Gold level efficiency (87%~90% efficiency at 20%~100% loading)
    • 100% modular cables
    • 450W continuous power output at 40-degree C operating temperature rated for 24/7 operation
    • Class-leading single Plus 12V rail with 37A
    • Strict Plus or Minus 3% voltage regulation and low ripple and noise
    • Silent running 80mm fan with 18dBA minimum
    • Single PCI-E 8pin and dual PCI-E 6-Pin connectors support

  • WD Red 3TB NAS Desktop Hard Disk Drive - Intellipower SATA 6 Gb/s 64MB Cache 3.5 Inch - WD30EFRX
    • Capacity: 3 TB
    • Interface: SATA3
    • Data Transfer Rate: 6 Gb/s Buffer to Host (max); 145 MB/s Host to/from drive (typical)
    • Form Factor: 3.5 inch
    • Read/Write: 4.4 Watts
    • Standby: 0.6 Watt

NOTE:  You need to install FreeNAS on a drive that won't be used for a storage pool.  A lot of guys install to a USB stick
You can find less expensive SSD drives.  I installed on the Intel SATA-2 port to leave the SATA-3 ports open.  Therefore, you should be able to get this cost down by another $0 - $40.  I wanted something that I could re-use if needed and there is only a $20 diff for the next smaller drive.
NOTE2:  FreeNAS supports simple updates that instantiate a new boot instance for each one.  This allows you to roll back to an earlier version if needed (I've done this).  Allow for min 8GB per rollback.  Also, if you are using jails or plug-ins, you should allow more space.   It looks like most of the Plex plug-in runs on the NAS pool that I setup.
    • Capacity: 250GB
    • Form Factor: 2.5 inch
    • Interface: SATA 6Gb/s (Compatible with SATA 3Gb/s and SATA 1.5Gb/s)
    • NAND Flash: 32 Layer 3D V-NAND
    • Thickness: 7.0 mm
    • Optimized performance for everyday computing needs
    • Sequential read speed 540 MB/s; Sequential write speed 520 MB/s; Random read speed 100K; Random write speed 90K

Auxiliary fan installed inside case and powered from the [CPU Fan] on the mb.  Blows air on CPU heat sink (so far, very effective)
    • 80mm quiet cooling.
    • Supporting fully automatic PWM speed control, the NF-R8 PWM uses Noctua's novel, custom designed NE-FD1 PWM IC that integrates Smooth Commutation Drive (SCD) technology.
    • The NF-R8 PWM is supplied with a Low-Noise Adaptor (L.N.A.) that reduces the maximum fan speed from 1800 to 1300 rpm. The L.N.A can be used either to run the fan at a fixed speed of 1300 rpm or to cap the maximum speed when using automatic PWM control.
    • Hydrodynamic bearing w/ an add'l magnet that supports the self-stabilisation of the rotor axis,

Software
  • OS: BSD Unix 9.2
  • NAS: FreeNAS
  • Media Server: Plex

Reference:

Chris Claborne
aka Christian Claborne for you googlers :)

4 comments:

  1. How did the system handle two 1080p videos at the same time? You said it went to 100% usage with only one..could it even handle two?

    ReplyDelete
    Replies
    1. I think renders out infront of where you are to a buffer. If you look at CPU utilization, it drops way before the movie is over. As long as it can render all of the streams a little faster than they are consuming you are fine.

      Delete
  2. Thanks for the great article! Very helpful.

    I've read the main drawbacks of FreeNAS are: (1) it requires lots of RAM and (2) the multiple drives in a pool must all be the same size, which makes upgrading very inflexible as drive prices change. Comments?

    Intel no longer makes the Avoton. I read that Xeon D processors took its place, but now the only similar things I can find available are Xeon E3 processors. In particular, the E3-1260L V5 and the E3-1240L V5 seem to be the closest matches. Does anyone know more about this?

    ReplyDelete
  3. I've read that you can run 2 1080p streams just fine with 8GB of RAM, so I'm very confused now...

    ReplyDelete