VPS та сервери

RAID-масиви на виділеному сервері: як не втратити все через один диск, що вирішив піти на пенсію

Технологічний фон що ілюструє raid масиви на сервері

Уявіть собі: п'ятниця, вечір, ви вже подумки на дивані з серіалом. І тут - повідомлення від моніторингу. Диск на продакшн-сервері помер. Просто так. Без попередження, без симптомів, без драматичної музики на фоні. Якщо у вас RAID - ви спокійно допиваєте каву і замовляєте заміну. Якщо ні - ваш вечір перетворюється на археологічну експедицію по бекапах тижневої давнини. Знайомо? Тоді давайте розберемося, як RAID-масиви працюють, які обирати і чому деякі з них - це ілюзія безпеки.

Що таке RAID і чому один диск - це як один замок на сейфі

RAID (Redundant Array of Independent Disks) - це технологія, яка об'єднує кілька фізичних дисків в один логічний масив. Але не просто "склеює" їх - а робить це розумно. Залежно від рівня RAID, ви отримуєте або швидкість, або надійність, або і те, і інше.

Аналогія проста. Один диск - це одна людина, яка несе коробку з вашим бізнесом через дощ. Якщо спіткнеться - все на асфальті. Два диски в RAID 1 - це двоє людей з ідентичними коробками. Один впав? Другий донесе. RAID не замінює бекапи, але дає вам час і спокій, коли щось летить.

Найчастіша помилка новачків - думати, що RAID = резервне копіювання. Ні. Якщо ви випадково видалите базу даних, RAID радісно видалить її на всіх дисках одночасно. Він захищає від апаратних збоїв, а не від людської дурості.

Адміністратор у дата-центрі перевіряє відмовостійкість сервера з RAID
Адміністратор у дата-центрі перевіряє відмовостійкість сервера з RAID

Рівні RAID: від швидкого й безрозсудного до параноїдально надійного

Рівнів RAID існує більше десятка, але на практиці у світі виділених серверів ви зустрінете п'ять-шість. Давайте розберемо основні - чесно, без маркетингового глянцю.

Рівень RAID Мін. дисків Відмовостійкість Швидкість читання Швидкість запису Доступний об'єм
RAID 0 2 Нульова Дуже висока Дуже висока 100% сумарного
RAID 1 2 1 диск Висока Середня 50% сумарного
RAID 5 3 1 диск Висока Середня (N-1)/N
RAID 6 4 2 диски Висока Нижче середньої (N-2)/N
RAID 10 4 1 диск у кожній парі Дуже висока Висока 50% сумарного

RAID 0 - це спринтер без страховки. Дані розбиваються на шматки й пишуться на всі диски паралельно. Швидкість космічна. Але якщо один диск помре - ви втрачаєте все. Його використовують для тимчасових даних, рендерингу, тестових середовищ. Ніколи - для продакшну.

RAID 1 - дзеркало. Простий, зрозумілий, надійний. Ідеальний для серверів з двома дисками, де потрібна базова відмовостійкість. Мінус - ви платите за два диски, а отримуєте об'єм одного.

RAID 5 - золотий стандарт для багатьох задач. Розподіляє дані і контрольні суми (паритет) між трьома й більше дисками. Один диск може вийти з ладу без втрати даних. Але ось підступ: ребілд RAID 5 на великих дисках (4TB+) може тривати добу, і протягом цього часу ви вразливі.

RAID 6 - як RAID 5, але з подвійним паритетом. Витримає відмову двох дисків одночасно. Для масивів з 6+ великими дисками - обов'язковий вибір.

RAID 10 (1+0) - комбінація дзеркалювання і чередування. Швидкість RAID 0 + надійність RAID 1. Коштує дорого (потрібно мінімум 4 диски, половина під дзеркало), але для баз даних і високонавантажених систем - найкращий варіант.

Апаратний vs програмний RAID: де ховається диявол

Ось тут починається цікаве. Коли ви замовляєте виділений сервер, провайдер може запропонувати два варіанти - апаратний RAID-контролер або програмний RAID через операційну систему. І різниця між ними - як між автоматичною коробкою передач і механікою.

Апаратний RAID - це окрема плата з власним процесором і кешем (зазвичай з батарейкою BBU). Він працює незалежно від ОС, бере на себе всі обчислення паритету, і для системи масив виглядає як один великий диск.

Програмний RAID (mdadm у Linux, Storage Spaces у Windows) - це коли всю роботу робить процесор сервера. Безкоштовний, гнучкий, але з'їдає ресурси CPU.

"В епоху NVMe-дисків програмний RAID часто перевершує апаратний по продуктивності. Апаратний контролер, розроблений для SATA, стає вузьким місцем для NVMe. Для SSD-масивів mdadm або ZFS - часто кращий вибір." - Thomas Krenn, технічний блог з серверного обладнання

  • Апаратний RAID - стабільний, передбачуваний, має BBU-кеш для захисту від раптового відключення живлення
  • Програмний RAID - безкоштовний, легко переноситься між серверами, дозволяє моніторити кожен диск окремо
  • Fake RAID (BIOS-RAID на дешевих материнських платах) - уникайте як чуми, це гібрид без переваг обох підходів
  • ZFS і Btrfs - файлові системи з вбудованим RAID, які додають перевірку цілісності даних на рівні блоків
Спеціалістка налаштовує виділений сервер RAID для бази даних
Спеціалістка налаштовує виділений сервер RAID для бази даних

Як обрати RAID для вашого сценарію

Теорія - це чудово, але ви ж хочете конкретики. Ось алгоритм прийняття рішення, яким я користуюсь останні 10 років:

  1. Визначте пріоритет - що важливіше: швидкість, надійність, або об'єм? Обрати можна тільки два з трьох.
  2. Порахуйте диски - два диски = RAID 1, єдиний реальний варіант. Три = RAID 5. Чотири і більше = RAID 10 для баз даних, RAID 6 для файлових сховищ.
  3. Оцініть тип навантаження - база даних MySQL/PostgreSQL з інтенсивним записом? RAID 10. Сховище зображень інтернет-магазину? RAID 5 або 6.
  4. Перевірте тип дисків - для NVMe SSD програмний RAID (mdadm або ZFS) часто ефективніший. Для HDD - апаратний контролер з BBU.
  5. Закладіть бюджет на hot spare - гарячий запасний диск, який автоматично замінить зламаний. Додаткові 50-100 євро/рік, але ребілд стартує за секунди, а не після того, як ви прокинетесь і побачите алерт.

Реальний приклад. Інтернет-магазин з 50 000 товарів, PostgreSQL, середній трафік. Оптимальна конфігурація: два NVMe SSD у RAID 1 під систему і базу даних + чотири HDD у RAID 10 під каталог зображень і статичні файли. Загальна вартість дисків - приблизно 300-400 євро. Вартість одного дня простою - від 2000 євро. Математика нескладна.

Підступні пастки, в які потрапляють навіть досвідчені адміни

RAID виглядає просто на папері. А потім реальність вносить корективи.

Пастка перша: однакові диски з однієї партії. Ви купуєте чотири ідентичні диски для RAID 10. Логічно? Так. Безпечно? Ні. Диски з однієї партії мають схожий ресурс і часто "вмирають" один за одним з інтервалом у кілька днів. Рекомендація - купуйте диски різних партій або навіть різних виробників (однакового об'єму).

Пастка друга: забутий моніторинг. RAID 1 працює, один диск помер місяць тому, ви не помітили. Другий диск помирає сьогодні. Вітаю - у вас тепер ні RAID, ні даних. Налаштуйте моніторинг SMART-параметрів і алерти через smartmontools або MegaCLI - це 15 хвилин роботи, які рятують бізнеси.

Пастка третя: ребілд під навантаженням. RAID 5 з терабайтними дисками пішов у ребілд. Процес займає 12-24 години. Весь цей час продуктивність сервера падає на 60-80%. Якщо у вас продакшн без резервного сервера - готуйтесь до повільного сайту і злих користувачів.

Пастка четверта: RAID і SSD trim. Не всі RAID-контролери підтримують команду TRIM для SSD. Без TRIM ваші SSD деградують значно швидше. Перед налаштуванням перевірте підтримку - для програмного mdadm TRIM працює з ядра Linux 3.7+.

Ілюстрація технології RAID 10 для бази даних на сервері
Ілюстрація технології RAID 10 для бази даних на сервері

ZFS як альтернатива: коли класичний RAID вже не вистачає

Окрема розмова - про ZFS. Ця файлова система, народжена в Sun Microsystems, поєднує функції файлової системи, менеджера томів і RAID-контролера. ZFS не використовує класичні рівні RAID - замість них raidz1 (аналог RAID 5), raidz2 (аналог RAID 6) і raidz3.

Ключова перевага ZFS - перевірка контрольних сум на кожному блоці даних. Класичний RAID не знає, що дані на диску пошкоджені (так званий "bit rot" або "silent data corruption"), поки не спробує їх прочитати. ZFS перевіряє цілісність постійно і автоматично виправляє пошкодження з копії.

Для виділеного сервера з великим об'ємом даних (медіа-хостинг, архіви, репозиторії) ZFS з raidz2 - один з найнадійніших варіантів. Але є нюанс: ZFS любить RAM. Рахуйте мінімум 1 GB оперативної пам'яті на кожен терабайт сховища, а для комфортної роботи - більше.

Скільки це коштує і чи варто економити

Давайте про гроші. У більшості провайдерів виділений сервер з двома дисками в RAID 1 коштує на 10-20 євро/місяць дорожче, ніж без RAID. Чотири диски в RAID 10 - плюс 40-80 євро. Апаратний RAID-контролер з BBU - ще 15-30 євро.

А тепер порівняйте це з вартістю відновлення даних з мертвого диска в спеціалізованій лабораторії: від 500 до 3000 євро. Без гарантії результату. Плюс простій, плюс втрачені клієнти, плюс сиве волосся.

"Єдині люди, яким не потрібен RAID на сервері - це ті, у кого немає даних, які шкода втратити. Якщо такі дані є - RAID потрібен вчора."

Перед тим як закрити цю вкладку і піти далі скролити стрічку - задайте собі одне питання. Прямо зараз, ваш продакшн-сервер: скільки дисків там стоїть, який RAID налаштований, і коли востаннє ви перевіряли статус масиву? Якщо ви не можете відповісти за 10 секунд - у вас домашнє завдання на сьогоднішній вечір. Диски не питають дозволу, перш ніж зламатися. Вони просто ламаються.