Hello, Hoping for a sanity check for a new scale deployment, I’ve done some research and I believe I have a good plan for my use case. But I would like second opinions just in case there’s something I might not have considered.
My application:
I’m a 3D artist and want a fast NAS to store my project files and rendered frames, I write large files infrequently (between 10 minutes and an hour) that vary in size between 300mb to 10gb dependant on the stage of the project, when rendering I output small 8-40mb files at the rate of 1-3 a minute.
I may have up to 20,000 of them for a single animation, they would need to be accessed as quickly as possible when being previewed, composited and rendered into a video master, typically after this they’re deleted. It’s not unusual for this to be 1TB of space or more for a single anim.
There’s 3 machines on the network, my workstation and two rendering/simulation machines, all are networked together via 10gb, I’m probably going to want to duplex both the NAS and my main workstation so pulling the rendered frames down is even faster.
There is the possibility to add more machines in the future and I’m also planning to open the NAS up to some VPN connections to more effectively work with my team.
I’m currently using unraid and I’m moving to truenas as my storage is becoming very fragmented and overly complicated in it’s current configuration, I have an NVME pool for the stuff I need fast, I have a spinning rust pool for all my media and such (running a home plex server) , and a second NVME pool shared via a windows machine as a render-to location.
FUSE is also causing writes from programs to slow to an actual crawl, forcing me to use disk shares for an nvme pool for the stuff I need fast, with all said and done it’s becoming clear that unraid was not the correct choice for me.
I would describe myself as interested, but not -that- interested in computer hardware, I hate command line stuff, I want a UI, I like the apps that unraid has, I like the option of spinning up a game server every now and then, so SCALE seemed the preferable option over Core.
I’m storing a total of about 8tb of data, around 2tb of that is actually important and the rest is media, during rendering I use up to 1-2TB to store the rendered frames which is recovered fairly quickly.
The Hardware
This is a mishmash of what I’ve had as I’ve scaled up my NAS needs over the years and new parts I’ve bought for this deployment.
9 HDD:
4x 18tb
5x 4tb
2x 2TB Sata SSD’s
4x Gen 4 NVME SSD’s
2x 2TB
2x 4TB
Epyc 7282 On Supermicro H12SSL-I with 256GB ECC
My Plan / Assumptions
I plan to put the spinning rust into mirrored pairs, which should allow me the best balance of redundancy speed and expandability. It’s also part of my ingest plan as 2 of the 18tb drives I’m using as temporary storage whilst I cannibalise the unraid server which currently is using 2x 18tb drives and the 5x 4tb
This leaves me with a spare 4TB drive which, honestly originally I had as a spare so I’d expect it to find that role again (I think there’s a hot spare vdev type I could maybe throw it into?)
I plan to put the 2x 4TB NVME’s into a mirror and use it as a Metadata/special Vdev, with a file size filter set for less than 64-128mb files to be stored there, so that my rendered frames will always prefer that location.
This is where I get fuzzy on my plan, as between the two remaining Vdev options, I don’t see a huge need for a SLOG, given I don’t have a tremendously huge write demand and a substantial amount of RAM.
The NAS is on a UPS, and anything written to it by the other machines that are not on the UPS usually stores backups locally of files before being written. So I believe I can get away with Async writing, since latency on writes is the main bottleneck I’m running up against with my current deployment.
However, given the hardware I have available, It could be logical to split the remaining 2x 2TB NVME’s one as a SLOG and one as a L2ARC, as my understanding of these is that they shouldn’t require redundancy, and I got the drives, I’m not concerned with the RAM overhead with the presence of a L2ARC, and may as well right?
The alternative being to forgo a SLOG entirely and simply stripe the 2x 2tb drives together and use those as a larger L2ARC, this seems overkill though, again given my limited write demand, and the ram available.
I don’t personally see room for the 2x 2TB SSD’s in this deployment anymore, as they’re not really fast enough to serve in any of the special vdev’s, and It’s a bit too far away from the capacity to sit in the main pool.
They’re only going to gather dust if not used in this though so maybe I should just throw them in the main pool?
So yeah, that’s it, just looking for a sanity check on my plan, and some input on how people might approach the deployment given the hardware I have available.
Thanks for reading!