Jak obudzić serwer po wyłączeniu go przez UPS po przywróceniu zasilania sieciowego?

16

Mam kilka serwerów Linux podłączonych do zasilaczy APC. Są one podłączone do UPS przez USB i skonfigurowane do wyłączenia, jeśli UPS wyśle ​​sygnał, że zasilanie sieciowe zostało utracone i nie powróciło po pewnym czasie. To działa dobrze. Ponadto są skonfigurowane za pomocą zworek, aby automatycznie włączały się w przypadku utraty zasilania, a następnie powracają. To też działa dobrze.

Scenariusz, który powoduje problemy, to utrata zasilania sieciowego, a serwer wyłącza się, ale następnie zasilanie sieciowe jest przywracane, zanim skończy się UPS. W takim przypadku chcielibyśmy, aby serwer uruchomił się ponownie, ale ponieważ zasilanie nigdy nie jest tracone po zasilaniu UPS, serwer nigdy nie widzi zdarzenia powrotu zasilania i dlatego nie włącza się.

Mam nadzieję, że istnieje urządzenie, które można podłączyć do zasilacza sieciowego przed zasilaczem UPS i wyczuć stan powrotu zasilania i wysłać sygnały budzenia, być może za pośrednictwem Wake-on-Lan, do wstępnie skonfigurowanych serwerów, aby je obudzić po przywróceniu zasilania przez kogoś może mnie wskazać.

Doceniane są również alternatywne sugestie, jedyne, czego nie mogę zrobić, to wymienić sprzęt serwera i wolałbym zachować te same UPS-y, jeśli to możliwe.

bk.
źródło

Odpowiedzi:

13

Typowy scenariusz realizowany podczas korzystania z UPS to:

  1. W przypadku utraty zasilania UPS powiadamia komponent oprogramowania w podłączonych do niego systemach.
  2. Jeśli utrata zasilania trwa dłużej niż n sekund, sterownik UPS powiadamia UPS i zatrzymuje system bez wyłączania go (jest to ważne).
  3. UPS czeka m sekund na zatrzymanie się systemów i odcina zasilanie.
  4. Gdy zasilanie zostanie przywrócone, a akumulator UPS zostanie naładowany powyżej minimum (aby mógł podtrzymać włączenie i czyste wyłączenie w przypadku utraty zasilania zaraz po uruchomieniu komputera), UPS przywraca zasilanie systemów.
  5. Systemy zauważają (na poziomie BIOS / UEFI), że zostały włączone przed utratą zasilania, więc uruchamiają się.

W większości BIOS-ów serwera możesz ustawić system tak, aby przywracał stan zasilania sprzed utraty zasilania. Oznacza to, że jeśli serwer zostanie wyłączony i nastąpi utrata zasilania, pozostanie on wyłączony po podłączeniu go. Z drugiej strony, jeśli był włączony, gdy utracono zasilanie, uruchomi się, gdy prąd przemienny przywrócone.

NUT wspomniany przez BillThor powinien pozwolić ci zrealizować ten scenariusz.

Paweł Brodacki
źródło
1
Dzięki! Mam wszystko powyżej, z wyjątkiem kroku (3), mój UPS nie odcina zasilania, dopóki bateria nie spadnie zbyt nisko. Niektóre z moich serwerów mogą całkowicie zatrzymać się lub zamknąć, a czas może ulec zmianie nawet po kilku minutach. Mając moc ciągnącą UPS po uprzednio skonfigurowanym czasie, albo ryzykuję zbyt szybko, albo czekam zbyt długo i ryzykuję, że włączy się ponownie, zanim UPS zacznie pobierać moc i nigdy nie dostanę sygnału włączenia. Być może potrzebuję zasilacza UPS, który obsługuje kanał zwrotny z systemu, więc pobiera zasilanie, gdy tylko serwer (serwery) się zatrzymają.
bk.
2
Patrząc na NUT Docs, myślę, że mam do czynienia z tym problemem, więc spróbuję rozwiązania, które tam polecają. Dzięki networkupstools.org/docs/FAQ.html#_i_8217_m_facing_a_power_race
bk.
9

Ten problem rozwiązałem za pomocą jednego małego pudełka linuksowego (Asus WL Deluxe lub SMTH), który został podłączony do głównego UPS i wybudził jak najszybciej po przywróceniu zasilania. Skrypt startowy zawiera 5-minutowe opóźnienie, aby uniknąć jakichkolwiek zmian stanu zasilania (góra / dół), WOL-ed wszystkie serwery (wszystkie w2k3, jeden linux) i wysyła mi sms ze statusem.

migabi
źródło
4

Po przeczytaniu wielu sugestii myślę, że dobrym rozwiązaniem jest użycie dowolnego starego komputera (jeśli nie zależy ci na zużyciu energii) lub jakiegoś malinowego pi, podłączonego bezpośrednio do energii.

Tak więc, gdy nastąpi wzrost zasilania, jeden skrypt sprawdzi, czy serwery są włączone, a jeśli nie, to wyśle ​​OWL przez sieć.

Job Diógenes Ribeiro Borges
źródło
3

Używam NUT (Network UPS Tool) w takich przypadkach. Będziesz potrzebował serwera z systemem Unix / Linux do monitorowania UPS. Po rozpoczęciu wyłączeń zapewni to, że zasilacz UPS zostanie wyłączony. Spowoduje to przywrócenie serwerów, jeśli uruchomią się ponownie po przywróceniu zasilania.

Istnieje klient dla serwerów Windows, dzięki czemu można je bezpiecznie zamknąć.

BillThor
źródło
1

Jeśli twój BIOS ma możliwość ustawienia czasu włączenia, możesz ustawić go na 50 minut po wyłączeniu, jeśli wyłączenie zostanie uruchomione przez sygnał wyłączenia UPS.

Tak więc w twoim scenariuszu serwer byłby ponownie uruchomiony po 50m + rozruch + najpóźniej czas zamknięcia.

Nils
źródło
-2

Lubię wszystkie wcześniej wspomniane pomysły. Chciałbym zasugerować uruchomienie serwera „NUT” lub serwera „WoL” na laptopie z zamkniętą pokrywą. W ten sposób może działać przez 4-6 godzin na samej baterii. Niektóre laptopy mogą mieć zainstalowane 2 baterie jednocześnie, aby zapewnić długi czas pracy.

jftuga
źródło
powinieneś przeczytać komentarz Pawła Brodackiego; chodzi o NUT lub apcupsd o to, że serwer Linux może zostać wyłączony bez wyłączania . Oznacza to, że „ostatni stan” ponownie włącza serwer, w którym to momencie włącza wszystkie serwery Windows. Długoterminowe podtrzymywanie bateryjne jest tutaj zupełnie odwrotne.
Michael Lowman,
Co z rozwiązaniem WoL wspomnianym przez migabi?
jftuga
to ten sam pomysł. „włącza wszystkie serwery Windows” jest osiągane dzięki WoL; nie masz swojego „okna WoL”, aby pozostać w górze z powodu sposobu, w jaki powinieneś go wyłączać (a mianowicie taki, że ostatni stan nadal działa)
Michael Lowman