Mecanismul blksnap propus pentru crearea de instantanee ale dispozitivelor bloc în Linux

Compania Veeam, care produce software pentru backup și recuperare în caz de dezastru, a propus modulul blksnap pentru includerea în kernel-ul Linux cu implementarea mecanismului de creare a instantanee ale dispozitivelor bloc și de urmărire a modificărilor în dispozitivele bloc. Pentru a lucra cu instantanee, au fost pregătite utilitarul blksnap de linie de comandă și biblioteca blksnap.so, permițându-vă să interacționați cu modulul kernel prin apeluri ioctl din spațiul utilizatorului.

Scopul creării modulului este de a organiza copierea de rezervă a unităților și a discurilor virtuale fără a opri munca - modulul vă permite să capturați starea curentă a întregului dispozitiv bloc într-un instantaneu, oferind o porțiune izolată pentru backup care nu depinde de modificările în curs. . O caracteristică importantă a blksnap este capacitatea de a crea simultan instantanee pentru mai multe dispozitive bloc simultan, ceea ce permite nu numai asigurarea integrității datelor la nivelul dispozitivului bloc, ci și obținerea coerenței în starea diferitelor dispozitive bloc în backup.

Pentru a urmări modificările aduse subsistemului dispozitiv bloc (bdev), a fost adăugată capacitatea de a atașa filtre care vă permit să interceptați cererile I/O. blksnap implementează un filtru care interceptează cererile de scriere, citește valoarea veche și o salvează într-o listă separată de modificări care determină starea instantaneului. Cu această abordare, logica de lucru cu un dispozitiv bloc nu se schimbă, înregistrarea în dispozitivul bloc original se realizează așa cum este, indiferent de instantanee, ceea ce elimină posibilitatea coruperii datelor și evită problemele chiar și în cazul unor erori critice imprevizibile. în blksnap și depășire a spațiului alocat pentru modificări.

Modulul vă permite, de asemenea, să determinați ce blocuri au fost modificate între ultimul și orice instantaneu anterior, ceea ce poate fi util pentru implementarea backup-urilor incrementale. Pentru a salva modificările, în raport cu starea instantaneului, o gamă arbitrară de sectoare poate fi alocată pe orice dispozitiv bloc, ceea ce vă permite să salvați modificările la fișiere separate din cadrul FS pe dispozitivele bloc. Dimensiunea zonei pentru stocarea modificărilor poate fi mărită în orice moment, chiar și după crearea instantaneului.

Blksnap se bazează pe codul modulului veeamsnap, care face parte din produsul Veeam Agent pentru Linux, dar reproiectat pentru specificul livrării în partea principală a nucleului Linux. Diferența conceptuală dintre blksnap și veeamsnap este utilizarea unui sistem de filtre atașat la un dispozitiv bloc, în locul unei componente separate bdevfilter care interceptează I/O.

Sursa: opennet.ru

Adauga un comentariu