Предложен е механизъм blksnap за създаване на снимки на блокови устройства в Linux.

Компания Veeam, която предлага софтуер за архивиране и възстановяване след инциденти, предложи за включване в ядрото на Linux модул blksnap със механизъм за създаване на снимки на блокови устройства и проследяване на промените в блоковите устройства. За работа с снимките е подготвена командна утилита blksnap и библиотека blksnap.so, позволяваща на потребителското пространство да взаимодейства с ядрения модул чрез извиквания на ioctl.

Целта на създаването на модула е организирането на архивиране на носители и виртуални дискове без спиране на работата — модулът позволява фиксирането на текущото състояние на цялото блоково устройство в снимка, предоставяйки изолиран срез за архивиране, независещ от продължаващите промени. Важна характеристика на blksnap е възможността за едновременна създаване на снимки за няколко блокови устройства, което позволява не само осигуряване на целостта на данните на ниво блоково устройство, но и постигане на съгласуваност на състоянието на различни блокови устройства в резервната копия.

За проследяване на промените в подсистемата на блоковите устройства (bdev) е добавена възможност за прикачване на филтри, позволяващи прихващането на заявки за вход/изход. В blksnap е реализиран филтър, който прихваща заявки за запис, прочита старото значение и го запазва в отделен списък с промени, определящ състоянието на снимката. При такъв подход логиката на работа с блоковото устройство не се променя, записът в оригиналното блоково устройство се извършва както е, независимо от снимките, което изключва възможността за повреждане на данните и позволява избягване на проблеми, дори в случай на непредсказуеми критични грешки в blksnap и пренапълване на пространството, отделено за промени.

Модулът позволява да се определи кои блокове са били променени за времевия период между последния и всеки предишен момент на снимка, което може да е полезно за внедряване на инкрементално архивиране. За запазване на промените, спрямо състоянието на снимката, на всяко блоково устройство може да бъде определен произволен диапазон от сектори, което позволява съхранение на измененията в отделни файлове в системата на блоковите устройства. Размерът на областта за съхранение на промените по всяко време може да бъде увеличен, дори и след създаването на снимката.

Blksnap е базиран на кода на модула veeamsnap, който е част от продукта Veeam Agent for Linux, но е преработен с оглед на спецификата на доставката в основното ядро на Linux. Концептуалната разлика между blksnap и veeamsnap е използването на система от филтри, прикрепени към блоковото устройство, вместо отделен компонент bdevfilter, който перехваща входа/изхода.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster