Модификации kvm для работы в кластере, Андрей Шетухин

Post on 15-Jun-2015

647 Views

Category:

Internet

9 Downloads

Preview:

Click to see full reader

DESCRIPTION

Доклад Андрея Шетухина на HighLoad++ 2014.

TRANSCRIPT

KVM в кластереАндрей Шетухин

Задачи• Убрать “зоопарк” серверов

• Гибко и автоматически перераспределять доступные ресурсы

• Обеспечить отказоустойчивость сервисов

• Упростить процедуры деплоймента и обслуживания

Убрать “зоопарк” серверов

Убрать “зоопарк” серверов

Очевидное решение• Закупать одинаковые сервера ✔

• Виртуализировать сервисы

• Распределить виртуальные среды по серверам

Очевидное решение• Закупать одинаковые сервера ✔

• Виртуализировать сервисы ✔

• Распределить виртуальные среды по серверам

Очевидное решение• Закупать одинаковые сервера ✔

• Виртуализировать сервисы ✔

• Распределить виртуальные среды по серверам

Примерно так

Формализация задачи• Необходимо уметь распределять и

мигрировать среды между серверами

• С учетом массы параметров

• Быстро

• Независимо от времени суток

Задача о рюкзаке• Эта задача не решается человеком

• Особенно, когда рюкзаков много

Пичаль...

Задача о рюкзаке• Алгоритм решения есть:

Wikipedia://Задача_о_ранце

• Нет opensource проекта, решающего эту задачу для балансировки виртуальных машин

Требования к системе• Автоматическая балансировка ВМ по

нескольким критериям

• Обеспечение live-миграции ВМ

• Отказоустойчивость

Требования к системе• И главное: возможность добавления и

удаления серверов и/или ВМ “на лету”

Iris Jongleur• Основан на библиотеке libvirt

• Позволяет самостоятельно задавать параметры балансировки

• Работает в кластере

Iris Jongleur• Поддерживает несколько алгоритмов

балансировки ВМ между серверами

• Борется со split brain и запуском одной ВМ в двух местах одновременно

Параметры балансировки• Нагрузка на CPU

• Сетевой трафик

• Отсутствие на сервере ВМ с такой же ролью

• Что угодно на ваш вкус

Компоненты• Хранилище образов ВМ

• Сервера с KVM

• Система балансировки Iris Jongleur

Хранилище

Хранилище• Хранит образы виртуальных машин

• Каждый сервер кластера имеет доступ к хранилищу (у нас - через SAS network)

• Доступность хранилища обеспечивается через multipath

Система балансировки

Система балансировки• Следит за серверами кластера

• Распределяет ВМ между живыми серверами

• Обеспечивает Live-миграцию и перезапуск ВМ

Варианты балансировки

Варианты балансировки• Максимальное использование ресурсов

на каждом сервере

• Максимальное задействование серверов в кластере

Работа в кластере• При старте системы сервера

подключаются друг к другу; все видят всех

• Происходит выбор мастера

• Мастер балансирует ВМ и рассылает команды остальным серверам на запуск ВМ

Работа в кластере

Работа в кластере• Сервера следят друг за другом,

периодически посылая ping-запросы

• Если включается/выключается ВМ, перебалансировка не производится до тех пор, пока в этом нет необходимости

Работа в кластере• Если отключается мастер, происходят

перевыборы

• Если одновременно выключается много серверов, система начинает проверку на split brain.

Split brain

Split brain• Если сервер теряет подключение более

чем к 50%+1 серверу, он гасит запущенные на нем виртуальные машины

• Остальные сервера, обнаружив недоступность соседа выжидают заданный таймаут и распределяют и перезапускают ВМ у себя

Split brain• Для каждой ВМ можно указать свой

таймаут остановки

• Например, для фронтэнда – одну секунду, а для БД – несколько минут

Цифры• Полная ребалансировка по 5 критериям:

• 10 серверов, 50 ВМ – 0.01 cек• 10 серверов, 100 ВМ – 0.08 сек• 20 серверов, 100 ВМ – 0.13 сек• 20 серверов, 200 ВМ – 0.9 cек

• Скорость добавления ВМ – миллисекунды

Вопросы?

Ответы! Да, это Opensource.

Да, скоро на Github.

Да, гостевая система любая.

Нет, на FreeBSD не работает. И не будет.

А теперь – вопросы!

top related