Hi *,
sorry for posting yet another "how to build my system" post; as a lot of people here I am rather unsure how to come up with the best solution for my requirements given that I'm rather new to the TrueNAS-World.
I plan to build a new storage for a larger K-12-like school and have a couple of requirements:
Reliability. I have functional backups up and running, but I experienced in the past how resilvering after a single bad disk brought down three more disks of a RAID5 within a month due to the increased load. As such, I really would like to be able to work with a failure of two disks.
Speed. I have about 20 VMs and some of them are IO intensive. Ideally, I would like to see a peak data throughput in the middle to upper three digit MB/s. 600 to 800 MB/s would be a good start, something in the range of 1.5 GB/s would be ideal and give me some headroom. (More would be better of course, especially since we might have HD video cutting in a few months, but I could handle that with local disks if that's not possible.)
VM capable. According to several sources, this should be done with multiple mirror-vdevs. That alone would be acceptable, but together with my "reliability" wish, this would mean that I have to mirror 3 disks. That's ... a bit much of overhead.
Expandable. Ideally, I don't want individual storages for my VMs disks since I do not yet know how their space requirements will change over the next years and I don't like tinkering with my storage setup all the time.
Price. Money is a concern - but of course not as much as in a (typical) home lab. I can likely throw an "upper end" four digit sum at this if it the result is worth it and I'm doing this pretty much as a honorary job so my work time comes for free.
I currently have a test setup consisting of a
This peaks slightly below 300 MB/s when writing data locally continuously:
Writing VM data through a TrueNas scale NFS share goes down to somewhere between 50 and 100 MB/s. Granted, I do not yet have a dedicated ethernet infrastructure (and therefore not yet Jumbos enabled), but my target and source systems are connected through a single 10G switch which is not at its limits yet. I do have LACP enabled and two paths but of course that does not help during simple throughput tests.
So now I am a bit unsure how to improve these speeds.
My current "best-effort" plan would be to throw in another HPE D3710 and fill it over time with something like Samsung PM1643A 1.9 TB SSDs (I'd like to keep resilvering times ... reasonable). Configure the disks as mirrors in pairs of two, no SLOG, no DEDUP and sync set to default. Increase the RAM to 192 GB or so and get a dedicated ethernet channel with Jumbos. Add vdevs as disks come in, one big pool (or possibly multiple pools with some vdevs on hot standby so I can plug them in when the remaining space goes below 50 %).
Pro: hopefully fast; reasonably priced; redundancy (as long I don't get two adjacent drives to fail); expandable
Con: failure of two adjacent drives wrecks everything; still losing 50 % of my memory
In the "old days" I probably would have cobbled a bunch of SAS datacenter HDDs together with a hardware RAID6 controller, dedicated two spares, installed Debian and would be have been happy with my speeds. But with more demanding loads nowadays, I really would like to get some second opinion(s) if there's still room for improvements.
As such, any input to this would be required.
Thank you very much,
Sebastian
sorry for posting yet another "how to build my system" post; as a lot of people here I am rather unsure how to come up with the best solution for my requirements given that I'm rather new to the TrueNAS-World.
I plan to build a new storage for a larger K-12-like school and have a couple of requirements:
Reliability. I have functional backups up and running, but I experienced in the past how resilvering after a single bad disk brought down three more disks of a RAID5 within a month due to the increased load. As such, I really would like to be able to work with a failure of two disks.
Speed. I have about 20 VMs and some of them are IO intensive. Ideally, I would like to see a peak data throughput in the middle to upper three digit MB/s. 600 to 800 MB/s would be a good start, something in the range of 1.5 GB/s would be ideal and give me some headroom. (More would be better of course, especially since we might have HD video cutting in a few months, but I could handle that with local disks if that's not possible.)
VM capable. According to several sources, this should be done with multiple mirror-vdevs. That alone would be acceptable, but together with my "reliability" wish, this would mean that I have to mirror 3 disks. That's ... a bit much of overhead.
Expandable. Ideally, I don't want individual storages for my VMs disks since I do not yet know how their space requirements will change over the next years and I don't like tinkering with my storage setup all the time.
Price. Money is a concern - but of course not as much as in a (typical) home lab. I can likely throw an "upper end" four digit sum at this if it the result is worth it and I'm doing this pretty much as a honorary job so my work time comes for free.
I currently have a test setup consisting of a
HP ProLiant DL360 Gen9
with 96 GB RAM
, a HPE 562FLR-SFP+ Dual Port 10G SFP+ network card
and a Broadcom 9300-8e
that connects to a HPE D3710
with 25x 1.8 TB 12G SAS 10k HDDs
. Two of these disks are used as spares, two for DEDUP. Everything else is configured in a single RAIDZ3. I also threw in two mirrored SSDs (800 GB) as LOG devices and disabled sync (not sure if this is a good idea - my understanding was, that SLOG allows disabled sync while mitigating the risk of data loss ... ?).This peaks slightly below 300 MB/s when writing data locally continuously:
Code:
$ dd if=/dev/random of=./testfile bs=10G count=5 oflag=direct dd: warning: partial read (2147479552 bytes); suggest iflag=fullblock 0+5 records in 0+5 records out 10737397760 bytes (11 GB, 10 GiB) copied, 37.5479 s, 286 MB/s
Writing VM data through a TrueNas scale NFS share goes down to somewhere between 50 and 100 MB/s. Granted, I do not yet have a dedicated ethernet infrastructure (and therefore not yet Jumbos enabled), but my target and source systems are connected through a single 10G switch which is not at its limits yet. I do have LACP enabled and two paths but of course that does not help during simple throughput tests.
So now I am a bit unsure how to improve these speeds.
My current "best-effort" plan would be to throw in another HPE D3710 and fill it over time with something like Samsung PM1643A 1.9 TB SSDs (I'd like to keep resilvering times ... reasonable). Configure the disks as mirrors in pairs of two, no SLOG, no DEDUP and sync set to default. Increase the RAM to 192 GB or so and get a dedicated ethernet channel with Jumbos. Add vdevs as disks come in, one big pool (or possibly multiple pools with some vdevs on hot standby so I can plug them in when the remaining space goes below 50 %).
Pro: hopefully fast; reasonably priced; redundancy (as long I don't get two adjacent drives to fail); expandable
Con: failure of two adjacent drives wrecks everything; still losing 50 % of my memory
In the "old days" I probably would have cobbled a bunch of SAS datacenter HDDs together with a hardware RAID6 controller, dedicated two spares, installed Debian and would be have been happy with my speeds. But with more demanding loads nowadays, I really would like to get some second opinion(s) if there's still room for improvements.
As such, any input to this would be required.
Thank you very much,
Sebastian