Gestion de l'alimentation - Veille / réveil du serveur lors d'un accès


9

J'ai un microserveur HP Proliant sans tête avec Ubuntu installé. Cette machine a des partages samba sur elle servant de média et je rdp ou ssh en général. Maintenant, mon problème est que je veux que la machine passe en mode veille (donc l'état est sauvegardé du ram vers le disque dur) et il semblerait qu'elle soit éteinte après une heure de marche au ralenti.

S'il y a une tentative d'accéder au partage samba via LAN, je voudrais qu'il se réveille. Maintenant, ma carte mère prend en charge cette fonction, quelqu'un peut-il m'orienter dans la bonne direction pour y parvenir facilement?

Merci

Réponses:


3

La meilleure instruction que j'ai trouvée sur le Web était le wiki XBMC pour WOL . En bref (plus d'infos sur le lien):

  1. Vous devez activer WOL sur votre carte mère;
  2. Installer ethtool: sudo apt-get install ethtool;
  3. Set Wake-on-LAN Options: sudo ethtool -s eth0 wol g;
  4. Obtenez-le activé au démarrage du système avec un script init. Il y a un script init dans le lien wiki.

Non testé; informations du lien wiki


2

Au-delà du mode veille, ce que vous recherchez est la mise en veille prolongée, car vous souhaitez enregistrer votre état sur votre disque dur et arrêter complètement le serveur.

Ainsi, comme beaucoup l'ont souligné, l'answe est WOL (Wake On Lan). Il existe de nombreux didacticiels à ce sujet, mais vous devez principalement configurer les éléments suivants:

  • Votre routeur doit contourner le paquet magique (comme le paquet WOL est appelé) vers votre serveur, vous devez donc effectuer la redirection de port. Il est généralement situé dans la section LAN. Les ports par défaut sont 7 et 9.
  • Votre carte mère doit écouter sur le port LAN lorsqu'elle est éteinte. La plupart des MB modernes offrent cette fonctionnalité, mais elle est désactivée par défaut. Vérifie ça! Dans mon cas, cela s'appelle "Power on by Ring on Lan".

Le serveur n'a pas besoin de plus de paramètres que la configuration de gestion de l'alimentation appropriée pour arrêter le système après une heure d'inactivité (cela peut être fait depuis Système> Administration> Gestion de l'alimentation).

De toute évidence, vous devez attendre un certain temps après avoir envoyé le paquet WOL, car votre système doit être mis en veille prolongée et cela peut prendre quelques secondes.

Bonne chance


2

J'ai décidé que je voulais une solution pour réveiller automatiquement mon serveur multimédia lors d'un accès qui ne dépendait pas de dd-wrt.

J'ai un Raspberry Pi, je l'ai donc utilisé car il est de faible puissance et cela ne me dérange pas de le garder allumé tout le temps, bien sûr, il peut être exécuté à partir de n'importe quelle machine Linux.

La solution finale que j'ai trouvée pour moi était d'écrire un petit script bash. Les dépendances de raspberry-pi sont etherwake et tcpdump. Les deux ne sont pas installés par défaut sur rasbian. Également sur le serveur, Wake On Lan doit être activé comme mentionné dans les autres articles.

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

Le script de réveil est le suivant:

nano ~/wol.sh

Alors:

#!/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'idée principale est qu'il est exécuté à partir de mon raspberry-pi qui réveillera le serveur s'il remarque une seule demande d'arp pour le serveur. Si le serveur est éveillé, il n'écoutera pas une demande d'arp, mais enverra quelques pings de temps en temps pour s'assurer qu'il est toujours éveillé.

J'ai nommé le fichier wol.sh et l'ai rendu exécutable. Ensuite, placez-le dans le sudo crontab pour lancer @reboot en tant que root. C'est pour tcpdump qui a besoin d'un accès élevé pour écouter eth0 et etherwake.

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

ajoutez ceci en bas

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

0

Avec WoL activé sur votre serveur pour qu'il se réveille avec un trafic de protocole spécifique, vous auriez besoin de quelque chose comme un script exécuté sur votre routeur qui a des règles de paquet et peut envoyer le paquet magique WoL lorsqu'il reçoit la demande.

Exemple de réactivation de serveur Web


0

Wake On Lan est la clé, presque toutes les cartes supportent aujourd'hui tous les modes (mais pas sous Linux :().

La solution la plus simple est une carte dotée d'un pilote Linux opérationnel prenant en charge les modes Wake On Lan: pumbgdans ethtool, vous voulez quelque chose comme le mode unicast. Votre ordinateur démarre donc dès que vous accédez à son adresse réseau. Mais il est encore plus difficile d'obtenir une liste de cartes prises en charge par Linux, celle que j'ai trouvée est Intel Gigabit Netzwerkadapter Pro / 1000 GT PCI.

Une solution de contournement est, si vous avez une carte qui ne prend pas en charge tous les modes: Presque tous les pilotes Linux prennent en charge le mode g => paquet magique. Vous devez donc allumer explicitement votre serveur avant de l'utiliser.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.