VPS та сервери

RAID на VPS і виділених серверах: та штука, яку ви ігноруєте, поки диск не помре

Технологічний фон із текстурою серверних дисків для raid на сервері

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

Що таке RAID і чому він взагалі існує

RAID (Redundant Array of Independent Disks) - це спосіб об'єднати кілька фізичних дисків у один логічний масив. Навіщо? Дві причини: швидкість і захист від втрати даних. Іноді обидві одночасно, іноді щось одне.

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

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

Жінка працює за комп'ютером налаштовуючи vps захист даних
Жінка працює за комп'ютером налаштовуючи vps захист даних

Рівні RAID: коротко, чесно, без бажання заснути

Рівнів RAID існує більше десятка, але в реальному житті з серверами ви зустрінете переважно чотири. Ось вони:

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

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

RAID 1 - дзеркало. Все, що записується на один диск, дублюється на другий. Просто, надійно, зрозуміло. Мінус: ви купуєте 2 ТБ, а використовуєте 1 ТБ. Половина місця - це ваша страховка.

RAID 5 - розумний компроміс. Дані розподіляються між дисками з контрольними сумами (парітет). Один диск вилітає - масив працює далі. Але ребілд (відновлення) після заміни диска - тривалий і навантажує сервер серйозно.

RAID 10 - комбінація дзеркала і страйпінгу. Швидко, надійно, дорого. Для баз даних з високим навантаженням - золотий стандарт.

VPS: де тут RAID і чи маєте ви вплив

Ось де починається цікаве. Коли ви берете VPS, ви зазвичай не бачите фізичних дисків. Гіпервізор (KVM, Xen, VMware) показує вам один віртуальний диск, і ви поняття не маєте, що під ним. Може RAID 10 з NVMe. А може - один старий SATA-диск, на якому крутиться ще 40 сусідів.

Як дізнатися?

  1. Запитайте провайдера прямо. Нормальний хостер без проблем скаже: "У нас RAID 10 на SSD" або "RAID 1 на NVMe". Якщо починають ухилятися - це червоний прапорець.
  2. Перевірте SLA. Якщо в угоді обіцяють 99.9% аптайму для сховища - скоріш за все, RAID там є. 99% - вже сумнівно.
  3. Зверніть увагу на ціну. VPS за 2 долари на місяць фізично не може мати під собою RAID 10 з NVMe-дисків. Це просте правило арифметики.
  4. Тестуйте IOPS. Запустіть fio або хоча б dd. Якщо швидкість запису стабільно тримається вище 200 МБ/с - ймовірно, під вами щось серйозне.

"Більшість клієнтів, які приходять до нас після аварії в іншого провайдера, кажуть одне і те ж: ми думали, що RAID - це за замовчуванням. Ні. Це вибір, і часто додатковий кошт." - Маркус Вебер, технічний директор Contabo, інтерв'ю для ServerWatch, 2024

Бізнесмен набирає на клавіатурі як налаштувати raid на vps
Бізнесмен набирає на клавіатурі як налаштувати raid на vps

Виділений сервер: свобода вибору та відповідальність за наслідки

Коли ви орендуєте виділений (dedicated) сервер, ви отримуєте фізичне залізо. І тут RAID - це ваша зона відповідальності. Провайдер може запропонувати конфігурацію, але фінальне рішення - за вами.

Типова ситуація: ви замовляєте сервер з двома дисками по 1 ТБ. Провайдер запитує: RAID 0, RAID 1 або без RAID? І тут починається внутрішня боротьба між жадібністю ("хочу 2 ТБ!") та здоровим глуздом ("а якщо один помре...").

Моя порада проста:

  • Для веб-проєктів, інтернет-магазинів, SaaS - мінімум RAID 1. Це не обговорюється.
  • Для баз даних під навантаженням (MySQL, PostgreSQL з тисячами запитів на секунду) - RAID 10, якщо бюджет дозволяє.
  • Для тимчасових обчислень, рендерингу, обробки відео - RAID 0 прийнятний, якщо вхідні дані зберігаються в іншому місці.
  • RAID 5 - для файлових сховищ, де читання переважає над записом і потрібен максимум доступного об'єму.

Ще один нюанс: апаратний RAID проти програмного. Апаратний контролер (LSI MegaRAID, Adaptec) розвантажує процесор, має свій кеш з батарейкою (BBU) і працює швидше. Програмний RAID (mdadm у Linux) безкоштовний, гнучкий, але їсть CPU. На сучасних серверах з 16-64 ядрами це не проблема, але знати варто.

Історія, яка коштувала 14 000 євро

Один мій знайомий з Берліна запустив маркетплейс вінтажного одягу. Бізнес ріс швидко - 800 замовлень на день, база на 12 ГБ, каталог з 90 000 фото. Виділений сервер з двома SSD. Без RAID. Чому? "Я ж роблю бекапи щоночі, навіщо мені RAID?"

Диск помер о 10 ранку вівторка. Бекап - за станом на 2:00 ночі. Вісім годин замовлень, змін у каталозі, повідомлень клієнтам - зникли. Відновлення бази з бекапу зайняло 4 години (час простою). Команда потім ще тиждень вручну зводила дані з платіжних систем, email-підтверджень, логів Stripe.

Загальні втрати: близько 14 000 євро прямих збитків плюс репутаційний удар. Вартість другого SSD і налаштування RAID 1 - приблизно 30 євро на місяць. Математика нещадна.

Мультяшна ілюстрація блокчейн технології raid 1 vs raid 10 для хостингу
Мультяшна ілюстрація блокчейн технології raid 1 vs raid 10 для хостингу

Софтверний RAID на Linux: п'ять хвилин до спокою

Якщо ви на виділеному сервері з Linux і маєте два диска без RAID - ось мінімальний шлях до RAID 1 через mdadm:

  1. Встановіть mdadm: apt install mdadm (Debian/Ubuntu) або yum install mdadm (CentOS).
  2. Створіть масив: mdadm - create /dev/md0 - level=1 - raid-devices=2 /dev/sda1 /dev/sdb1.
  3. Створіть файлову систему: mkfs.ext4 /dev/md0.
  4. Додайте в /etc/mdadm/mdadm.conf та оновіть initramfs.
  5. Налаштуйте email-сповіщення через mdadm - monitor - щоб дізнатися про проблему раніше за клієнтів.

Звісно, це спрощена схема. На продакшені ви маєте розбити диски на розділи, правильно налаштувати GRUB для завантаження з обох дисків, протестувати сценарій відмови. Але сам факт: базовий RAID 1 на Linux - це не ракетна наука.

Коли RAID не допоможе (і що робити замість нього)

Давайте будемо чесні: RAID - не панацея. Ось ситуації, де він безсилий:

  • Помилка адміністратора. rm -rf / весело видалить дані з усіх дисків у масиві одночасно.
  • Шифрувальник (ransomware). Зашифрує файли, RAID слухняно запише зашифровані копії.
  • Пожежа в дата-центрі. Згадайте інцидент OVHcloud у Страсбурзі 2021 року - згоріли цілі зали з серверами. Жоден RAID не врятує від фізичного знищення.
  • Корупція файлової системи. Якщо збій стався на рівні FS, RAID відзеркалить пошкоджені дані.

Тому формула надійності виглядає так: RAID + автоматичні бекапи + офсайт-копія (в іншому дата-центрі або хмарі). Три рівні захисту. Менше - це лотерея.

Пам'ятаєте правило 3-2-1? Три копії даних, на двох різних носіях, одна - у віддаленій локації. RAID закриває частину "двох різних носіїв". Але без бекапів і офсайту - це лише один шар захисту з трьох.

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