Como desativar o UPS energy_saving com o NUT?

3

Eu tenho um UPS (Serial) Proline 650 instalado

Detalhes adicionais: o no-break possui uma conexão serial com uma única bateria SLA de 12v. (Ele não foi listado na lista de compatibilidade do NUT, mas depois de compilar o NUT-scanner foi detectado para funcionar com o driver blazer_ser. Parece funcionar perfeitamente, se eu deixar o ups-monitor rodando o servidor irá desligar automaticamente quando o UPS tiver A energia da bateria é de 30 segundos ou um minuto ou qualquer outra coisa SO: Debian 7 Wheezy O hardware é um servidor i5 simples, de baixo consumo de energia, com 1 disco rígido de 3,5 ".

PROBLEMA

O no-break desliga após cerca de 5 minutos enquanto a capacidade da bateria reportada ainda é 65% (provavelmente está subestimando a capacidade porque eu acabei de instalar uma nova bateria) e a voltagem da bateria é reportada pelo NUT como 12.1v antes de desligar a carga. O no-break desliga automaticamente após cerca de 5 minutos, independentemente de estar sendo pesquisado pelo servidor ou não e independentemente de haver uma carga leve ou sem carga. (Estou alimentando o servidor diretamente da energia da linha durante alguns dos testes para evitar perda inesperada de energia quando o UPS não economiza energia)

Eu esperava que com o NUT pesquisando o no-break em intervalos de poucos segundos para atualizações de status, o no-break perceberia que há um computador dependendo dele, mas o no-break não é inteligente. O no-break mostra o servidor como o desenho de 12% da capacidade máxima de saída, o que parece considerar "sem carga". Depois que o no-break desligar a carga da tensão nos terminais da bateria (bloco simples de 12 v) tem uma tensão sem carga de cerca de 12,6 v indicando que ainda está quase totalmente carregada.

Esse comportamento de desligamento automático é mencionado nos documentos do NUT como energy_saving (battery.energysave) .

O driver blazer_ser não parece oferecer uma maneira de desativar o energy_saving. Isso parece loucura que não há como manter a saída de carga do no-break ligada. Como uma UPS pode ser anunciada como fornecendo x quantidade de energia, mas se desliga prematuramente, sem uma maneira simples de corrigir o comportamento no software?

Esta é minha saída de status

$ upsc [email protected]
battery.charge: 100
battery.voltage: 13.60
battery.voltage.high: 13.00
battery.voltage.low: 10.40
battery.voltage.nominal: 12.0
device.type: ups
driver.name: blazer_ser
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ttyS0
driver.version: 2.6.4
driver.version.internal: 1.55
input.current.nominal: 3.0
input.frequency: 50.1
input.frequency.nominal: 50
input.voltage: 221.0
input.voltage.fault: 221.0
input.voltage.nominal: 220
output.voltage: 221.0
ups.beeper.status: enabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 12
ups.status: OL
ups.temperature: 25.0
ups.type: offline / line interactive

Também corri upsrw -u admin -p mypass -s -l nutdev1 , mas não houve opção de energia ou similar. Apenas coisas como beeper.toggle (testado, funcionando como esperado) e outras coisas básicas. Houve uma opção de carga instantânea desativada. Funciona. Houve uma opção de carregamento, tentei chamá-lo repetidamente na esperança de atrasar a contagem regressiva de energia, mas não funcionou. Houve também uma opção de desativação de desligamento, que também não ajudou.

Qualquer sugestão será bem-vinda. Pensei em algumas coisas que não gosto:

  • Tentei desativar a economia de energia mesmo que a opção não esteja listada %código% %código%
  • Experimente outros drivers
  • Obtenha outro no-break (não há garantia de que outros no-breaks disponíveis no local estejam funcionando bem com o NUT)
  • Conecte mais carga (desperdício de eletricidade) apenas para ser considerado uma carga
  • Hackear o no-break eletronicamente para enganar a detecção de carga (tempo não bem gasto)

Parece que há uma solução de software simples, por isso estou perguntando.

================

De acordo com a sugestão do BillThor, atualizei meu arquivo upsmon.conf:

$ grep -v '^#' /etc/nut/upsmon.conf
MONITOR [email protected] 1 foo2 bar2 master
MINSUPPLIES 1

SHUTDOWNCMD "/usr/bin/logger fake shutdown"

POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower

 NOTIFYFLAG ONLINE  SYSLOG+WALL
 NOTIFYFLAG ONBATT  SYSLOG+WALL
 NOTIFYFLAG LOWBATT SYSLOG+WALL
 NOTIFYFLAG FSD SYSLOG+WALL
 NOTIFYFLAG COMMOK  SYSLOG+WALL
 NOTIFYFLAG COMMBAD SYSLOG+WALL
 NOTIFYFLAG SHUTDOWN    SYSLOG+WALL
 NOTIFYFLAG REPLBATT    SYSLOG+WALL
 NOTIFYFLAG NOCOMM  SYSLOG+WALL
 NOTIFYFLAG NOPARENT    SYSLOG+WALL

RBWARNTIME 43200
NOCOMMWARNTIME 300

FINALDELAY 5

Liguei o no-break (sem alimentação de linha) três vezes consecutivas sem carregar. A capacidade e a voltagem da bateria não mudaram. Status LB nunca ocorreu. Aqui estão os syslogs

Dec  2 07:08:00 t upsmon[2000]: Startup successful
Dec  2 07:08:00 t upsd[1942]: User [email protected] logged into UPS [nutdev1]
Dec  2 07:08:30 t upsmon[2002]: UPS [email protected] on battery
Dec  2 07:13:34 t blazer_ser[1939]: Communications with UPS lost: status read failed!
Dec  2 07:13:36 t upsd[1942]: Data for UPS [nutdev1] is stale - check driver
Dec  2 07:13:40 t upsmon[2002]: Poll UPS [[email protected]] failed - Data stale
Dec  2 07:13:40 t upsmon[2002]: Communications with UPS [email protected] lost
Dec  2 07:13:45 t upsmon[2002]: Poll UPS [[email protected]] failed - Data stale
Dec  2 07:13:50 t upsmon[2002]: Poll UPS [[email protected]] failed - Data stale
Dec  2 07:13:55 t upsmon[2002]: Poll UPS [[email protected]] failed - Data stale
Dec  2 07:13:55 t upsd[1942]: Client [email protected] set FSD on UPS [nutdev1]
Dec  2 07:13:55 t upsmon[2002]: Executing automatic power-fail shutdown
Dec  2 07:13:55 t upsmon[2002]: Auto logout and shutdown proceeding
Dec  2 07:14:00 t logger: fake shutdown
Dec  2 07:17:31 t blazer_ser[1939]: Communications with UPS re-established
Dec  2 07:17:31 t upsd[1942]: UPS [nutdev1] data is no longer stale
Dec  2 07:22:38 t blazer_ser[1939]: Communications with UPS lost: status read failed!
Dec  2 07:22:40 t upsd[1942]: Data for UPS [nutdev1] is stale - check driver
Dec  2 07:25:23 t blazer_ser[1939]: Communications with UPS re-established
Dec  2 07:25:23 t upsd[1942]: UPS [nutdev1] data is no longer stale
Dec  2 07:29:54 t upsd[1942]: Instant command: [email protected] did shutdown.stop on nutdev1
Dec  2 07:29:55 t blazer_ser[1939]: instcmd: command [shutdown.stop] handled
Dec  2 07:30:17 t upsd[1942]: Instant command: [email protected] did shutdown.stop on nutdev1
Dec  2 07:30:18 t blazer_ser[1939]: instcmd: command [shutdown.stop] handled
Dec  2 07:30:25 t upsd[1942]: Instant command: [email protected] did shutdown.stop on nutdev1
Dec  2 07:30:26 t blazer_ser[1939]: instcmd: command [shutdown.stop] handled
Dec  2 07:30:31 t blazer_ser[1939]: Communications with UPS lost: status read failed!
Dec  2 07:30:33 t upsd[1942]: Data for UPS [nutdev1] is stale - check driver
Dec  2 07:31:32 t blazer_ser[1939]: Communications with UPS re-established
Dec  2 07:31:32 t upsd[1942]: UPS [nutdev1] data is no longer stale

Como você pode ver, tentei limpar o sinalizador / estado do FSD executando este comando (o mesmo comando que pode desligar a carga instantaneamente ou alternar o sinal sonoro) %código% Mas não esclareceu o estado do FSD.

Veja algumas informações de status (removi as linhas irrelevantes)

#I ran this immediately after unplugging line power after 07:08:30
$ upsc [email protected]
battery.charge: 69
battery.voltage: 12.20
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 0
ups.status: OB

**$ date && upsc [email protected]**
Tue Dec  2 07:11:29 EST 2014
battery.charge: 65
battery.voltage: 12.10
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 0
ups.status: OB

#none of these fields changed the entire time after this, except ups.status

**date && upsc [email protected]**
Tue Dec  2 07:12:29 EST 2014
battery.charge: 65
battery.voltage: 12.10
ups.status: OB

$ date && upsc [email protected]
Tue Dec  2 07:18:26 EST 2014
battery.charge: 65
battery.voltage: 12.10
ups.status: FSD OB
ups.temperature: 25.0

#there were a few more, all identical, then finally

**$ date && upsc [email protected]**
Tue Dec  2 07:30:28 EST 2014
battery.charge: 65
battery.voltage: 12.10
ups.status: FSD OB

$ date && upsc [email protected]
Tue Dec  2 07:31:11 EST 2014
Error: Data stale

Estes são os comandos instantâneos supostamente suportados pelo meu UPS

**upscmd -u upsadmin1 -p mypass -l nutdev1**
Instant commands supported on UPS [nutdev1]:

beeper.toggle - Toggle the UPS beeper  **works**
load.off - Turn off the load immediately **works**
load.on - Turn on the load immediately **seems to do nothing**
shutdown.return - Turn off the load and return when power is back
shutdown.stayoff - Turn off the load and remain off
shutdown.stop - Stop a shutdown in progress **doesn't prevent shutdown or remove FSD flag**
test.battery.start - Start a battery test
test.battery.start.deep - Start a deep battery test
test.battery.start.quick - Start a quick battery test
test.battery.stop - Stop the battery test

Agora eu tentei ainda mais possibilidades. Eu tentei executar test.battery.start.quick para recalibrar a bateria um pouco, com uma carga de 35%. Ele funcionou por um minuto ou dois na bateria, em seguida, voltou para a linha de energia. Então eu tive mais duas ideias. Tentei desativar o bipe, esperando que o no-break permanecesse ligado, mas ele se desligou normalmente, após 5 minutos. Então eu tive outra ideia. Puxei o plugue de alimentação e, em seguida, executei o test.battery.start, esperando que eu pudesse executar um "teste de bateria" indefinidamente. Mas o UPS STILL desligou após 5 minutos.

Basicamente, este no-break é bom para desligar e não muito mais. Eu vou pegar outro no-break.

    
por user1862165 02.12.2014 / 02:06

1 resposta

1

A menos que você esteja usando comandos em upssched.conf , o NUT deve aguardar até que o no-break relate uma bateria fraca antes de fazer o desligamento. Verifique se você não tem nada programado lá.

Quando o NUT iniciar o desligamento, ele acionará o no-break para reciclagem após um tempo limite. Isso é para garantir que o servidor volte a funcionar se a energia for restaurada antes que o no-break fique sem bateria. A hora é especificada como FINALDELAY em upsmon.conf .

Você pode querer ativar o registro de todas as notificações para todos os eventos em upsmon.conf . Isso pode permitir que você determine por que o sistema está sendo desligado tão cedo. Estas são as configurações que eu uso:

NOTIFYFLAG ONBATT   SYSLOG+WALL
NOTIFYFLAG ONLINE   SYSLOG+WALL
NOTIFYFLAG FSD      SYSLOG+WALL
NOTIFYFLAG SHUTDOWN SYSLOG+WALL

NOTIFYFLAG LOWBATT  SYSLOG
NOTIFYFLAG REPLBATT SYSLOG

NOTIFYFLAG COMMOK   SYSLOG
NOTIFYFLAG COMMBAD  SYSLOG+WALL
NOTIFYFLAG NOCOMM   SYSLOG+WALL
NOTIFYFLAG NOPARENT SYSLOG+WALL

Se o NUT estiver encerrando as bases em um script timer, esse é o tipo de linha que eu esperaria ver no log. Parece que o no-break para de se comunicar após 5 minutos, e o NUT está fazendo um último FSD (desligamento forçado). Isso é o que eu gostaria que fizesse. Cinco minutos devem ser longos o suficiente para indicar que a energia provavelmente não retornará rapidamente.

Dec  2 07:13:55 t upsd[1942]: Client [email protected] set FSD on UPS [nutdev1]

Eu esperaria que o NUT usasse shutdown.return para sinalizar o desligamento do UPS. Isso deve fazer com que o no-break reinicie quando a energia for restaurada e faça um breve desligamento se a energia for restaurada antes de o desligamento ser concluído.

Espero que os ups.delay.shutdown e ups.delay.start sejam os ajustes para o ciclo de reinício do encerramento do UPS. ups.delay.shutdown deve permitir que o servidor conclua o ciclo de desligamento e talvez precise ser aumentado. ups.delay.start deve ser o tempo que leva para a energia se estabilizar após a energia ter retornado. Também permite algum tempo para as baterias recarregarem antes que a carga seja aplicada.

Normalmente, você não vai querer gastar as pilhas para baixo antes de desligar. Você quer ter bateria suficiente para passar por outro ciclo ou dois no caso de a energia cair novamente.

    
por 02.12.2014 / 02:31

Tags