Kompania Veeam, që zhvillon softuer për kopje rezervë dhe rikuperim pas dështimit, ofroi përfshirjen në bërthama Linux një modul blksnap me implementimin e mekanizmit të krijimit të snapshoteve të pajisjeve bllok dhe ndjekjen e ndryshimeve në pajisjet bllok. Për të punuar me snapshotet, është përgatitur një mjet i komandës blksnap dhe biblioteka blksnap.so, që lejojnë ndërveprim nga hapësira e përdoruesit me modulin e bërthamës përmes thirrjeve ioctl.
Qëllimi i krijimit të modulit është organizimi i kopjimit rezervë të ruajtësve dhe disqeve virtuale pa ndërprerjen e funksionimit - moduli lejon fiksojen në një snapshot të gjendjes aktuale të gjithë pajisjes bllok, duke ofruar për kopje rezervë një prerje të izoluar, që nuk varet nga ndryshimet që vazhdojnë të mbërrijnë. Një veçori e rëndësishme e blksnap është mundësia e krijimit të snapshoteve të menjëhershme për disa pajisje bllok, gjë që lejon jo vetëm sigurimin e integritetit të të dhënave në nivelin e pajisjes bllok, por gjithashtu arritjen e konsistencës së gjendjeve të pajisjeve të ndryshme bllok në kopjen rezervë.
Për të ndjekur ndryshimet, është shtuar mundësia e ngjitjes së filtrave në nën sistemin e pajisjeve bllok (bdev), që lejojnë kapjen e kërkesave të hyrjes/daljes. Në blksnap është realizuar një filtr që kap kërkesat për shkruarje, lexon vlerën e vjetër dhe e ruan atë në një listë të veçantë ndryshimesh, e cila përcakton gjendjen e snapshotit. Me një qasje të tillë, logjika e punës me pajisjen bllok nuk ndryshon, shkruarja në pajisjen origjinale bllok bëhet siç është, pavarësisht nga snapshotet, çka përjashton mundësinë e dëmtimit të të dhënave dhe lejon shmangien e problemeve edhe në rastin e shfaqjes së gabimeve kritike të paparashikueshme në blksnap dhe mbushjes së hapësirës të caktuar për ndryshimet.
Moduli gjithashtu lejon të përcaktojë se cilat blloqe janë ndryshuar në intervalin kohor midis snapshots të fundit dhe ndonjë snapshots të mëparshëm, që mund të jetë e dobishme për implementimin e kopjimit incremental. Për të ruajtur ndryshimet në lidhje me gjendjen e snapshot-it, mund të rezervoni një gamë të caktuar sektorësh në çdo pajisje blloku, e cila lejon ruajtjen e ndryshimeve në skedarë të veçantë brenda sistemit të skedarëve në pajisjet bllokuese. Madhësia e zonës për ruajtjen e ndryshimeve mund të rritet në çdo moment, edhe pas krijimit të snapshot-it.
Blksnap bazohet në kodin e modulit veeamsnap, i cili është pjesë e produktit Veeam Agent for Linux, por është ripërdorur duke marrë parasysh specifikën e shpërndarjes si pjesë e bërthamës Linux. Dallimi konceptual i blksnap nga veeamsnap është përdorimi i sistemit të filtrave të bashkangjitur në pajisjen bllokuese, në vend të një komponenti të veçantë bdevfilter që intercepton hyrje/dalje.
Burimi: opennet.ru
