Come configurare UPS per riavviare i server nella sequenza corretta?


12

Qui abbiamo alcuni server e quasi ognuno di essi ha un UPS dedicato. Esistono dipendenze tra loro, quindi devono essere attivate nella sequenza corretta. Alla fine stiamo riscontrando seri problemi con l'alimentatore, quindi i server vengono arrestati e quindi riavviati in ordine casuale quando viene ripristinata l'alimentazione. Non è un problema se i server sono stati spenti durante un blackout, è importante che funzionino correttamente senza alcun intervento umano una volta ripristinata l'alimentazione.

I nostri UPS sono abbastanza economici e l'unico parametro di configurazione utile per il mio obiettivo è power the load xx seconds after power is restored. In teoria, mettendo i giusti ritardi su ciascun UPS, posso correggere l'ordine di riavvio del server, ma non credo che l'UPS si comporterà come previsto.

È la strada giusta da percorrere?
Gli UPS di alto livello offrono altre opzioni per correggere la sequenza di riavvio?
Un'ultima nota: i miei Ups sono compresi tra 1000 e 2200 VA


1
Questa è una delle cose belle offerte da systemd: la capacità di definire le dipendenze appropriate nel processo di avvio. Attendere fino a quando il servizio X è disponibile prima di provare ad avviare il servizio Y.
MSalters

1
@MSalters La gestione delle dipendenze del sistema AFAIK funziona solo quando le unità sono gestite dalla stessa systemdistanza e non per servizi in esecuzione su server completamente diversi ...
HBruijn

1
@HBruijn: sorta di, i montaggi di rete, ad esempio, funzionano su più server. Vale a dire, se server1 monta un filesystem ospitato da server2, i servizi di serve1 che dipendono dal mount si fermeranno fino a quando server2 non avrà avviato quei servizi. E IIRC puoi anche avere server in attesa di DHCP (non chiedermi perché un server utilizza DHCP, ma è stato menzionato in una risposta)
MSalters

Risposte:


25

La risposta standard per questo è "per niente". Correggi il software per gestire i riavvii in ordine casuale. Se hai davvero bisogno di ALCUNI server per iniziare prima (esempio: Active Directory) inseriscili negli USV che probabilmente sopravvivranno MOLTO più a lungo. Un server basato su atomo a bassa potenza è abbastanza buono come controller Active Directory e sopravviverà un giorno con un piccolo USV.

Gli UPS di alto livello offrono altre opzioni per correggere la sequenza di riavvio?

No. Direi che in genere si presume che i programmatori siano abbastanza competenti per aggirare correttamente il problema.

Quello che POTREI FARE è:

  • Avvia i server "casualmente". Fatta eccezione per DHCP / Active Directory, non esiste nulla che richieda un ordine che non può essere risolto.
  • Avere un server di controllo dopo qualche tempo (5 minuti) avviare i servizi sui vari computer nell'ordine corretto.

Direi che questo tipo di installazione è molto più comune. Definirei qualsiasi software che REQUIRES avvia il server in un ordine particolare (al di fuori della pura infrastruttura) come rotto e inadatto al business.

Proprio come nota: la nostra configurazione è un USV 20kva a basso costo (basso costo perché ne abbiamo usato uno) per i server, con un USV 2000VA slave per una macchina che funge da "root" della rete (e macchina di backup). Slave significa che l'USV è dietro a quello grande - quindi passa alla batteria solo quando quello grande (che dura tra mezz'ora e 8 ore a seconda di quanto della nostra rete informatica è online) sta andando allo spegnimento del terminale.


2
Penso che a volte sia più facile a dirsi che a farsi (AD, come dici tu, è un esempio ovvio) ma sono d'accordo. La soluzione corretta è lavorare sull'eliminazione delle dipendenze per cose come l'ordine di avvio di server o servizi. Se non altro, su un'app Web dovrebbe essere possibile, ad esempio, scrivere il codice che dice "Se non riesco a connettermi al mio back-end," sleep "e riprovare più tardi anziché bloccarsi in modo orribile".
Rob Moir,

Il problema con AD non è nemmeno AD: è principalmente DHCP IPv4 che non è preparato per i computer che sono online prima del server DHCP. Ipv6 gestisce questo;)
TomTom

È vero. IPv4 è un dolore ... e continuo a far venire qui le persone che mi chiedono perché dobbiamo preoccuparci di "questa nuova spazzatura IPv6".
Rob Moir,

1
"In genere si presume che i programmatori siano abbastanza competenti per aggirare il problema" - non devi fare molta programmazione! No, in tutta serietà, ci sono moltissime ragioni per cui un sistema potrebbe essere necessario far apparire in un ordine specifico. Sì, il software dovrebbe "fallire con grazia" e riprovare connessioni interrotte, ma non è sempre possibile. Da quello che ricordo, alcune delle belle PDU hanno la possibilità di avviare / arrestare singole porte, quindi forse qualcosa potrebbe essere fatto lì.
SnakeDoc,

1
Ho dovuto cercare "USV" e ho trovato "Veicolo di superficie senza pilota". So che è sbagliato, ma voglio che sia giusto.
Braiam,

14

Distribuzioni di energia gestita Le unità (anziché l'UPS) spesso supportano ritardi personalizzati nell'abilitazione delle singole prese dopo il ripristino dell'alimentazione.

In genere ciò impedisce agli interruttori di circuito di scattare quando un armadio pieno di sistemi si accende contemporaneamente subito dopo il ripristino dell'alimentazione, ma può anche essere utilizzato per preservare l'ordine di avvio delle dipendenze del sistema.


Sì, esatto. Questa è una funzionalità avanzata e non si presume che l'USV sia effettivamente collegato ai server, ma alimenta i rack che quindi utilizzano le PDU per gestire i dettagli.
TomTom,

6

Ho avuto questo problema esatto. L'unica differenza è che abbiamo investito in robuste unità di alimentazione APC montate su rack (ad esempio APC SmartUPS 3000 ). Con il software di spegnimento della rete PowerChute di APC (software di spegnimento della rete PowerChute) , sono in grado di arrestare e far apparire i server in un ordine specifico. Un'altra utile funzionalità del software è stata quella di impostare l'arresto dei server all'ultimo minuto, vale a dire il calcolo della carica residua della batteria delle unità APC e l'arresto dei server con il tempo sufficiente per spegnerli correttamente invece di spegnersi.

Il software non è ... facile da usare ma non è difficile se si prende del tempo per capirlo. Se sei interessato a investire di più nella tua infrastruttura, questa è sicuramente la strada da percorrere.


1
Abbiamo anche gli Apc Smart Ups, alcuni dei quali sono relativamente vecchi e forse hanno batterie scariche. È difficile fare alcuni test su di loro perché sono in produzione. Inoltre non abbiamo alcun carico strano, intendo un carico che può sopportare un improvviso spegnimento senza problemi. Detto questo, ogni volta che ho simulato un blackout l'UPS si è comportato diversamente da quanto previsto, potrebbe essere dovuto a un'errata configurazione, ma la mia sensazione è che quegli UPS non siano molto affidabili.
Filippo,

@Filippo sicuramente YMMV ma ho un mix di SmartUPS 3000 e 3000XLM su più siti che usano il software PowerChute per 3 anni e dopo aver capito il software, c'è sicuramente una curva di apprendimento e sono necessari alcuni test, è stato piuttosto solido.
Winski Tech,

2

Sembra che le unità UPS siano a basso costo e non possano essere configurate per un tempo di attesa all'accensione specifico dopo il ripristino dell'alimentazione (alcune unità di fascia più alta lo sono). Per ottenere la stessa funzionalità, devi scegliere un host specifico per accendere sempre immediatamente (forse qualunque sistema sia autorizzato ad avviarsi in qualsiasi momento) e lasciare tutti gli altri server in uno stato spento (configurato nel BIOS per tornare al potere spento quando viene applicato AC e per onorare il pacchetto magico Wake On Lan per accendersi quando gli viene detto di farlo). Quindi, sull'host principale che si avvia, eseguire uno script / utility per programmare la trasmissione del pacchetto magico WOL a ciascun host.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.