First NAS build, suggestions on what to Improve?

Hi, I decided that I needed data backup and decided to do a NAS
build (wait, no screenshots?)

CPU AMD Ryzen 5 5500 3.6 GHz
Motherboard Asus ROG STRIX B450-F GAMING II
Memory TEAMGROUP T-Force Vulcan Z 16 GB (2 x 8 GB) DDR4-3200 CL16 Memory
Storage
(boot) Crucial P3 Plus 500 GB M.2-2280 PCIe 4.0 X4 NVME Solid State Drive
(two) Western Digital Red Plus 8 TB 3.5" 5640 RPM Internal Hard Drive

it is running slow

In: 27.85 Mb/s (was up to 95, I think disk write is maxxing out)
Out: 513.62 kb/s
Media Type: Ethernet
Media Subtype: 1000Mb/s Twisted Pair

15.5 GiB RAM total available
Free:2.1 GiB
ZFS Cache:12.1 GiB
Services: 1.2 GiB

should I add a drive for a cache?

Data VDEVs 1 x MIRROR | 2 wide | 7.28 TiB
Metadata VDEVs VDEVs not assigned
Log VDEVs VDEVs not assigned
Cache VDEVs VDEVs not assigned
Spare VDEVs VDEVs not assigned
Dedup VDEVs VDEVs not assigned

No L2ARC. No SLOG (only for sync writes)

Make sure to post the correct values for MB vs Mb. Test you network using iPerf3 to make sure you are getting close to 1Gbps.

What are you using the TrueNAS system for? Is it just backing up your PC, are you running apps or VMs, etc? Your current disk system, mirror with have the read speed of two drives and the write speed of one. Smaller files will be a lot slower.

Your network is currently slower than you can write large files to a single drive. I can get 1.8 Gbps for large compressed files backing up from a Windows 11 pc to a single disk pool.

just backups, I also want some storage for disks from retired machines that might have pertinent data on them (parents older machines with stuff like photos))
if this works well I’ll also take all my DVDs and rip them so I got backups of them

last time I counted loose drives I had about 12tb that I wanted to preserve, but all the disks are not full

You are only, partially, using it as backup. Backup means more of a second source. If you copy all the lose drives data to TrueNAS and then get rid of the lose drives, TrueNAS is your only source for that data. Lose the TrueNAS pool and you would lose all that data, without another backup source

You want to keep TrueNAS pool usage below 80%. At 90% you take a performance hit and much above that, you can crash the system and maybe lose data. Mirror VDEVs is probably a decent choice as it is easier to replace drives as sets of two or add another mirror VDEV to the same pool.

You could have your current 2x 7.28Tib drives in their Mirror VDEV and you could add another VDEV to your pool of 2x 20TB drives. Guessing you would have about 25 TiB of space then.
Another way to get more space would be drive replacements on your current pool. Replace a 8TB with a 20TB, allow TrueNAS to resilver, then replace the second drive, allow to resliver. You may have to manually expand the VDEV to use all the space then.

You want to add RAM first before adding the L2ARC. Conservative recommendation was to think about L2ARC after having 64GB of RAM.

Under what kind of load? Also, you can monitor pool bottlenecks with something like sudo zpool iostat <your-pool-name> -lv -y 1 30 during the load.

yes, you are right

step one, consolidate the data from numerous old drives to brand new drives
(some are 10+ years old and some are even IDE)

step two
second NAS (preferrably offsite, but doubtfull)

with intermediate steps of more RAM, more Disk, better storage media when it gets invented, etc

I mean, this is my first NAS build

You can stage the second copies of the data. The old drives could be consolidated onto an external drive connected to your pc and TrueNAS. I was only saying don’t make TrueNAS your only source

2 Likes

yep, that the plan, just looking at if I am doing anything terribly wrong

Boot Drive
I’d say your boot drive is quite large. If you have something smaller, might be better to use that instead. TrueNAS OS does not need more than 32-64GB, maybe even less.

Instead of 1 large boot drive (which I don’t think will ever fill up), it may be better to buy two lower capacity drives i.e. 2x 256 GB SSDs or 2x 128 GB SSDs and run them in a mirrored pool. That way if one of your boot drive fails, the other will still boot up and you can still access your data and fix the issue later.

Memory
If you’re going to be running apps, I recomend getting more memory. ZFS is memory hungry and will use all that it can get. Consider 32 GB for sure if you’re running Apps. Otherwise, you may be able to get by with 16GB but its the bare minimum I’d use.

I have 32 GB and if I was building today, I’d go with 64 GB.

Cache
I’m not sure if a cache drive will help you here. Your writes are the problem and that would probably be more affected by the availability of memory (for ZFS), network throughput, or how your datasets are arranged in your pool (and accessed) rather than the lack of a cache drive (SLOB, L2Arc, etc).

What’s the rest of your network like? I noticed I was getting slow writes too and then realized that I was using an old network cable that was throttling me. :grin:

No.

This is meaningless. Your network speed is the minimum of the negotiated speed of every link between client and NAS. And the negotiated speed of each wired ethernet link depends on the potential speeds of the ports at each end and the quality of the ethernet cable between, and you need to query the device to find out what speed was actually negotiated - wifi is similar, the devices at each end and the signal strength determine what speed is negotiated.

I am going to assume that you understand the difference between MB/s and Mb/s and that these measurements are correct.

A 2 disk mirror will have read speed = 1 disk and the maximum bulk write speed (assuming no seeks) is going to be c. 150MB/s to 200MB/s which is most likely more like 100MB/s when you take seeks into account.

So 28Mb/s = c. 3.5MB/s bulk write speed is pretty slow.
And 0.5Mb/s = <0.1MB/s read speed is terrible.

But we have no way of knowing whether this is a network issue or a disk subsystem issue.

  1. Check the negotiated speeds on each link.
  2. Run iperf to check the network connection.

If it still looks like a disk issue, come back and we can suggest some more diagnostics.

ok, just checking it, everything appears to work. just reminding the forums that I am still looking to see if there is anything I need in addition to this

when the 8Tb gets up to 50% I’ll add disks
I am not going to run any apps (i think) so I shouldn’t need more ram

this is just to consolidate a bunch of loose drives, and backup

the 500 boot was new and cheap, NVME, so I can really add a second without loosing some SATA, but I could drop in a second SATA SSD and mirror to that

not running apps (I think) this is just meant to be storage, with maybe a second unit built for a backup

still need to test with ipref, it’s on the todo list

Probably not a great idea to mirror an NVMe to a SATA SSD.

1 Like

keeping this thread alive. still looking to see what I should be adding next.

I dont think, it is necessary.
The OP only have to save the configuration file, to the latest status (to a different location, where it is available offline too) and reinstall the system, if it crashes, and the restore the setup from that file.

Well, it depends on thee amount of apps and their memory needs.
I basically agree that use at least 32 GB, but if the apps are not memory hungry applications, it is not mandatory to increase the size.
However, if he plans to use VMs, then it is absolutely necessary to have 32, but rather 64GB since (as of my last testing) the TN Hypervisors memory management (ie the ballooning) is utterly broken, so whatever memory you want to assign to the VM, you must do it in advance and at a fixed size.
(actually this is why I moved my TN to under Proxmox, because the Hypervisor of TN was so useless and annoying to me. )

I am pretty sure, it will not help at all.
Same for deduplication. (specially with the 16GB RAM)
It is only recommended to use it on data that has any benefit from running it (Media files are NOT that kind of data)

Two 8 TB Reds in a mirror are like two hamsters on a wheel: fine for light backup, but you’re not powering a Tesla with them. ZFS cache drives won’t suddenly give those hamsters rocket boosters—they’ll just eat more of your RAM’s food.

If all you’re doing is consolidating old disks and keeping backups, you’re actually fine. When you want more speed, the answer isn’t “add cache,” it’s “add more hamsters” (more spindles) or “upgrade the wheel” (move hot data to SSDs).

That’s exactly why I carved out a dedicated SSD pool in my setup—let the spinning rust do the slow bulk storage, and let the flash handle anything that needs to feel fast. Best of both worlds without trying to turn hamsters into racehorses.

1 Like