B5. LVM і RAID
Модуль 14 стверджує, що RAID 5 на великих дисках ризикований, бо відновлення триває довго й весь цей час масив лишається без запасу. Тут ви це виміряєте самі, у масштабі, який поміщається у ВМ, але з тією самою механікою.
Заразом перевірите головну тезу: RAID не є резервною копією.
-
Підготовка пристроїв.
Чотири диски по 1 ГіБ. Перевірте
lsblk, що ядро їх бачить. -
RAID 1 і перша відмова.
Зібрати дзеркало з двох дисків, створити ФС, записати файл із відомою контрольною сумою.
Позначити один диск як збійний (
mdadm --fail), переконатися, що дані читаються, замінити диск і дочекатися синхронізації. Дивитися/proc/mdstatпід час процесу. -
RAID 5 і вимірювання відновлення.
Зібрати з трьох дисків, заповнити хоча б наполовину, вивести диск із ладу й заміряти час повного відновлення.
Порахуйте: якщо на 1 ГіБ пішло N секунд, скільки триватиме відновлення масиву з дисків на 16 ТБ? Це число і є аргумент з модуля 14.
Для звірки — заміри на віртуальних дисках поверх SSD: початкова синхронізація масиву на 2 ГіБ — 6 с, відновлення після заміни диска — 7 с при швидкості близько 150 МБ/с. Екстраполяція на 16 ТБ дає близько 30 годин. На справжніх дисках, що обертаються, швидкість того самого порядку, тож і висновок той самий.
Під час відновлення прочитайте дані й переконайтеся, що масив працює — але в стані
degraded. Подивіться, що станеться з продуктивністю. -
Друга відмова під час відновлення.
Виведіть із ладу другий диск, поки триває відновлення. Зафіксуйте, що саме сталося з даними. Це найважливіший експеримент роботи.
-
LVM поверх масиву.
Фізичний том на
/dev/md0, група томів, два логічні томи. Розширте один із них на льоту разом із файловою системою. -
Знімок.
Зробіть знімок логічного тому, змініть дані в оригіналі, змонтуйте знімок і переконайтеся, що там старий стан.
Простежте, як зростає зайнятість знімка в міру зміни оригіналу — це копіювання під час запису в чистому вигляді (модуль 12).
-
RAID — не резервна копія.
На робочому, справному масиві видаліть файл. Переконайтеся, що жодна надлишковість його не повернула. Запишіть це у звіт одним реченням.
Що треба вміти підтвердити
Section titled “Що треба вміти підтвердити”| Твердження | Чим доводиться |
|---|---|
| Масив зібрано й він працює | cat /proc/mdstat |
| Масив пережив відмову диска | mdadm --detail /dev/md0 у стані degraded |
| Дані не постраждали | контрольна сума файлу до і після |
| Ви заміряли відновлення | час і швидкість із /proc/mdstat |
| Ви знаєте, що буде на 16 ТБ | розрахунок у звіті |
| Логічний том розширено без зупинки | lvs, df -h до і після |
| Знімок містить старий стан | diff вмісту оригіналу і знімка |
| RAID не рятує від видалення | опис експерименту 7 |
Часті помилки
Section titled “Часті помилки”Масив «зник» після перезавантаження. Бракує запису
в /etc/mdadm/mdadm.conf, і не перезібрано initramfs
(модуль 5).
Відновлення «миттєве». Ви заміряли синхронізацію порожнього масиву.
Заповніть його даними, бо класичний md відновлює весь простір,
а не лише зайнятий.
Знімок переповнився. Знімок LVM має власний обмежений розмір, і коли змін накопичується більше, він стає недійсним. Це не помилка, а очікувана поведінка.
Файлову систему не розширено. lvextend збільшує том, але не файлову
систему на ньому. Потрібен resize2fs або одразу lvextend -r.
Далі, якщо цікаво
Section titled “Далі, якщо цікаво”Порівняти з btrfs у режимі RAID 1: там відновлюються лише зайняті
блоки, і на напівпорожньому масиві різниця в часі буде разючою
(модуль 15).