The HP MicroServer N40L seen below used to be the workhorse for my home's network. But without redundancy, a proper hypervisor, 10 GbE, and redundant power it was time for an upgrade.
To future-proof my system, I went with a half height (25U) server rack on four caster wheels. I picked it up second hand through the Government Surplus Auction website www.govdeals.com. The server rack was previously in service at Drexel University in their College of Computing and Informatics. Below is a picture of the Server Rack. I'll go into further detail below about the hardware and its function from top to bottom.
At the top of the rack, I have a 24-Port keystone coupler style patch panel. This is ideal as it aligns with the top half of my 48-Port Switch, allows me to make sturdy terminated connections. Lastly it allows me to remove individual connections and service / replace them without disrupting the rest of the patch panel.
Next I have a 48-Port PoE Switch which I picked up second hand from an IT reseller in Jersey City, NJ. It is a Cisco WS C3560 48PS Catalyst 48-Port PoE Switch. This switch allows me to create Virtual Lans (VLans), set up PoE devices (Security Cameras), and connect many hardwired devices to one another.
In order to save money on cable box rental fees from our internet service provider, Optimum, I've installed an HDHomeRun Prime. This unit accepts 1x IEC C13 Plug, 2x Coaxial Connections in the back, 2x CableCARDs from our Cable Provider, and outputs the decrypted cable signal over Ethernet (Multicast). The two boxes on top are for Switched Digital Video, which allows for 2-Way Communications with the cable provider for Pay-Per-View content.
This Network Cable Tuner has 2x 3-Tuner Systems side by side. With 2 Cable Cards ($2 / month / card), I am able to get 6 streams of simultaneous television on our home network. Using AndroidTV boxes, I am able to watch live television broadcasted over our network with a channel guide in high definition. This system also allows us to receive live cable, over WiFi, in locations without a coaxial wire installed behind the wall.
Using Plex Media Server, I am able to schedule recordings, which records the raw .MPEG2 files to a directory on an SSD. My Dell R710 Server picks up this file and hands it off to Comskip, a public commercial detector, and strips the commercials out of the footage. The Dell R710 Server then picks up the shortened television show / movie, and passes it over to MCEBuddy, another public program, which schedules conversions overnight during idle time to more compatible formats and compressions such as H.264 / H.265 MP4 files. This is done so our media can be played directly (without transcoding and using less processing power) on a wider range of devices (Android TV / iPhone / Chrome). The Dell R510 NAS then stores this information on a double-parity redundant file system for archival storage.
Overall, instead of having multiple cable boxes for $15 / month, we're using 6 "floating" streams of cable, which anybody in our home can utilize or release. We've removed 7 Cable Boxes ($105 / month) and replaced it with 2 Cable Cards ($4 / month) for a total savings of $101 / month!
This system provides us with additional functionality beyond the cable boxes as well such as Live TV streaming outside our home, much higher capacity DVR Service, commercial removal, live streaming to computers and cell phones, and much more.
From a power standpoint, these new AndroidTV Boxes are more energy efficient as well. Traditional Cable Boxes use FPGAs which are expensive and use a lot of power. At 144 Watts per cable box, each box was costing us ~ $117 / year in electricity. These Android TV Boxes only use 5V/2A, 10 Watts. Even after considering the losses from 120V AC to 5V DC (20% overhead), each one of these deployed boxes use only $9.81 in electricity per year ($107 savings / year / box).
The HP MicroServer is currently a cold-storage backup of our priceless data (Family Photos / Family Videos). This will soon be moved offsite to another location for additional protection. Rule of thumb is 3-2-1: Keep at least (3) copies of your data, and store (2) backup copies on different storage media, with (1) of them located offsite.
The UPS to the right of the Microserver provides backup power to lower power usage devices such as the Modem, Switch, HDHomeRun, and HP MicroServer. The UPS communicates its state of charge over UPS Daemon. When power gets too low, a graceful shutdown command is sent to the powered devices if possible.
To find out more information about my custom HP MicroServer brackets, feel free to check out its dedicated page below
I got this APC Smart-UPS SMT1500RM2U from ToysRUs's liquidation sale. Each store had one in their server racks, and with replacement batteries, they work very well. This UPS powers both my Dell R510 NAS and my Dell R710 Powerhouse. During a power outage, the UPS is under ~ 60% load and should last ~ 35 minutes. Using the same APC UPS Daemon described above, both servers trigger a graceful shutdown in the event battery level gets too low.
The Dell R510 is a Generation 11 2U server from the year 2010. These servers offered 12x 3.5" Hard Drive bays on the front and an additional 2x 2.5" Hard Drive bays internally. After their warranties expired, these servers were decommissioned from data centers and were widely available at a great value (Under $250). They still have great computational performance with 2x Intel X5670 Xeon Chips. These CPUs used to retail at release for $1,443 a piece and two of them combined provide a CPU Passmark of ~ 12,000. On the second hand market, these servers are a great value.
My R510 is currently running Unraid for a hypervisor. The OS is loaded on a flash drive inside the case, so it doesn't utilize a hard drive bay. The OS is then loaded into the RAM which extends the longevity of the flash drive and improves OS performance. I currently have 8 Hard Drives in this system, 6 Data Disks, and 2 Parity Disks, providing me with 32 TB of storage with double parity protection. I also have 2 Cache Disks (SSDs) which are used for VMs, and quickly adding data to the array.
While searching for the ideal operating system for my home network, I came up with a list of desirable traits: Future Upgradability / Expandability, Double Parity Protection, Mixed Disk Sizes, Catastrophic Recovery Plan, Power Efficiency, Disk Longevity .
Unraid fits this criteria perfectly. Regarding future upgradability / expandability, Unraid allows you to expand your array with mixed sized disks. In my opinion, it doesn't make financial sense to spend a premium on 12x high capacity HDD's, fill all the bays immediately, and have mostly empty storage. Over time, hard drives become cheaper and larger in capacity. I'd rather buy a good value hard drive at the time I need more data. Unraid fit this bill perfectly.
Regarding double parity protection: In a traditional RAID5 or RAID6 array, data is striped across all of the disks in the array, and parity is stored across all of the disks. When a hard drive fails, the data is simulated in real-time from the other disks by calculating parity (similar to an XOR gate). During rebuild, you're using the rest of the good data to calculate the missing data. This is great, but with larger disk sizes, similar aged disks, and similar uptimes, you'll notice that the possibility of a second hard drive failing is much greater. I want to minimize this risk.
Unraid stores complete files on independent disks, and then calculates parity on a separate disk. When a file is being accessed, only the drive with that data is spun up. This allows your drives to wear at different levels and minimizes simultaneous failures. Unraid can also accept mixed size disks. When it calculates parity, it looks at the first block of all of the disks, and calculates parity. As you exceed the capacity of your lowest capacity disk, it assumes a 0, and continues to calculate parity from the larger disk's data. This allows me to add additional larger hard drives in the future, which is a more cost effective solution.
Regarding Catastrophic Recovery: If I were to sustain more than 2 hard drive failures, in a traditional RAID5/RAID6, I would have lost all of my data and would have to refer to a data recovery specialist at exuberant prices. In Unraid, because the files are not striped across all of the disks, you only lose the data on the disks that failed. The remaining disks can be pulled, and read from another computer, and recovered accordingly. This gives you much more peace of mind in the case you sustain 3 or more hard drive failures during a rebuild.
Regarding Power Efficiency: Traditional RAID5/RAID6 systems need all disks to be spun up to read data, because the data is spanned across all disks. In Unraid, you would only need to spin up the disk of the files you're reading. For a simple movie playback, I feel there is no reason to spin up 12 hard drives and use more power.
Lastly, Disk Longevity: Considering only the hard drive with the file is spun up, disks sustain much lower power-on hours. This creates mixed wear, which should assist in preventing multiple failures during rebuild. This will also prolong the life of the drives as they have lower power-on hours each year.
The Dell R710 was an extremely popular server for Dell's 11th Generation. After their useful lifecycle in a datacenter, a tremendous amount of them appeared on the second hand market. These servers provided a great amount of computational power for the price. The R710 are the preferred server on Reddit's Homelab community. There is no shortage of information and help for this server, which is why it is so highly recommended.
Featuring 18x RAM Slots, I was able to use much cheaper 4GB DIMMs, at less than $1 / GB, to achieve 72 GB of RAM for only $70. This server features the same CPUs as the Dell R510 above - Intel Xeon X5670s with the same Passmark Score ~ 12,000. I use this server primarily for virtual machines, transcoding sessions, rendering jobs, and other heavy computational tasks. It is running Windows 10 Pro, and provides different features compared to the Linux-Based Unraid Server on the Dell R510.