Балансування навантаження на сервери - системи високої готовності - аспект спб

Балансування навантаження на сервери - системи високої готовності - аспект спб

Основне завдання кластера балансування мережного навантаження (Network Load Balancing Cluster, NLB) - забезпечення оптимального завантаження серверів при мінімально-необхідний час відгуку прикладних сервісів інформаційної системи у всіх географічних точках, де вони повинні бути доступні користувачам. Балансування навантаження досягається шляхом розвантаження запитів на кілька паралельно-встановлених серверів. При цьому технології реалізації балансування можуть бути різними.

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

  1. Узгодженість даних на всіх паралельно-доступних серверах.
  2. Цілісність асинхронних і тривалих за часом транзакцій.
  3. Підтримка додатком системної інфраструктури балансування навантаження.

Узгодженість даних - основна проблема, так як всі сервери повинні видавати однакові відповіді користувачам на один і той же запит. При цьому, якщо дані змінилися на одному сервері, то вони повинні бути реплікуються на інші сервера. А в залежності від вимог до часу поновлення реплік на серверах технології реалізації узгодження даних можуть сильно відрізнятися: від перенесення даних оператором системи на диску до організації масштабної системи онлайн-кластеризації і реплікації даних (як в пошукових Web-майданчиках). Фактично, це завдання має вирішувати прикладне програмне забезпечення, але ні в якому разі не «залізо» (найчастіше при закупівлі обладнання підприємством допускається така помилка).

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

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

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

Балансування навантаження на сервери - системи високої готовності - аспект спб

Рис.1. Типова система балансування мережного навантаження

Розрізняють такі рівні реалізації NLB-системи:

Планування NLB-рішення передбачає прийняття рішень з наступних питань:

  1. Кількість користувачів і інтенсивність запитів, яке впливає на завантаження серверів.
  2. Географічна распределенность.
  3. Обсяг даних.
  4. Підхід до реалізації балансування навантаження.
  5. Розробка технології реплікації даних на серверах.
  6. Вимоги до відмовостійкості.

Схожі статті