Blksnap-mekanismen har föreslagits för att skapa ögonblicksbilder av blockenheter i Linux

Veeam, ett företag som producerar programvara för säkerhetskopiering och katastrofåterställning, har föreslagit blksnap-modulen för inkludering i Linux-kärnan, som implementerar en mekanism för att skapa ögonblicksbilder av blockenheter och spåra ändringar i blockenheter. För att arbeta med ögonblicksbilder har kommandoradsverktyget blksnap och biblioteket blksnap.so förberetts, så att du kan interagera med kärnmodulen genom ioctl-anrop från användarutrymmet.

Syftet med att skapa modulen är att organisera säkerhetskopior av enheter och virtuella diskar utan att stoppa arbetet - modulen låter dig spela in i en ögonblicksbild det aktuella tillståndet för hela blockenheten, vilket ger en isolerad del för säkerhetskopiering som inte är beroende av pågående förändringar . En viktig egenskap hos blksnap är möjligheten att samtidigt skapa ögonblicksbilder för flera blockenheter på en gång, vilket inte bara gör det möjligt att säkerställa dataintegritet på blockenhetsnivå, utan också att uppnå konsistens i tillståndet för olika blockenheter i säkerhetskopian.

För att spåra ändringar har blockenhetsundersystemet (bdev) lagt till möjligheten att bifoga filter som låter dig fånga upp I/O-förfrågningar. blksnap implementerar ett filter som fångar upp skrivförfrågningar, läser det gamla värdet och lagrar det i en separat ändringslista som definierar tillståndet för ögonblicksbilden. Med detta tillvägagångssätt förändras inte logiken i att arbeta med en blockenhet; inspelning i den ursprungliga blockenheten utförs som den är, oavsett ögonblicksbilder, vilket eliminerar möjligheten för datakorruption och undviker problem även om oförutsägbara kritiska fel uppstår i blksnap och utrymmet för ändringar är fullt.

Modulen låter dig också bestämma vilka block som ändrades under tidsperioden mellan den senaste och någon tidigare ögonblicksbild, vilket kan vara användbart för att implementera inkrementella säkerhetskopieringar. För att spara ändringar i förhållande till ögonblicksbildstillståndet kan ett godtyckligt område av sektorer allokeras på vilken blockenhet som helst, vilket gör att du kan spara ändringar i separata filer inom filsystemet på blockenheter. Storleken på området för att lagra ändringar kan ökas när som helst, även efter att en ögonblicksbild skapats.

Blksnap är baserat på veeamsnap-modulkoden som ingår i Veeam Agent för Linux-produkten, men omdesignad för att ta hänsyn till detaljerna för leverans i Linux-huvudkärnan. Den konceptuella skillnaden mellan blksnap och veeamsnap är användningen av ett filtersystem anslutet till blockanordningen, istället för en separat bdevfilter-komponent som fångar upp I/O.

Källa: opennet.ru

Lägg en kommentar