G'Day Bill, Folks,

I'll merge my replies with this email, as Eric has done a good job
answering them and has beaten me to it. :)

On Wed, Oct 24, 2007 at 03:52:47PM -0700, Eric Schrock wrote:
> On Wed, Oct 24, 2007 at 06:05:48PM -0400, Bill Sommerfeld wrote:
[...]
> > - What happens if a cache device fails during operation?  
> 
> Requests for cached data go straight to disk, and performance will
> suffer.  The current implementation doesn't integrate with the existing
> ZFS FMA framework, but this will be addressed later as part of future
> FMA updates.

Yes; The current implementation does the following:

For a write error
- the L2ARC headers are invalidated, so subsequent reads for that buffer
  will be sent to the original pool vdev as usual.
- kstat zfs::arcstats:arcstat_l2_writes_error is bumped.

For a read error
- The read is resent to the original pool vdev for servicing.
- For cksum erorrs, we bump zfs::arcstats:l2_cksum_bad.
- For io errors, we bump zfs::arcstats:l2_io_error.

> > - What happens if it's missing at boot or during an import?  (It sounds
> > like we should be able to drive on with reduced performance).
> 
> It will show up as faulted but it will not prevent the pool from being
> imported or used, identical to the way inactive spares behave today.

This looks like:

# zpool status test
  pool: test
 state: ONLINE
 scrub: none requested
config:

        NAME             STATE     READ WRITE CKSUM
        test             ONLINE       0     0     0
          c0t1d0         ONLINE       0     0     0
        cache
          c0t3d0         UNAVAIL      0     0     0  cannot open

errors: No known data errors

> > Other thoughts:
> > 
> >  1) Applicability:  I'd assume that cache devices only start to get
> > interesting when main memory is already maxed out or if cache storage is
> > fast enough but much cheaper per bit than main memory.
> 
> Yes, this only makes sense if your working set size exceeds the size of
> the in-core ARC.  As you point out, this may be limited by physical
> capacity or (more likely) price/performance.

Yes, it should be about price/performance as SSDs are getting cheaper,
larger, faster.  We do need the system to have a reasonable amount of
RAM to start with, just to hold the metadata for the L2ARC - which
for an 8 Kbyte ZFS recsize currently runs at a 3% ratio.  This will mean
about 4 Gbytes of RAM just to drive a 128 Gbyte SSD; unless you are
willing to increase recsize.

Thanks for the questions,

Brendan

-- 
Brendan
[CA, USA]

Reply via email to