Un server, due APC UPS su alimentatori ridondanti: Come triggersre l'arresto?

Ho un server incollato e le sue alimentazioni ridondanti sono collegate a due APC Smart-UPS 3000 XLM. Ogni UPS è collegato a due diverse sorgenti di alimentazione.

Sono in esecuzione due istanze di apcupsd, ognuna collegata al proprio UPS. Possono entrambi rilevare quando un UPS è acceso sulla batteria e each UPS può quindi triggersre un arresto sul server.

La domanda è: come NON chiudere se solo un UPS esaurisce la batteria?

Nota: Smart-UPS 3000 XLM dispone di una function "Power Sync" che è in grado di connettersi al proprio peer e di rilevarne lo stato. Ma quando ho tolto la spina di uno di loro, l'ordine di arresto è stato comunque inviato. Sto pensando di modificare gli script di arresto per controllare con "apcaccess" se gli altri up sono in discesa. Qualsiasi esperienza su questo sarebbe apprezzato!

  • Switch PowerConnect, firewall di Juniper e ridondanza esx
  • Il DNS Round-Robin è "abbastanza buono" per il contenuto statico di bilanciamento del carico?
  • Ridondanza dei dati Backup / backup
  • Failover "semplice" a un server separato geograficamente?
  • Puoi impostare un IP di backup per il tuo server in DNS?
  • SonicWALL HA w / Dual WAN HSRP da due switch ridondanti
  • Raggiungere Cinque Nove
  • Qual è la considerazione hardware e software che un sito web importnte richiede per gestire correttamente i server di 1000+?
  • 2 Solutions collect form web for “Un server, due APC UPS su alimentatori ridondanti: Come triggersre l'arresto?”

    Attualmente, quando uno dei due UPS muore, l'evento doshutdown viene triggersto e viene eseguito lo script predefinito tramite apccontrol . Lo script doshutdown ignora il secondo UPS, in quanto non sono collegati all'evento e procedono normalmente con l'arresto.

    Per avere gli events doshutdown leggermente connessi, le due istanze di apcupsd necessitano di un file di configuration specificamente personalizzato. La differenza risiede nella directory da cui devono essere eseguiti gli script degli events.

    Proprietà principali di primo /etc/apcupsd/apcupsd.ups0.conf , in /etc/apcupsd/apcupsd.ups0.conf

     SCRIPTDIR /etc/apcupsd/ups0 UPSNAME ups0 DEVICE /dev/ups0 PWRFAILDIR /etc/apcupsd/ups0 NOLOGINDIR /etc/apcupsd/ups0 NISPORT 3551 EVENTSFILE /var/log/apcupsd.0.events 

    E per gli /etc/apcupsd/apcupsd.ups1.conf , in /etc/apcupsd/apcupsd.ups1.conf

     SCRIPTDIR /etc/apcupsd/ups1 UPSNAME ups1 DEVICE /dev/ups1 PWRFAILDIR /etc/apcupsd/ups1 NOLOGINDIR /etc/apcupsd/ups1 NISPORT 3552 EVENTSFILE /var/log/apcupsd.1.events 

    Ogni scriptdir dovrebbe get una copia degli script predefiniti.
    Vogliamo personalizzare lo script doshutdown , che non spegnerà direttamente la macchina, ma deve verificare se l'altro UPS è ancora in function o è in modalità di arresto.

    Nella parte superiore dello script doshutdown potremmo aggiungere qualcosa di simile

    per ups0

     if [ ! -f /tmp/ups1.is.down ] then touch /tmp/ups0.is.down exit 99 fi 

    per ups1

     if [ ! -f /tmp/ups0.is.down ] then touch /tmp/ups1.is.down exit 99 fi 

    lo stato 99 ha un significato speciale, che indica apccontrol per fermare l'azione in corso. Le cinque righe controllano se è stato creato l'altro file UPS down-down; se no , il file in discesa viene creato per gli ups che sono in basso e si esce. Se , significa che l'altro UPS è in discesa, anche questo sta scendendo, quindi lo script dovrebbe continuare e spegnere la macchina.

    I file /tmp/usp[01].is.down indicano se gli /tmp/usp[01].is.down [01] sono attualmente in discesa.

    Importnte: lo script init.d di apcupsd dovrebbe rimuovere questi file se sono stati creati in una precedente session:

     rm -f /tmp/usp[01].is.down 

    Infine, le directory create sopra, / etc / apcupsd / ups [01] dovrebbero essere concessi l'accesso all'utente apcupsd (oa qualsiasi utente rilevante che esegue le istanze).

     chown -R apcupsd /etc/apcupsd/ups[01] 

    Si prega di leggere la documentazione dettagliata .

    modifica ha fissato i nomi /tmp/ups[01].is.down , la mancava .is .

    Guarda NUT. Gestisce questo bene. Definire il numero di alimentatori da each UPS e il numero di alimentatori necessari. La spegnimento non verrà triggersto finché non ci sono alimentatori sufficienti non sull'UPS.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.