Blksnap-mekanismen har blitt foreslått for å lage øyeblikksbilder av blokkenheter i Linux

Veeam, et selskap som produserer programvare for sikkerhetskopiering og katastrofegjenoppretting, har foreslått blksnap-modulen for inkludering i Linux-kjernen, som implementerer en mekanisme for å lage øyeblikksbilder av blokkenheter og spore endringer i blokkenheter. For å jobbe med øyeblikksbilder er blksnap-kommandolinjeverktøyet og blksnap.so-biblioteket forberedt, slik at du kan samhandle med kjernemodulen gjennom ioctl-anrop fra brukerområdet.

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å veeamsnap-modulkoden inkludert i Veeam Agent for Linux-produktet, men redesignet for å ta hensyn til spesifikasjonene for levering i hoved Linux-kjernen. Den konseptuelle forskjellen mellom blksnap og veeamsnap er bruken av et filtersystem festet til blokkenheten, i stedet for en separat bdevfilter-komponent som fanger opp I/O.

Kilde: opennet.ru

Legg til en kommentar