Blksnap մեխանիզմն առաջարկվել է Linux-ում բլոկ սարքերի snapshot-ներ ստեղծելու համար

Veeam ընկերությունը, որը արտադրում է պահեստային և աղետների վերականգնման ծրագրակազմ, առաջարկել է blksnap մոդուլը Linux միջուկում ներառելու համար, որն իրականացնում է բլոկ սարքերի նկարներ ստեղծելու և բլոկային սարքերում փոփոխություններին հետևելու մեխանիզմ: Պատկերների հետ աշխատելու համար պատրաստվել են blksnap հրամանի տող ծրագիրը և blksnap.so գրադարանը, որը թույլ է տալիս փոխազդել միջուկի մոդուլի հետ օգտատիրոջ տարածքից ioctl զանգերի միջոցով:

Մոդուլի ստեղծման նպատակն է սկավառակների և վիրտուալ սկավառակների կրկնօրինակում կազմակերպել՝ առանց աշխատանքը դադարեցնելու. մոդուլը թույլ է տալիս լուսանկարում գրանցել ամբողջ բլոկ սարքի ներկա վիճակը՝ ապահովելով մեկուսացված հատված կրկնօրինակման համար, որը կախված չէ ընթացիկ փոփոխություններից: . Blksnap-ի կարևոր առանձնահատկությունն է միաժամանակ մի քանի բլոկային սարքերի համար նկարներ ստեղծելու հնարավորությունը, ինչը թույլ է տալիս ոչ միայն ապահովել տվյալների ամբողջականությունը բլոկային սարքի մակարդակում, այլև հասնել պահուստային պատճենի տարբեր բլոկային սարքերի վիճակին:

Փոփոխություններին հետևելու համար բլոկ սարքի ենթահամակարգը (bdev) ավելացրել է զտիչներ կցելու հնարավորություն, որոնք թույլ են տալիս ընդհատել I/O հարցումները: blksnap-ը կիրառում է ֆիլտր, որը ընդհատում է գրելու հարցումները, կարդում է հին արժեքը և պահում այն ​​առանձին փոփոխության ցանկում, որը սահմանում է նկարի վիճակը: Այս մոտեցմամբ բլոկ սարքի հետ աշխատելու տրամաբանությունը չի փոխվում. սկզբնական բլոկ սարքում ձայնագրումը կատարվում է այնպես, ինչպես կա, անկախ snapshot-ից, ինչը վերացնում է տվյալների կոռուպցիայի հնարավորությունը և խուսափում խնդիրներից, նույնիսկ եթե blksnap-ում անկանխատեսելի կրիտիկական սխալներ են տեղի ունենում: փոփոխությունների համար հատկացված տարածքը լցված է։

Մոդուլը նաև թույլ է տալիս որոշել, թե որ բլոկներն են փոխվել վերջին և ցանկացած նախորդ նկարի միջև ընկած ժամանակահատվածում, ինչը կարող է օգտակար լինել լրացուցիչ կրկնօրինակումներ իրականացնելու համար: Պատկերի վիճակի հետ կապված փոփոխությունները պահպանելու համար ցանկացած բլոկ սարքի վրա կարող է հատկացվել սեկտորների կամայական տիրույթ, ինչը թույլ է տալիս պահպանել փոփոխությունները ֆայլային համակարգի առանձին ֆայլերում բլոկային սարքերի վրա: Փոփոխությունները պահելու համար տարածքի չափը կարող է մեծացվել ցանկացած պահի, նույնիսկ լուսանկար ստեղծելուց հետո:

Blksnap-ը հիմնված է veeamsnap մոդուլի կոդի վրա, որը ներառված է Veeam Agent for Linux արտադրանքի մեջ, բայց վերանախագծված է հաշվի առնելու հիմնական Linux միջուկում առաքման առանձնահատկությունները: Blksnap-ի և veeamsnap-ի կոնցեպտուալ տարբերությունը բլոկային սարքին կցված զտիչ համակարգի օգտագործումն է՝ առանձին bdevfilter բաղադրիչի փոխարեն, որը ընդհատում է I/O-ը:

Source: opennet.ru

Добавить комментарий