Voorgesteld blksnap-mechanisme voor het maken van snapshots van blokapparaten in Linux

Het bedrijf Veeam, dat software produceert voor back-up en noodherstel, stelde voor om de blksnap-module op te nemen in de Linux-kernel met de implementatie van het mechanisme voor het maken van snapshots van blokapparaten en het volgen van wijzigingen in blokapparaten. Om met momentopnamen te werken, zijn het blksnap-opdrachtregelhulpprogramma en de blksnap.so-bibliotheek voorbereid, zodat u kunt communiceren met de kernelmodule via ioctl-aanroepen vanuit de gebruikersruimte.

Het doel van het maken van de module is om back-ups van schijven en virtuele schijven te organiseren zonder het werk te onderbreken - met de module kunt u de huidige status van het volledige blokapparaat vastleggen in een momentopname, waardoor een geïsoleerde plak voor back-up wordt geboden die niet afhankelijk is van doorlopende wijzigingen . Een belangrijk kenmerk van blksnap is de mogelijkheid om tegelijkertijd momentopnamen te maken voor verschillende blokapparaten, waardoor niet alleen de gegevensintegriteit op blokapparaatniveau kan worden gegarandeerd, maar ook consistentie kan worden bereikt in de status van verschillende blokapparaten in de back-up.

Om wijzigingen in het blokapparaatsubsysteem (bdev) bij te houden, is de mogelijkheid toegevoegd om filters toe te voegen waarmee u I/O-verzoeken kunt onderscheppen. blksnap implementeert een filter dat schrijfverzoeken onderschept, de oude waarde leest en opslaat in een aparte lijst met wijzigingen die de status van de snapshot bepaalt. Met deze aanpak verandert de logica van het werken met een blokapparaat niet, de opname in het originele blokapparaat wordt uitgevoerd zoals het is, ongeacht snapshots, waardoor de mogelijkheid van gegevensbeschadiging wordt geëlimineerd en problemen worden vermeden, zelfs in het geval van onvoorspelbare kritieke fouten in blksnap en overloop van de ruimte die is toegewezen voor wijzigingen.

Met de module kunt u ook bepalen welke blokken zijn gewijzigd tussen de laatste en eventuele vorige momentopname, wat handig kan zijn voor het implementeren van incrementele back-ups. Om wijzigingen ten opzichte van de status van de snapshot op te slaan, kan een willekeurig bereik van sectoren worden toegewezen aan elk blokapparaat, waardoor u wijzigingen kunt opslaan in afzonderlijke bestanden binnen de FS op blokapparaten. De grootte van het gebied voor het opslaan van wijzigingen kan op elk moment worden vergroot, zelfs nadat de snapshot is gemaakt.

Blksnap is gebaseerd op de code van de veeamsnap-module, die deel uitmaakt van het product Veeam Agent voor Linux, maar opnieuw is ontworpen voor de specifieke kenmerken van levering in het hoofdgedeelte van de Linux-kernel. Het conceptuele verschil tussen blksnap en veeamsnap is het gebruik van een systeem van filters die aan een blokapparaat zijn bevestigd, in plaats van een afzonderlijke bdevfilter-component die I/O onderschept.

Bron: opennet.ru

Voeg een reactie