Wydanie CRIU 4.2, systemu do zapisywania i przywracania stanu procesów w Linux

Po sześciu miesiącach prac powstała wersja narzędzia CRIU 4.2 (Checkpoint and Restore In Userspace), które służy do zachowywania i przywracania procesów w przestrzeni użytkownika. Narzędzie umożliwia zapisanie stanu pojedynczego procesu lub grupy procesów, a następnie wznowienie ich pracy z zapisanego momentu, w tym po ponownym uruchomieniu systemu lub na innym serwerze, bez przerywania już nawiązanych połączeń sieciowych. Kod projektu napisany jest w języku C i rozpowszechniany na licencji GPLv2. CRIU jest stosowane w systemach zarządzania kontenerami, takich jak OpenVZ, LXC/LXD i Docker. Wymagane zmiany do działania CRIU zostały włączone do głównej wersji jądra Linux.

Z obszarów zastosowania technologii CRIU można wymienić zapewnienie ponownego uruchomienia systemu operacyjnego bez zakłócania ciągłości wykonania długoterminowych procesów, migrację na żywo izolowanych kontenerów, przyspieszenie uruchamiania wolnych procesów (można rozpocząć pracę od stanu zapisanego po inicjalizacji), przeprowadzanie aktualizacji jądra bez restartu usług, okresowe zapisywanie stanu długoterminowych zadań obliczeniowych w celu wznowienia pracy w przypadku awaryjnego zakończenia, równoważenie obciążenia w węzłach klastrów, duplikowanie procesów na inny komputer (fork do zdalnego systemu), tworzenie zrzutów aplikacji użytkowych w trakcie pracy w celu ich analizy w innym systemie lub na wypadek, gdyby konieczne było anulowanie dalszych działań w programie.

W nowym wydaniu:

  • Wtyczka amdgpu wprowadza możliwość równoległego przywracania stanu procesów wykorzystujących GPU.
  • Dodano opcję „—allow-uprobes”, która umożliwia pracę z procesami korzystającymi z vma (Virtual Memory Area) podczas śledzenia procesów za pomocą mechanizmu uprobe.
  • W bibliotece libcriu dodano możliwość określenia pliku konfiguracyjnego RPC dla kontenerów runtime używających tej biblioteki, takich jak crun. Na przykład, wprowadzona możliwość może być przydatna do ustawiania opcji, takich jak „—tcp-established”, przez plik /etc/criu/runc.conf dla Kubernetes.
  • Rozwiązano problemy z kompilacją na systemach ARM64 z biblioteką C musl.
  • Usunięto przepełnienie całkowitoliczbowe w funkcji pagemap_len().
  • Rozwiązano problemy z używaniem opcji getsockopt SO_PASSCRED i SO_PASSSEC na systemach z jądrem Linux 6.16.

Ź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