CRIU - CRIU

CRIU
CRIU.svg
Utvikler (er) OpenVZ Team på Virtuozzo
Første utgivelse 23. juli 2012 ; 9 år siden ( 2012-07-23 )
Stabil utgivelse 3.15 (3. november 2020 ; for 9 måneder siden ) [±] ( 2020-11-03 )
Skrevet inn C og Assembler
Operativsystem Linux
Plattform x86-64 , ARM , Power ISA , IBM System/390
Type Søknadskontroll
Tillatelse GNU GPL v.2
Nettsted criu .org

Checkpoint/Restore In Userspace ( CRIU ) (uttales kree-oo , /kriu/ ), er et programvareverktøy for Linux- operativsystemet. Ved å bruke dette verktøyet er det mulig å fryse et program som kjører (eller en del av det) og sjekke det til vedvarende lagring som en samling av filer. Man kan deretter bruke filene til å gjenopprette og kjøre applikasjonen fra det punktet den ble frosset på. Det særegne ved CRIU -prosjektet er at det hovedsakelig er implementert i brukerrom , snarere enn i kjernen.

Prosjektet er for tiden under aktiv utvikling, med månedlig utgivelsessyklus for stabile utgivelser.

Historie

Den første versjonen av CRIU -programvaren ble presentert for Linux -utviklerfellesskapet av Pavel Emelyanov, OpenVZ -kjerneteamlederen, 15. juli 2011.

I september 2011 ble prosjektet presentert på Linux Plumbers Conference. Generelt sett så de fleste deltakerne positivt på prosjektet, noe som bevises av det faktum at en rekke kjerneoppdateringer som kreves for å implementere prosjektet var inkludert i hovedlinjekjernen. Andrew Morton var imidlertid litt skeptisk:

Et notat om dette: dette er et prosjekt av forskjellige gale russere for å utføre c/r hovedsakelig fra userpace, med forskjellige oddball -hjelperkode lagt til i kjernen der behovet er demonstrert ... Imidlertid er jeg mindre sikker på enn utviklerne at det vil alle til slutt fungere! Så det jeg ber dem om å gjøre er å pakke inn hver ny kode i CONFIG_CHECKPOINT_RESTORE. Så hvis alt til slutt kommer til tårer og prosjektet som helhet mislykkes, bør det være en enkel sak å gå gjennom og slette alle spor av det.

-  Andrew Morton,

Bruk

CRIU-verktøyet utvikles som en del av OpenVZ-prosjektet, med sikte på å erstatte kontrollpunktet/gjenopprettingen i kjernen. Selv om hovedfokuset er å støtte migrering av containere, slik at brukerne kan kontrollere og gjenopprette den nåværende tilstanden for kjørende prosesser og prosessgrupper. Verktøyet kan for tiden brukes på x86-64 og ARM- systemer og støtter følgende funksjoner:

Fra september 2013 er det ikke nødvendig med oppdatering av kjerner fordi all nødvendig funksjonalitet allerede er slått sammen med Linux -kjernens hovedlinje siden kjerneversjon 3.11, som ble utgitt 2. september 2013.

Overføring av TCP -tilkobling

Et av de første prosjektmålene var å støtte migrering av TCP -tilkoblinger, den største utfordringen var å suspendere og deretter gjenopprette bare den ene siden av en tilkobling. Dette var nødvendig for å utføre live migrering av containere (sammen med alle deres aktive nettverkstilkoblinger) mellom fysiske servere, hovedscenariet for bruk av sjekkpunkt/gjenopprettingsfunksjonen i OpenVZ. For å håndtere dette problemet ble en ny funksjon, "TCP -reparasjonsmodus", implementert. Funksjonen ble inkludert i versjon 3.5 av Linux -kjernens hovedlinje og gir brukerne flere midler til å demontere og rekonstruere TCP -sockets uten at det er nødvendig å bytte nettverkspakker med den motsatte siden av tilkoblingen.

Lignende prosjekter

Følgende prosjekter gir funksjonalitet som ligner på CRIU:

  • OpenVZ
  • DMTCP
  • BLCR
  • Linux C/R

Referanser

Videre lesning