Risparmio energia - Sospensione / riattivazione del server quando si accede

9

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 direzione giusta per ottenere questo facilmente?

Grazie

    
posta KP65 17.05.2011 - 11:06

5 risposte

3

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

  1. Devi abilitare WOL sulla tua scheda madre;
  2. Installa ethtool: sudo apt-get install ethtool ;
  3. Imposta le opzioni di 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.

testato; informazioni dal link wiki

    
risposta data Rinzwind 17.05.2011 - 11:48
2

Oltre alla modalità di sospensione, ciò che stai cercando è di ibernazione, 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 molte esercitazioni 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 "Accensione di Ring on Lan".

Il server non ha bisogno di più impostazioni rispetto alla configurazione di risparmio energia adeguata per far scendere il sistema dopo un'ora di inattività (potrebbe essere fatto da Sistema & gt; Amministrazione & gt; Gestione alimentazione).

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

Buona fortuna

    
risposta data sergio.hs84 03.12.2012 - 11:16
2

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

Ho un raspberry pi quindi 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 indicato negli altri post.

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

Lo script di risveglio è il seguente:

nano ~/wol.sh

Quindi:

#!/bin/bash

pingInterval=60 #time interval, in seconds, between checks that the server is still awake.
target=192.168.x.x  #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 venga eseguita 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 in fondo

@reboot sh /home/pi/wol.sh > /dev/null
    
risposta data Travis Clark 22.09.2014 - 19:48
0

Con WoL abilitato sul tuo server per far sì che si attivi il traffico specifico del protocollo, è necessario qualcosa come uno script in esecuzione sul router che abbia regole di pacchetto e possa inviare il pacchetto magico WoL quando riceve la richiesta.

Risveglio del server Web esempio

    
risposta data Cas 18.05.2011 - 19:08
0

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 ethtool , 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 schede supportate da Linux, una che ho trovato è Intel Gigabit Netzwerkadapter Pro / 1000 GT PCI.

Una soluzione alternativa è, se hai una scheda che non supporta tutte le modalità: Quasi tutti i driver linux supportano la modalità g = & gt; pacchetto magico. Quindi devi accendere esplicitamente il tuo server prima di usarlo.

    
risposta data aha 17.03.2013 - 05:02

Leggi altre domande sui tag