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


9

У мене безголовий мікросервер HP Proliant із встановленим ubuntu. У цій машині є самба, яка обслуговує засоби масової інформації, і я зазвичай rdp або ssh в неї. Тепер моє питання полягає в тому, що я хочу, щоб машина перейшла в режим сну (щоб стан було збережено від оперативної пам’яті до жорсткого диска), і, здається, він вимкнений після години простою.

Якщо є спроба отримати доступ до спільної частини самби через локальну мережу, я хотів би прокинутися. Тепер моя материнська плата підтримує цю функцію, чи може хтось вказати мені в правильному напрямку для досягнення цього легко?

Дякую

Відповіді:


3

Найкраща інструкція, яку я знайшов в Інтернеті, - це вікі XBMC для WOL . Коротше кажучи (більше інформації за посиланням):

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

Неперевірений; інформація за посиланням на wiki


2

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

Отже, як багато хто вказував, ансве - WOL (Wake On Lan). Підручники з цього приводу багато, але в основному вам потрібно встановити наступне:

  • Ваш маршрутизатор повинен обійти чарівний пакет (як називається пакет WOL) на ваш сервер, тому вам потрібно зробити переадресацію порту. Зазвичай він розташований у розділі локальної мережі. Типовими портами є 7 та 9.
  • Ваша материнська плата повинна прослуховувати порт LAN при відключенні живлення. Більшість сучасних МБ надають цю функцію, але вона відключена за замовчуванням. Перевір це! У моєму випадку воно називається "Увімкнення дзвінка на Лані".

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

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

Удачі


2

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

У мене є малиновий пі, тому я використовував його, оскільки це мала потужність, і я не проти тримати його постійно, звичайно, його можна запустити з будь-якої машини Linux.

Остаточне рішення, яке я знайшов для себе, - написання невеликого сценарію. Залежності малинового пі є ефірним пробудженням і tcpdump. Обидва не встановлені за замовчуванням на rasbian. Також на сервері Wake On Lan потрібно включити, як було зазначено в інших публікаціях.

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

Сценарій пробудження такий:

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

Основна ідея полягає в тому, що він запускається з мого малинового пі, що розбудить сервер, якщо він помітить один запит arp для сервера. Якщо сервер прокинувся, він не буде прослуховувати запит arp, але надсилати раз у раз пінг, щоб переконатися, що він ще не працює.

Я назвав файл wol.sh і зробив його виконуваним. Потім покладіть його в crontab sudo, щоб запустити @reboot як root. Це для tcpdump, якому потрібен підвищений доступ для прослуховування eth0 та ефірного пробудження.

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

додайте це донизу

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

0

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

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


0

Wake On Lan - це ключ, майже всі карти сьогодні підтримують усі режими (але не в Linux :().

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

Вирішення проблеми - якщо у вас є карта, яка не підтримує всі режими: Майже весь драйвер Linux підтримує режим g = => магія. Тому вам потрібно експліцитно включити ваш сервер, перш ніж ним користуватися.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.