Нещодавно новина про це заявила компанія veeam, (компанія, яка виробляє програмне забезпечення для резервного копіювання та аварійного відновлення), запропонував включити модуль blksnap до ядра Linux з реалізацією механізму створення знімків блокових пристроїв і відстеження змін у блокових пристроях.
Мета de створити модуль для організації резервного копіювання віртуальних накопичувачів і дисків без зупинки роботи, це призначено для того, щоб модуль дозволив фіксувати поточний стан усього блокового пристрою на знімку, надаючи ізольовану частину для резервного копіювання, яка не залежить від поточних змін.
Привіт всім.
Я пропоную на ваш розгляд модифіковану версію модуля ядра blksnap. Дозволяє створювати непостійні знімки будь-якого блокового пристрою. Основне призначення таких знімків — створення резервної копії блокових пристроїв.
Знімок створюється одночасно для кількох блокових пристроїв, забезпечуючи їх взаємну узгодженість у резервному копіюванні.
Згадується, що важлива особливість від blksnap є можливість одночасного створення знімків для кількох блокових пристроїв одночасно, дозволяючи не тільки забезпечити цілісність даних на рівні блокових пристроїв, але й досягти узгодженості стану різних блокових пристроїв у резервній копії.
Для відстеження змін у підсистемі блокових пристроїв (bdev) додано можливість прикріплення фільтрів, які дозволяють перехоплювати запити введення-виведення. blksnap реалізує фільтр, який перехоплює запити на запис, читає старе значення та зберігає його в окремому списку змін, який визначає стан знімка.
При такому підході, логіка роботи з блоковим пристроєм не змінюється, запис на оригінальний блоковий пристрій виконується як є, незалежно від знімків, що виключає можливість пошкодження даних і запобігає проблемам навіть у разі непередбачуваних критичних помилок. у blksnap і переповнити простір, призначений для змін.
Довільний діапазон секторів може використовуватися на будь-якому блочному пристрої для зберігання миттєвих змін. Розмір зберігання змін можна збільшити після створення знімка, додавши нові діапазони секторів.
Це дозволяє вам створити єдине сховище відмінностей файлів у файловій системі, яке може займати весь простір блокового пристрою та розширювати сховище відмінностей за потреби.
Модуль також дозволяє визначити, які блоки були змінені між останніми та будь-якими попередніми знімками, що може бути корисним для користувача для створення додаткових резервних копій.
Щодо частини збереження змін щодо стану знімка, згадується, що може бути призначений довільний діапазон секторів на будь-якому блочному пристрої, що дозволяє зберігати зміни в окремі файли в межах FS на блочних пристроях. Розмір області для збереження змін можна збільшити в будь-який момент, навіть після створення знімка.
Для роботи зі снапшотами підготовлена утиліта командного рядка blksnap і бібліотека blksnap.so, які дозволяють взаємодіяти з модулем ядра через виклики ioctl з простору користувача.
Blksnap базується на коді модуля veeamsnap, який є частиною продукту Veeam Agent для Linux, але перероблений для специфікацій доставки в основній частині ядра Linux.
Концептуальна різниця між blksnap і veeamsnap полягає у використанні системи фільтрів, підключеної до блокового пристрою, а не окремого компонента bdevfilter, який перехоплює введення/виведення.
В кінці кінців якщо вам цікаво дізнатись більше про це, ви можете перевірити деталі в списках розсилки У наступному посиланні.