zfs l2arc warmup

Freddie Cash fjwcash at gmail.com
Fri Mar 28 21:01:29 UTC 2014


On Fri, Mar 28, 2014 at 2:00 PM, Freddie Cash <fjwcash at gmail.com> wrote:

> On Fri, Mar 28, 2014 at 1:40 PM, Dmitry Morozovsky <marck at rinet.ru> wrote:
>
>> On Fri, 28 Mar 2014, Joar Jegleim wrote:
>>
>> [snip most of]
>>
>> > > Have you measured to see if, or do you otherwise know for sure, that
>> you
>> > > really do need a ZIL? I suggest not adding a ZIL unless you are
>> certain
>> > > you need it.
>> > Yes, I only recently realized that too, and I'm really not sure if a
>> > zil is required.
>> > Some small portion of files (som hundre MB's) are served over nfs from
>> > the same server, if I understand it right a zil will help for nfs
>> > stuff (?) , but I'm not sure if it's any gain of having a zil today.
>> > On the other hand, a zil doesn't have to be big, I can simply buy a
>> > 128GB ssd which are cheap today .
>>
>> Please don't forget that, unlike L2ARC, if you lost ZIL during sync write,
>> you're effectively lost the pool.
>>
>
> ​Nope.  Not even close.
>
> The ZIL is only ever read at boot time.  If you lose the ZIL between the
> time the data is written to the ZIL and the time the async write of the
> data is actually done to the pool ... and the server is rebooted at that
> time, then you get an error message at pool import.
>
> You can then force the import of the pool, losing any *data* in the ZIL,
> but nothing else.
>
> It used to be (back in the pre-ZFSv​13-ish days) that if you lost the ZIL
> while there was data in it that wasn't yet written to the pool, the pool
> would fault and be gone.  Hence the rule-of-thumb to always mirror the ZIL.
>
> Around ZFSv14-ish, the ability to import a pool with a missing ZIL was
> added.
>
> Remember the flow of data in ZFS:
>   async write request --> TXG --> disk
>   sync write request --> ZIL
>                \--> TXG --> disk
>
> All sync writes are written to the pool as part of a normal async TXG
> after its written sync to the ZIL.  And the ZIL is only ever read during
> pool import.
>
> ​[Note, I'm not a ZFS developer so some of the above may not be 100%
> accurate, but the gist of it is.]​
>
>
​Oh, and if you lose the separate log vdev during normal operation, then
the pool reverts to using the ZIL inside of the pool.

IOW, there's always a ZIL in a pool, whether that be internal to the pool
or as part of a separate log vdev.

-- 
Freddie Cash
fjwcash at gmail.com


More information about the freebsd-fs mailing list