Let me rephrase my question:
FreeNAS is capable of writing 500MB/s, but not sync writing
SERVER-->10GbE NFS sync write-->FreeNAS with Intel S3500 SSD (100MB/s writes)
Will the SERVER sync write over NFS to the FreeNAS:
1) max speed of the ZIL SSD, that is 100MB/s
2) max speed of the raidz2 pool, that is 500MB/s
3) something in between, closer to 1) or 2)
Please I still do not understand and that is my question.
Thanks!
EDIT:
And yes, I do need one because SERVER=ESXi, so is it 1) 2) or 3)?
EDIT2:
Also, if I understand this correctly and make this a super safe pool in the future, by this I mean making ALL writes SYNC writes, that means then that ZIL is a general write buffer for ALL writes then, yes?
In that somewhat absurd situation (The SSD can easily push more than that),
sync writes will be limited to 100MB/s, because
sync writes must be stored safely (not necessarily permanently) before being acknowledged (In this, the slow SLOG would be slowing down the process, assuming the pool is faster than the SLOG).
Let's turn the numbers around: Pool writes 100MB/s, SLOG SSD writes 500MB/s
The limit is still 100MB/s, because data will not be transferred faster (at least over a longer period) than it can be written to the pool.
Let's look at something closer to real life: The pool can write at 300MB/s generally, but slows to 100MB/s when doing sync writes (disks are constantly moving between ZIL and pool areas). If we now add our 500MB/s SSD as an SLOG, we can have the pool write at 300MB/s, because it's not bottlenecked by the need to constantly move the heads back and forth (the SSD now contaisn the SLOG). The system will now accept data at 300MB/s.
(Yes, it's a bit more complicated, but this should illustrate the general idea)
The ZIL is
never used as a buffer in the sense that data is stored there and later retrieved at a more opportune time. The ZIL serves as a non-volatile backup of the write cache kept in RAM. Without the ZIL, every single
sync write would have to be immediately written to the pool and then individually acknowledged, slowing things down, as per
sync requirements. The ZIL offloads these to a non-volatile scratch area immediately, keeping the RAM copy - the data is then processed normally in a way that maximizes performance. The real write buffer is always in RAM, but since
sync demands that the data be stored in non-volatile memory, a sort of "emergency copy" is kept in the ZIL.