Интересная задача встала на днях: нужно реализовать запуск дополнительных серверов по требованию. В итоге это должно выглядеть так: есть основной сервер ― он обрабатывает все запросы; когда основной сервер имеет стойкую нагрузку, он отправляет запрос wake-on-lan на соседний резервный сервер, после чего роутер динамически распределяет нагрузку между серверами. Если и второй сервер перегружается, то он посылает волшебный пакет на еще один резервный и дальше по схеме. Не универсальной эта схема оказалась только лишь по одной причине ― третий сервер оказался просто переоборудованным системным блоком, который почему-то не желает работать с wake-on-lan.
Для начала давайте рассмотрим, что же у нас есть. А есть у нас:
― роутер, который распределяет как внутренние, так и внешние IP-адреса;
― основной сервер (или первый резервный ― не суть, так как они идентичны и работают по одинаковой схеме),
― последний сервер в цепочке с материнской платой без встроенной сетевой карты но с установленной PCI.
Я не буду расписывать, как активируется WOL на компьютере и как его включить из системного меню, скажу сразу, что после всех этих действий получилось так, что после отключения компьютера либо перехода в спящий режим на сетевую карту просто-напросто не подается ток, а следовательно, она не работает вообще никак. Сразу хочу отметить, что огонек на панели ― не показатель. Смотреть лучше всего на роутере, к которому все это подключается (если там нет индикации, можно вклинить в цепь какой-то простейший свитч). Я перепробовал все возможные комбинации и пришел к выводу, что работает схема только в режиме энергосбережения S1(POS), однако основным минусом данного режима является то, что все это, грубо говоря, профанация. В спящем режиме при S1(POS) компьютер продолжает работать, но просто ничего не выводит на экран. Экономия электричества есть, конечно, но незначительная, что совсем не хорошо для нашего случая: зачем держать включенным последний в цепочке сервер, если надобность в нем появляется лишь раз в неделю? Очень интересно также и в меню материнской платы: тут, в меню wake-on-lan есть варианты by PCI card и by LAN. Если учесть, что на материнской плате отсутствует встроенная сетевая карта, то можно предположить, что by LAN быть вообще не должно, так как дополнительная сетевая карта должна распознаваться как PCI-устройство.
Не удалось мне ничего добиться и через мониторинг. Есть такой в меню моей материнской платы пункт, где можно выбрать те IRQ, за которыми будет следить система. Путем некоторых манипуляций удалось выяснить, что сетевая карта у меня живет с IRQ5, хотя в меню BIOS и указано, что IRQ5 ― это порт LPT (который у меня, кстати, тоже имеется). После длительного Интернет-серфинга мне удалось найти небольшую подсказку по этому делу: в спящем режиме на PCI-устройства питание не подается, но существует индивидуальное питание непосредственно от блока питания, которое можно подключить прямо к сетевой карте для того, чтобы она не оставалась без тока. У моего блока питания такой кабель оказался в базовом комплекте поставки, но некоторые производители комплектуют такие шнуры вместе с сетевыми картами. Если на блоке питания есть нужный разъем, то он втыкается напрямую, а если нет, то шнур из комплекта сетевой подключается к специальному разъему на материнской плате (кстати, если не ошибаюсь, то к тому же, что и вентиляторы). Пока что мне не удалось проверить правильность этой теории, так что заметка to be continued, но так или иначе, такие сведения ― это уже намного лучше, чем ничего.
UPD: Все оказалось достаточно просто: моя сетевая карта просто-напросто не поддерживает Wake-on-LAN, и это несмотря на то, что поддержка заявлена на упаковке. Решилась проблема приобретением сетевой карты с разъемом под WOL. Самое интересное, что подключать к нему ничего не понадобилось ― все итак работает отлично, но перед пробуждением по сети компьютер должен быть запущен вручную хотя бы один раз после предыдущей потери питания.