Quick Stats

  • 240 TB of Storage
  • 192 GB of RAM
  • 10 Gbps of Network Throughput
  • 8 TB of NVMe Cache
  • Gobs Of Love!

My stack consists of two main servers, one is responsible for running applications while the other (pictured below) handles data storage. The application server runs a hypervisor operating system called ProxMox and the data storage server runs an operating system called TrueNAS Scale. These two servers speak to each other over a single 10Gbps network link. When you start a stream on Plex, your client (TV, iPad, web browser, etc) talks to my application server over the internet, then my application server talks to my data storage server over my local network to locate the media you've requested.

Storage

As previously mentioned, the data storage server utilizes a software stack called TrueNAS Scale. This is a great community supported project that can handle data servers with large numbers of disks. In this instance there are x12 Seagate Exos 20TB disks which TrueNAS combines to provide 240TB of raw storage, or 160TB of usable storage. I've also equipped the server with a pair of 800GB TLC NVMe flash disks for cache use. More popular files are temporarily stored in the cache so they can be loaded instantly when needed.

The main components of the data storage server come from a company called 45HomeLab, this is their HL15 model. It has an Intel Xeon Bronze 3204 6-core processor and is equipped with 128GB of RAM. The server will try to perform as much of the file system operations as it can within the RAM for peak performance, so having 128GB is helpful.

AMD Threadripper 2nd Gen Packaging

Compute

As mentioned previously, in addition to the data storage server there is also an application server. The application server is an entirely custom build. It's equipped with an AMD Ryzen Threadripper processor with 24 compute threads and 64GB of RAM. In addition to the traditional processor, there is also an Intel Arc A310 discrete graphics processor dedicated to media transcoding. This graphics processor converts larger video files in real time to make them compatible with nearly any device with a minimal amount of buffering. The application server also has 6 of the 800GB TLC NVMe flash disks in a ZFS array for local application storage.

All of these hardware resources are shared amongst many different applications through two novel computing concepts: Virtualization and Containerization. The open source software project known as ProxMox VE orchestrates this sharing of resources behind a slick web interface. The Plex server software specifically runs as an LXC container. This reduces the amount of overhead between Plex and the Intel Arc card to keep things speedy.