CRIU - CRIU
Utvikler (er) | OpenVZ Team på Virtuozzo |
---|---|
Første utgivelse | 23. juli 2012 |
Stabil utgivelse | 3.15 (3. november 2020 [±] | )
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 |
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:
- Prosesser : deres hierarki , PID -er , bruker- og gruppeautentifikatorer ( UID , GID , SID , etc.), systemfunksjoner , tråder og kjørende og stoppede tilstander
- Applikasjonsminne: minnekartede filer og delt minne
- Åpne filer
- Rør og FIFO
- Unix domenekontakter
- Nettverkskontakter , inkludert TCP -kontakter i ESTABLISHED -tilstand (se nedenfor)
- System V IPC
- Tidtakere
- Signaler
- Terminaler
- Linux kernel-spesifikke systemkall:
inotify
,signalfd
,eventfd
ogepoll
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
- Sanidhya Kashyap. "Rebootless kjerneoppdatering og validering" .
- Rami Rosen. "Linux Containers and the Future Cloud" (PDF) .
- CRIU Team. "Sammenligning med andre CR -prosjekter" .