Navrhovaný mechanizmus blksnap na vytváranie snímok blokových zariadení v systéme Linux

Spoločnosť Veeam, ktorá vyrába softvér na zálohovanie a obnovu po havárii, navrhla na zahrnutie do linuxového jadra modul blksnap, ktorý implementuje mechanizmus na vytváranie snímok blokových zariadení a sledovanie zmien v blokových zariadeniach. Na prácu so snímkami bol pripravený nástroj príkazového riadka blksnap a knižnica blksnap.so, ktoré vám umožňujú interakciu s modulom jadra prostredníctvom volaní ioctl z používateľského priestoru.

Účelom vytvorenia modulu je organizovať zálohy jednotiek a virtuálnych diskov bez zastavenia práce - modul umožňuje zaznamenať aktuálny stav celého blokového zariadenia, čím poskytuje izolovaný rez pre zálohovanie, ktorý nezávisí od prebiehajúcich zmien . Dôležitou vlastnosťou blksnapu je schopnosť súčasne vytvárať snímky pre niekoľko blokových zariadení naraz, čo umožňuje nielen zabezpečiť integritu dát na úrovni blokových zariadení, ale aj dosiahnuť konzistentnosť stavu rôznych blokových zariadení v záložnej kópii.

Aby bolo možné sledovať zmeny, subsystém blokových zariadení (bdev) pridal možnosť pripojiť filtre, ktoré vám umožňujú zachytiť I/O požiadavky. blksnap implementuje filter, ktorý zachytí požiadavky na zápis, prečíta starú hodnotu a uloží ju do samostatného zoznamu zmien, ktorý definuje stav snímky. Pri tomto prístupe sa logika práce s blokovým zariadením nemení, nahrávanie do pôvodného blokového zariadenia sa vykonáva tak, ako je, bez ohľadu na snímky, čo eliminuje možnosť poškodenia údajov a predchádza problémom, aj keď sa v blksnap vyskytnú nepredvídateľné kritické chyby a priestor určený na zmeny je plný.

Modul vám tiež umožňuje určiť, ktoré bloky boli zmenené v časovom období medzi poslednou a akýmkoľvek predchádzajúcim snímkom, čo môže byť užitočné pri implementácii prírastkových záloh. Ak chcete uložiť zmeny týkajúce sa stavu snímky, ľubovoľný rozsah sektorov môže byť alokovaný na ľubovoľnom blokovom zariadení, čo vám umožňuje uložiť zmeny v samostatných súboroch v rámci súborového systému na blokových zariadeniach. Veľkosť oblasti na ukladanie zmien je možné kedykoľvek zväčšiť aj po vytvorení snímky.

Blksnap je založený na kóde modulu veeamsnap, ktorý je súčasťou produktu Veeam Agent for Linux, ale je prepracovaný tak, aby zohľadňoval špecifiká poskytovania v hlavnom jadre Linuxu. Koncepčný rozdiel medzi blksnap a veeamsnap je použitie filtračného systému pripojeného k blokovému zariadeniu namiesto samostatného komponentu bdevfilter, ktorý zachytáva I/O.

Zdroj: opennet.ru

Pridať komentár