До складу ядра Linux прийнятий модуль для реплікації зовнішніх пристроїв

Alex Alex 23 вересня 2019
До складу ядра Linux прийнятий модуль для реплікації зовнішніх пристроїв

Лінус Торвальдс прийняв в гілку ядра, на основі якої формується реліз 5.4, реалізацію модуля dm-clone з реалізацією нового обробника на базі Device-Mapper, що дозволяє клонувати існуючий блоковий пристрій. Модуль дає можливість на базі доступного в режимі тільки для читання блочного пристрою створити локальну копію, яка допускає запис в процесі клонування.

В якості типового застосування dm-clone згадується клонування по мережі віддалених архівних пристроїв, доступних в режимі тільки для читання що оброблюють запити введення/виведення з великими затримками, в локальний швидкий пристрій, що підтримує запис і обробляє запити з мінімальними затримками.

Клонований пристрій можна примонтувати і почати використання відразу після його створення, не чекаючи завершення процесу переносу даних. Копіювання інформації продовжуватимться в фоновому режимі, паралельно з введенням/виведенням, утвореним при зверненні до нового пристрою. Наприклад, dm-clone можна використовувати для відновлення резервних копій з мережевих сховищ, доступних за такими протоколами, як NBD, Fibre Channel, iSCSI і AoE, в локальне сховище на базі SSD або NVMe. Код dm-clone оптимізований для виконання дрібних операцій випадкового запису, розмір яких відповідає розміру блоку (за замовчуванням 4K).

У процесі клонування запити на читання будуть приводити до прямого запиту даних з клонованого пристрою, а запити на запис, що зачіпають ще не синхронізовані області, будуть відкладатися до закінчення позапланового завантаження отриманих блоків (операції завантаження для пов'язаних із записом блоків ініціюються миттєво). Очищені за допомогою операції "discard" блоки виключаються з процесу копіювання (після монтування користувач може виконати fstrim /mnt/ cloned-fs щоб не копіювати блоки, невикористовувані в ФС).

Інформація про зміни і дані про завантажені блоки зберігаються в окремій локальній таблиці метаданих. Після завершення клонування користувач отримує повну робочу копію вихідного пристрою, що відображає всі зміни, виконані з моменту початку клонування. Таблиця з метаданими клонування після синхронізації може бути видалена, шляхом заміни на лінійну таблицю, що виконує пряме відображення даних на новий пристрій.

Ключовою відмінністю від рішень на базі Unionfs і OverlayFS є те, що dm-clone працює на рівні блочного пристрою, незалежно від застосовуваної на цьому пристрої файлової системи, і формує повну копію вихідного пристрою, а не накладає додатковий шар, в якому відслідковуються зміни. На відміну від dm-mirror модуль dm-clone спочатку був розрахований на роботу тільки з вихідним розділом в режимі тільки для читання, без трансляції в нього операцій запису. У dm-snapshot НЕ створюється повна копія і відсутня підтримка фонового копіювання. У dm-cache НЕ створюється повна копія, прокидаємо операції записи, а робота зводиться до кешуванню звернень. Найбільш близьким за функціональністю є dm-thin, але він не підтримує операції фонового копіювання та обмежений тільки використанням певних типів розділів (thin-provisioning).

Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Війти / Зареєструватися