Veeam, der udbyder software til backup og genoprettelse efter nedbrud, har foreslået at inkludere en blksnap-modul i Linux-kernen med implementering af en mekanisme til oprettelse af snapshots af blokenheder og overvågning af ændringer i blokenheder. For at arbejde med snapshots er der udviklet et kommandolinjeværktøj, blksnap, samt et bibliotek, blksnap.so, der muliggør interaktion med kernelmodulet via ioctl-opkald fra brugerens rum.
Formålet med at oprette modulet er at organisere backup af lagringsenheder og virtuelle diske uden at stoppe arbejdet — modulet gør det muligt at fastgøre den aktuelle tilstand af hele blokenheden i et snapshot, hvilket giver en isoleret udsnit til backup, der ikke er afhængig af de fortsatte ændringer. En vigtig funktion i blksnap er muligheden for samtidig at oprette snapshots for flere blok-enheder, hvilket ikke kun sikrer dataintegritet på blokniveau, men også opnår konsistens i tilstanden af forskellige blok-enheder i backupen.
For at overvåge ændringer i blok-enhedssystemet (bdev) er der tilføjet muligheden for at vedhæfte filtre, der gør det muligt at opfange input/output-anmodninger. I blksnap er der implementeret et filter, der fanger skriveanmodninger, læser den gamle værdi og gemmer den i en separat liste over ændringer, der bestemmer snapshot-tilstanden. Ved denne tilgang ændres logikken for arbejdet med blok-enheden ikke; skrivning til den originale blok-enhed udføres som den er, uafhængigt af snapshots, hvilket udelukker risikoen for dataskader og forhindrer problemer, selv i tilfælde af uforudsete kritiske fejl i blksnap og overbelastning af det tildelte plads til ændringer.
Modulet gør det muligt at identificere, hvilke blokke der er ændret i tidsrummet mellem det seneste og ethvert tidligere snapshot, hvilket kan være nyttigt til implementering af inkrementel backup. For at gemme ændringer i forhold til snapshot-tilstanden kan der tildeles et vilkårligt interval af sektorer på enhver blokkeringsenhed, hvilket gør det muligt at gemme ændringer i separate filer inden for Filsystemet på blokkeringsenheder. Størrelsen på området til opbevaring af ændringer kan når som helst øges, selv efter oprettelsen af snapshotet.
Blksnap er baseret på koden til modulet veeamsnap, som indgår i produktet Veeam Agent for Linux, men er omarbejdet med henblik på den specifikke distribution som en del af Linux-kernen. Den konceptuelle forskel mellem blksnap og veeamsnap er brugen af et filtersystem, der er knyttet til blokkeringsenheden, i stedet for en separat bdevfilter-komponent, der opsnapper ind-/udgang.
Kilde: opennet.ru
