Risparmio energia – Server di sospensione / ritriggerszione all’accesso

Ho un microserver HP Proliant senza testa con Ubuntu installato. Questa macchina ha condivisioni di samba su di esso che servono i media e io di solito rdp o ssh in esso. Ora il mio problema è che voglio che la macchina entri in modalità di sospensione (quindi lo stato viene salvato dalla ram sull’hard disk) e sembrerà che si spenga dopo un’ora di inattività.

Se c’è qualche tentativo di accedere alla condivisione di samba tramite LAN, vorrei che si svegliasse. Ora la mia scheda madre supporta questa funzione, qualcuno può indicarmi la giusta direzione per ottenerla facilmente?

Grazie

La migliore istruzione che ho trovato sul web è stata la wiki XBMC per WOL . In breve (maggiori informazioni nel link):

  1. È necessario abilitare WOL sulla scheda madre;
  2. Installa ethtool: sudo apt-get install ethtool ;
  3. Impostare le opzioni Wake-on-LAN: sudo ethtool -s eth0 wol g ;
  4. Abilitarlo all’avvio del sistema con uno script di init. C’è uno script di init nel link wiki.

Non testato; informazioni dal link wiki

Oltre alla modalità di sospensione, quello che stai cercando è ibernato, poiché desideri salvare il tuo stato nel tuo disco rigido e spegnere completamente il server.

Quindi, come molti hanno sottolineato, la risposta è WOL (Wake On Lan). Ci sono molti tutorial a riguardo, ma soprattutto devi impostare quanto segue:

  • Il router deve bypassare il pacchetto magico (come viene chiamato il pacchetto WOL) sul server, quindi è necessario eseguire il port forwarding. Di solito si trova nella sezione LAN. Le porte predefinite sono 7 e 9.
  • La scheda madre deve essere in ascolto sulla porta LAN quando è spenta. La maggior parte dei moderni MB fornisce questa funzionalità, ma è disabilitata per impostazione predefinita. Controllalo! Nel mio caso, si chiama “Accendi di Ring on Lan”.

Il server non necessita di più impostazioni rispetto alla configurazione di risparmio energia adeguata per arrestare il sistema dopo un’ora di inattività (potrebbe essere eseguito da Sistema> Amministrazione> Gestione alimentazione).

Ovviamente, devi attendere un po ‘di tempo dopo aver inviato il pacchetto WOL, poiché il tuo sistema ha bisogno di de-hibernate e potrebbero essere necessari alcuni.

In bocca al lupo

Ho deciso che volevo una soluzione per ritriggersre il mio media server automaticamente quando si accede che non dipendeva da dd-wrt.

Ho un raspberry pi così l’ho usato perché è a bassa potenza e non mi dispiace tenerlo acceso tutto il tempo, ovviamente potrebbe essere eseguito da qualsiasi macchina Linux.

La soluzione finale che ho trovato per me stava scrivendo un piccolo script bash. Le dipendenze di raspberry-pi sono etherwake e tcpdump. Entrambi non sono installati di default su rasbian. Anche sul server Wake On Lan deve essere abilitato come menzionato negli altri post.

 sudo apt-get install etherwake sudo apt-get install tcpdump 

Lo script di risveglio è il seguente:

 nano ~/wol.sh 

Poi:

 #!/bin/bash pingInterval=60 #time interval, in seconds, between checks that the server is still awake. target=192.168.xx #WOL target ip address targetMAC=00:11:22:33:44:55 #WOL target MAC wake () { tcpdump -i eth0 -c 1 -p host $target etherwake $targetMAC #echo WOL sent to $target at $targetMAC return } while sleep $pingInterval; do varPing=`ping -s 1 -c 2 $target > /dev/null; echo $?` if [ $varPing -eq 0 ]; then #echo ping success else #echo ping fail wake fi done 

L’idea primaria è che viene eseguito dal mio raspberry-pi che riattiverà il server se noterà una singola richiesta arp per il server. Se il server è attivo, non ascolterà alcuna richiesta arp ma invierà alcuni ping di tanto in tanto per assicurarsi che sia ancora attivo.

Ho chiamato il file wol.sh e l’ho reso eseguibile. Quindi inseriscilo in sudo crontab per avviare @reboot come root. Questo è per tcpdump che ha bisogno di un accesso elevato per ascoltare eth0 ed etherwake.

 sudo chmod +x /home/pi/wol.sh sudo crontab -e 

aggiungi questo al fondo

 @reboot sh /home/pi/wol.sh > /dev/null 

Con WoL abilitato sul tuo server per farlo risvegliare a un traffico di protocollo specifico avresti bisogno di qualcosa come uno script in esecuzione sul tuo router che abbia regole per i pacchetti e possa inviare il pacchetto magico WoL quando riceve la richiesta.

Esempio di wakeup del server Web

Wake On Lan è la chiave, quasi tutte le carte oggi supportano tutte le modalità (ma non in linux :().

La soluzione più semplice è una scheda che ha un driver Linux funzionante che supporta le modalità Wake On Lan: pumbg in pumbg , vuoi qualcosa come la modalità unicast. Quindi il tuo computer si avvia non appena accedi al suo indirizzo di rete. Ma è ancora più difficile ottenere un elenco di tabs supportate da Linux, una che ho trovato è Intel Gigabit Netzwerkadapter Pro / 1000 GT PCI.

Una soluzione è, se si dispone di una scheda che non supporta tutte le modalità: quasi tutti i driver linux supportano la modalità g => pacchetto magico. Quindi devi accendere esplicitamente il tuo server prima di usarlo.