CRIU | |
---|---|
| |
Typ | Nástrojový software |
Vývojář | Tým OpenVZ |
Zapsáno v | C a Assembler |
Operační systém | linux |
Nejnovější verze | 3.17.1 (23. července 2022) |
Licence | GNU GPL v.2 |
webová stránka | criu.org |
CRIU (z anglického Checkpoint / Restore In Userspace ) - software pro operační systém Linux , který vám umožňuje vytvořit kontrolní bod zvenčí během provádění libovolného programu s možností obnovit program z tohoto bodu, včetně v jiné instanci operačního systému ( funkce živé migrace ) [1] .
Hlavním rysem projektu je jeho převládající implementace v uživatelském procesním prostoru , nikoli v jádře operačního systému (jako např. v projektu OpenVZ ), a také schopnost pracovat s libovolnými procesy bez dodatečné podpory jejich strana [2] .
V roce 2011 Parallels oznámil [3] v ruském tisku plány na integraci svého projektu Parallels Virtuozzo Containers do hlavního proudu linuxového jádra . Jedním z hlavních rysů projektu je možnost živé migrace procesů. Pochopení předchozích neúspěšných pokusů o integraci takových technologií do jádra operačního systému [4] vedlo vývojáře k poznání, že migraci procesů je nutné implementovat v adresním prostoru uživatelských aplikací.
Prvotní verzi projektu CRIU vyvinul Pavel Emelyanov, vedoucí vývojového týmu OpenVZ , a 15. července 2011 byla představena komunitě vývojářů operačního systému Linux [5] . V září téhož roku byl projekt představen na konferenci Linux Plumbers [6] .
Celkově byl projekt přijat s optimismem, což potvrzuje i zařazení některých změn nezbytných pro projekt do jádra. Nicméně správce Andrew Morton, jehož git strom se změny dostaly do hlavního jádra, byl ve svých komentářích poněkud skeptický [7] .
První vydání projektu proběhlo 23. července 2012 [8] . Dne 25. listopadu 2013 vývojáři oznámili první velké vydání svého projektu – 1.0 [9] . CRIU této verze může běžet na architekturách ARM a x86-64 a nevyžaduje dodatečné úpravy jádra - stačí nainstalovat hlavní jádro verze 3.11 nebo vyšší.
Jelikož je projekt vyvíjen v rámci projektu OpenVZ , hlavním cílem vývojářů je podpora kontejnerové migrace . Pomocí CRIU je však možné zachránit a obnovit stav jednotlivých procesů nebo jejich skupin.
Od poloviny roku 2010 jsou podporovány dvě architektury – x86-64 a ARM – a následující linuxové objekty:
Veškerá požadovaná podpora jádra je součástí linuxového jádra verze 3.11.
Jedním z cílů projektu je možnost uložit a obnovit stav TCP spojení, přičemž hlavním zájmem je případ, kdy je pouze jedna strana spojení podrobena proceduře uložení s následnou obnovou. Toto prohlášení o problému vzešlo z hlavního případu použití Parallels pro CRIU, ve kterém kontejner migruje z jednoho počítače na druhý, přičemž všechna externí připojení se „pohybují“ s kontejnerem.
K dosažení tohoto cíle byl vyvinut a implementován mechanismus v linuxovém jádře verze 3.5, nazvaný TCP repair mode [10] , který implementuje sadu operací na TCP socketu, který vám umožní jej „rozebrat“ a „sestavit“ bez spuštění kterýkoli z postupů popsaných ve standardu pro výměnu síťových paketů.
“Poznámka: toto je projekt vyvíjený různými šílenými Rusy, aby vytvořili kontrolní body a restartovali z nich většinou z uživatelské aplikace, s různými podivnými pomocnými kódy přidanými do jádra, kde je taková potřeba ukázána.
... Nejsem si však tak jistý jako vývojáři, že tohle všechno někdy bude fungovat! Žádám je tedy, aby makro CONFIG_CHECKPOINT_RESTORE „nabalili“ na každý kousek nového kódu v jádře.
Pokud to tedy časem vše skončí v slzách a projekt jako celek se rozpadne, bude snadný úkol projít kód a vše beze zbytku zahodit.
„Poznámka k tomu: toto je projekt různých šílených Rusů, který provádí c/r hlavně z uživatelského prostoru, s různými pomocnými kódy přidanými do jádra, kde je tato potřeba demonstrována.
… Nicméně jsem si méně jistý než vývojáři, že to všechno nakonec bude fungovat! Žádám je tedy, aby zabalili každý kousek nového kódu do CONFIG_CHECKPOINT_RESTORE.
Takže pokud to všechno nakonec dojde k slzám a projekt jako celek selže, mělo by
Bezplatný open source software | |
---|---|
Hlavní věc |
|
Společenství |
|
Organizace | |
licence | |
Problémy | |
jiný |
|
|