Перейти до вмісту

B5. LVM і RAID

просунутийспирається на модуль 14

Модуль 14 стверджує, що RAID 5 на великих дисках ризикований, бо відновлення триває довго й весь цей час масив лишається без запасу. Тут ви це виміряєте самі, у масштабі, який поміщається у ВМ, але з тією самою механікою.

Заразом перевірите головну тезу: RAID не є резервною копією.

  1. Підготовка пристроїв.

    Чотири диски по 1 ГіБ. Перевірте lsblk, що ядро їх бачить.

  2. RAID 1 і перша відмова.

    Зібрати дзеркало з двох дисків, створити ФС, записати файл із відомою контрольною сумою.

    Позначити один диск як збійний (mdadm --fail), переконатися, що дані читаються, замінити диск і дочекатися синхронізації. Дивитися /proc/mdstat під час процесу.

  3. RAID 5 і вимірювання відновлення.

    Зібрати з трьох дисків, заповнити хоча б наполовину, вивести диск із ладу й заміряти час повного відновлення.

    Порахуйте: якщо на 1 ГіБ пішло N секунд, скільки триватиме відновлення масиву з дисків на 16 ТБ? Це число і є аргумент з модуля 14.

    Для звірки — заміри на віртуальних дисках поверх SSD: початкова синхронізація масиву на 2 ГіБ — 6 с, відновлення після заміни диска — 7 с при швидкості близько 150 МБ/с. Екстраполяція на 16 ТБ дає близько 30 годин. На справжніх дисках, що обертаються, швидкість того самого порядку, тож і висновок той самий.

    Під час відновлення прочитайте дані й переконайтеся, що масив працює — але в стані degraded. Подивіться, що станеться з продуктивністю.

  4. Друга відмова під час відновлення.

    Виведіть із ладу другий диск, поки триває відновлення. Зафіксуйте, що саме сталося з даними. Це найважливіший експеримент роботи.

  5. LVM поверх масиву.

    Фізичний том на /dev/md0, група томів, два логічні томи. Розширте один із них на льоту разом із файловою системою.

  6. Знімок.

    Зробіть знімок логічного тому, змініть дані в оригіналі, змонтуйте знімок і переконайтеся, що там старий стан.

    Простежте, як зростає зайнятість знімка в міру зміни оригіналу — це копіювання під час запису в чистому вигляді (модуль 12).

  7. RAID — не резервна копія.

    На робочому, справному масиві видаліть файл. Переконайтеся, що жодна надлишковість його не повернула. Запишіть це у звіт одним реченням.

Що треба вміти підтвердити

Section titled “Що треба вміти підтвердити”
Твердження Чим доводиться
Масив зібрано й він працює cat /proc/mdstat
Масив пережив відмову диска mdadm --detail /dev/md0 у стані degraded
Дані не постраждали контрольна сума файлу до і після
Ви заміряли відновлення час і швидкість із /proc/mdstat
Ви знаєте, що буде на 16 ТБ розрахунок у звіті
Логічний том розширено без зупинки lvs, df -h до і після
Знімок містить старий стан diff вмісту оригіналу і знімка
RAID не рятує від видалення опис експерименту 7

Масив «зник» після перезавантаження. Бракує запису в /etc/mdadm/mdadm.conf, і не перезібрано initramfs (модуль 5).

Відновлення «миттєве». Ви заміряли синхронізацію порожнього масиву. Заповніть його даними, бо класичний md відновлює весь простір, а не лише зайнятий.

Знімок переповнився. Знімок LVM має власний обмежений розмір, і коли змін накопичується більше, він стає недійсним. Це не помилка, а очікувана поведінка.

Файлову систему не розширено. lvextend збільшує том, але не файлову систему на ньому. Потрібен resize2fs або одразу lvextend -r.

Порівняти з btrfs у режимі RAID 1: там відновлюються лише зайняті блоки, і на напівпорожньому масиві різниця в часі буде разючою (модуль 15).