AIO Home Media and File Server

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Continuum

Member
Jun 5, 2015
80
24
8
47
Virginia
After receiving very helpful processor and motherboard advice here, and tiring of waiting for a non-mini-itx d1500 system, I wanted to share my final build. Below is the final build with a few questions about how best to use some of the components.

Build’s Name:
Ariel
Operating System/ Storage Platform: Proxmox VE
CPU: Intel E5-2630 v3
Motherboard: Asrock Rack EPC612d4u
Chassis: Fractal Design Node 804
Drives: 2x Samsung 843T 480GB; 2x Samsung 843Tn 480GB; 1xIntel P3700 400GB; 5x 4TB Seagate Constellation ES.3
RAM: 64GB ECC Registered DDR4 -2133
Add-in Cards: Dell Perc H310; Funtin PCIe NVMe Adapter
Power Supply: FSP Platinum AURUM 92+ Series (PT-450M) 450W

Usage Profile:
The system will be a media/file server for multiple computers in the house with 3 to 4 clients connected at all times. The system will host Samba, OwnCloud, Plex Media Server, an OpenVPN gateway, and a MythTV backend. Although I initially considered running each function above in docker containers, I have now decided to run each function in LXC containers. Additionally, I would also run LXC MariaDB and NGINX containers to support OwnCloud and MythTV

The Samsung 843Ts and 843Tns will be placed in mirrored ZFS vdev pools, i.e. RAID 10. The Samsung SSDs will hold Proxmox, the LXC containers, and any MariaDB databases. The 4TB Seagates will hold bulk media and data for MythTV, Samba, OwnCloud, and Plex. The Seagates will be union mounted using mergerfs and will use SnapRAID for parity and bitrot protection.

While I have figured out many of the details for the build, three have escaped me. First, I am unsure how I should use my Intel P3700 NVMe drive. Will I benefit from turning it into a SLOG or ZiL device for the Samsung SSDs? Would a better use be a b-cache device for the Seagates? Although I know that most of the reads and writes to the Seagates would likely be sequential and b-cache does not cache sequential reads or writes, b-cache provides an option to cache with sequential reads and writes..\ Moreover, as I only have a 1Gbs network, though the servers two 1Gbs ports will be bonded, using the P3700 would seem not to be much of benefit as the Seagates should be able to saturate the link. Should I use the P3700 for something different?

Second, how many parity drives should I assign to SnapRAID? Initially, I thought about having 2 parity drives. However, I am now thinking that I might be better served with only one parity drive and having 16TB of storage and adding a second parity drive later, mainly for maintaining usage balance across drives using mergerfs. (As I understand, mergerfs does not have a method to rebalance data across drives when a new drive is added to the union mount.) With SnapRAID, would adding a parity drive later be an issue?

Third, what file system should I use for the Seagate data harddrives? Initially, I planned on using btrfs, but with SnapRAID, the mainly reason for using btrfs, bitrot protection, is already covered. For my previous MythTV combined frontend/backend, I used xfs for data storage, as it handles large files well.

(Photos will be posted later.)

Thanks in advance for your thoughts.
 

Continuum

Member
Jun 5, 2015
80
24
8
47
Virginia
Nice build! I'd say your P3700 is overkill for this build - have another one you can use it in?
Thanks. I really do not have another build to use to use the p3700. My 5-year old workstation (Phenom II x6 1090t), which already has two ssds, would likely not benefit. I thought about pulling it out, setting it aside, and installing it in a workstation upgrade sometime later this year or early next year, though that would likely be overkill too.
 

rubylaser

Active Member
Jan 4, 2013
846
236
43
Michigan, USA
I'll just speak for SnapRAID. You can easily add another parity disk later and there is no reason to worry about re-balancing files as part of the process. SnapRAID is ultra flexible and should work well for the use case you described.