> From: zfs-discuss-boun...@opensolaris.org [mailto:zfs-discuss-
> boun...@opensolaris.org] On Behalf Of Jim Klimov
> For smaller systems such as laptops or low-end servers,
> which can house 1-2 disks, would it make sense to dedicate
> a 2-4Gb slice to the ZIL for the data pool, separate from
> rpool? Example layout (single-disk or mirrored):
> The idea would be to decrease fragmentation (committed
> writes to data pool would be more coalesced) and to keep
> the ZIL at faster tracks of the HDD drive.
I'm not authoritative, I'm speaking from memory of former discussions on
this list and various sources of documentation.
No, it won't help you.
First of all, all your writes to the storage pool are aggregated, so you're
already minimizing fragmentation of writes in your main pool. However, over
time, as snapshots are created & destroyed, small changes are made to files,
and file contents are overwritten incrementally and internally... The only
fragmentation you get creeps in as a result of COW. This fragmentation only
impacts sequential reads of files which were previously written in random
order. This type of fragmentation has no relation to ZIL or writes.
If you don't split out your ZIL separate from the storage pool, zfs already
chooses disk blocks that it believes to be optimized for minimal access
time. In fact, I believe, zfs will dedicate a few sectors at the low end, a
few at the high end, and various other locations scattered throughout the
pool, so whatever the current head position, it tries to go to the closest
"landing zone" that's available for ZIL writes. If anything, splitting out
your ZIL to a different partition might actually hurt your performance.
Also, the concept of "faster tracks of the HDD" is also incorrect. Yes,
there was a time when HDD speeds were limited by rotational speed and
magnetic density, so the outer tracks of the disk could serve up more data
because more magnetic material passed over the head in each rotation. But
nowadays, the hard drive sequential speed is limited by the head speed,
which is invariably right around 1Gbps. So the inner and outer sectors of
the HDD are equally fast - the outer sectors are actually less magnetically
dense because the head can't handle it. And the random IO speed is limited
by head seek + rotational latency, where seek is typically several times
longer than latency.
So basically, the only thing that matters, to optimize the performance of
any modern typical HDD, is to minimize the head travel. You want to be
seeking sectors which are on tracks that are nearby to the present head
Of course, if you want to test & benchmark the performance of splitting
apart the ZIL to a different partition, I encourage that. I'm only speaking
my beliefs based on my understanding of the architectures and limitations
involved. This is my best prediction. And I've certainly been wrong
before. ;-) Sometimes, being wrong is my favorite thing, because you learn
so much from it. ;-)
zfs-discuss mailing list