Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Балансировка нагрузки
и отказоустойчивость в
Одноклассниках
Никита Духовный
Никита Духовный
• Ведущий системный администратор
Инфраструктура Одноклассников
• >11000 физических серверов
• 3 основных дата-центра
• CDN
• >1 Tbps внешнего трафика
Системный администратор в
Одноклассниках
• Системы автоматизации
• Исследовательская работа
• Помощь разработчикам
Балансировка нагрузки и
отказоустойчивость на примере
Одноклассников
На заре проекта
1. www.odnoklassniki.ru
2. redirect
3. wg13.odnoklassniki.ru
• Имя привязано к серверу
На заре проекта
• Недостатки
• Отказ сервера
• Имя добавлено в закладки
• Что-то нужно менять
Балансировщики нагрузки
• IP + port = Layer 4 балансировка
• Опции
• Проприетарные
• LVS
Балансировщики нагрузки
• IP + port = Layer 4 балансировка
• Опции
• Проприетарные
• LVS
• Выбор - LVS
LVS
•
LVS
•
LVS
•
Управление LVS
• ldirectord
• Добавляет сервера в таблицу LVS
• Проверяет реальные сервера
• Корректирует таблицу LVS
• ldirector - однопоточный
• Проблема
• 200 web
• 5 секунд timeout
• Вывод половины - более 8 минут
Управление LVS
Управление LVS
• ok-lvs-monitor
• Многопоточность проверок
• Интегрирован с системой конфигурации
портала
LVS - патчи
• расхождение между master и standby
• sync - на core0
• sync >50% CPU Usage на standby
• ipvsadm не различал Active/InAct
LVS и persistence
• Для чего нам persistence
• LVS - по client IP
• Мобильный оператор Армении - с
нескольких IP
• mobile-web - неравномерно нагружены
Балансировщик для мобильной
версии
• Persistence по cookie
• Layer 7
Балансировщик для мобильной
версии
• Persistence по cookie
• Layer 7
• HAProxy
HAProxy
HAProxy
HAProxy
HAProxy
HAProxy
HAProxy
• Балансировщик за балансировщиком?
Балансировка нагрузки и отказоустойчивость в Одноклассниках
HAProxy
• Почему бы и нет:
• LVS: 45 мастеров, 600 Mbit каждый
• HAProxy: 36 серверов, 70 Mbit каждый
• Почему да:
• Малый вес после реконфигурации
• Оценить
• Применить везде
Аварии в дата-центре
Аварии в дата-центре
• Сгорела и основная, и резервная оптика
Аварии в дата-центре
• Сгорела и основная, и резервная оптика
• Стала плавиться изоляция
электропитания
Аварии в дата-центре
• Сгорела и основная, и резервная оптика
• Стала плавиться изоляция
электропитания
• Крыша прилетела на систему
охлаждения
Аварии в дата-центре
Проект должен работать в случае отказа
любого дата-центра!
Системы хранения данных
• СХД осведомлены о дата-центрах
• Replication factor = 3
• Quorum = 2
Frontend и дата-центры
• В 3 дата-центрах
• Запас мощности
• 3 IP адреса
GSLB DNS
• Автоматическая обработка аварии
• Проверка
http:path=/getstatus;method=head;on=20/20;
off=10/20;timeout=3000
• За 5 минут переходят 80% пользователей
Сеть
Сеть
Сеть
Сеть
Сеть
Сеть
Сеть
Сеть
Тяжёлый контент
• Видео, музыка, фотографии
• Плохие интернеты
• Медленный зарубежный трафик
• Нестабильное соединение
• Узкий канал
CDN
• Сервера близко к пользователю
• Кеширование контента
CDN - IP Anycast
CDN - IP Anycast
• Плюсы
• Автономность
• Минусы
• Нет прямого контроля
• Неожиданный переход на другую площадку
CDN - DNS
CDN - DNS
CDN - DNS
CDN - DNS
CDN - DNS
• IP-based geolocation
• Плюс
• высокий контроль
• Минус
• Физически близко != лучший сетевой путь
• Не учитывают изменений в топологии
CDN - Одноклассники
• Проекты “Трафик до ОК - бесплатно”
• Отправляем на площадку только сети
партнёра
• Обычные решения - не подходят
CDN - Одноклассники
CDN - Одноклассники
CDN - Одноклассники
CDN - Одноклассники
CDN - Одноклассники
CDN - Одноклассники
CDN - Одноклассники
CDN - Одноклассники
CDN - Одноклассники
CDN - Одноклассники
CDN - Одноклассники
CDN - Одноклассники
CDN - Одноклассники
CDN - Одноклассники
• In-house
• Контент - с соседней ноды
• nginx
Будущее
1 IP
• Прозрачный отказ дата-центра
• 100% решение проблем с DNS cache
• Устранение лишних переходов между
дата-центрами
Userspace Layer 4 load balancers
• Отсутствие переходов между user space и
kernel space
• Лёгкий сетевой стек
• Очень быстро (по слухам :) )!
Спасибо!
https://v.ok.ru/vacancies.html
https://v.ok.ru/publishing.html
nikita.dukhovny@corp.mail.ru
• 7 ноября, 18:00 - “Как не положить тысячи серверов
с помощью системы централизованного
управления конфигурацией на примере CFEngine”

More Related Content

Балансировка нагрузки и отказоустойчивость в Одноклассниках