Veeam ընկերությունը, որը արտադրում է պահուստային պատճենահանման և աղետների վերականգնման ծրագրեր, առաջարկել է blksnap մոդուլը Linux միջուկում ներառելու համար, որը ներդնում է բլոկային սարքերի snapshots ստեղծելու և բլոկային սարքերում փոփոխությունները հետևելու մեխանիզմ: Snapshots-ի հետ աշխատելու համար պատրաստվել են blksnap հրամանային տողի ծրագիրը և blksnap.so գրադարանը, որոնք թույլ են տալիս փոխազդել միջուկի մոդուլի հետ օգտատիրոջ տարածքից ioctl կանչերի միջոցով:
Մոդուլի ստեղծման նպատակն է կազմակերպել սկավառակների և վիրտուալ սկավառակների պահուստավորումը՝ առանց աշխատանքը դադարեցնելու. մոդուլը թույլ է տալիս ֆիքսել ամբողջ բլոկային սարքի ընթացիկ վիճակը մեկ լուսանկարում, ապահովելով պահուստավորման համար մեկուսացված հատված, որը կախված չէ ընթացիկ փոփոխություններից: Blksnap-ի կարևոր առանձնահատկությունը միաժամանակ մի քանի բլոկային սարքերի համար լուսանկարներ ստեղծելու հնարավորությունն է, ինչը թույլ է տալիս ոչ միայն ապահովել տվյալների ամբողջականությունը բլոկային սարքի մակարդակում, այլև պահպանել պահուստային պատճենում տարբեր բլոկային սարքերի վիճակի համապատասխանությունը:
Փոփոխությունները հետևելու համար բլոկային սարքի ենթահամակարգը (bdev) այժմ ունի մուտքի/ելքի հարցումները խլող ֆիլտրեր կցելու հնարավորություն: blksnap-ն ունի ֆիլտր, որը խլում է գրելու հարցումները, կարդում է հին արժեքը և պահպանում այն առանձին փոփոխությունների ցանկում, որը սահմանում է snapshot-ի վիճակը: Այս մոտեցմամբ բլոկային սարքի հետ աշխատելու տրամաբանությունը չի փոխվում, սկզբնական բլոկային սարքի վրա գրառումը կատարվում է այնպես, ինչպես կա՝ անկախ snapshot-ներից, ինչը վերացնում է տվյալների վնասման հնարավորությունը և խուսափում խնդիրներից նույնիսկ blksnap-ում անկանխատեսելի կրիտիկական սխալների և փոփոխությունների համար հատկացված տարածքի գերբեռնվածության դեպքում:
Մոդուլը նաև թույլ է տալիս որոշել, թե որ բլոկներն են փոփոխվել վերջին և նախորդ ցանկացած ակնթարթային պատկերի միջև ընկած ժամանակահատվածում, ինչը կարող է օգտակար լինել աստիճանական պահուստավորումներ իրականացնելու համար: Ակնթարթային պատկերի վիճակին վերաբերող փոփոխությունները պահպանելու համար ցանկացած բլոկային սարքի վրա կարող է հատկացվել ոլորտների կամայական միջակայք, ինչը թույլ է տալիս պահպանել փոփոխությունները առանձին ֆայլերով՝ բլոկային սարքերի FS-ի ներսում: Փոփոխությունների պահպանման տարածքի չափը կարող է մեծացվել ցանկացած պահի, նույնիսկ ակնթարթային պատկեր ստեղծելուց հետո:
Blksnap-ը հիմնված է Veeam Agent for Linux արտադրանքի մեջ ներառված veeamsnap մոդուլի կոդի վրա, սակայն այն վերամշակվել է՝ հաշվի առնելով Linux-ի հիմնական միջուկում մատակարարման առանձնահատկությունները: Blksnap-ի և veeamsnap-ի միջև հայեցակարգային տարբերությունը բլոկային սարքին կցված ֆիլտրերի համակարգի օգտագործումն է՝ մուտք/ելք ընդհատող առանձին bdevfilter բաղադրիչի փոխարեն:
Source: opennet.ru
