New build advice

andypm1982

Dabbler
Joined
May 5, 2020
Messages
26
HI there.

Im in the middle of trying to merge 2 existing dell tower servers into 1 rackmount box.

Currently im running esxi on a hardware raid 10 of 8x 500gb 2.5inch SSD's.

My plan is to passthrough my LSI9211 through to a truenas core VM and also have a windows VM for AD and plex.

My main data array currently has 8x 4TB sas disks which i plan to turn into an 8 disk RaidZ and add another 8TB 8disk RaidZ going forward.

What i had considered doing was adding a virtual disk from the SSD raid10 and using it for SLOG and wondered if it would be quick enough or just end up being a bottleneck??

Screenshot 2022-06-12 114632.png
 

Nick2253

Wizard
Joined
Apr 21, 2014
Messages
1,633
It may be fast enough, but I think you may be misunderstanding the value of a SLOG.

First off, it helps to understand how a SLOG works. When an array without a SLOG gets a write request, it stores that data in RAM, until such time as it can flush it disk (usually every few seconds or so). When the system gets a "sync" write, then it must immediately flush that data to disk prior to moving on to the next write request. If the system has a SLOG, then, when the system gets a "sync" write request, it will immediately copy that data to the SLOG device. However, this data will stay in RAM, and get written to the array as part of the normal flush-to-disk process.

In other words, a SLOG device is only useful when your array is receiving sync writes.

So, wait, what exactly is a sync write? "Sync" writes means that those writes must be confirmed to be safely written to non-volatile storage before the system is allowed to continue. Sync writes are critical for applications that can't handle half-written data. For example, many databases require sync writes, because that's the only way to guarantee the ACIDness of the data.

Of course, not all data requires sync writes. And since it's pretty much a binary setting, all applications have to make a best-guess default choice. What's interesting is that these default settings for different applications can create perceptions of speed difference, when all you're seeing is the different of requiring or not requiring sync writes. For example, by default, NFS from ESXi requires sync writes, and SMB from Windows doesn't. However, at their core, they're doing the same thing: moving data across a network. And it's that *data* that cares about sync vs non-sync, not the protocol.

Ok, let's bring it full circle. First question: what is your use case? If you really can't afford to lose a few seconds of data, then you have to treat your SLOG like gold. For enterprise applications that actually require this kind of resilience, a mirrored SLOG is very common. And there's a lot that goes into choosing the right device for a SLOG, because the wrong SSD could suffer data loss in the face of sudden power loss, which means it would be useless as a SLOG. With that in mind, I'm not sure that your virtual SSD would actually provide the data resiliency that you'd need for it to actually be an effective SLOG.

On the other hand, if you can afford to lose a few seconds of data, then why are you using sync writes? Just let ZFS use RAM (effectively the fastest cache available), and be OK if you have sudden power loss. For most home users, a good UPS is a way more practical solution than a SLOG. In your case, the fact that you're looking to use RAIDZ1 for your array makes me think that you probably have a decent backup solution, and a little bit of data loss wouldn't be all that consequential.

But *you* know your data needs, not me. So only *you* can answer what risk factors you have, and what concerns you need to mitigate against.
 
Last edited:

NugentS

MVP
Joined
Apr 16, 2020
Messages
2,943
I do hope he did - cos otherwise I am really confused
 

Nick2253

Wizard
Joined
Apr 21, 2014
Messages
1,633
Top