Прапанаваны механізм 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

Дадаць каментар