CRIU | |
---|---|
| |
Tyyppi | Työkaluohjelmisto |
Kehittäjä | OpenVZ - tiimi |
Sisään kirjoitettu | C ja Assembler |
Käyttöjärjestelmä | Linux |
uusin versio | 3.17.1 (23. heinäkuuta 2022) |
Lisenssi | GNU GPL v.2 |
Verkkosivusto | criu.org |
CRIU ( englannin kielestä Checkpoint / Restore In Userspace ) - ohjelmisto Linux -käyttöjärjestelmään, jonka avulla voit luoda tarkistuspisteen ulkopuolelta mielivaltaisen ohjelman suorittamisen aikana , jolloin voit jatkaa ohjelmaa tästä kohdasta, myös toisessa tapauksessa käyttöjärjestelmän ( live migration function ) [1] .
Projektin pääominaisuus on sen vallitseva toteutus käyttäjän prosessitilassa , ei käyttöjärjestelmän ytimessä (kuten esimerkiksi OpenVZ -projektissa ), sekä kyky työskennellä mielivaltaisten prosessien kanssa ilman niiden lisätukea. puoli [2] .
Vuonna 2011 Parallels ilmoitti [3] venäläisissä lehdistössä suunnitelmistaan integroida Parallels Virtuozzo Containers -projektinsa valtavirran Linux-ytimeen . Yksi projektin pääpiirteistä on mahdollisuus live-prosessin migraatioon. Ymmärrys aiemmista epäonnistuneista yrityksistä integroida tällaisia teknologioita käyttöjärjestelmän ytimeen [4] sai kehittäjät ymmärtämään, että prosessien migraatio on toteutettava käyttäjäsovellusten osoiteavaruudessa.
CRIU-projektin alkuperäisen version kehitti OpenVZ -kehitystiimin johtaja Pavel Emelyanov, ja se esiteltiin Linux-käyttöjärjestelmän kehitysyhteisölle 15. heinäkuuta 2011 [5] . Saman vuoden syyskuussa projekti esiteltiin Linux Plumbers [6] -konferenssissa .
Yleisesti ottaen projekti otettiin vastaan optimistisesti, minkä vahvistaa joidenkin hankkeen kannalta välttämättömien muutosten sisällyttäminen ytimeen. Kuitenkin ylläpitäjä Andrew Morton, jonka git-puun kautta muutokset pääsivät pääytimeen, oli kommenteissaan hieman skeptinen [7] .
Projektin ensimmäinen julkaisu tapahtui 23. heinäkuuta 2012 [8] . 25. marraskuuta 2013 kehittäjät ilmoittivat projektinsa ensimmäisen suuren julkaisun - 1.0 [9] . Tämän version CRIU voi toimia ARM- ja x86-64-arkkitehtuureissa , eikä se vaadi ylimääräisiä ytimen muutoksia - riittää, kun asennetaan version 3.11 tai uudempi pääydin.
Koska projektia kehitetään OpenVZ -projektin alla , kehittäjien päätavoitteena on tukea konttimigraatiota . CRIU:n avulla on kuitenkin mahdollista tallentaa ja palauttaa yksittäisten prosessien tai niiden ryhmien tila.
2010-luvun puolivälistä lähtien tuetaan kahta arkkitehtuuria - x86-64 ja ARM - sekä seuraavia Linux-objekteja:
Kaikki tarvittava ytimen tuki sisältyy Linux-ytimen versioon 3.11.
Yksi projektin tavoitteista on kyky tallentaa ja palauttaa TCP-yhteyden tila, ja tärkeintä on tapaus, jossa vain yhteyden toiselle puolelle tehdään tallennusmenettely ja sitä seuraava palautus. Tämä ongelmatilanne syntyi Parallelsin CRIU:n pääkäyttötapauksesta, jossa kontti siirtyy koneelta toiselle ja kaikki ulkoiset yhteydet "liikkuvat" kontin mukana.
Tämän tavoitteen saavuttamiseksi Linux-ytimen versiossa 3.5 kehitettiin ja toteutettiin mekanismi, nimeltään TCP-korjaustila [10] , joka toteuttaa joukon toimintoja TCP-socketissa, jonka avulla voit "purkaa" ja "kokoaa" sen suorittamatta. jokin standardissa kuvatuista verkkopakettien vaihdon menettelyistä.
"Huom: tämä on erilaisten hullujen venäläisten kehittämä projekti, jossa luodaan tarkistuspisteitä ja käynnistetään niistä uudelleen enimmäkseen käyttäjäsovelluksesta, ja ytimeen on lisätty erilaisia outoja apukoodeja, joissa tällainen tarve näkyy.
... En kuitenkaan ole yhtä varma kuin kehittäjät, että tämä kaikki toimii koskaan! Joten pyydän heitä "käärimään" CONFIG_CHECKPOINT_RESTORE-makron jokaiseen ytimen uuteen koodiin.
Joten jos ajan myötä kaikki päättyy kyyneliin ja projekti kokonaisuudessaan hajoaa, on helppo käydä läpi koodi ja heittää kaikki pois ilman jälkiä.
"Huomautus tähän: tämä on useiden hullujen venäläisten projekti suorittaa c/r pääosin käyttäjätilasta, ja ytimeen on lisätty erilaisia oddball-apukoodeja, joissa tarve osoitetaan.
… Olen kuitenkin vähemmän luottavainen kuin kehittäjät, että kaikki lopulta toimii! Joten pyydän heitä käärimään jokainen uusi koodi CONFIG_CHECKPOINT_RESTORE-kansioon.
Joten jos kaikki lopulta tulee kyyneliin ja projekti kokonaisuudessaan epäonnistuu, sen pitäisi
Ilmainen ja avoimen lähdekoodin ohjelmisto | |
---|---|
Pääasia |
|
Yhteisö |
|
Organisaatiot | |
Lisenssit | |
Ongelmia | |
Muut |
|
|