A fost propus mecanismul blksnap pentru crearea de snapshot-uri ale dispozitivelor de stocare în Linux

Compania Veeam, care dezvoltă software pentru backup și recuperare după dezastre, a propus includerea în kernelul Linux a modulului blksnap, care implementează un mecanism pentru crearea de snapshot-uri ale dispozitivelor block și urmărirea modificărilor în acestea. Pentru gestionarea snapshot-urilor, a fost pregătită o utilitar de linie de comandă blksnap și biblioteca blksnap.so, care permit interacțiunea cu modulul kernel din spațiul utilizatorului prin apeluri ioctl.

Scopul creării modulului este organizarea backup-ului pentru stocatoarele și discurile virtuale fără a opri funcționarea acestora — modulul permite capturarea stării curente a întregului dispozitiv block într-un snapshot, oferind pentru backup o fereastră izolată, independentă de modificările care continuă să apară. O caracteristică importantă a blksnap este capacitatea de a crea simultan snapshot-uri pentru mai multe dispozitive block, ceea ce permite nu doar asigurarea integrității datelor la nivel de dispozitiv block, ci și obținerea coerenței stării diferitelor dispozitive block în backup.

Pentru urmărirea modificărilor, în subsistemul de dispozitive block (bdev) a fost adăugată posibilitatea de atașare a filtrelor care permit interceptarea cererilor de intrare / ieșire. În blksnap este implementat un filtru care interceptă cererile de scriere, citește vechea valoare și o salvează într-o listă separată de modificări, care definește starea snapshot-ului. Prin această abordare, logica de lucru cu dispozitivul block nu se modifică, scrierea în dispozitivul block original se efectuează exact așa cum este, indiferent de snapshot-uri, ceea ce exclude posibilitatea deteriorării datelor și permite evitarea problemelor chiar și în cazul apariției unor erori critice imprevizibile în blksnap și a umplerii spațiului alocat modificărilor.

Modulul permite, printre altele, determinarea blocurilor care au fost modificate în intervalul de timp dintre ultima și orice snapshot anterior, ceea ce poate fi utilizat pentru implementarea unei copii de rezervă incrementale. Pentru păstrarea modificărilor în raport cu starea snapshot-ului, un interval arbitrar de sectoare poate fi alocat pe orice dispozitiv de bloc, permițând salvarea modificărilor în fișiere separate în cadrul FS pe dispozitivele de bloc. Dimensiunea zonei pentru stocarea modificărilor poate fi mărită în orice moment, chiar și după crearea snapshot-ului.

Blksnap se bazează pe codul modulului veeamsnap, care face parte din produsul Veeam Agent pentru Linux, dar a fost reproiectat având în vedere specificitatea livrării în principalul nucleu Linux. Distanța conceptului dintre blksnap și veeamsnap constă în utilizarea unui sistem de filtre atașate la dispozitivul de bloc, în locul unui component separat bdevfilter care intercepta input/output.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster