Efter 11 mÄnaders utveckling har utgÄvan av verktyget CRIU 4.3 (Checkpoint and Restore In Userspace) publicerats. Detta verktyg Àr avsett för att spara och ÄterstÀlla processer i anvÀndarrummet. Det möjliggör att spara tillstÄndet för en eller flera processer och sedan Äteruppta arbetet frÄn den sparade positionen, Àven efter omstart av systemet eller pÄ en annan server utan att bryta befintliga nÀtverksanslutningar. Projektkoden Àr skriven i C och distribueras under GPLv2-licensen. CRIU anvÀnds i containersystem sÄsom OpenVZ, LXC/LXD och Docker. De nödvÀndiga Àndringarna för att arbeta med CRIU ingÄr i huvudkÀrnan i Linux.
Inom tillÀmpningsomrÄdena för CRIU-teknologin kan nÀmnas att den möjliggör omstart av operativsystemet utan att bryta kontinuiteten för lÄngvarigt körande processer, live-migrering av isolerade containrar, snabbare start av lÄngsamma processer (man kan börja arbete frÄn det tillstÄnd som sparades efter initiering), uppgradering av kÀrnan utan att starta om tjÀnster, periodisk lagring av tillstÄndet för lÄngvarigt körande berÀkningsuppgifter för att kunna Äteruppta arbetet vid avbrott, belastningsbalansering pÄ noder i kluster, duplicering av processer till en annan maskin (fork till ett avlÀgset system), skapande av snapshots av anvÀndarapplikationer under körning för analys pÄ ett annat system eller för att kunna Ängra framtida ÄtgÀrder i programmet.
I den nya utgÄvan:
- Funktionen för komprimering av block och minnessidor har implementerats med anvÀndning av LZ4-algoritmen och flertrÄdad dekomprimering.
- Prestandan har förbÀttrats tack vare anvÀndning av asynkron in- och utmatning (AIO) vid ÄterstÀllning av VMA (Virtual Memory Area) sidor, en ny metod för att stoppa uppgifter utan anvÀndning av hÄrdvarustoppunkter och parallellisering av ÄterstÀllning av memfd och anonym delad minne.
- Stöd för ARM64 GCS (Guarded Control Stack) har lagts till, vilket ger hÄrdvaruskydd för returadresser frÄn funktioner. Efter att kontrollen har överförts till funktionen, sparas returadresserna av processorn inte bara i den vanliga stacken utan ocksÄ i en separat skuggstack som inte kan Àndras direkt. Innan funktionen avslutas, extraheras returadressen frÄn skuggstacken och jÀmförs med returadressen frÄn den primÀra stacken.
- En backend för att spara tillstÄndet för NVIDIA CUDA-drivrutinens API har lagts till.
- à terstÀllning av GPU-mappning sÀkerstÀlls.
- För amdgpu-drivrutinen implementerades bevarande och ÄterstÀllning av tillstÄndet för DRM (Direct Rendering Manager)-subsystemets buffertar och DMA-BUF-fildeskriptorer.
- Kommandon för att komprimera och dekomprimera minnesavbilder i offline-lÀge har lagts till.
- Stöd för att spara och ÄterstÀlla information om bindning av UID-identifikatorer till nÀtverksocketar har lagts till.
- Alternativet 'âimage-io-mode' har lagts till för att skriva och lĂ€sa minnessideavbilder i O_DIRECT-lĂ€ge (bypassa sidcache).
KĂ€lla: opennet.ru
