View Full Version : Verifica dello stato di un computer (acceso/spento) via lan
papafoxtrot
01-08-2009, 23:13
Buonasera a tutti
allora il mio problema è piuttosto complicato e di reti non sono espertissimo.
Si tratta di un progetto per il quale più computer (6-10) dovranno essere alimentati da due alimentatori connessi in parallelo, in modo da costituire un sistema ridondante.
In sostanza per risolvere alcuni problemi di accensione/spegnimento ho ritenuto conveniente, se possibile, comandare l'accensione e lo spegnimento dei computer via lan.
In sostanza si tratta di scrivere un software che invii in rete il segnale di accensione ad uno dei computer, al quale è connesso il verde dell'alimentatore, e poco dopo, ad alimentatore partito, invii i segnali di accensione a tutti gli altri computer, in modo che questi ricevano dagli alimentatori la corrente necessaria. Dopodiché lo stesso software dovrebbe inviare a tutti i computer meno uno (quello connesso all'alimentatore), il segnale di spegnimento, e verificare che tutti i sistemi si siano effettivamente arrestati prima di inviare anche all'ultimo il suddetto segnale. In questo modo si assicura l'alimentazione necessaria a tutti i computer fino all'arresto del sistema.
Ora: è possibile verificare via LAN se un computer è acceso o spento? Voglio dire... non se il sistema è avviato e pronto, ma se il computer è effettivamente in funzione o no... Il software dovrebbe riconoscere se il sistema sta ancora lavorando o ha completato la sequenza di spegnimento. E' possibile? Per ora mi basterebbe sapere questo!
Grazie!
Buonasera a tutti
allora il mio problema è piuttosto complicato e di reti non sono espertissimo.
Si tratta di un progetto per il quale più computer (6-10) dovranno essere alimentati da due alimentatori connessi in parallelo, in modo da costituire un sistema ridondante.
In sostanza per risolvere alcuni problemi di accensione/spegnimento ho ritenuto conveniente, se possibile, comandare l'accensione e lo spegnimento dei computer via lan.
In sostanza si tratta di scrivere un software che invii in rete il segnale di accensione ad uno dei computer, al quale è connesso il verde dell'alimentatore, e poco dopo, ad alimentatore partito, invii i segnali di accensione a tutti gli altri computer, in modo che questi ricevano dagli alimentatori la corrente necessaria. Dopodiché lo stesso software dovrebbe inviare a tutti i computer meno uno (quello connesso all'alimentatore), il segnale di spegnimento, e verificare che tutti i sistemi si siano effettivamente arrestati prima di inviare anche all'ultimo il suddetto segnale. In questo modo si assicura l'alimentazione necessaria a tutti i computer fino all'arresto del sistema.
Ora: è possibile verificare via LAN se un computer è acceso o spento? Voglio dire... non se il sistema è avviato e pronto, ma se il computer è effettivamente in funzione o no... Il software dovrebbe riconoscere se il sistema sta ancora lavorando o ha completato la sequenza di spegnimento. E' possibile? Per ora mi basterebbe sapere questo!
Grazie!
con un ping puoi verificare se il computer è collegato in LAN o meno.
Per sapere se il computer è acceso l'accesso alla LAN e la configurazione dovrebbe essere la prima o comunque una delle primissime cose che il computer fa, ed analogamente per lo spegnimento la disconnessione dalla rete dovrebbe essere una delle ultimissime cose che il computer fa. Magari con qualche distribuzione Linux puoi configurare il tutto in modo da avere un comportamento simile, non so se con Windows puoi fare un qualcosa di analogo.
Senza contare il fatto che si può sempre verificare che dopo essersi disconnesso dalla LAN si potrebbe verificare un qualsiasi intoppo che non consente lo spegnimento del computer, e quindi non potresti sapere (se non andando fisicamente a vedere quel pc) se si è effettivamente spento o meno.
In sostanza via LAN puoi verificare se il computer è collegato o meno alla LAN, ma il computer potrebbe essersi acceso e non essere collegato alla LAN (per qualsivoglia problema, chessò cavo rotto), e lo stesso per lo spegnimento, il computer potrebbe non essere più collegato alla LAN ma non essersi ancora spento.
Spero di esserti stato utile ;)
papafoxtrot
02-08-2009, 23:14
Grazie, mi hai detto già molto.
Ciò che mi preoccupa è proprio questo: sapere se una volta che si è disconnesso dalla lan potrebbe ancora intopparsi.. O ad esmepio installare qualche aggiornamento automatico... Perché in tal caso andrebbe a finire che quello che spegne l'alimentatore toglie corrente a tutto!
Poi vorrei chiedere: che cosa succede se la scheda madre rimane alimentata dopo l'arresto del sistema? Niente giusto? Semplicemente schermo nero... o sbaglio?
Purtroppo credo che tutto ciò dovrà funzionare con linux anche se per motivi essenzialmente di costi di licenze sarebbe bello far andare il tutto con linux...
Grazie, mi hai detto già molto.
Ciò che mi preoccupa è proprio questo: sapere se una volta che si è disconnesso dalla lan potrebbe ancora intopparsi.. O ad esmepio installare qualche aggiornamento automatico... Perché in tal caso andrebbe a finire che quello che spegne l'alimentatore toglie corrente a tutto!
L'eventualità potrebbe verificarsi, e il tempo necessario per gli aggiornamenti può essere variabile e in genere non noto a priori, quindi il computer che toglie la corrente potrebbe farlo prima dell'effettivo spegnimento.
Poi vorrei chiedere: che cosa succede se la scheda madre rimane alimentata dopo l'arresto del sistema? Niente giusto? Semplicemente schermo nero... o sbaglio?
Normalmente niente se non un consumo di energia (minimo comunque), ti consiglio però di mettere i computer dietro qualche presa protetta da sbalzi di tensione per evitare possibili danni.
Purtroppo credo che tutto ciò dovrà funzionare con linux anche se per motivi essenzialmente di costi di licenze sarebbe bello far andare il tutto con linux...
volevi dire che dovrà funzionare con windows forse? ;)
cybergatto_89
03-08-2009, 18:50
bhe, se usi linux... io penso che più che far andare il pc che comanda l'alimentatore a controllare se gli altri sono accesi sarebbe meglio fare uno script che notifichi, come ultimissima cosa prima della disattivazione della rete, lo spegnimento del pc.
oppure potresti adottare una soluzione hardware, sicuramente più veritiera, potresti acquisistare una scheda di input digitale e collegare ai suoi ingressi dei punti in tensione dei pc da controllare, e quindi leggendo dal pc principale lo stato della scheda potresti sapere con certezza lo stato dei pc.
P.S. informati bene, se nn ricordo male, il cavo che accende l'alimentatore (verde o grigio a seconda del modello) lo accende quando collegato a massa (power good) quindi in teoria se tu collegassi in parallelo tutti i powergood delle schede madri l'alimentatore non si spegnerebbe fino a che TUTTE le schede madri non si siano spente.
Tasslehoff
03-08-2009, 21:40
Per comandare le accensioni sicuramente il modo più comodo ed efficente è usare il wake on lan (http://gsd.di.uminho.pt/jpo/software/wakeonlan/mini-howto/), devi abilitarlo sulla scheda di rete di ciascun pc e abilitare il tutto anche lato sistema operativo.
L'uso di PSU ridondate di per se dovrebbe essere trasparente se il pc/server è acpi compliant, non è affar tuo accendere, spegnere o manovrare le PSU.
Per lo spegnimento ogni sistema operativo ha un apposito comando che ti permette di gestire il tutto comodamente da remoto (il comando shutdown esiste sia in linux che in Windows, la sintassi ovviamente è differente cmq estremamente banale).
Nel caso tu debba usare Vista tieni presente che permette di impostare un delay massimo di 600 secondi, se dovessi avere bisogno di più tempo puoi facilmente aggirare il problema installando Cygwin e usando il comando sleep, es: "sleep 650 && shutdown -s -f", sleep aspetta in questo caso 650 secondi e poi lancia lo spegnimento (-s) con chiusura forzata di tutti processi (-f).
Per lanciare lo shutdown da remoto il modo più semplice secondo me è usare ssh e lanciare il comando passandolo come argomento di ssh.
Ormai OpenSSH è installato di default sulla gran parte delle distribuzioni per cui non è un problema. Su Windows non è integrato ma l'installazione usando Cygwin (http://www.cygwin.com/) è estremamente semplice e veloce (LINK (http://pigtail.net/LRP/printsrv/cygwin-sshd.html)).
Una volta installato il server ssh su ciascun pc puoi facilmente autenticare i vari pc usando i certificati ssh, trovi guide ovunque sul web.
La cosa meno intuitiva è verificare in automatico tramite script se un pc è acceso o meno, farlo a mano non è un problema, ma in automatico non mi pare banale, almeno al momento non mi viene in mente nulla di comodo.
Ricorda però che per verificare se un host è attivo o meno non basta pingarlo, se l'host filtra o blocca i pacchetti icmp sei fritto e rischi di considerare spenta una macchina che non lo è.
Al termine del ping prova sempre a verificare se c'è nella arp cache del pc da cui hai pingato un record che si riferisce all'ip che vuoi verificare (basta un banale "arp -a").
papafoxtrot
06-08-2009, 12:09
@cybergatto: devo verificare, io ero convinto che un impulso al verde accendesse lalimentatore, ed un'altro impulso lo spegnesse. Se così non fosse non ci sarebbe alcun problema, come dici tu basterebbe collegare in parallelo tutti i verdi delle schede madri e unirli al verde dell'alimentatore! Sarebbe magnifico!
@Tassle mi sa che non hai capito bene il problema, che non è la ridondanza dell'alimentatore, ma il fatto che l'alimentatore deve fornire più computer. Se quello che ne comanda l'accensione/spegnimento si arrestasse prima degli altri questi ultimi rimarrebbero senza corrente e andrebbero incontro a spegnimento forzato. Per questo cercavo un modo per verificare lo stato di arresto di tutti i computer e solo allora comandare lo spegnimento di quello che controlla l'alimentatore.
Un'altra idea che mi era venuta era quella di accendere/spegnere l'alimentatore manualmente: ogni scheda madre alimenterebbe un led che si spegne all'arresto del sistema. Quando tutti i led fossero spenti potrei spegnere l'alimentatore con un pulsante. Una soluzione in qualche modo "alla vecchia" insomma...
Ma a questo punto cybergatto mi ha messo la pulce nell'orecchio!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.