Veeam, et selskap som produserer programvare for sikkerhetskopiering og katastrofegjenoppretting, har foreslått å bli inkludert i kjernen. Linux blksnap-modulen implementerer en mekanisme for å lage øyeblikksbilder av blokkenheter og spore endringer i blokkenheter. For å jobbe med øyeblikksbilder er det utviklet et kommandolinjeverktøy, blksnap, og et bibliotek, blksnap.so, som tillater brukerinteraksjon med kjernemodulen via ioctl-kall.
Hensikten med å lage modulen er å organisere sikkerhetskopier av stasjoner og virtuelle disker uten å stoppe arbeidet - modulen lar deg registrere i et øyeblikksbilde gjeldende tilstand for hele blokkenheten, og gir en isolert del for sikkerhetskopiering som ikke er avhengig av pågående endringer . En viktig funksjon ved blksnap er muligheten til å lage øyeblikksbilder for flere blokkenheter samtidig, noe som ikke bare gjør det mulig å sikre dataintegritet på blokkenhetsnivå, men også oppnå konsistens i tilstanden til forskjellige blokkenheter i sikkerhetskopien.
For å spore endringer har blokkenhetsundersystemet (bdev) lagt til muligheten til å legge ved filtre som lar deg avskjære I/O-forespørsler. blksnap implementerer et filter som fanger opp skriveforespørsler, leser den gamle verdien og lagrer den i en egen endringsliste som definerer tilstanden til øyeblikksbildet. Med denne tilnærmingen endres ikke logikken for å jobbe med en blokkenhet; opptak i den originale blokkenheten utføres som den er, uavhengig av øyeblikksbilder, noe som eliminerer muligheten for datakorrupsjon og unngår problemer selv i tilfelle uforutsigbare kritiske feil i blksnap og plassen som er tildelt for endringer er full.
Modulen lar deg også bestemme hvilke blokker som ble endret i tidsperioden mellom siste og et hvilket som helst tidligere øyeblikksbilde, noe som kan være nyttig for å implementere inkrementelle sikkerhetskopier. For å lagre endringer i forhold til øyeblikksbildetilstanden, kan et vilkårlig utvalg av sektorer tildeles på hvilken som helst blokkenhet, som lar deg lagre endringer i separate filer i filsystemet på blokkenheter. Størrelsen på området for lagring av endringer kan økes når som helst, selv etter at du har laget et øyeblikksbilde.
Blksnap er basert på koden til veeamsnap-modulen, som er en del av Veeam Agent for Linux, men omarbeidet med tanke på detaljene ved levering i hovedkjernekomposisjonen LinuxDen konseptuelle forskjellen mellom blksnap og veeamsnap er bruken av et system med filtre koblet til blokkenheten, i stedet for en separat bdevfilter-komponent som fanger opp I/O.
Kilde: opennet.ru
