>>>>> "rs" == Ross Smith <[EMAIL PROTECTED]> writes:

    rs> 4. zpool status still reports out of date information.

I know people are going to skim this message and not hear this.
They'll say ``well of course zpool status says ONLINE while the pool
is hung.  ZFS is patiently waiting.  It doesn't know anything is
broken yet.''  but you are NOT saying it's out of date because it
doesn't say OFFLINE the instant you power down an iSCSI target.
You're saying:

    rs> - After 3 minutes, the iSCSI drive goes offline.
    rs> The pool carries on with the remaining two drives, CIFS
    rs> carries on working, iostat carries on working.  "zpool status"
    rs> however is still out of date.

    rs> - zpool status eventually
    rs> catches up, and reports that the drive has gone offline.

so, there is a ~30sec window when it's out of date.  When you say
``goes offline'' in the first bullet, you're saying ``ZFS must have
marked it offline internally, because the pool unfroze.''  but you
found that even after it ``goes offline'' 'zpool status' still 
reports it ONLINE.

The question is, what the hell is 'zpool status' reporting?  not the
status, apparently.  It's supposed to be a diagnosis tool.  Why should
you have to second-guess it and infer the position of ZFS's various
internal state machines through careful indirect observation, ``oops,
CIFS just came back,'' or ``oh sometihng must have changed because
zpool iostat isn't hanging any more''?  Why not have a tool that TELLS
you plainly what's going on?  'zpool status' isn't.

Is it trying to oversimplify things, to condescend to the sysadmin or
hide ZFS's rough edges?  Are there more states for devices that are
being compressed down to ONLINE OFFLINE DEGRADED FAULTED?  Is there
some tool in zdb or mdb that is like 'zpool status -simonsez'?  I
already know sometimes it'll report everything as ONLINE but refuse
'zpool offline ... <device>' with 'no valid replicas', so I think, yes
there are ``secret states'' for devices?  Or is it trying to do too
many things with one output format?

    rs> 5. When iSCSI targets finally do come back online, ZFS is
    rs> resilvering all of them (again, this rings a bell, Miles might
    rs> have reported something similar).

my zpool status is so old it doesn't say ``xxkB resilvered'' so I've
no indication which devices are the source vs. target of the resilver.
What I found was, the auto-resilver isn't sufficient.  If you wait for
it to complete, then 'zpool scrub', you'll get thousands of CKSUM
errors on the dirty device, so the resilver isn't covering all the
dirtyness.  Also ZFS seems to forget about the need to resilver if you
shut down the machine, bring back the missing target, and boot---it
marks everything ONLINE and then resilvers as you hit the dirty data,
counting CKSUM errors.  This has likely been fixed between b71 and
b101.  It's easy to test: (a) shut down one iSCSI target, (b) write to
the pool, (c) bring the iSCSI target back, (d) wait for auto-resilver
to finish, (e) 'zpool scrub', (f) look for CKSUM errors.  I suspect
you're more worried about your own problems though---I'll try to
retest it soon.

Attachment: pgpcvDMGKA1VP.pgp
Description: PGP signature

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to