RFC: Project geom-events
Lev Serebryakov
lev at FreeBSD.org
Thu Oct 6 06:56:23 UTC 2011
Hello, John-Mark.
You wrote 6 октября 2011 г., 2:53:53:
>> gmirror0
>> gstripe0
>> ada0
>> ada1
>> gstripe1
>> ada2
>> ada3
>>
>> and administrator kills gstripe0, for example, geom_mirror will send
>> event, because from its point of view it is not administrative
>> action...
>> But such situations, IMHO, are not very often ones.
> Won't gmirror still report COMPLETE after a gmirror remove? So the
I say "kill gstripe0", not "Remove gstripe0 from gmirror0", it is
different situations. gmirror0 will be DEGRADED after this action, but
will send DISCONNECT message with "fixable" state and it is state when
geom-events(8) try to find replacement (spare). Exactly as when it
lost component due to accident. If you say "gmirror remove", yes, it
will be COMPLETE after it.
> script can look at the gmirror device, and see that it is still
> complete even though one of the providers were dropped and assume
> it was an administrative command that did it..
Here is one problem: there is no STANDARD way to understand state of
provider from userland, as it is GEOM-specific. "g${class} status ${geom}" prints almost
free-form information. Not all classes names it "COMPLETE", and some
classes (geom_raid, for example) could have many providers and many
states, which adds complexity. So, to make it work this way I need to
add knowledge about all classes and their output formats to
geom-ecents(8). I don't think, that it is good design -- it is bad
idea to put knowledge about GEOM classes in two places -- class
itself and some script. It will hard to synchronize, etc. So, I
think, GEOM class itself should decide and report its state in
standard way.
--
// Black Lion AKA Lev Serebryakov <lev at FreeBSD.org>
More information about the freebsd-current
mailing list