15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
24.10.2024

Що таке кластеризація серверів? Архітектура, типи та реальне впровадження

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

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

Як працює кластеризація серверів на архітектурному рівні

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

Вузли

Кожен вузол — це повноцінний сервер (фізичний або віртуальний), здатний самостійно виконувати цільове навантаження. Вузли взаємодіють через виділений приватний інтерконект (зазвичай окремий NIC або об’єднана пара), що використовується виключно для сигналів пульсу та внутрішнього трафіку кластера. Ця мережа відокремлена від публічної мережі, яка обслуговує запити кінцевих користувачів.

Пульс — це серцебиття кластера. Вузли обмінюються сигналами з налаштовуваними інтервалами (зазвичай кожні 1–2 секунди). Якщо вузол пропускає визначену кількість послідовних пульсів, менеджер кластера оголошує його недоступним і ініціює перемикання при відмові. Критичним граничним випадком тут є сценарій розщепленого мозку: коли сама мережа пульсу виходить з ладу, обидва вузли можуть вважати один одного недоступними і одночасно намагатися захопити спільні ресурси, що призводить до пошкодження даних. Запобігання розщепленому мозку вимагає механізму кворуму — ресурсу-арбітра, наприклад виділеного диска кворуму, сервера-свідка або хмарного сервісу арбітражу.

Спільне та реплікаційне сховище

Архітектура сховища суттєво відрізняється залежно від типу кластера:

  • Кластери зі спільним диском використовують пристрій SAN (Storage Area Network) або NAS (Network-Attached Storage), який всі вузли монтують одночасно. Менеджер кластера використовує резервування SCSI або розподілені менеджери блокувань (DLM) для запобігання одночасним записам, які могли б пошкодити дані.
  • Кластери без спільного сховища реплікують дані між вузлами на рівні блоків або застосунків (наприклад, DRBD для Linux, SQL Server Always On Availability Groups). Кожен вузол має власне локальне сховище; реплікація підтримує їх синхронізацію.
  • Гібридні архітектури поєднують обидва підходи, використовуючи спільне сховище для основних даних і реплікацію для аварійного відновлення на географічно відокремленому майданчику.

Програмне забезпечення для управління кластером

Менеджер кластера відповідає за оркестрацію ресурсів, моніторинг стану та автоматичне перемикання при відмові. Широко використовувані рішення включають:

  • Pacemaker + Corosync — де-факто стандарт на Linux (RHEL, CentOS, Ubuntu)
  • Windows Server Failover Clustering (WSFC) — вбудований у середовища Windows Server
  • Kubernetes — контейнерна кластеризація з плануванням подів, самовідновленням і поступовими оновленнями
  • VMware vSphere HA / vSAN — кластеризація на рівні гіпервізора для віртуалізованих навантажень

Кожне рішення надає різні примітиви для визначення ресурсів, обмежень і політик перемикання при відмові. Ресурс у Pacemaker, наприклад, — це будь-який сервіс, яким управляє кластер: IP-адреса, точка монтування файлової системи, демон бази даних, — а обмеження визначають порядок і правила розміщення цих ресурсів.

Основні переваги кластеризації серверів

Висока доступність та автоматичне перемикання при відмові

Основним стимулом для більшості кластерних розгортань є висока доступність (HA). Коли вузол виходить з ладу, менеджер кластера виявляє збій через пропущені пульси, а потім переміщує уражені ресурси на вузол, що вижив, — цей процес називається перемиканням при відмові. Сучасне програмне забезпечення кластера може завершити цей процес менш ніж за 30 секунд для більшості навантажень, хоча відновлення на рівні бази даних (аварійне відновлення, відтворення журналу) додає додатковий час, що залежить від навантаження.

Цільовий час відновлення (RTO) та Цільова точка відновлення (RPO) — це два показники, що визначають якість HA:

  • RTO — як довго сервіс недоступний під час перемикання при відмові
  • RPO — скільки даних може бути втрачено (у часовому вимірі), якщо основний вузол виходить з ладу до завершення реплікації

Синхронна реплікація досягає RPO = 0, але вносить затримку запису, оскільки основний вузол повинен чекати підтвердження кожного запису від репліки. Асинхронна реплікація зменшує затримку, але допускає ненульовий RPO. Вибір між ними — це бізнес-рішення, а не суто технічне.

Балансування навантаження та горизонтальне масштабування

Кластери з балансуванням навантаження розподіляють вхідні запити між вузлами за допомогою алгоритмів, таких як кругова черга, найменша кількість з’єднань, IP-хеш або зважений розподіл. Сам балансувальник навантаження — апаратний (F5, Citrix ADC) або програмний (HAProxy, NGINX, LVS) — розташовується перед кластером і повинен бути резервованим, щоб не стати єдиною точкою відмови.

Горизонтальне масштабування в кластері означає додавання вузлів, а не оновлення апаратного забезпечення окремих серверів (вертикальне масштабування). Це має економічне значення: вузли на базі типового обладнання дешевші за одиницю обчислень, ніж високопродуктивні монолітні сервери, а кластер абстрагує базове апаратне забезпечення від застосунку.

Відмовостійкість та резервування

Відмовостійкість виходить за межі резервування вузлів. Проектування кластера виробничого рівня враховує:

  • Подвійні блоки живлення на кожному вузлі, підключені до окремих PDU та джерел безперебійного живлення
  • Резервні мережеві шляхи (об’єднання NIC або транкінг LACP до окремих комутаторів)
  • Багатошляховий введення-виведення (MPIO) для підключення до сховища, що усуває одиночні відмови HBA або кабелю
  • Географічний розподіл між зонами доступності або центрами обробки даних для захисту від збоїв на рівні майданчика

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

Спрощене технічне обслуговування без простою

Одна з операційно недооцінених переваг — технічне обслуговування без простою. Вузол може бути коректно евакуйований — його ресурси перенесені на інші вузли — виправлений, перезавантажений і повернутий до кластера без будь-якого переривання сервісу. Це називається плановим перемиканням при відмові або живою міграцією у віртуалізованих середовищах. Це перетворює встановлення патчів ОС і заміну обладнання зі запланованих вікон технічного обслуговування на рутинні, ненав’язливі операції.

Типи серверних кластерів

Тип кластераОсновна метаТипова модель сховищаПоширені випадки використання
Висока доступність (HA)Мінімізація простою через автоматичне перемикання при відмовіСпільний SAN або синхронна реплікаціяБази даних, ERP-системи, критичні API
Балансування навантаженняРозподіл трафіку, максимізація пропускної здатностіБез стану або з реплікацією сесійВеб-сервери, вузли CDN, API-шлюзи
Перемикання при відмовіРезервування та аварійне відновленняАсинхронна реплікаціяСистеми фінансових транзакцій, медичні записи
Сховище (наприклад, Ceph, GlusterFS)Масштабований розподілений доступ до данихРозподілене об’єктне/блокове сховищеСховища даних, медіастримінг, великі дані
Обчислення (HPC)Паралельна обробка важких навантаженьВисокошвидкісна паралельна файлова система (Lustre, GPFS)Наукове моделювання, навчання ML, рендеринг
Оркестрація контейнерівАвтоматизоване планування навантаження та самовідновленняПостійні томи через CSI-драйвериМікросервіси, CI/CD-конвеєри, SaaS-платформи

Кластери високої доступності

Кластери HA є найпоширенішим корпоративним розгортанням. Дворівневий кластер HA типу активний-пасивний виконує навантаження на основному вузлі, тоді як вторинний вузол залишається в режимі очікування, постійно синхронізуючись. Варіант активний-активний виконує навантаження на всіх вузлах одночасно, що збільшує пропускну здатність, але вимагає підтримки застосунком одночасного доступу з кількох вузлів — не всі бази даних або застарілі застосунки це підтримують.

Кластери з балансуванням навантаження

Ці кластери за своєю природою є активний-активний. Балансувальник навантаження розподіляє сесії між пулом серверів застосунків. Постійність сесій (прив’язані сесії) є поширеною вимогою для застосунків зі станом: балансувальник навантаження повинен направляти запити певного клієнта до одного й того ж серверного вузла протягом усієї сесії. Це створює неявну залежність, яка ускладнює видалення вузлів і перемикання при відмові, тому в сучасних архітектурах настійно рекомендується проектування застосунків без стану.

Кластери перемикання при відмові

Кластери перемикання при відмові надають пріоритет швидкості відновлення та цілісності даних над чистою продуктивністю. Вони є стандартною архітектурою для розгортань SQL Server, Oracle RAC та SAP HANA. Ключовим інженерним завданням є забезпечення того, щоб цільовий вузол для перемикання мав узгоджену, актуальну копію всіх даних на момент відмови — саме тому синхронна реплікація та проектування кворуму є обов’язковими в цих середовищах.

Кластери сховищ

Розподілені системи зберігання, такі як Ceph, GlusterFS та MinIO, формують власний рівень кластера, незалежний від обчислювального кластера вище. Ceph, наприклад, використовує алгоритм CRUSH для розподілу даних між OSD (демонами об’єктного сховища) без центрального вузького місця метаданих. Кластери сховищ забезпечують серверну частину постійних томів для навантажень Kubernetes і спільний рівень сховища для обчислювальних кластерів HA.

Обчислювальні кластери та HPC

Кластери для високопродуктивних обчислень використовують планувальники завдань (SLURM, PBS, LSF) для розподілу вузлів між обчислювальними завданнями. Вузли з’єднані через InfiniBand або високошвидкісний Ethernet для підтримки низькозатримкового, високопропускного зв’язку MPI (Message Passing Interface), якого вимагають паралельні наукові навантаження. Для навантажень з GPU-прискоренням — навчання глибокого навчання, молекулярна динаміка, обчислювальна гідродинаміка — інфраструктура GPU Hosting з інтерконектами NVLink або NVSwitch є відповідною архітектурою.

Практичні міркування щодо реалізації

Проектування мережі

Мережа кластера — це не одна мережа. Правильно спроектований кластер має щонайменше три окремі мережеві сегменти:

  1. Публічна мережа — трафік, орієнтований на клієнтів
  2. Приватний інтерконект кластера — пульс і внутрішній зв’язок кластера
  3. Мережа сховища — трафік iSCSI, NFS або Fibre Channel до серверної частини спільного сховища

Змішування їх на одному NIC або VLAN призводить до конкуренції та створює сценарії, де насичення введення-виведення сховища порушує сигнали пульсу, викликаючи хибні перемикання при відмові.

Огородження та STONITH

STONITH (Shoot The Other Node In The Head — «Застрели інший вузол у голову») — це механізм, за допомогою якого кластер примусово вимикає або перезавантажує вузол, який, на його думку, вийшов з ладу. Без огородження вузол, який став невідповідним, але не повністю мертвим, може продовжувати запис до спільного сховища, поки кластер вже виконав перемикання при відмові — це гарантований шлях до пошкодження даних. Реалізації STONITH включають управління живленням на основі IPMI/iDRAC, комутацію PDU та примусове вимкнення живлення на рівні гіпервізора. Будь-який кластер HA без робочої конфігурації огородження насправді не є HA.

Кластеризація на рівні застосунків проти кластеризації на рівні інфраструктури

Критична відмінність, яку часто ігнорують: кластеризація інфраструктури (Pacemaker, WSFC) забезпечує перемикання при відмові на рівні вузла, але застосунок також повинен бути розроблений для толерантності до раптових перезапусків. Бази даних вимагають аварійного відновлення; сервери застосунків можуть потребувати повторного встановлення з’єднань з серверними частинами; кеші можуть бути холодними після перемикання при відмові. Кластеризація на рівні застосунків — наприклад, групи реплікації баз даних, кластери Elasticsearch або кластери брокерів Kafka — обробляє узгодженість даних і доступність на рівні даних, незалежно від інфраструктури нижче. Виробничі середовища зазвичай поєднують обидва підходи: інфраструктурний HA для обчислювального рівня та реплікацію на рівні застосунків для рівня даних.

Затримка між вузлами

Для синхронної реплікації затримка між вузлами безпосередньо впливає на продуктивність запису. Синхронний коміт вимагає зворотного шляху до репліки перед підтвердженням запису клієнту. При затримці між вузлами 1 мс теоретична максимальна пропускна здатність синхронного запису становить 1 000 операцій на секунду на потік — незалежно від швидкості локального диска. Саме тому географічно розподілені синхронні кластери є непрактичними при відстані між майданчиками понад ~100 км, і саме тому асинхронна реплікація використовується для аварійного відновлення між регіонами.

Коли кластеризація серверів є правильним вибором

Кластеризація серверів є доцільною, коли вартість простою або втрати даних перевищує вартість кластерної інфраструктури. Конкретні показники:

  • Застосунок має SLA, що вимагає доступності 99,9% або вище (менше 8,7 годин простою на рік)
  • Навантаження не може бути перервано для встановлення патчів, заміни обладнання або змін ємності
  • Шаблони трафіку є непередбачуваними або нерівномірними, що вимагає еластичного горизонтального масштабування
  • Регуляторні вимоги передбачають резервування даних та можливість аудиту (PCI-DSS, HIPAA, SOC 2)
  • Застосунок обробляє фінансові транзакції, медичні записи або комунікації в реальному часі, де втрата даних має юридичні наслідки

Для менших навантажень, які не відповідають цим критеріям, добре налаштоване середовище VPS Hosting з автоматизованими резервними копіями та моніторингом може забезпечити достатню стійкість за значно меншу вартість.

Виклики та поширені режими відмов

Вартість та накладні витрати інфраструктури

Мінімально життєздатний кластер HA вимагає щонайменше двох вузлів, спільного або реплікованого сховища, резервної мережі та ліцензування програмного забезпечення для управління кластером (де застосовно). Для локальних розгортань це зазвичай означає множник вартості від 3x до 5x порівняно з розгортанням на одному сервері. Хмарна кластеризація з використанням керованих сервісів (AWS RDS Multi-AZ, Azure SQL Managed Instance) переводить цю вартість у модель операційних витрат, але вводить прив’язку до постачальника.

Складність конфігурації та операційна експертиза

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

  • Огородження не налаштоване або не протестоване — кластер не може безпечно відновитися після відмов вузлів
  • Кворум налаштований неправильно — сценарії розщепленого мозку пошкоджують спільні дані
  • Залежності ресурсів визначені неправильно — сервіси запускаються в неправильному порядку після перемикання при відмові, викликаючи каскадні збої
  • Мережа пульсу на тому ж інтерфейсі, що й виробничий трафік — сплески сховища або трафіку викликають хибні перемикання при відмові

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

Вузькі місця сховища

Спільне сховище є поширеним вузьким місцем продуктивності в кластерах HA. Всі вузли конкурують за пропускну здатність введення-виведення до одного серверного сховища. Погано спроектовані кластери сховищ стають обмежувальним фактором для всієї системи. Рішення включають багаторівневе сховище (NVMe для гарячих даних, обертові диски для холодних), кешування читання на вузлах та розподілені архітектури сховищ, які усувають єдиний контролер сховища.

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

Архітектура кластера для середовищ веб-хостингу

Кластери, орієнтовані на веб, мають специфічний архітектурний шаблон, який варто детально описати:

[Client Requests]
        |
[Load Balancer Layer] (HAProxy / NGINX / cloud LB — active-active pair)
        |
[Application Server Layer] (Node 1, Node 2, Node N — stateless)
        |
[Database Layer] (Primary + Replica — HA cluster with automatic failover)
        |
[Shared Storage / Object Storage] (Ceph, NFS, S3-compatible)

Кожен рівень є незалежно масштабованим і резервованим. Сервери застосунків не мають стану — стан сесії зберігається у спільному кластері Redis або Memcached, а не на локальному вузлі. Це означає, що будь-який вузол застосунку може бути видалений або доданий без впливу на активні сесії.

Для команд, що управляють веб-інфраструктурою у масштабі, середовища VPS з cPanel надають керовану панель управління, яка спрощує суміжні з кластером завдання, такі як управління DNS, надання SSL та конфігурація кількох доменів. Для команд, які надають перевагу детальному контролю над своїм стеком кластеризації, Панелі управління VPS пропонують ряд варіантів, що підходять для різних операційних моделей.

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

Матриця технічних рішень

Використовуйте цю матрицю для визначення відповідної архітектури кластера для певного навантаження:

ВимогаРекомендована архітектураКлючова технологія
RPO = 0, RTO < 30sАктивний-пасивний HA, синхронна реплікаціяPacemaker + DRBD, WSFC + Always On
RPO > 0 прийнятний, міжрегіональне DRАктивний-пасивний, асинхронна реплікаціяMySQL Group Replication, PostgreSQL streaming
Висока пропускна здатність читання, помірний записАктивний-активний з репліками для читанняHAProxy + репліки для читання PostgreSQL
Веб-рівень без стану, змінний трафікКластер з балансуванням навантаження, автомасштабуванняNGINX, Kubernetes HPA
Зберігання даних петабайтного масштабуРозподілений кластер сховищCeph, GlusterFS, MinIO
GPU-прискорені паралельні обчисленняКластер HPC з високошвидкісним інтерконектомSLURM + InfiniBand + CUDA
Контейнерні навантаження, мікросервісиКластер оркестрації контейнерівKubernetes, Nomad

Практичний контрольний список ключових висновків

Перед розгортанням серверного кластера перевірте кожен з наступних пунктів:

  • Кворум налаштований з непарною кількістю голосів або виділеним арбітром — ніколи не розгортайте дворівневий кластер без свідка кворуму
  • Огородження (STONITH) протестоване шляхом фізичного від’єднання мережевого кабелю та підтвердження того, що кластер правильно ізолює вузол і завершує перемикання при відмові
  • Мережі пульсу та виробничі мережі знаходяться на окремих фізичних інтерфейсах — ніколи не об’єднуйте їх
  • Багатошляховість сховища (MPIO) налаштована щонайменше з двома незалежними шляхами до спільного сховища
  • Затримка реплікації відстежується з визначеними порогами сповіщень до порушення RPO
  • Перемикання при відмові протестоване під навантаженням — кластер, який ніколи не тестувався, не є кластером, це теорія
  • Поведінка застосунку після перемикання при відмові перевірена — підтвердіть, що застосунок підключається до нового основного вузла, очищає застарілі з’єднання та правильно обслуговує трафік
  • Події кластера реєструються на центральному зовнішньому сервері журналів — не в локальному сховищі вузла, яке може бути недоступним під час збою, який ви намагаєтеся діагностувати
  • SSL-сертифікати надаються на рівні балансувальника навантаження, а не на окремих серверних вузлах
  • Планування ємності враховує доступність N-1 вузлів — кластер повинен справлятися з повним виробничим навантаженням при одному вузлі, що вийшов з ладу

Часті запитання

Яка мінімальна кількість вузлів, необхідна для серверного кластера?

Технічно двох вузлів достатньо для кластера HA типу активний-пасивний. Однак дворівневий кластер вимагає свідка кворуму (третього ресурсу-арбітра) для запобігання розщепленому мозку. Для кластерів з балансуванням навантаження типу активний-активний три вузли є практичним мінімумом для підтримки резервування при видаленні одного вузла для технічного обслуговування.

Що таке розщеплений мозок у серверному кластері і чому це небезпечно?

Розщеплений мозок виникає, коли внутрішня комунікаційна мережа кластера виходить з ладу, через що вузли втрачають зв’язок один з одним. Кожен вузол робить висновок, що інший вийшов з ладу, і намагається одночасно захопити спільні ресурси. Якщо обидва вузли записують до одного спільного сховища одночасно без координації, результатом є пошкодження даних. Механізми кворуму та огородження STONITH є двома засобами захисту від розщепленого мозку.

Чим кластеризація серверів відрізняється від віртуалізації серверів?

Віртуалізація розділяє один фізичний сервер на кілька ізольованих віртуальних машин. Кластеризація з’єднує кілька серверів для роботи як єдина система. Ці два підходи є взаємодоповнюючими: віртуалізовані сервери (VM) часто використовуються як вузли кластера, а гіпервізорні платформи, такі як VMware vSphere, включають власні функції кластеризації HA, що працюють на рівні VM, а не на рівні ОС або застосунку.

Чи може кластеризація серверів усунути весь простій?

Ні. Кластеризація значно скорочує незапланований простій шляхом автоматизації перемикання при відмові, але не усуває його повністю. Саме перемикання при відмові займає час (від секунд до хвилин залежно від навантаження та конфігурації кластера). Крім того, помилки в програмному забезпеченні кластера, одночасні відмови кількох вузлів і сценарії мережевого розділення можуть спричинити збої, яким кластеризація не може запобігти. Мета полягає в дотриманні визначеного SLA доступності, а не в досягненні абсолютного нульового простою.

У чому різниця між кластером HA та налаштуванням аварійного відновлення (DR)?

Кластер HA забезпечує автоматичне, майже миттєве перемикання при відмові в межах одного майданчика або зони доступності, зазвичай з RPO = 0 та RTO, що вимірюється секундами або хвилинами. Налаштування DR реплікує дані на географічно відокремлений майданчик і вимагає ручного або напівавтоматичного втручання для активації, з RTO, що вимірюється хвилинами або годинами, та ненульовим RPO через асинхронну реплікацію. Виробничі середовища, що вимагають як локальної стійкості, так і географічної надлишковості, розгортають кластеризацію HA в межах майданчика та реплікацію DR між майданчиками.

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати