Linux'та блоктук түзүлүштөрдүн сүрөттөрүн түзүү үчүн сунушталган blksnap механизми

Камдык көчүрмөнү сактоо жана кырсыктан калыбына келтирүү программаларын чыгарган Veeam компаниясы Linux ядросуна кошуу үчүн blksnap модулун сунуштады, ал блоктук түзүлүштөрдүн сүрөтүн түзүү жана блоктук түзүлүштөрдөгү өзгөрүүлөргө көз салуу механизмин ишке ашырат. Сүрөттөр менен иштөө үчүн blksnap буйрук сабынын утилитасы жана blksnap.so китепканасы даярдалган, бул колдонуучу мейкиндигинен ioctl чалуулары аркылуу ядро ​​модулу менен иштешүүгө мүмкүндүк берет.

Модулду түзүүнүн максаты - иштөөнү токтотпостон, дисктердин жана виртуалдык дисктердин резервдик көчүрмөлөрүн уюштуруу - модуль учурдагы өзгөрүүлөргө көз каранды болбогон резервдик көчүрүү үчүн обочолонгон тилке менен камсыз кылуу менен бүт блоктук түзүлүштүн учурдагы абалын снапшотко жазууга мүмкүндүк берет. . blksnapтын маанилүү өзгөчөлүгү - бул бир эле учурда бир нече блоктук түзүлүштөр үчүн снапшотторду түзүү мүмкүнчүлүгү, бул блок түзмөгүнүн деңгээлинде маалыматтардын бүтүндүгүн камсыз кылууга гана эмес, резервдик көчүрмөдө ар кандай блоктук түзүлүштөрдүн абалынын ырааттуулугуна жетишүүгө мүмкүндүк берет.

Өзгөртүүлөргө көз салуу үчүн блок түзмөгүнүн подсистемасы (bdev) киргизүү/чыгаруу сурамдарын кармоого мүмкүндүк берүүчү чыпкаларды тиркөө мүмкүнчүлүгүн кошту. blksnap жазуу сурамдарына тоскоол болгон чыпканы ишке ашырат, эски маанини окуйт жана аны сүрөттүн абалын аныктаган өзүнчө өзгөртүү тизмесинде сактайт. Бул ыкма менен блок түзмөгү менен иштөө логикасы өзгөрбөйт, оригиналдуу блок түзмөгүндө жазуу, көз ирмемдик сүрөттөргө карабастан аткарылат, бул маалыматтардын бузулуу мүмкүнчүлүгүн жокко чыгарат жана blksnap менен күтүлбөгөн критикалык каталар пайда болсо да көйгөйлөрдөн качат; өзгөртүүлөр үчүн бөлүнгөн орун толду.

Модуль ошондой эле акыркы жана мурунку сүрөттүн ортосундагы убакыт аралыгында кайсы блоктор өзгөртүлгөнүн аныктоого мүмкүндүк берет, бул кошумча резервдик көчүрмөлөрдү ишке ашыруу үчүн пайдалуу болушу мүмкүн. Көз ирмемдик абалга салыштырмалуу өзгөртүүлөрдү сактоо үчүн каалаган блоктук түзүлүштө секторлордун ыктыярдуу диапазону бөлүнүшү мүмкүн, бул блоктук түзүлүштөрдөгү файл тутумунун ичинде өзүнчө файлдарга өзгөртүүлөрдү сактоого мүмкүндүк берет. Өзгөртүүлөрдү сактоо үчүн аянттын өлчөмүн каалаган убакта, атүгүл сүрөттү жараткандан кийин да көбөйтүүгө болот.

Blksnap Linux үчүн Veeam Agent продуктуна камтылган veeamsnap модулунун кодуна негизделген, бирок Linux негизги өзөгүндө жеткирүүнүн өзгөчөлүктөрүн эске алуу үчүн кайра иштелип чыккан. blksnap менен veeamsnap ортосундагы концептуалдык айырма I/Oну тоскон өзүнчө bdevfilter компонентинин ордуна блок түзмөгүнө тиркелген чыпка системасын колдонуу.

Source: opennet.ru