Non tutto l'homelab deve restare acceso giorno e notte. Un server di backup che lavora un'ora a notte, una workstation usata per esperimenti nel fine settimana, un secondo NAS che riceve la replica dei dati: tenerli accesi sempre significa pagare energia per macchine inattive. La soluzione è accenderli solo quando servono, con il Wake-on-LAN o con l'accensione programmata dall'orologio della scheda madre.
Come funziona il Wake-on-LAN
Quando un computer è spento ma collegato alla corrente, la scheda di rete può restare alimentata in modalità a basso consumo, in ascolto di un segnale specifico: il magic packet. Questo pacchetto contiene sei byte di valore FF seguiti dall'indirizzo MAC della scheda ripetuto sedici volte. Quando la scheda lo riconosce, chiede alla scheda madre di accendere il sistema.
Il pacchetto viene di solito inviato in broadcast sulla rete locale, spesso come datagramma UDP sulla porta 9 o 7. Poiché è broadcast, normalmente non attraversa i router: il mittente deve trovarsi nella stessa rete o VLAN della macchina da svegliare, oppure serve un dispositivo che lo inoltri.
Configurare la macchina da accendere
Nel BIOS o UEFI
L'opzione ha nomi diversi a seconda del produttore: «Wake on LAN», «Power on by PCI-E», «Resume by LAN». Va attivata, e spesso occorre disattivare modalità di risparmio profondo, come certi stati di spegnimento ecologico, che tolgono corrente anche alla scheda di rete.
Nel sistema operativo
Su Linux lo strumento ethtool mostra e imposta il comportamento della scheda:
ethtool enp3s0 | grep Wake-on
ethtool -s enp3s0 wol g
La lettera g indica il risveglio tramite magic packet. Su molte distribuzioni l'impostazione si perde al riavvio, quindi va resa permanente tramite la configurazione di rete, per esempio con l'opzione dedicata di systemd-networkd o NetworkManager, oppure con una piccola unità systemd.
Su Windows l'opzione si trova nelle proprietà avanzate della scheda di rete, nella gestione energetica.
Inviare il pacchetto
Gli strumenti sono molti:
- da Linux, comandi come
wakeonlanoetherwakeseguiti dall'indirizzo MAC; - da un router con firmware avanzato, che spesso include una pagina per il Wake-on-LAN;
- da un servizio dell'homelab sempre acceso, come un piccolo single-board computer, che può svegliare le altre macchine su richiesta o a orari fissi;
- dal telefono, con app dedicate, quando si è sulla rete di casa o collegati tramite VPN.
Per accendere un server da fuori casa non serve esporre nulla su Internet: basta entrare nella rete di casa via VPN e inviare il pacchetto da lì.
L'accensione programmata con l'orologio
Molte schede madri possono accendersi da sole a un orario prestabilito tramite l'orologio di sistema (RTC). Si può impostare dal BIOS, con un orario fisso, oppure da Linux con rtcwake, che programma il risveglio e spegne o sospende la macchina:
rtcwake -m off -t $(date -d "tomorrow 02:00" +%s)
Il comando spegne il sistema e imposta la riaccensione alle 2 del giorno seguente. Non tutte le schede madri supportano il risveglio da spegnimento completo; alcune funzionano solo dalla sospensione. Va verificato con una prova.
Un ciclo completo: il server di backup notturno
Un esempio concreto che uso nel mio lavoro:
- alle 2 un'attività pianificata su una macchina sempre accesa invia il magic packet al server di backup;
- il server si avvia; un'unità systemd attende che il disco dei backup sia montato;
- i job di backup o di sincronizzazione partono, oppure il server principale li avvia a sua volta;
- al termine, uno script verifica che non ci siano trasferimenti attivi e spegne la macchina;
- un'allerta segnala se il server non si è acceso o non ha completato il lavoro entro un certo orario.
Il risparmio è concreto: una macchina che resta accesa due ore al giorno invece di ventiquattro consuma circa un dodicesimo dell'energia.
Limiti e problemi comuni
| Problema | Causa probabile |
|---|---|
| La macchina non si accende | opzione disattivata nel BIOS o scheda di rete senza alimentazione da spenta |
| Funziona dopo lo spegnimento, non dopo un blackout | molte schede perdono l'impostazione quando manca la corrente |
| Funziona solo da alcuni dispositivi | il mittente è in un'altra rete o VLAN |
| Si accende da sola | risveglio impostato per qualsiasi traffico, non solo per il magic packet |
| Non funziona via Wi-Fi | molte schede wireless non supportano il risveglio da spento |
Per il caso del blackout, conviene impostare nel BIOS anche il comportamento al ritorno della corrente, e decidere consapevolmente se la macchina deve riaccendersi o restare spenta.
Quando non conviene
Accendere e spegnere spesso ha un costo: tempi di avvio, dischi meccanici che ripartono, servizi che devono riconnettersi. Per macchine che servono più volte al giorno, o che devono rispondere in pochi secondi, restare accese con un buon risparmio energetico in idle è spesso preferibile.
In sintesi
- Il magic packet risveglia una macchina spenta se BIOS e scheda di rete lo consentono.
- Su Linux si attiva con
ethtool ... wol ge va reso permanente nella configurazione di rete. - Il pacchetto resta nella rete locale: da fuori casa si passa per la VPN.
rtcwakee il BIOS permettono accensioni a orario fisso senza altri dispositivi.- È ideale per server di backup e repliche, meno per servizi usati di continuo.