Voorgestelde blksnap-meganisme vir die skep van foto's van bloktoestelle in Linux

Veeam, 'n maatskappy wat rugsteun- en rampherstelsagteware vervaardig, het die blksnap-module voorgestel vir insluiting in die Linux-kern, wat 'n meganisme implementeer om foto's van bloktoestelle te skep en veranderinge in bloktoestelle op te spoor. Om met foto's te werk, is die blksnap-opdragreël-nutsding en die blksnap.so-biblioteek voorberei, wat jou in staat stel om met die kernmodule te kommunikeer deur ioctl-oproepe vanaf gebruikersruimte.

Die doel van die skep van die module is om rugsteune van aandrywers en virtuele skywe te organiseer sonder om werk te stop - die module laat jou toe om die huidige toestand van die hele bloktoestel in 'n momentopname op te neem, wat 'n geïsoleerde deel vir rugsteun verskaf wat nie afhanklik is van voortdurende veranderinge nie. . 'n Belangrike kenmerk van blksnap is die vermoë om gelyktydig foto's vir verskeie bloktoestelle te skep, wat dit moontlik maak om nie net data-integriteit op die bloktoestelvlak te verseker nie, maar ook om konsekwentheid in die toestand van verskillende bloktoestelle in die rugsteunkopie te verkry.

Om veranderinge op te spoor, het die bloktoestelsubstelsel (bdev) die vermoë bygevoeg om filters aan te heg wat jou toelaat om I/O-versoeke te onderskep. blksnap implementeer 'n filter wat skryfversoeke onderskep, die ou waarde lees en dit in 'n aparte veranderingslys stoor wat die toestand van die momentopname definieer. Met hierdie benadering verander die logika om met 'n bloktoestel te werk nie; opname in die oorspronklike bloktoestel word uitgevoer soos dit is, ongeag momentopnames, wat die moontlikheid van datakorrupsie uitskakel en probleme vermy selfs al voorkom onvoorspelbare kritieke foute in blksnap en die spasie wat vir veranderinge toegeken is, is vol.

Die module laat jou ook toe om te bepaal watter blokke verander is in die tydperk tussen die laaste en enige vorige momentopname, wat nuttig kan wees vir die implementering van inkrementele rugsteun. Om veranderinge relatief tot die momentopname-toestand te stoor, kan 'n arbitrêre reeks sektore op enige bloktoestel toegewys word, wat jou toelaat om veranderinge in aparte lêers binne die lêerstelsel op bloktoestelle te stoor. Die grootte van die area vir die stoor van veranderinge kan te eniger tyd vergroot word, selfs nadat 'n momentopname geskep is.

Blksnap is gebaseer op die veeamsnap-modulekode wat in die Veeam Agent vir Linux-produk ingesluit is, maar herontwerp om die besonderhede van aflewering in die hoof Linux-kern in ag te neem. Die konseptuele verskil tussen blksnap en veeamsnap is die gebruik van 'n filterstelsel wat aan die bloktoestel gekoppel is, in plaas van 'n aparte bdevfilter-komponent wat I/O onderskep.

Bron: opennet.ru

Voeg 'n opmerking