Google rozwija system restartu jądra bez zatrzymywania pracy urządzeń

Inżynierowie z firmy Google opublikowali do dyskusji wśród programistów jądra Linux zestaw poprawek implementujących podsystem Live Update Orchestrator (LUO), przeznaczony do aktualizacji jądra w trybie Live. W przeciwieństwie do takich mechanizmów jak livepatch, Ksplice, kpatch i kGraft, nowy system nie ogranicza się do możliwości stosowania pojedynczych poprawek do działającego jądra Linux, ale umożliwia pełne ponowne uruchomienie i aktualizację jądra bez przerywania pracy poszczególnych urządzeń. Projekt bazuje na zestawie poprawek KHO (Kexec HandOver) do mechanizmu kexec, używanego do ładowania nowego jądra z już uruchomionego jądra Linux bez fizycznego ponownego uruchamiania.

Jako główny obszar zastosowania LUO wskazano środowiska chmurowe, w których pojawi się możliwość aktualizacji hipernadzorcy KVM bez zakłócania działania uruchomionych. maszyn wirtualnychW szczególności będzie można wstrzymać maszyn wirtualnych na czas ponownego uruchamiania jądra z hipernadzorcą, zachowując w działaniu wszystkie urządzenia podłączone do maszyn wirtualnych.

Aby zrealizować tę możliwość, LUO zapewnia funkcje do zapisywania stanu urządzeń przed przełączeniem na nowe jądro i przywracania stanu bezpośrednio po uruchomieniu nowego jądra, w taki sposób, aby ciągłe operacje systemu i aplikacji w przestrzeni użytkownika z urządzeniami nie były zakłócone. W trakcie ponownego uruchamiania jądra zapewniona jest również nieprzerwane wykonywanie operacji związanych z DMA oraz aktywność związaną z przetwarzaniem przerwań.

W celu koordynacji zachowywania stanu i przełączania na nowe jądro LUO udostępnia API, które pozwala innym podsystemom jądra podłączać przetwarzacze do śledzenia i uczestniczenia w procesie Live-rebootu. Do podsystemów, które mogą integrować się z LUO, zaliczają się hipernadzorca KVM, iommu, system przerywań oraz sterowniki. Do transferu stanu pamięci ze starego jądra do nowego angażowany jest KHO (Kexec HandOver). Zarządzanie odbywa się przez pliki sysfs „/sys/kernel/liveupdate/{state, prepare, finish}.”

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster