[Nut-upsdev] MGE NMC and NutShutdownModule (and other stuff)
Arjen de Korte
nut+devel at de-korte.org
Tue Nov 3 12:51:44 UTC 2009
Citeren Marco Chiappero <marco op absence.it>:
> Uhm are you saying we should subscribe even the netxml-ups driver to
> lower NUT load? Maybe there's something I don't know yet about the
> extrafd... but, shouldn't we make better to include the nsm code in
> the netxml-ups driver/mge subdriver?
Yes, that's what I'm intending to do (and what I have already done for
a large part already by the way). This will reduce the latency for
changes in the power state to essentially zero. At the same time, we
can increase the pollinterval to something like 60+ seconds or so.
Receiving an alarm will then trigger a poll of the summary and/or
get_object pages, to get all available data.
> However, only relevant data is sent over the NSM connection, if, for
> example, "UPS.PowerConverter.Output.ActivePower" changes we're not
> going to know it through alarm messages. But, at worst, it can
> suffice to update that data every 60 seconds, which is reasonable.
> Is it right? Is it what you meant?
Indeed. This still allows people who want to have more regular updates
of whatever variable they want to get more frequent updates, but
reduces the amount of polling we need to do when nothing critical is
happing for most of the time. In order not to be left in the dark for
too long, I intend to up the default pollinterval to something like 75
seconds in the netxml-ups driver.
> I thought the NMC was using only udp broadcast messages but I'm
> having some sniffing time and I discovered that, shutting down
> outlet #2, much information is forwarded even to a host attached on
> the main outlet. Everything but "System.Outlet[3].RunTimeToShutdown"
> data (resulting in two empty messages for the connected client).
> Interesting!
Yeah, this also surprised me. I too expected that the alarms where
client based, but apparently this isn't the case. At least not for the
NMC 66102 we're both using.
> [TCP]
> <ALARM level="1" object="UPS.PowerSummary.PercentLoad" value="39"
> date="2009/11/03-11:59:46" messageID="5PAEI7"> </ALARM>
> <ALARM></ALARM>
> <ALARM></ALARM>
> <ALARM level="1"
> object="UPS.OutletSystem.Outlet[3].DelayBeforeShutdown" value="125"
> date="2009/11/03-11:59:56" messageID="6ZJJFK"> </ALARM>
>
> [UDP]
> <ALARM level="1" object="UPS.PowerSummary.PercentLoad" value="39"
> date="2009/11/03-11:59:46" sessionID="53950" messageCount="22"
> messageID="7KIWMV"> </ALARM>
> <ALARM level="3" object="System.Outlet[3].RunTimeToShutdown"
> value="13" date="2009/11/03-11:59:50" sessionID="53950"
> messageCount="23" messageID="1P31YU"> Group 2 system shutdown is
> activated </ALARM>
> <ALARM level="3" object="System.Outlet[3].RunTimeToShutdown"
> value="0" date="2009/11/03-11:59:52" sessionID="53950"
> messageCount="24" messageID="59XJRJ"> Group 2 system shutdown is
> activated </ALARM>
> <ALARM level="1"
> object="UPS.OutletSystem.Outlet[3].DelayBeforeShutdown" value="125"
> date="2009/11/03-11:59:56" sessionID="53950" messageCount="25"
> messageID="H5RPLA"> </ALARM>
Interesting indeed.
> Have to investigate a bit more to be sure that
> "UPS.PowerSummary.PresentStatus.BelowRemainingCapacityLimit" object
> is a host specific data. Then we should have a quite clear picture
> of who is reading what. Well, for a simple UPS at least...
As far as I can see, the above value is not client specific. It would
have been nice if it was (since that would allow us to easily see that
the specific outlet was about to be shutdown), but as far as I can
see, this is the global one (not outlet/client specific). What I'm not
sure about, is what happens when you sent this via the UPS Controls
page for a simulated shutdown event. It could very well be that this
would be client specific in that case, but in practice this will be of
little use for us. During an actual mains failure, it would only be
raised when the batteries are almost flat. Since we would like to shed
some loads on the two switchable outlets long before that (the whole
point of this exercise), we probably can't use that.
>> We know when the timers are running (through the alarms) and we
>> also know the shutdown duration requested on the outputs, so it
>> shouldn't be too problematic to insert a FSD flag. I just wish the
>> NMC would have used the ShutdownImminent flag that is supposed to
>> tell this, but for some mysterious reason it doesn't seem to be
>> used by the NMC.
> Yes and I agree. However, a question: if we use the FSD flag, in a
> redundant configuration, and that UPS was not really necessary for
> the system to live, doesn't it trigger the system shutdown in any
> case?
No. A FSD flag only tells that this particular power source is about
to lose power, it doesn't mean that a system that is monitoring this
must shutdown. Here is where the MINSUPPLIES value in upsmon.conf
comes into play. For instance, if you have two outlets that are
powering a host of which at least one must be available, you'd give
them a powervalue of 1 each and set MINSUPPLIES 1. During normal
operation, this would give a total powervalue of 2. Only if both would
fail, the total powervalue would drop to 0, which triggers a shutdown
on the client. If only one fails, you still have a powervalue of 1.
Best regards, Arjen
--
Please keep list traffic on the list
More information about the Nut-upsdev
mailing list