Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,687 views

Published on

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

Published in: Internet
  • Be the first to comment

  • Be the first to like this

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

  1. 1. KVM в кластере Андрей Шетухин
  2. 2. Задачи • Убрать “зоопарк” серверов • Гибко и автоматически перераспределять доступные ресурсы • Обеспечить отказоустойчивость сервисов • Упростить процедуры деплоймента и обслуживания
  3. 3. Убрать “зоопарк” серверов
  4. 4. Убрать “зоопарк” серверов
  5. 5. Очевидное решение • Закупать одинаковые сервера ✔ • Виртуализировать сервисы • Распределить виртуальные среды по серверам
  6. 6. Очевидное решение • Закупать одинаковые сервера ✔ • Виртуализировать сервисы ✔ • Распределить виртуальные среды по серверам
  7. 7. Очевидное решение • Закупать одинаковые сервера ✔ • Виртуализировать сервисы ✔ • Распределить виртуальные среды по серверам
  8. 8. Примерно так
  9. 9. Формализация задачи • Необходимо уметь распределять и мигрировать среды между серверами • С учетом массы параметров • Быстро • Независимо от времени суток
  10. 10. Задача о рюкзаке • Эта задача не решается человеком • Особенно, когда рюкзаков много
  11. 11. Пичаль...
  12. 12. Задача о рюкзаке • Алгоритм решения есть: Wikipedia://Задача_о_ранце • Нет opensource проекта, решающего эту задачу для балансировки виртуальных машин
  13. 13. Требования к системе • Автоматическая балансировка ВМ по нескольким критериям • Обеспечение live-миграции ВМ • Отказоустойчивость
  14. 14. Требования к системе • И главное: возможность добавления и удаления серверов и/или ВМ “на лету”
  15. 15. Iris Jongleur • Основан на библиотеке libvirt • Позволяет самостоятельно задавать параметры балансировки • Работает в кластере
  16. 16. Iris Jongleur • Поддерживает несколько алгоритмов балансировки ВМ между серверами • Борется со split brain и запуском одной ВМ в двух местах одновременно
  17. 17. Параметры балансировки • Нагрузка на CPU • Сетевой трафик • Отсутствие на сервере ВМ с такой же ролью • Что угодно на ваш вкус
  18. 18. Компоненты • Хранилище образов ВМ • Сервера с KVM • Система балансировки Iris Jongleur
  19. 19. Хранилище
  20. 20. Хранилище • Хранит образы виртуальных машин • Каждый сервер кластера имеет доступ к хранилищу (у нас - через SAS network) • Доступность хранилища обеспечивается через multipath
  21. 21. Система балансировки
  22. 22. Система балансировки • Следит за серверами кластера • Распределяет ВМ между живыми серверами • Обеспечивает Live-миграцию и перезапуск ВМ
  23. 23. Варианты балансировки
  24. 24. Варианты балансировки • Максимальное использование ресурсов на каждом сервере • Максимальное задействование серверов в кластере
  25. 25. Работа в кластере • При старте системы сервера подключаются друг к другу; все видят всех • Происходит выбор мастера • Мастер балансирует ВМ и рассылает команды остальным серверам на запуск ВМ
  26. 26. Работа в кластере
  27. 27. Работа в кластере • Сервера следят друг за другом, периодически посылая ping-запросы • Если включается/выключается ВМ, перебалансировка не производится до тех пор, пока в этом нет необходимости
  28. 28. Работа в кластере • Если отключается мастер, происходят перевыборы • Если одновременно выключается много серверов, система начинает проверку на split brain.
  29. 29. Split brain
  30. 30. Split brain • Если сервер теряет подключение более чем к 50%+1 серверу, он гасит запущенные на нем виртуальные машины • Остальные сервера, обнаружив недоступность соседа выжидают заданный таймаут и распределяют и перезапускают ВМ у себя
  31. 31. Split brain • Для каждой ВМ можно указать свой таймаут остановки • Например, для фронтэнда – одну секунду, а для БД – несколько минут
  32. 32. Цифры • Полная ребалансировка по 5 критериям: • 10 серверов, 50 ВМ – 0.01 cек • 10 серверов, 100 ВМ – 0.08 сек • 20 серверов, 100 ВМ – 0.13 сек • 20 серверов, 200 ВМ – 0.9 cек • Скорость добавления ВМ – миллисекунды
  33. 33. Вопросы?
  34. 34. Ответы!  Да, это Opensource.  Да, скоро на Github.  Да, гостевая система любая.  Нет, на FreeBSD не работает. И не будет.
  35. 35. А теперь – вопросы!

×