Risparmio energia - Server di sospensione / riattivazione quando si accede


9

Ho un HP Proliant Microserver senza testa con Ubuntu installato. Questa macchina ha condivisioni di samba su di esso che servono media e di solito io rdp o ssh. Ora il mio problema è che voglio che la macchina vada in modalità di sospensione (quindi lo stato viene salvato dal ram al disco rigido) e sembrerà che sia spento dopo un'ora di inattività.

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

Grazie

Risposte:


3

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. Installare ethtool: sudo apt-get install ethtool;
  3. Set Wake-on-LAN opzioni: sudo ethtool -s eth0 wol g;
  4. Abilitalo all'avvio del sistema con uno script init. C'è uno script di init nel link wiki.

Non testato; informazioni dal link wiki


2

Oltre alla modalità di sospensione, ciò che stai cercando è l'ibernazione, poiché desideri salvare il tuo stato sul disco rigido e arrestare 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 offre questa funzione, ma è disabilitata per impostazione predefinita. Controllalo! Nel mio caso, si chiama "Power on by Ring on Lan".

Il server non ha bisogno di più impostazioni della configurazione di risparmio energia adatta per spegnere il sistema dopo un'ora di inattività (potrebbe essere fatto da Sistema> Amministrazione> Risparmio energia).

Ovviamente, devi aspettare un po 'di tempo dopo aver inviato il pacchetto WOL, poiché il tuo sistema deve essere disattivato e potrebbero essere necessari alcuni.

In bocca al lupo


2

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

Ho un Raspberry Pi, quindi l'ho usato perché è a basso consumo e non mi dispiace tenerlo sempre acceso, ovviamente potrebbe essere eseguito da qualsiasi macchina Linux.

L'ultima soluzione che ho trovato per me stesso è stata scrivere un piccolo script bash. Le dipendenze di lampone-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 wake è 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.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 principale è che viene eseguito dal mio raspberry-pi che riattiverà il server se nota una singola richiesta arp per il server. Se il server è sveglio, non ascolterà una richiesta arp ma invia qualche ping ogni tanto per assicurarsi che sia ancora attivo.

Ho chiamato il file wol.sh e l'ho reso eseguibile. Quindi inseriscilo nel crontab sudo per avviare @reboot come root. Questo è per tcpdump che necessita 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

0

Con WoL abilitato sul tuo server per svegliarlo con il traffico del protocollo specifico, avrai bisogno di qualcosa come uno script in esecuzione sul tuo router che abbia regole di pacchetto e possa inviare il pacchetto magico WoL quando riceve la richiesta.

Esempio di attivazione del server web


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: pumbgin 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 si dispone di una scheda che non supporta tutte le modalità: quasi tutti i driver linux supportano il pacchetto g mode => magic. Quindi devi accendere esplicitamente il tuo server prima di usarlo.

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.