CRIU

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 5. toukokuuta 2022 tarkistetusta versiosta . vahvistus vaatii 1 muokkauksen .
CRIU

Checkpoint ja Restore Userspacessa
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] .

Historia

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.

Ominaisuudet

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.

TCP-yhteyksien siirto

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ä.

Muistiinpanot

  1. Pavel Emelyanov. Sovellusten virtualisointi on uusi vaihe  // Verkkoratkaisujen lehti / LAN. - 2016. - Nro 3 . - S. 47 . Arkistoitu alkuperäisestä 5. syyskuuta 2017.
  2. Rami Rosen. Ch. 14. Lisäaiheet // Linux Kernel Networking: Toteutus ja teoria . - Apress, 2014. - S. 406. - 636 s. — ISBN 9781430261971 . Arkistoitu 5. syyskuuta 2017 Wayback Machineen
  3. "Parallels palkkaa merkittäviä kehittäjiä murtautumaan Linux-ytimeen" Arkistoitu 9. tammikuuta 2014. // Cnews, 2011/08/2012
  4. Jonathan Corbet, Checkpoint/restart: se on monimutkaista Arkistoitu 13. helmikuuta 2012 Wayback Machinessa // LWN.net
  5. Pavel Emelyanov, Checkpoint/restore enimmäkseen käyttäjätilassa Arkistoitu 15. toukokuuta 2012 Wayback Machinessa // LWN.net
  6. Tarkistuspiste/uudelleenkäynnistys käyttäjätilassa Arkistoitu 14. marraskuuta 2011. // Linux Plumbers Conference, 7.-9.9.2011
  7. Linus Torvalds, Git commit title: "Yhdistä haara 'akpm' (alias "Andrew's patch-bomb, ota kaksi")"  (downlink) :

    "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ä.

    Alkuperäinen teksti  (englanniksi)[ näytäpiilottaa]

    "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

    on helppo käydä läpi ja poistaa kaikki jäljet ​​siitä."
  8. Ilmoita: Checkpoint-restore tool v0.1 Arkistoitu 14. marraskuuta 2012 Wayback Machinessa // LKML, 23.07.2012
  9. Checkpoint-restore -työkalu v1.0 Arkistoitu 2. joulukuuta 2013 Wayback Machinessa // CRIU
  10. TCP-yhteyden korjaus Arkistoitu 16. kesäkuuta 2012 Wayback Machinessa // LWN.net

Kirjallisuus

Linkit