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.
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.