Управление питанием - сервер сна / пробуждения при доступе

9

У меня безголовый микросервер HP Proliant с установленной Ubuntu. На этой машине есть общие ресурсы samba, которые служат носителями, и я обычно использую rdp или ssh. Теперь моя проблема в том, что я хочу, чтобы машина перешла в спящий режим (чтобы состояние сохранялось от оперативной памяти до жесткого диска), и будет казаться, что она выключена после часа простоя.

Если есть попытка получить доступ к общему ресурсу samba через локальную сеть, я бы хотел, чтобы он проснулся. Теперь моя материнская плата поддерживает эту функцию, может кто-нибудь указать мне правильное направление для достижения этого легко?

Спасибо

KP65
источник

Ответы:

3

Лучшей инструкцией, которую я нашел в Интернете, была вики XBMC для WOL . Короче (подробнее в ссылке):

  1. Вам нужно включить WOL на вашей материнской плате;
  2. Установка Ethtool: sudo apt-get install ethtool;
  3. Набор Wake-on-LAN вариантов: sudo ethtool -s eth0 wol g;
  4. Включите его при запуске системы с помощью сценария инициализации. В вики-ссылке есть скрипт инициализации.

Непроверенные; информация из вики-ссылки

Rinzwind
источник
2

Помимо спящего режима, вы ищете режим гибернации, поскольку вы хотите сохранить свое состояние на жестком диске и полностью отключить сервер.

Итак, как уже указывалось, ответом является WOL (Wake On Lan). Об этом много уроков, но в основном вам нужно настроить следующее:

  • Ваш маршрутизатор должен обойти волшебный пакет (как называется пакет WOL) на вашем сервере, поэтому вам нужно выполнить переадресацию портов. Обычно он находится в разделе ЛВС. Порты по умолчанию 7 и 9.
  • Ваша материнская плата должна прослушивать порт LAN, когда она выключена. Большинство современных МБ предоставляют эту функцию, но по умолчанию отключено. Проверь это! В моем случае это называется «Power on by Ring on Lan».

Серверу не нужно больше настроек, чем в подходящей конфигурации управления питанием, чтобы отключить систему после часа простоя (это можно сделать в разделе Система> Администрирование> Управление питанием).

Очевидно, что после отправки пакета WOL вам придется подождать некоторое время, так как вашей системе необходимо отключить спящий режим, а это может занять несколько минут.

Удачи

sergio.hs84
источник
2

Я решил, что мне нужно решение для автоматического пробуждения медиа-сервера при обращении, которое не зависит от dd-wrt.

У меня есть Raspberry Pi, поэтому я использовал его, потому что он маломощный, и я не против держать его включенным постоянно, конечно, его можно запустить с любой машины Linux.

Окончательным решением, которое я нашел для себя, было написание небольшого сценария bash. Зависимости raspberry-pi - это etherwake и tcpdump. Оба не установлены по умолчанию на rasbian. Также на сервере должен быть включен Wake On Lan, как упоминалось в других постах.

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

Скрипт Wake выглядит следующим образом:

nano ~/wol.sh

Затем:

#!/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

Основная идея заключается в том, что он запускается с моего raspberry-pi, который разбудит сервер, если он заметит один запрос arp для сервера. Если сервер активен, он не будет прослушивать запрос arp, а время от времени отправляет несколько пингов, чтобы убедиться, что он все еще активен.

Я назвал файл wol.sh и сделал его исполняемым. Затем поместите его в crontab sudo для запуска @reboot от имени пользователя root. Это для tcpdump, которому необходим повышенный доступ для прослушивания eth0 и etherwake.

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

добавить это в нижней части

@reboot sh /home/pi/wol.sh > /dev/null
Трэвис Кларк
источник
0

С включенным WoL на вашем сервере, чтобы он проснулся для трафика определенного протокола, вам понадобится что-то вроде скрипта, работающего на вашем маршрутизаторе, который имеет правила пакетов и может отправлять волшебный пакет WoL, когда он получает запрос.

Пример пробуждения веб-сервера

Cas
источник
0

Ключ Wake On Lan, почти все карты сегодня поддерживают все режимы (но не в linux :().

Самым простым решением является карта , которая имеет рабочий драйвер для Linux , который поддерживает Wake On Lan режимах: pumbgв ethtool, вы хотите что - то вроде одноадресный режим. Таким образом, ваш компьютер запускается, как только вы получаете доступ к его сетевому адресу. Но еще труднее получить список карт, которые поддерживаются Linux, я нашел один Intel Gigabit Netzwerkadapter Pro / 1000 GT PCI.

Обходной путь есть, если у вас есть карта, которая не поддерживает все режимы: Почти все драйверы Linux поддерживают магический пакет g mode =>. Таким образом, вы должны явно включить ваш сервер, прежде чем использовать его.

Ага
источник