Реферат за темою випускної роботи
Зміст
- Вступ. Актуальність теми
- 1. Мета і задачі дослідження
- 2. Огляд досліджень та розробок
- 2.1 Огляд міжнародних джерел
- 2.2 Огляд національних і локальних джерел
- 3. Задачі системи балансування навантаження
- 3.1 Моніторинг стану серверів і мережевого обладнання
- 3.2 Вибір сервера
- 3.3 Переадресація трафіку
- 4. Дослідження методів балансування навантаження у глобальних мережах
- Висновки
- Перелік посилань
Вступ. Актуальність теми
Екстенсивне зростання трафіку в мережі Інтернет призводить до збільшення кількості запитів до популярних сайтів, що створює трафік, який далеко виходить за межі можливостей одного сервера. У зв'язку з цим можуть бути присутніми тривалі затримки при доступі користувачів до інформації. Зміна інфраструктури сайту на локальний кластер не забезпечує повного вирішення даної проблеми, так як канал між кластером і глобальною мережею може стати вузьким місцем даної інфраструктури. Більш ефективним рішенням є розподіл серверів географічно так, щоб вони розташовувалися в окремих мережах. Роль балансування навантаження при використанні такої архітектури зростає, тому що об'єкт, який розподілює запити, може здійснювати перенаправлення як на основі завантаження мережі і серверів, так і на основі відстані між клієнтом і серверами.
1. Мета і задачі дослідження
Основною метою дослідження є підвищення якості роботи існуючих алгоритмів балансування навантаження.
Задачі дослідження:
- Аналіз існуючих алгоритмів балансування навантаження в глобальних мережах.
- Математичне моделювання географічно розподілених серверів, потоку запитів від користувачів та існуючих алгоритмів балансування навантаження. Аналіз отриманих показників, визначення недоліків.
- Модернізація алгоритмів для досягнення поставленої мети.
- Імітаційне моделювання та перевірка отриманих результатів.
- Дослідження та аналіз отриманих наукових результатів.
Об'єкт дослідження: телекомунікаційні мережі з географічно розподіленими репліками серверів.
Предмет дослідження: методи підвищення ефективності функціонування алгоритмів балансування навантаження.
2. Огляд досліджень та розробок
2.1 Огляд міжнародних джерел
У [1] проводиться огляд та класифікації технік балансування навантаження. Автори [2] висвітлюють основні проблеми мереж доставки контенту (CDN), включаючи розрахунок метрик вибору сервера і перенаправлення запитів користувачів. Більш повна класифікація всіх аспектів функціонування CDN представлена в [3, 4].
Актуальною темою для міжнародних джерел є розрахунок відстані між хостами глобальної мережі. В [5, 6] пропонуються варіанти архітектур для проведення таких розрахунків. У [7] розглядається вимір продуктивності серверів з використанням штучних навантажень.
Універсальний підхід до використання динамічних дисциплін балансування був реалізований у IBM Network Dispatcher [8, 9] та Cisco DistributedDirector [10].
2.2 Огляд національних і локальних джерел
На даному рівні комплексних досліджень за темою магістерської роботи не проводилося. Розглядаються тільки системи балансування навантаження локальних кластерних архітектур, що не є об'єктом даного дослідження.
3. Задачі системи балансування навантаження
Балансування навантаження визначає, який сервер краще обслуговуватиме даний клієнтський запит. Поняття „краще“ в даному випадку визначається метрикою балансування навантаження.
Основною метою заходів по масштабуванню веб-сервера є мінімізація затримки, яка відчувається користувачем. Дана затримка в свою чергу складається з двох компонентів: затримки, що вноситься мережею і затримки, яка вноситься сервером.
Представником першої компоненти може слугувати час Round Trip Time (RTT). А друга компонента визначається завантаженістю сервера. Таким чином, для досягнення поставленої мети повинна застосовуватися або комплексна метрика, або ієрархічна (на першому рівні вибирати з пулу серверів по завантаженості, на другому — з відібраних серверів вибирати конкретний по параметру RTT).
Якщо при моделюванні довести високу ступінь кореляції затримки з відстанню, то можна застосовувати метрики, що базуються на відстані, яку легше обчислювати. Показниками відстані служить інформація протоколів маршрутизації Boarder Gateway Protocol (BGP) і Interior Gateway Protocols (IGP).
Система балансування навантаження виконує наступні задачі:
- моніторинг стану серверів і мережевого обладнання
- вибір сервера, який буде відповідати на запит клієнта
- управління трафіком між клієнтом і сервером.
3.1 Моніторинг стану серверів і мережевого обладнання
Для моніторингу може застосовуватися один з двох методів — зовнішній або внутрішній. Зовнішній полягає в створенні синтетичного запиту і відлік часу відповіді системи. Найпростішою з існуючих технік зовнішнього моніторингу є використання повідомлень по протоколу Internet Control Message Protocol (ICMP). Якщо система балансування навантаження не отримує відповіді після кількох запитів, то вона відмічає сервер як недоступний.
Однак, використання протоколу ICMP не дає ніякої інформації про стан стека TCP, що використовується протоколом HyperText Transfer Protocol (HTTP). У зв'язку з цим, логічніше виконувати моніторинг, встановлюючи TCP-з'єднання і оцінюючи якість цього з'єднання за кількістю часу, що витрачається на його встановлення.
Найбільш високорівневим методом зовнішнього моніторингу є метод посилки Get-запитів по протоколу HTTP. Час відповіді визначається як час з моменту відправки запиту до моменту отримання коду відповіді.
Істотним недоліком зовнішнього моніторингу є відсутність детальної інформації про такі характеристики сервера, як стан центрального процесора, пам'яті, мережевого інтерфейсу. Інформацію такого роду здатний надати тільки внутрішній моніторинг, що полягає у використанні на кожному сервері спеціальних програмних агентів, які відсилають потрібну інформацію системі балансування навантаження.
3.2 Вибір сервера
Дана операція виконується на основі метрики, що обчислюється з використанням даних, які одержуються за результатами моніторингу. При гетерогенності серверного пулу повинні використовуватися вагові коефіцієнти.
У разі локального кешування сервером інформації алгоритм балансування повинен враховувати необхідність постійного з'єднання клієнта з обраним сервером, щоб наступні запити направлялися на нього. Система балансування повинна ідентифікувати клієнта і пов'язати даний індикатор з вибраним сервером. Як правило, для цих цілей використовується IP-адреса відправника. Але в силу використання проксі-серверів при такому підході може виникнути значний дисбаланс навантаження. Тому, в сучасних алгоритмах застосовується ідентифікація по сокетам — парам IP-адреса, TCP-порт. Ще одним способом ідентифікації клієнта є відстеження ідентифікаційних номерів сеансу зв'язку користувача по протоколу Secure Sockets Layer (SSL) [11]. Найсучаснішим підходом до вирішення проблеми постійного з'єднання є аналіз вмісту cookie-файлів [12].
Ряд існуючих алгоритмів виконує вибір сервера в той момент, коли система отримує від клієнта пакет TCP SYN [13]. Такий підхід називається безпосереднє зв'язування (immediate binding). При цьому забезпечується висока швидкодія, але система не аналізує таку інформацію як ідентифікатор сеансу зв'язку по протоколу SSL, вміст cookie-файлу, адреса URL і дані прикладної програми. Для рівномірного балансування навантаження системі необхідні більш детальні відомості про клієнта, у зв'язку з чим потрібен час для аналізу інформації рівня програми. Такий аналіз виконується при використанні методу відкладеного зв'язування — система балансування приймає рішення про вибір сервера лише по завершенні установки з'єднання з клієнтом.
3.3 Переадресація трафіку
Системи балансування навантаження можуть перенаправляти трафік клієнтів на обраний сервер двома способами: за методом трансляції мережевих адрес (Network Address Translation, NAT), або (при використанні відкладеного зв'язування) за допомогою механізму шлюзу TCP (TCP gateway).
При використанні методу NAT система балансування направляє пакет призначеному серверу тільки після того, як замінить адресу одержувача (власну IP-адресу) IP-адресою призначеного сервера, а також IP-адресу відправника на свою IP-адресу. Даний метод дозволяє приховувати від клієнтів IP-адреси Web-серверів, так що останні можуть використовувати будь-які IP-адреси, в тому числі і приватні.
Відкладене зв'язування припускає, що система балансування навантаження і клієнт встановлюють з'єднання по протоколу TCP так, щоб система могла отримати дані програми ще до призначення сервера. Потім засіб балансування встановлює TCP-з'єднання з призначеним сервером і передає йому клієнтський запит. Далі система балансування передає клієнту відповідь сервера, для чого знову-таки використовується TCP-з'єднання „система балансування — клієнт“. Описана функція називається шлюзом TCP[9].
4. Дослідження методів балансування навантаження у глобальних мережах
Задачу розподілу запитів прийнято розбивати на дві складові: розробку політики направлення запитів і вибір механізму перенаправлення [2].
Політика — це власне алгоритм, який здійснює вибір конкретного сервера, а механізм - об'єкт, який інформує клієнта про обраний сервер.
Класифікація політик:
- адаптивні — відстежують поточний стан користувальницької інформації: інтенсивність запитів і розташування користувачів, стану серверів і мережі;
- неадаптивні — вибирають репліку без моніторингу поточного стану системи (RR, випадковий вибір сервера).
У алгоритмі, який розроблюється, буде використовуватися адаптивна політика, так як мінімізація затримки на основі неадаптивних неможлива (не гарантується).
В [14] була проведена класифікація механізмів маршрутизації клієнтських запитів на сервера сайту. Критерієм виділення різних типів архітектур розподілених Web-серверів є об'єкт, який здійснює розподіл запитів користувачів.
Відповідно існують механізми наступних видів:
- клієнтські;
- на базі DNS;
- диспетчерські;
- серверні.
У клієнтських методах вибір сервера реалізується на стороні клієнта або випадковим чином, або за допомогою механізмів інтелектуального вибору. У першому випадку балансування навантаження і доступність серверів не може бути гарантована, у другому — присутня велика затримка, викликана моніторингом стану серверів клієнтською програмою. У зв'язку з цим даний клас методів на практиці практично не застосовується.
У методах на базі DNS розподіл запитів здійснюється авторизованим DNS-сервером домену. Прозорість архітектури для користувача реалізується на прикладному рівні моделі Open System Interconnection (OSI) — сайт має один URL.
Проте, контроль розподілу запитів з боку DNS обмежений наявністю між клієнтом і DNS-сервером, що здійснює балансування, великого числа проміжних DNS-серверів, які можуть кешувати DNS-записи з метою зменшення обсягу трафіку. DNS-сервер, здійснюючи вирішення імен, визначає період TTL, протягом якого кеш даного запису може зберігатися. Протягом даного періоду запити, що проходять через сервера, що зберігають кеш, не будуть досягати авторизованого DNS-сервера кластера і балансування навантаження для них проводитися не буде, вони будуть направлятися на сервер, визначений в кеші.
Контроль з боку DNS-сервера, що керує балансуванням, слабкий, оскільки, якщо він задає TTL близьким до нуля, ряд проміжних серверів проігнорує це значення.
В рамках механізмів на базі DNS існують алгоритми з постійним значенням TTL, які, у зв'язку з описаною проблемою, здійснюють контроль над дуже малою часткою запитів і алгоритми зі значенням TTL, що динамічно встановлюється [1], які здійснюють, крім балансування, вибір значення TTL для кожного запису (менше значення TTL може бути присвоєно запитам від доменів з великою кількістю користувачів і запитам, які направляються на менш продуктивний сервер). Алгоритми першого типу в глобальних мережах не застосовуються, на відміну від динамічних, які легко масштабуються, оскільки вимагають наявності тільки інформації, яка може бути динамічно отримана DNS-сервером (частота запитів, що відповідає кожному домену і продуктивність кожного сервера).
Проте, дані методи при виборі сервера не беруть до уваги відстань між клієнтом і сервером. Методи динамічного призначення TTL в сукупності з механізмом обчислення відстані до клієнта здатні забезпечити кращу продуктивність.
Диспетчерські методи реалізують прозорість для користувача на мережевому рівні — кожному кластеру ставиться у відповідність віртуальна IP-адреса, яка є адресою спеціалізованого пристрою, що здійснює маршрутизацію клієнтських запитів — диспетчера.
Виходячи з механізмів маршрутизації запитів, в даній групі методів виділяють два підходи:
- перезапис адрес в пакеті;
- перенаправлення засобами HTTP — диспетчер посилає клієнтові відповідь, в якій вказано вибраний сервер.
Перший підхід передбачає великий рівень накладних витрат на зміну адрес, в той час як другий збільшує число відкритих TCP-сесій на стороні клієнта.
Серверні методи використовують дворівневий механізм балансування запитів: спочатку вони розподіляються по множині серверів за допомогою DNS-сервера аналогічно методам на базі DNS; потім кожен сервер здатний перенаправити отриманий запит будь-якому іншому серверу. Даний підхід дозволяє подолати більшість обмежень, які накладаються на підходи на основі DNS. Переадресація серверами реалізується тими ж механізмами маршрутизації, що і при диспетчерському підході.
Останньою проблемою, яку необхідно вирішити для досягнення поставленої мети, є кластеризації клієнтів. Розміри мережі Інтернет не дозволяють обчислювати значення метрики для кожного клієнта, тому й застосовується кластеризація:
- по DNS-домену;
- по Autonomous System (AS).
Таким чином, алгоритм, що розробляється, повинен забезпечувати кластеризацію для досягнення поставленої мети.
Висновки
На даний момент була проведена класифікація існуючих підходів до балансуванню навантаження, перелічено недоліки кожного методу. Найкращою масштабованістю володіють методи на базі DNS і серверні. Для застосування в глобальних мережах об'єкт, який здійснює балансування, повинен враховувати не тільки завантаження серверів, але також завантаження каналів зв'язку і відстань між клієнтом і сервером. Таким чином, повинна застосовуватися комплексна метрика при виборі конкретного сервера.
Отримані в результаті дослідження дані будуть враховуватися при реалізації нового алгоритму балансування навантаження. Крім опису алгоритму необхідно також моделювати роботу серверів і генерувати потік запитів, що надходять.
Важливе зауваження
На момент написання даного реферату кваліфікаційна робота ще не завершена. Дата остаточного завершення роботи: грудень 2012 року. Повний текст роботи і матеріали по темі можуть бути отримані у автора або його керівника після зазначеної дати.
Перелік посилань
- Colajanni M., Yu P.S., Cardellini V., “Dynamic load balancing in geographically distributed heterogeneous Web–servers”, Amsterdam, The Netherlands, May 1998.
- Sivasubramanian S., Szymaniak M., Pierre G., “Replication for web hosting systems,” ACM Computing Surveys, vol. 36, no. 3, no. 3, pp. 291–334, 2004.
- Pathan M. and Buyya R. A Taxonomy of CDNs. Content Delivery Networks, pages 33–78, 2008.
- Mulerikkal J. and Khalil I. An architecture for distributed content delivery network. In Proc. IEEE International Conference on Networks, pages 359–364, 2007.
- Theilmann W., Rothermel K. Dynamic Distance Maps of the Internet. In Proceedings of the 2000 IEEE INFOCOM Conference, Tel Aviv, Israel, Mar. 2000 [Электронный ресурс]. — Режим доступа: http://elib.uni-stuttgart.de/opus/volltexte/1999/494/pdf/TR-1999-08.pdf.
- Francis P., Jamin S., Jin C., Jin Y., Raz D., Shavitt Y., and Zhang L. IDMaps: A global Internet host distance estimation service. IEEE/ACM Transactions on Networking, Oct. 2001.
- Banga G., Druschel P. Measuring the capacity of a Web server under realisitc loads. World Wide Web Journal, 2, May 1999.
- Hunt G., Nahum E., Tracey J. Enabling content–based load distribution for scalable services. / G. Hunt, E. Nahum, J. Tracey. — IBM T.J. Watson Research Center, 1997. — Technical report.
- Тао Чжоу. Системы балансировки нагрузки web–серверов. — Windows magazine, #03/2000.
- Kevin Delgadillo. Cisco DistributedDirector. — Cisco Systems, Inc., 1999. — Technical report.
- Chou W., “Inside SSL: The Secure Sockets Layer Protocol”, IT Pro, July/August 2002, pp. 47–52, published by the IEEE Computer Society.
- Таненбаум Э., Ван Стеен М. Распределённые системы. Принципы и парадигмы. — СПб.: Питер, 2003.
- Casalicchio E., Cardellini V., Colajanni M., Content-aware dispatching algorithms for cluster-based web servers, Cluster Computing, vol. 5, no. 1, pp. 65–74, 2002.
- Петренко А.С., Червинский В.В. Исследование методов балансировки нагрузки в глобальных сетях. Автоматизація технологічних об’єктів та процесів. Пошук молодих. Збірник наукових праць ХІI науково-технічної конференції аспірантів та студентів в м. Донецьку 17–20 квітня 2012 р. — Донецьк, ДонНТУ, 2012. — с. 79–80.