Hi! I have a TrueNAS… NAS, and it’s pretty beefy to me with a 16-core Epyc and 256GB of RAM.
All it does is store files and basically nothing else, but I do have a few apps on it like Plex, Tailscale (for entry), and Pi-Hole (currently not in use). I didn’t need to transcode often or at all with Plex, but I set it up for my parents and grandma, and they both have 1080p TVs.
I built another server with almost the exact same hardware, but I put a GPU in it. I’m thinking now, that might’ve not been the best choice.
EDIT: BETTER POST
The NAS as it is today
I want some advice:
- Should I use another server for Plex, Pi-Hole, and who knows what else.
- Should I keep my current server running Plex, but be funky with PCIe and add the GPU?
Here’s the situation (red lines PCIe lanes in use):
- 5 x PCIe slots have 24i SAS cards for internal connections → 8x PCIe lanes each.
- 1 x PCIe slot has a 16e SAS card → 8x PCIe lanes.
- 1 x PCIe slot has a 2x25Gb ConnectX-6 → 4x PCIe lanes.
- 2 x M.2 ports using NVMe drives → 8x PCIe lanes.
- 1 x SlimSAS port used for 8xSAS drives → 8x PCIe lanes.
- 1 x SlimSAS port used for 8xNVMe drives → 8x PCIe lanes.
EVERY PCIe PORT IS FULL!
Possibilities
The board has 120 lanes available. Not sure where the remaining 8 lanes are going. Probably onboard Ethernet 'n USB.
But I have 44 available PCIe lanes just sitting around doing nothing.
The issue: Plex + GPU
My issue right now is the GPU situation. I want plex transcoding to be on the GPU rather than hogging up my limited CPU time.
Solutions
1. PCIe Bifurcation
This is the fun option, but the least practical and possibly the most-likely to create a slew of issues.
With clever use of PCIe bifurcation cards, I could better utilize my PCIe lanes. How to mount cards in the case is another problem though. In need someone with 3D printer tech. And the Storinator chassis has very limited space with all the wires.
Those SAS cards don’t have ports on the outside, but they do need to vent. If I could take a couple and share them across a single PCIe port, I could add a GPU without building a whole 'nother server.
Pros
It’s possible and lets me put a GPU in there.
I only have to maintain one server (YES!), and I only have to pay for the power of one server.
Cons
It sounds insane.
I don’t have a 3D printer, so finding a way to mount the cards without them touching the board is gonna be tough.
It creates more of a mess in the back of the Storinator chassis.
If I restart the NAS or put it down for maintenance, EVERYTHING goes down. But then again, everything needs the NAS anyway, so I don’t think that changes much.
Home Assistant is a different server for a reason, and I could always put Pi-Hole on a Raspberry Pi.
2. Build an App Server
I had some SuperMicro JBODs lying around, and I retrofitted one to put an almost-equivalent server inside. It’s in there right now running with TrueNAS and the Plex app container, but it’s not doing much.
Pros
This is the solution I chose already, and the server’s already built and running TrueNAS v24 with Plex installed just sitting there waiting for me to figure out how to transfer it over this weekend.
I like having two servers because I can restart my app server without messing up my NAS and visa versa; although, all my apps require the NAS anyway. If I ever wanted to do camera monitoring, that can sit on the app server.
The app server also lets me run VMs if I wanna finally get into Linux which I probably won’t mess around with; although, I’ve been curious about running a VSCode server.
Cons
I already have 2 servers in my server room making a ridiculous amount of noise. Adding a 3rd is more maintenance; something I’d like to avoid ideally.
I need to find a good OS for apps. I’ll be creating a separate thread for that discussion.
All my traffic has to go over Ethernet rather than going directly through the SAS connections. 10Gb should be enough for that, but there’s latency involved, and that’s gonna hit my NAS pretty hard to the point where my PC’s 25Gb connection won’t have the full bandwidth available when working on large multi-hundred-GB files.
Another con is I couldn’t, for the life of me, get it to write data from the App server to the NAS from one of the app containers. I don’t like spending all that time wasted struggling to figure out why something that should work isn’t working.
3. Build another server in the HDD chassis
I have two Storinator chassis. One holds 128 2.5" SSD slots and the other has 60 HDD bays.
The one with 60 HDD bays is connected via 3 x SAS Expanders to 3 x external SAS ports on the main NAS’s chassis.
If I remove that external SAS card, that actually frees up an entire PCIe slot for a GPU. I’d still need another server, but it can be the server for those HDDs rather than them having to be part of the main server.
If I wanted, I could make this an HA cluster, but TrueNAS doesn’t support it, and the hardware is slightly different.
Right now, I have a low-profile 2-slot NVIDIA RTX 4060 (waste of money since I’ve never used it), but I could instead buy a 1-slot full-sized Intel Arc GPU which has great support for transcoding.
Pros
I can keep everything on my main NAS. Talk about convenience!
I can put any future external SAS connections on the second NAS which frees up this NAS to be more versatile.
If my main NAS goes down, I technically have another NAS available now with the exact same data; although, Plex would go down in this case if the main NAS goes down
.
But… In the case of accessing that data and moving things around and recovery, it’s better to have two NASs with the same data than one that has 2 sets of the same data.
Cons
I’d have 2 servers to maintain and no TrueCommand subscription. “Annoying” and “tedious” are words that describe the experience of maintaining multiple servers that don’t auto-update.
4. Buy new TVs 
Instead of spending any of this money on server gear and maintenance, I could just buy my family members new TVs
.
But really, that’s a today issue. It doesn’t help me in the long run and actually costs more.
5. Another suggestion
@mutation666 made a great suggestion.
I posted about it here:




