Critique my parts list for my first build?

7x18tb Seagate exos. Planning to do 3 mirrored vdevs with a hot spare.
2x500gb nvme ssd for slog
2x500gb nvme for boot
2x2.6ghz 16-core v4 xeon
512gb ecc 2400mhz memory
Hba is an lsi 9300-16i
Nvme drives will be in pcie 3.0 x16 slots using Sabrent adapters
Motherboard is a supermicro x10dri-t4+ with 4x10g-base-t

All the usual nonsense like cables, power supply, case, cpu coolers, etc. Parts list available, but didn’t think that stuff was relevant.

What am I missing? Have I made any mistakes? I have room for lots more nvme (9 more), and 11 more 3.5" sata and 5 2.5" ssd.

May be interesting to know what you intend to do with that build, as it’s kind of beefy. VM stuff, SMB Fileserver, anything else? I have set up similar machines, based on supermicro x10/x11 boards, which I really like. Super affordable and reliable.

My personal use case: acting as Fileserver(s) in 10GbE network, to feed several VFX/post-production/Video editing machines (windows clients, many small/medium and some huge files via SMB). Nothing else. With that kind of background I would have the following recommendations:

  • the more ram the better. So 512 gig is good and plenty.
  • however, for that amount of ram you could also stick to a single processor supermicro x10 board. X10srl-f for example. Just make sure to use registered ECC dimms.
  • get the processor with the highest clock speed you can get. The are all very affordable on eBay.
  • with 7 x 18 TB HDD I would rather think about doing a raidz2 setup instead of mirrors. So much more capacity. Depending on your use case, a lot of your data will be cached in Arc, so speed of your pool may be not as relevant as you think.
  • do you need that slog? If your use case has no need for sync writes, a slog is pointless. You could instead use those two nvme drives as a metadata/small blocks special vdev to speed up your pool.
  • in my use case, a l2arc nvme has proven to be pointless, it was barely used, so think skipping that (as you do) is ok. Simply max out RAM instead.
  • your boot devices are kind of oversized. Maybe keep them a bit smaller and invest in bigger special vdevs instead.
1 Like

As @Kawom says - whats your use case.

All great points and questions, thank you!

Primary use case is same as you - video editing across the wire.

Also storing nvr footage, and backups from mobile devices.

The slog is because I plan to do iscsi (or nfs if possible?) for shared storage for a proxmox cluster at some point.

I know the boot drives are big, but they were super cheap. Buying smaller ones didn’t really save me anything. Lol

I thought about SVDEV for Metadata, but while researching I stumbled across some tunables for caching Metadata in arc. I also see that Metadata can also be persistently cached in L2ARC, so if performance isn’t what I want I will try that before creating another dependency for data integrity. Happy to pivot if I misunderstood what I was reading. Totally possible since I’m a n00b…

I originally planned raidz2, but I’m seeing mirrors are better for resiliency and faster to recover from failure. Is that correct? I’m OK with the capacity and cost. Plenty of room to add more later if needed.

Seems fine then. Performance wise it may make a difference if you are handling single, big video files or single frame image sequences. Large video files will perform nicely over 10GbE, whereas image sequences tend to be punished by protocol overhead, at least with SMB shares.

Regarding resiliency of Mirror vs RaidZ(2), that’s a debate that has been done for years it seems. Depending on how valuable your data is, you should also consider adding an UPS to your build and think about a backup strategy for your important datasets. That’s where ZFS really shines, when it comes to snapshots and replication.

Three HDD mirrors will not make full use of a 10G link, if that’s a consideration.

Backups, NVR and long term storage would do fine on a raidz2.
Capacity allowing, video editing on the NAS would do better on NVMe.

Yes, the bulk of the editing will be large video files ranging from 4gb-25gb.

I do have a rackmount UPS already, forgot to mention that.

I am pretty interested in snapshots. One of the guys that works for me has a small truenas at his place and says the snapshots integrate with windows shadow copies/versioning, so I’m excited about that.

I do need to figure out backups, but for now I’m thinking I’ll probably choose critical directories and just set up a scheduled robocopy script of that directory to my old nas (not big enough to back up everything, so I’ll have to be selective), and come up with a more permanent solution later - most likely a cloud target like an S3 bucket or something.

My hope is that with so much ram for ARC I’ll get good enough performance to be happy with it. Do you not think this will be the case?

I would love to do all the editing on an nvme pool, but creating one of those presently would be cost prohibitive. I may look into it in the future… We’ll see how long it takes for the price of 8tb nvme to start coming down a bit.

Obviously no. ARC is no magic: Files only get there for read after being required a few times… and you can only fit as much as RAM allows. Writes go to the pool anyway.
If it would take 8 TB drives to make a NVMe pool for editing, a “mere” 0.5 TB RAM will not hold the working set in ARC.

With ZFS the best way is to set up another (True)NAS for backup and replicate datasets.

8tb drives would be needed to make a pool large enough to actually store everything. The file sets I work with are 4-25gb, so I thought perhaps when I start working with a file it might get cached up while I’m using it? I’m obviously not expecting the entire pool to be stored in ram. I’m not sure what to make of your comment regarding that, but it seems nonsensical.

Having an “editing pool” and a “storage pool” is less than ideal since you’d have to copy data back and forth between the pools constantly, depending on what you wanted to work with.

What truenas really needs is auto-tiering like most other systems have. Is this on the road map?

Another truenas system is far from ideal. 3-2-1, and another truenas doesn’t cover the 1 - hence, cloud.

Regarding performance: it comes down to what your expectations are. A NAS is not a local disk and never will behave like one because of several factors, protocol overhead has proven to have the highest impact by far on performance difference for us between our truenas server and local disk space. As I said we have to use SMB shares. We have just updated our server to a new machine, so I will tell about experiences with our old setup first, which we have used since late 2020. Small post-production company with about 3-5 daily users.
Most stuff we have to deliver as FullHD video, Broadcast quality. But our footage we receive mostly as 4K Video. So handling is a mixture of 4K Video streams and tons of small to medium exr-Sequences, mostly in HD1080.
Our old main setup is a supermicro x10 srl-f with not even the fastest available CPU, 256 GB Ram, 2 TB L2Arc NVME, a (6+2) RaidZ2 pool of 12 TB exos drives and second pool of some 4TB sata ssd which we use as a fast accessible library for stuff that’s re-used very often in different projects.
Clients are windows workstations and some dedicated 3D-Renderservers, all connected through a separate 10G network, that’s exclusively used for data transfer and thus can safely utilize jumbo frames without mixing things up.
The server has been running freenas/truenas core.
Based on our daily work, we experienced this, which may, in parts, help you evaluating your needs:

  • even 256 GB ram seemed to be able to contain a good amount of our frequently used data. Once re-read from disk space, the data is in Arc and can be accessed very fast. Sure, 256 GB is just a fraction of a pool’s size, and still just a fraction of the size of a typical project, but on the other hand, the data of a project which has to be accessed frequently is also just a fraction of the whole project’s size. So yes, the more Ram, the better, but with 512 Gig you should have fun. if I remember correctly the dual xeon board you intend to use is capable of utilizing up to two Terabyte of (Reg)Dimm. In my opinion that’s the only reason to use the dual xeon boards instead of a single xeon board, so maybe you could plan your ram acquisitions (i.e. get 64 GB RegEcc-Dimms instead of smaller ones) in a way that gives you options for later upgrades.

  • while we were able to saturate our ARC, we seemed not to get much profit from our L2Arc. Hit rate was very, very low. Very few accesses over a whole day. So if I interpret that correctly, the stuff that was flushed from Arc, was not to be used again anytime soon. Which adds up to my assumption, that our data was mostly cramped up actively in arc, or was sitting on our drives to be sporadically read.

  • that leads to storage performance. Which we have to decide in two parts:

  • write speed: this was good for our needs, all the time. We have no use for synced write, so our stuff goes to the server’s ram through 10GbE and is subsequently, in the background, written to the rust pool. Not a big deal. A lot faster than writing to local HDD, feels like writing to local SSD. Local NVME is another thing, but again we are talking about NAS storage via SMB.

  • read speed #1: even our 4K footage could be read smoothly from that RaidZ2-Pool into black magic resolve. Some hiccups here and there, but overall smooth, and the video editing software does it’s local caching quite effectively. With 6K/8K footage things would probably be different. If that’s what you use, you should indeed try to build your storage in a way that makes out your 10G network even for stuff thats accessed directly from disk. If using HDD, that’s more vdevs (add another mirror vdev and your fine to go.)

  • read speed#2: as I have written, things look completely different with lots of small files. In our case the CGI-generated EXR-Sequences. Here the nasty effects of low HDD access time, horrible, single threaded SMB overhead and probably Windows defender Antivirus check add up and make things very slow, compared to local storage. Even stuff that’s 100% stored in cache is significantly slower accessible than on local NVME, maybe even sata SSD storage. Maybe things are better if you are able to use other protocols, but for SMB, things are what they are right now. Compression by the way is not a big deal here, so there is no point in disabling compression. Encryption we do not use,would probably slow things down a bit.
    As things are, we were not able to play a stream of EXR-images smoothly, when it had to be read directly from the RaidZ2-Pool. However, once in Arc things get better, and most times those EXR-Sequences have to be processed in our local compositing software, where processing time of each frame is magnitudes slower than the data transfer time. So we were not bothered too much, yet sure, faster would be better.
    Accessing the stuff from our sata-SSD-Pool was smoother, due to the higher access time. SMB overhead still applies, obviously.

  • snapshots and backup:
    Yes, with windows zFS snapshots give you access to shadow copies. Which is a huge thing. It’s just so good. I would recommend to do some staggered snapshots, each few minutes for about an hour, each 30 minutes for about a day, and each day for about two weeks, and go from there depending on your available disk space and/or replication capacity (once you decide to get a separate truenas machine as a replication server,which you really should consider, in the long run).

We decided to do replication to a separate machine. Just a low powered build, not much ram needed, with several HDDs just as big as we could afford, to replicate a copy of our most relevant datasets. Initially we kept that pool just at RaidZ1, to maximize the capacity. Meanwhile, we have added some disks and rebuilt as RaidZ2, but if on a budget I would still consider that raidZ1 sufficient, as it’s just intended as an additional layer of security of already existing, properly redundant data on the main server.

That machine is kept completely off-line, just connected to the main server over a 10GB connection on a different subnet, and gets it’s replication using pull, once a day. So the data on the replication machine is practically unaccessible from outside, to keep off those pesky ransomware attackers. Adding up with off-site backup of the absolute crucial stuff.

Final projects, once finished, end up on another cold-storage solution, to free up space on the main server.

Our updated server:
As we have made good experience with that setup for our needs, we decided to do some updates once it was time to replace the HDDs.

We definitely wanted to get bigger ARC and opted for 512 GB RegEcc-Dimms, each 64 GB. That maxes out our Motherboard at an really affordable price. Other option would have been to switch over to a board capable of even more Ram, but that would have meant either going Dual Xeon or using newer hardware. Maybe we will do that in the next years, if necessary.

We also updated CPU to one with a high clock rate, as that should improve SMB processing speed.

We kept the concept of just a single RaidZ2-HDD- Pool for large video footage files and additional bulk storage of seldom used stuff, and some local replication.
But we have also acquired a bunch of used 3,84 TB Sm883 enterprise sata SSDs at a good price, which allows us to build a 60TB flash Pool, 3x(6+2) RaidZ2. That saturates our network quite nicely and gives us smooth playback of our EXR file sequences, independent from Arc Cache.
I have good hope the SSDs will last some time, they have write endurance we will never exceed even in the next two decades. So if the controllers age well, we should be good to go with that setup over the next few years. Will see how this system performs compared to the old one under heavy load.

Hopefully that information is of some help for your setup. Cheers!

2 Likes

Wow, that’s great info.

My source footage is also 4k, and I also export 1080p projects, but from premiere pro. One thing I did get from your long response is a fantastic idea though, and one that I think I will do - put all my resource stuff (music, foley, reusable b-roll, etc) on either sata ssd or nvme. That’s an awesome idea!

It’s just me editing, no team. Do you think I’d see better performance if I used an iscsi volume mounted to my workstation for the file access? If so, are there any drawbacks to doing this? Or nfs?

Also, are you using proxies when editing, or working with raw footage? I guess I don’t know if blackmagic does proxies or what it might call them, but I’m sure there’s something similar, no?

I currently have a 1tb system volume, a 2tb foley/music volume, a 2tb a-roll and per project b-roll volume, and a 2tb “scratch/working” volume, all nvme, on my workstation that I edit from. Then after I’m done with a project, I move all the related content from that project to an old nas with a 1gig connection. Obviously this is quite slow, and the work flow is rather annoying. I’d much rather just dump all the footage to the nas and then edit from there and move on when I’m done. That’s really what I’m after. I suppose it doesn’t necessarily have to “saturate” the 10gig link, just be fast enough that it doesn’t impede my work flow, I can scrub footage cleanly, and when I’m done, I’m done. No need to copy or move stuff after the fact.

I plan to use the old nas for a backup of important stuff onsite, with cloud for off-site.

I ordered 8x64gb sticks for ram, yes. Always thinking ahead. I also like the dual board for the number of pcie lanes to add more nvme to the system later.

I’ve also decided to boot from 250gb sata ssds instead of nvme since I’m much more limited on nvme slots and the difference there will be negligible, I think.

iSCSI is a resource hog: RAM (of which you have plenty), and disk space—as block storage, it really demands mirrors (no raidz) and below 50% occupancy :scream: Do not consider iSCSI unless it is absolutely necessary.
SMB with the best low-core/high-clock CPU you may find, or NFS with sync disabled, are your best bets.

Why disable sync? I was planning to use 2x500GB nvme drives for SLOG… That is much faster than the spinning disk, so the impact should be minimal, I thought?

1 Like

Async is WAY faster than sync with SLOG, and your workload has no requirement for sync writes, so you can disable sync and use NFS as a plain alternative to SMB.

Adding a flash Pool for your reusable stuff is definitely the way to go. If you plan to go the NVME route in the future, choosing the dual board makes sense for sure, I have not considered that ( even though we use those dual boards to host our GPU render farm). Good thought. We went the sata SSD road because the performance gain of NVME vs Sata under SMB seemed not so huge to justify the additional hassle, and we already had a supermicro chassis for 24 Sata/sas disks at hand. But NVME might be the better choice in the long run. So in your case, big yes to freeing up two ports for the boot pool.

Regarding iSCSI or any other protocol besides SMB I simply lack the knowledge and/or technological background to give more than educated guesses, so etorix has the relevant infos wrapped up nicely, I think.

Proxy workflow: yes, resolve offers that, works good, but we generally don’t use it, because most times we don’t do typical video editing, but instead frame-based postproduction and compositing stuff on shorter sequences, which requires using the native footage. Admittedly smooth realtime playback is not of such importance for us as it is for classical video editing. But you will do fine with your setup, i am sure.

I can remove slog later, right? Or is that a permanent thing? If I can remove it, I’ll probably build the pool without and test, then add it and test. I like numbers. :slight_smile:

You can remove SLOG. And you’re very welcome to post numbers here when you test sync, sync+SLOG, and async.

Your 512Gb RAM may be an overkill…

Nah, it’s fine!

3 Likes