Slow resilvering with mirrored ZIL

Gezeala M. Bacuño II gezeala at gmail.com
Wed Jul 17 18:22:33 UTC 2013


On Wed, Jul 17, 2013 at 10:35 AM, Warren Block <wblock at wonkity.com> wrote:

> On Wed, 17 Jul 2013, Gezeala M. Bacuño II wrote:
>
>  If ZFS goes on a bare drive, it will be aligned by default.  If ZFS is
>> going in a partition, yes, align that partition to 4K boundaries or larger
>> multiples of 4K, like 1M.
>>
>> Your statement is enlightening and concise, exactly what I need. Thanks.
>>
>>       The gnop/ashift workaround is just to get ZFS to use the right
>> block size.  So if you don't take care to get partition alignment right,
>> you might end up using the right
>>       block size but misaligned.
>>
>>       And yes, it will be nice to be able to just explicitly tell ZFS the
>> block size to use.
>>
>>
>> We do add the entire drive (no partitions) to ZFS, perform gnop/ashift
>> and other necessary steps and then verify ashift=12 through zdb.
>>
>> The gpart/gnop/ashift steps, if I understand correctly (do correct me if
>> I'm stating this incorrectly), is needed for further SSD performance
>> tuning. Taking into consideration leaving a
>> certain chunk for wear leveling and also if the SSD has a size that may
>> be too big for L2ARC.
>>
>
> Well, there are several things going on.
>
> Partitions can be used for a couple of things.  Limiting the size of space
> available to ZFS, leaving an unallocated part of the drive for wear
> leveling.  Note that ZFS on FreeBSD now has TRIM, which should make leaving
> unused space on SSDs unnecessary.
>
> Aligning partitions preserves performance.  If a partition is misaligned,
> writes can slow down to half speed.  For example, a 4K filesystem block
> written to an aligned partition writes a single block. If the partition is
> misaligned, that 4K write is split over two disk blocks.  Each block has to
> be read, partly modified, then written, taking roughly twice as long.
>
> Finally, ZFS's ashift controls the minimum size of block ZFS uses.
> ashift=12 (12 bits) sets that to 4K blocks (2^12=4096).  Again, a
> performance thing, matching the filesystem block size to device block size.
>
> It would be interesting to see a benchmark of ZFS on a 4K drive with
> different ashift values.


Right on again. I forgot to include on my reply, that it is for a specific
use case similar to ours, wherein we dedicate the entire drive to the pool.
I believe it is totally time to put all these howto/faq stuff on a central
FreeBSD repository, I think there's another thread requesting for the same
thing.

Scenarios:
a] maximizing pool and drive size, don't need to partition -- these are the
steps.
     a.1] new drives
     a.2] used drives
b] For those with limited drives, limited enclosures etc -- these are the
steps you may want to check out
c] zfs-on-root
d] and so on..

This will help a lot on deciding which steps to follow and which are
necessary or not, therefore, avoiding all these repeated questions (just
like mine) on ZFS setup/performance/tuning.

https://wiki.freebsd.org/ZFSTuningGuide (WIP) -  outdated, and there's no
section for initial zpool/drive(s) setup.


More information about the freebsd-fs mailing list