Home NAS

From Kellen's Wiki
Jump to: navigation, search

4/2016 - It's finally time I build a proper NAS. I've gotten by this far with an old Netgear ReadyNAS NV+ v2 (4x3TB) which is great for mass storage, but has low top network speeds and a very slow cpu.

Here's the new toy.
Fractal.jpg

Goals

  • Low Power
  • 2-4 720p Plex stream transcoding capable

Components

  • Case - Fractal Design Node 304
    • Fractal Design Node 304 FD-CA-NODE-304-BL Black Aluminum / Steel Mini-ITX Tower Computer Case[1]
  • CPU - Intel Core i3-6100
    • Intel Core i3-6100 3M 3.7 GHz LGA 1151 Desktop Processor[2]
  • Motherboard - GA-B150N-GSM
    • Socket 1151 (6th Gen Intel), B150, 2xDDR4, M.2, 6xSATAIII, 2xIntel GbE LAN[3]
  • RAM - 8GB DDR4 2133
    • 2x4GB G.SKILL Aegis 8GB (2 x 4GB) 288-Pin DDR4 SDRAM DDR4 2133 (PC4 17000) [4]
  • 5 Hard Drives - Total Storage 13.5TB
    • 2x6TB Seagate Constellation[5]
      • 7200rpm - SATAIII - 3.5"
    • 4TB HGST Deskstar/MegaScale[6]
      • 7200rpm - SATAII - 3.5"
    • 2x3.0TB Toshiba[7]
      • 7200rpm - SATAIII - 3.5"
  • Extras (not installed):
    • 2.0TB Samsung Spinpoint[8]
      • 5400rpm - SATAII - 3.5"
    • 1.5TB Seagate Barracuda 7200.11[9]
      • 7200rpm - SATAII - 3.5" Caution - S.M.A.R.T. errors
    • 640GB Western Digital Caviar Blue[10]
      • 7200rpm - SATAII - 3.5"
    • 500GB Western Digital Caviar Blue[11]
      • 7200rpm - SATAII - 3.5"
  • PSU - Rosewill Valens-500M
    • Semi-Modular, 80 Plus Gold, 500W[12]

Software

OS Options and my Choice

I chose to run XPEnology, which is really just a way to run the Synology operating system on your own hardware. If you go look up reviews of Synology's software (DSM) you'll know everything you need to decide if this is the right choice for you. My personal reasons for picking it were:

  • Simplicity - It's got a really user friendly interface and tons of one-click packages for useful services
  • Support - It's a very popular OS and thus you can find help and write-ups on just about anything you might want to do

If you're wanting to look into the other primary competitors, check out the alternatives:

  • Amahi - Another simple solution, probably the most similar to XPEnology
    • Skipped because it had fewer options for custom RAID arrays
  • FreeNAS - A FreeBSD derivative which is lightweight and feature packed
    • Skipped because it highly reccommends ECC RAM and is slightly easier to mess up
  • NAS4Free - Forked from FreeNAS and offers ZFS
    • See FreeNAS
  • OpenMediaVault (OMV) - super lightweight
    • Didn't look into much
  • Windows or Linux + whatever tools you need
    • Wanted something more purpose built

XPEnology

To install XPEnology, you'll need to download DSM (disk station manager), which is the OS itself, and a matching version of XPEnoboot, which is the tool which allows you to boot DSM on your own hardware. At the time of this writing the latest DSM is 6.0, but I chose to go with 5.2 as people were having some issues due to new permissions settings on 6.0.

Here's a how-to on installation, I'll post the basic steps here as well:

  1. Download DSM (.pat file) and XPEnoboot (.img file)
  2. Download win32diskimager : http://sourceforge.net/projects/win32diskimager/
  3. Load win32diskimager, Select the XPEnoboot img file and the usb drive then press Write and wait.
  4. Boot NAS from USB drive
  5. On another PC download and install Synology Assistant directly from Synology and click search. This should find your NAS on your network.
  6. Use the assistant to Install the .pat file and follow the configuration steps
  7. Connect to your new NAS at https://<IP address>:5000

Synology Packages

Community Apps:

  • Apps go to /volume1/@appstore
    • symlinked from /usr/local (e.g. /usr/local/git->/volume1/@appstore/git)

Other Software

Note: I've had good experiences with the packages supplied for the following by Synocommunity, but for some (like Mylar or NZBHydra) using a Docker image has been the best solution.

NZBHydra

For collecting all NZB Indexers in one location (port 5075)
  • This is a great time saver tool. Put all of your indexers in NZBHydra and then point any of the downloader tools to it. This way, any change to your indexers only has to be made in one location.

NZBGet

For downloading NZBs from UseNet (port 6789)

  • My choice for NZB Download app.
    • The popular alternative is sabnzbd.

Sonarr

For Downloading and Managing TV Shows (port 8989)

  • My choice for TV Show managing.
    • The popular alternative is Sick Beard.
  • Used to be called NZBDrone and is still referenced as such in some guides.

CouchPotato

For Downloading and Managing Movies (port 5050)

  • I'm still working on getting this one working the way I want.

Mylar

For Downloading and Managing Comic Books (port 8090)

  • You'll want to be on the Development branch to make sure you have the latest features and fixes
    • Shutdown Mylar, edit config.ini 'version' line from "master" to "development"

This can be installed several ways:

  • Synocommunity package
    • Pro: One-click easy
    • Con: Master Branch, webUI updater doesn't work (so can only update when the package is updated)
  • git clone from the command line (SSH)
    • Pro: can choose Development branch, can update manually with a 'git pull'
    • Con: more 'advanced', webUI updater doesn't work (maybe?) (have to use git pull)
  • linuxserver.io Docker image.
    • Pro: nearly One-click easy, webUI updater works, can switch to Development branch using git, easy to roll back mistakes or deploy several copies to play with things
    • Con: Master Branch by default, requires you to set-up Docker and log into the container to use git

I've tried all three and would recommend either a Docker image or a git clone as they will allow you to keep it up to date using git pulls, whereas the package won't allow this and the auto-update doesn't work with it.

Cloning with -b development still doesn't mark the 'Mylar Version' field on the settings page to development (it stays on Master). You have to edit config.ini while mylar is shut down.

git install:

Muximux

Single interface collecting all of the above web interfaces into a single IP/Port (you set the Port)

  • Allows you to only remember a single port and access all of your web UI's
  • Very configurable, simple, works very well

Additional Notes

root ssh access:

Enable the SSH service by checking the Control Panel → "Terminal & SNMP" menu → "Terminal" tab → "Enable SSH service" checkbox

Login with root/admin password after enabling admin user account.

  • Control Panel->Users->admin
    • Edit->Disable this account (check or uncheck accordingly)

BETTER IDEA: Follow instructions Here to enable logins with SSH keys (and disable password login)

Docker:

  • NOTE:Synology has a bug in their Docker GUI, it uses the older v1 API to list tags on Images from hub.docker.com and thus only gets a subset of tags (and often misses 'Latest')
    • Workaround: SSH into your synology and run: docker pull <user/image>:latest
    • This will grab the latest tag for the Image and it will show up under "Image" in the Docker GUI.
  • See containers, Get name from last field or id number from first
    • docker ps -a
  • Opens new bash shell in container
    • sudo docker exec -i -t <container name or id> bash
  • Useful Tips & Tricks

References

  1. $80-Fractal Design Node 304
  2. $110-i3-6100
  3. $106-GA-B150N-GSM
  4. $34-Model F4-2133C15D-8GIS
  5. $190-[http://www.amazon.com/Seagate-Desktop-3-5-Inch-Internal-ST6000DM001/dp/B013JPKYQC Seagate ST6000DM001
  6. $100-HGST HMS5C4040BLE640
  7. Toshiba DT01ACA300
  8. Samsung HD203WI
  9. Seagate ST31500341AS
  10. Western Digital WD6400AAKS
  11. Western Digital WD5000AAKS
  12. $65-Rosewill Valens 500m