停電発生時、NUT の master として UPS 停止信号を送出するのはシャットダウンに一番時間を要するノードじゃないと都合が悪いと思ってた。でも実際のところは、ノードがシャットダウンしてから UPS を停止(スリープ)させるまでの時間を制御できることが分ったから設定を見直した。
※復電したら UPS 出力を自動で開始するから完全停止では無い。
簡単なタイムチャートはこちら。START-TIMER のカウント中に復電したらシャットダウンしない。
目次
設定
やり方は簡単。ups.conf に offdelay と ondelay の2行追加するだけ。
次の例ではノードがシャットダウンしてから60秒後に UPS を停止させることになる。
maxretry = 3
[ups]
driver = usbhid-ups
port = auto
desc = "APC RS 550VA(BR550S-JP)"
offdelay = 60
ondelay = 70
offdelay はノード(master)がシャットダウンしてから UPS を停止させるまでの遅延時間。ondelay は、offdelay 時間内に復電(UPS 入力が回復)しても、確実に UPS を一度停止させてから起動させるための設定。
コマンド upsc の結果はこちら。driver.parameter.offdelay と driver.parameter.ondelay に ups.conf の設定が反映されている。ups.delay.shutdown も初期値の20秒から60秒になっている。
root@x300:~# upsc ups@localhost
Init SSL without certificate database
battery.charge: 92
battery.charge.low: 10
battery.charge.warning: 50
battery.date: 2001/09/25
battery.mfr.date: 2020/07/27
battery.runtime: 2176
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 13.5
battery.voltage.nominal: 12.0
device.mfr: American Power Conversion
device.model: APC RS 550S
device.serial: 4B2031P00380
device.type: ups
driver.name: usbhid-ups
driver.parameter.offdelay: 60
driver.parameter.ondelay: 70
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: no
driver.version: 2.7.4
driver.version.data: APC HID 0.96
driver.version.internal: 0.41
input.sensitivity: medium
input.transfer.high: 123
input.transfer.low: 82
input.voltage: 101.0
input.voltage.nominal: 100
ups.beeper.status: disabled
ups.delay.shutdown: 60
ups.firmware: 941.c6 .A
ups.firmware.aux: c6
ups.load: 13
ups.mfr: American Power Conversion
ups.mfr.date: 2020/07/27
ups.model: APC RS 550S
ups.productid: 0002
ups.realpower.nominal: 330
ups.serial: 4B2031P00380
ups.status: OL CHRG
ups.test.result: No test initiated
ups.timer.reboot: 0
ups.timer.shutdown: -1
ups.vendorid: 051d
ということで、ups.delay.shutdown が最大何秒まで設定可能か調べてないけど、必ずしも UPS と USB 接続するノードを一番最後まで起動させておく必要は無く、シャットダウンが他より早くても遅延時間が十分確保できていれば良い。
まあ、自鯖の場合はどのみち一番最後にシャットダウンするノードが master ではあるけれど。
コメント