Dlaczego sygnał wyłączenia UPS dociera do hosta, ale nie do jego maszyn wirtualnych?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Sygnał wyłączenia z zasilacza UPS może dotrzeć do hosta wirtualizacji, ale nie do jego maszyn wirtualnych, ponieważ wykrywanie zaniku zasilania i orkiestracja wyłączania gości to odrębne kroki.

Najpierw sprawdź, czy host odbiera zdarzenie z UPS, a następnie przetestuj, czy każda ważna maszyna wirtualna reaguje na standardowe polecenie wyłączenia z hipernadzorcy. Sprawdź działanie przy niskim poziomie baterii, agenta gościa lub ACPI, kolejność zatrzymywania oraz zapas czasu działania. Bezpieczny stan końcowy oznacza najpierw wyłączenie gości, a dopiero na końcu hosta, z wystarczającym zapasem baterii na opóźnienia.

Sprawdź, który komponent odbiera zdarzenie z UPS

Wywołaj obsługiwane zdarzenie testowe albo przejrzyj logi z niedawnego przełączenia na zasilanie bateryjne i odnotuj, czy NUT, apcupsd, monitorowanie SNMP lub inny demon na hoście je wykrywa.

Praktyczny proces wyłączania UPS w Proxmox rozdziela wykrywanie UPS na hoście Proxmox od późniejszych działań wymaganych do zatrzymania obciążeń i wyłączenia maszyny.

Jeśli host nigdy nie odbiera zdarzenia, skup się na komunikacji z UPS. Jeśli je odbiera, nie zakładaj, że wyłączenie gości następuje automatycznie — sprawdź kolejny etap orkiestracji.

Przetestuj wyłączanie gości bez UPS

Z poziomu hipernadzorcy zażądaj zwykłego, kontrolowanego wyłączenia każdej krytycznej maszyny wirtualnej i zmierz czas jego trwania. Sprawdź stan agenta gościa, działanie ACPI oraz aplikacje, które opóźniają wyłączanie.

Wdrożenie NUT z Proxmox pokazuje, dlaczego NUT może być źródłem zdarzenia, podczas gdy Proxmox nadal potrzebuje zdefiniowanej ścieżki reakcji dla obsługiwanych maszyn wirtualnych.

Najpierw napraw gości, którzy ignorują zwykłe polecenie wyłączenia z hipernadzorcy, a dopiero potem testuj awarie zasilania. Automatyzacja UPS nie sprawi, że niereagujący gość nagle wyłączy się prawidłowo.

Spraw, aby działanie UPS wywoływało warstwę wirtualizacji

Sprawdź skrypt lub usługę obsługującą niski poziom baterii. Bezpośrednie wyłączenie hosta może ominąć prawidłową kolejność zatrzymywania maszyn wirtualnych, jeśli nie wywołuje procesu wyłączania gości przez hipernadzorcę.

Inny materiał dotyczący orkiestracji NUT w Proxmox pokazuje, że należy połączyć stan NUT z celowymi działaniami systemu, zamiast traktować sam demon UPS jako menedżera gości.

Korzystaj z obsługiwanej przez platformę orkiestracji wyłączania albo z ograniczonego mechanizmu, który najpierw żąda zatrzymania gości. Unikaj niestandardowych poleceń wymuszonego zakończenia, które omijają zamykanie aplikacji wewnątrz maszyny wirtualnej.

Uwzględnij czas potrzebny wolnym gościom i hostowi

Zmierz łączny czas zatrzymywania gości, czas wyłączania hosta, czas działania UPS pod obciążeniem oraz próg niskiego poziomu baterii. Pozostaw zapas na wypadek, gdyby jeden z gości potrzebował więcej czasu niż zwykle.

Dedykowana usługa wyłączania Proxmox przez UPS istnieje, ponieważ uporządkowane wyłączanie Proxmox wymaga określonych zasad i odpowiedniego czasu, a nie tylko potwierdzenia, że sygnał SNMP lub USB dotarł do hosta.

Ustaw ograniczone czasowo limity dla gości i kolejność eskalacji, aby zawieszona, niekrytyczna maszyna wirtualna nie wyczerpała baterii. Krytyczne maszyny obsługujące pamięć masową lub bazy danych mogą wymagać wcześniejszego wyłączenia.

Wykonaj jeden kontrolowany test całego procesu zasilania

W oknie serwisowym zasymuluj lub wywołaj obsługiwany stan UPS, obserwuj kolejność wyłączania gości, potwierdź, że host wyłącza się jako ostatni, a następnie przywróć zasilanie sieciowe i sprawdź poprawne uruchomienie.

Wskazówki dotyczące środowisk domowych na temat odporności domowego laboratorium na awarie zasilania potwierdzają, że odporność zależy od przetestowania całej sekwencji awarii, a nie tylko od zbierania danych telemetrycznych UPS. Powiązany poradnik ZimaSpace dotyczący gotowości kopii zapasowych maszyn wirtualnych uzupełnia ten temat o granice przywracania i tworzenia kopii zapasowych.

Proces jest kompletny dopiero wtedy, gdy każda wymagana maszyna wirtualna wyłącza się poprawnie przed hostem, bateria zachowuje bezpieczny zapas, a ta sama sekwencja działa ponownie po zmianach konfiguracji.

Najczęściej zadawane pytania

Czy maszyny wirtualne potrzebują własnego klienta NUT, jeśli host już go ma?

Nie zawsze. Host może zarządzać wyłączaniem gości za pośrednictwem hipernadzorcy, ale ten etap zatrzymywania gości musi być skonfigurowany, przetestowany i mieć wystarczająco dużo czasu przed wyłączeniem hosta.

Co się stanie, jeśli maszyna wirtualna odmówi wyłączenia?

Zastosuj ograniczony czas oczekiwania i zasady eskalacji. Jeden zawieszony gość nie powinien zużyć całej baterii UPS, dopóki host nie straci zasilania w sposób nagły.

Jak bezpiecznie przetestować wyłączenie UPS?

Wykorzystaj okno serwisowe, sprawne kopie zapasowe oraz kontrolowane zdarzenie niskiego poziomu baterii lub zdarzenie symulowane, jeśli jest obsługiwane. Zweryfikuj kolejność zatrzymywania gości, wyłączenie hosta oraz poprawne przywrócenie działania po powrocie zasilania.

Wsparcie i wskazówki

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.