Foreslået blksnap-mekanisme til at skabe snapshots af blokenheder i Linux

Virksomheden Veeam, der producerer software til sikkerhedskopiering og gendannelse af katastrofer, foreslog blksnap-modulet til inklusion i Linux-kernen med implementeringen af ​​mekanismen til at skabe snapshots af blokenheder og spore ændringer i blokenheder. For at arbejde med snapshots er blksnap-kommandolinjeværktøjet og blksnap.so-biblioteket blevet forberedt, så du kan interagere med kernemodulet gennem ioctl-kald fra brugerområdet.

Formålet med at oprette modulet er at organisere backup af drev og virtuelle diske uden at stoppe arbejdet - modulet giver dig mulighed for at fange den aktuelle tilstand af hele blokenheden i et snapshot, hvilket giver et isoleret udsnit til backup, der ikke afhænger af igangværende ændringer . Et vigtigt træk ved blksnap er muligheden for samtidig at skabe snapshots for flere blokenheder på én gang, hvilket gør det muligt ikke kun at sikre dataintegritet på blokenhedsniveauet, men også at opnå konsistens i tilstanden af ​​forskellige blokenheder i sikkerhedskopien.

For at spore ændringer af blokenhedsundersystemet (bdev) er muligheden for at vedhæfte filtre, der giver dig mulighed for at opsnappe I/O-anmodninger, blevet tilføjet. blksnap implementerer et filter, der opsnapper skriveanmodninger, læser den gamle værdi og gemmer den i en separat liste over ændringer, der bestemmer tilstanden for øjebliksbilledet. Med denne tilgang ændres logikken i at arbejde med en blokenhed ikke, optagelsen i den originale blokenhed udføres som den er, uanset snapshots, hvilket eliminerer muligheden for datakorruption og undgår problemer selv i tilfælde af uforudsigelige kritiske fejl i blksnap og overløb af den plads, der er afsat til ændringer.

Modulet giver dig også mulighed for at bestemme, hvilke blokke der blev ændret mellem det sidste og et hvilket som helst tidligere snapshot, hvilket kan være nyttigt til implementering af trinvise sikkerhedskopier. For at gemme ændringer, i forhold til tilstanden af ​​snapshot, kan et vilkårligt udvalg af sektorer allokeres på enhver blokenhed, hvilket giver dig mulighed for at gemme ændringer til separate filer i FS på blokenheder. Størrelsen af ​​området til lagring af ændringer kan til enhver tid øges, selv efter at snapshottet er blevet oprettet.

Blksnap er baseret på koden til veeamsnap-modulet, som er en del af Veeam Agent for Linux-produktet, men omdesignet til leveringsspecifikationerne i hoveddelen af ​​Linux-kernen. Den konceptuelle forskel mellem blksnap og veeamsnap er brugen af ​​et system af filtre, der er knyttet til en blokenhed, i stedet for en separat bdevfilter-komponent, der opsnapper I/O.

Kilde: opennet.ru

Tilføj en kommentar