Mam centra danych w chmurze z systemem Ubuntu 16.04 lts i NextCloud / OwnCloud, które nie muszą być dostępne 24/7 i potrzebują rozwiązań do zarządzania energią. Serwery to Dell PowerEdge 1950 Gen II i Dell PowerEdge 2950 Gen II
Ogólny cel
Hibernacyjne serwery pamięci masowej w chmurze przekroczyły czas bezczynności, na przykład 20 minut, i zostały poddane hibernacji za pomocą WOL, aby zredukować 6272,09 kg dwutlenku węgla rocznie, co stanowi 6680 kW z samego naszego centrum danych, dane osiągnięte podczas szczegółowego audytu energii.
Wypróbowano nieskuteczne rozwiązanie
Krajobraz
Krajobraz w miejscach pracy / cron oferuje jedynie zaplanowane uruchamianie i zamykanie systemu, co jest nieskuteczne dla naszych osiągnięć.
Powernap
powernap wydaje się być dobrym rozwiązaniem, ale usługa nie uruchamia się w systemie Ubuntu 16.04
XXXXXXX ~ $ status powernap usługi sudo ● powernap.service - PowerNap Załadowano: załadowano (/lib/systemd/system/powernap.service; wyłączone; preset dostawcy Aktywny: nieaktywny (martwy)
ponwernap wydaje się używać zdeprecjonowanych usług, takich jak usługa sieciowa, które nie są już dostępne w Ubuntu 16.04
Osiągalne cele
Wake on LAN (WOL)
Włączenie WOL jest proste, wykonując ręczną konfigurację tego łącza . lub za pomocą bułki powewake
Hibernacja serwera
Do tej pory udało mi się tylko hibernować serwery za pomocą sudo systemctl hibernate
isudo systemctl hibernate-sleep
- powernap - Składam raporty o błędach w celu usunięcia wyczerpanych zależności
- systemctl - może gdzieś prowadzić
- pm-utils - może również do czegoś doprowadzić
Ulepszenia sprzętu
Zaktualizowałem procesory podwójnego Xeon E5335 Dell 1950 Gen II z procesorami Xeon X5365. X5365 umożliwia zarządzanie energią i ustawia zarządzanie energią z BIOS-u. Szczerze mówiąc, nie popierałem takiej aktualizacji, ponieważ X5365 zużywa 70 watów na procesor więcej niż E5335, ale zrobiłem to na korzyść testów hibernacji.
Aktualizacja 1
W tej chwili pm-utils
jest to jedyny sposób, aby odejść od ustawiania wol
nici. Obecnie badam optymalną konfigurację, aby utworzyć hak zasilający dla ustawień prądu przemiennego na czas bezczynności.
Wszelkie zalecenia proszę.
Odpowiedzi:
Przygotowałem mały skrypt, który można uruchamiać w cronjob co 15 minut lub używając systemowych timerów:
Najpierw pobiera liczbę użytkowników zalogowanych do systemu i średnie obciążenie w ciągu ostatnich 15 minut. Powinieneś być w stanie sprawdzić swoje średnie obciążenie w trybie bezczynności za pomocą
cat /proc/loadavg
. Trzecie liczby zmiennoprzecinkowe dają średnią z ostatnich 15 minut. Ta wartość pomaga zdefiniować próg ustawiony w zmiennejAvgLoadThresh
. To z pewnością będzie wymagało strojenia. Inną rzeczą, którą możesz zdefiniować, jest liczba użytkowników, którzy mogą się zalogować, a system i tak przechodzi w stan hibernacji. To jest ustawioneActiveUsersThresh
. Tylko po to, aby upewnić się, że system nie zawsze hibernuje, gdy przeprowadzasz konserwację lub coś takiego.Wydaje mi się, że można wymyślić bardziej inteligentne kontrole, więc postrzegaj to jako pierwsze proste podejście. Na przykład nie wiem, która baza danych lub serwer sieciowy jest używany w instalacji własnej chmury, ale możesz spróbować zatrzymać je z wdziękiem przed poleceniem hibernacji, aby nikt nagle nie stracił połączenia.
źródło