New build review before purchasing parts

Hello there, after testing TrueNAS for some time I specced out a build and am looking for a second set of eyes to review this to see if I missed anything.

Requirements

This is intended for mixed personal and homelabbing use. Think your typical media and file storage on the personal side. And a small k8s cluster using this as object storage on the homelab side.

  1. Shared drive as a replacement for Google Drive. Small but should be reliable and fast file storage for family and company NAS use.
  2. Object storage An S3 interface for object storage. Must be able to saturate a clustered read up to 10Gbit. Should process 1TiB in <15mins. large sequential reads.
  3. Fast storage for applications. This one is not super important. Would like to move over some small applications that use things like Redis and Postgres to this machine if possible. Not a hard requirement though.
  4. Media storage mainly for large files and linux ISOs. 250MB/sec (2.5Gbit) single client read is sufficient

General Idea

My thinking on what I should prioritise, in order of importance:

  1. ARC & memory. Providing zfs with as much ARC as possible should speed up things. I’m looking at ECC memory. I’ve seen people do builds without ECC memory, but was thinking it would be risky since zfs caches lots of things in RAM. Adding ECC to the requirements list had big budget implications though.
  2. Special VDEV & NVMe SSDs. My intention is to put metadata and small files on two mirrored nvme SSDs. Currently I have a network share on spinning rust and waiting for directory contents to load takes ages.
  3. SLOG: Wasn’t 100% sure about this one. If I exclude requirement (3)(database storage) from my requirements there are no workloads that require synchronous writes or fast random i/o. Planning to add two mirrored nvme SSDs as SLOG, to speed up Redis and Postgres writes in case I want to migrate those services to this machine.
  4. L2ARC: Not planning on adding this. I’m banking on 6x spinning rust HDDs rated at ~250mb/s sequential read to saturate large sequential reads on my object store at 10Gbit.
  5. Storage: 6x spinning rust HDDs in RAID 10 or Z2

Planned build

type / VDEV Part layout expectation cost (total, EU-based)
Storage 4x Seagate Exos X18 (SATA, Standard model), 16TB + 2x Seagate Exos X16 (SATA, Standard model), 16TB z2 can saturate 10gbit sequential read of large files. none. have these lying around
RAM / ARC 4x Lenovo 46W0833 DDR4 32GB ECC 2400 MHz / slow, but really cheap and speed does not matter as much? used. EUR 160
special vdev 2x Samsung PM983 2,5" 960GB U.2 mirror speed up document share used. EUR 200
ZIL 2x Samsung PM983 2,5" 960GB U.2 mirror speed up sync database writes used. EUR 200
Boot 2x slow m2 ssd mirror / ?
Motherboard ASRock Rack X570D4U-2L2T/BCM / / new. EUR 500
CPU AMD Ryzen 5 Pro 4655G / pci3 support for nvme ssds / ecc support / am4 socket / Looking at PRO series since they claim lower idle power usage new. EUR 180
Network 2x Ethernet 1Gbps, 2x Ethernet 10G/1G onboard will try to link / aggregate 2 10gbit rj45 → 2x sfp+ on switch / /
NVME SSD Carrier Card Delock PCI Express 4.0 x16 Card to 4 x internal U.2 NVMe SFF-8639 - Bifurcation pci16 → 4x4x4x4 bifurcation for 4x u2 drives new. EUR 140

Other considerations

  • I opted for a last-gen am4 platform since ecc ddr5 memory is really expensive. the am4 mobo is the same price as it’s am5 counterpart but the ddr5 hurts my wallet.
  • Trying to keep this build under 1.500 eur including VAT. trying to get refurbished or used where possible
  • Will I get away with slow ddr4 ram?
  • Total current cost: 1.380
  • Other things I considered:
    • Intel N100 and N150 boards: Cheap and low idle power. There’s even ones with onboard 10gbit ethernet. I struggled with adding nvme ssds to these though. It would include unorthodox m2 → u2 adapters
    • EPYC platform: expensive and high idle power. dont intend to run VMs on this
    • AM5 asrock rack platform: ddr5 seemed really expensive.

Thanks!

  1. 6x HDDs in RAIDZ2 may have the throughput of 4 disks rather than 6 (depending on whether or not ZFS reads 4 blocks and only goes for parity if the checksum fails - and I don’t know the answer to this).

  2. Dedicated ZIL = SLOG - what synchronous writes do you need or are planning to do that will require an SLOG (because database isn’t mentioned in your Requirements list)? But if you do have a database, then you should probably put the data on mirrors both for IOPS and to reduce read and write amplification.

  3. Do you really need to mirror the boot drive?

  4. Do you really need ECC memory? EUR 160 is not a huge amount for 128GB and if that is the only extra cost I would go for it, but if it also means a more expensive MB and / or CPU, then you should watch the iX youtube vlog where Kris and Chris discuss the importance of ECC.

  5. If you are running only NAS services, your proposed AM4 / DDR4 CPU power / memory bandwidth should IMO be adeuate.

I am not knowledgeable enough to comment on numbers and allocation of PCIe lanes with this MB and CPU. N100 boards definitely have limited lanes, not sure about N150 or the proposed MB/CPU?

You can use 2 x sata SSDs @ €15 each 120GB is enough for boot as each enviroment is 4GB

RAM is way faster than any drive so the speed gain on faster RAM is questionable when you exceed the cache

You have 4 Drives - I’d consider 6 for faster speed / better space utilisation lose 1/3 vs 1/2

as processor check out AMD Ryzen 5 5605GE it’s just been released