Создание фермы виртуализации на базе KVM/QEMU с WEB-интерфейсом управления WebVirtManager

Так как мне надо подготовить для портфолио несколько описаний выполненных проектов, то пожалуй начну с построения фермы виртуализации на базе OpenSource решений без использования Proxmox и т.п. Стоит отметить, что мне удалось создать полноценную ферму виртуализации из исключительно Open Source компонентов и мигрировать на построенное решение около 100 виртуальных машин на которых производилась разработка и тестирование программного обеспечения.

 
 
Логотип GITA-DEV

Автор: Черноусов Антон aka Gita-Dev
Опубликовано: 24 Авг 2018 (последние правки 3 месяца)

libvirt

Сразу скажу, что мигрировал я систему с VirtualBox с каким-то web-интерфейсом управления, система мне досталась в состоянии глубокого легаси с долгими поисками открытого решения с адекватным интерфейсом управления и полностью прозрачной лицензией. Миграция со старой фермы на базе VirtualBox постоянно откладывалась и существующая ферма обрастала костылями. 

Так выглядит интерфейс управления фермой виртуализации на базе VirtualBox

От коммерческих решений на VmWare сразу отказались (по причине требований лицензионной чистоты в компании), а лицензия на Proxmox выглядит какой то недостаточно прозрачной и я решил использовать решение которое давно уже использовал для внутренних нужд и оно отлично себя зарекомендовало, при этом состоит из исключительно открытых компонентов:

  • KVM
  • Libvirt
  • Qemu
  • Webvirtmanager

И хотя я давно уже использовал такую связку для работы двух тестовых серверов, настраивать ферму разработки из 12-и серверов на этом решении с постепенной миграцией с VirtualBOX было довольно интересным опытом и главное что все работает отлично и по сей день. Из минусов было только, то что я не смог настроить систему снапшотов на уровне хранилища на базе BTRFS для системы резерного копирования виртуальных машин на лету (точнее прототип то я сделал, но использование снимков BTRFS порождало такой бешенный оверхэд, что пришлось свернуть этот проект и реализовать другую систему резервного копирования).

Мне удалось реализовать механизмы онлайн-миграции виртуальных машин между нодами, сетевое хранилище, решить проблему с дисковым оферлоадом и построить виртуалную сеть позводяющую оперативно мигрировать виртуальные машины между узлами фермы без перенастройки сетевых интерфейсов. Решение получилось удобным в управлении и поддерживающим практически весь функционал аналогичных коммерческих решений.

Естественно, что я не могу сказать, что это решение получилось полностью аналогичным VmWare или коммерческой редакции Proxmox, так как я не смог реализовать механизмы миграции виртуальных дисков между нодами фермы и перенос виртуальных машин возможен только при использовании сетевого хранилища, а в остальном все работает стабильно и не требует от сопровождающих системных администраторов глубокого понимания происходящих в системе процессов, так как все управление производится при помощи web-интерфейса управления.

 

Похожие статьи

Создание сети типа мост для платформы виртуализации KVM при помощи Libvirt

Создание сети типа мост для платформы виртуализации KVM при помощи Libvirt

Если вы используете в своей работе менеджер виртуальных машин virt-manager, то вы наверное обращали внимание, что при создании сети вы не можете выбрать режим работы сети в виде добавления интерфейсов в существующий сетевой мост, но так как в основе этого менеджера лежит KVM и Libvirt, то мы всегда можем выполнить эту операцию в ручную из консоли.


Подготовка KVM-Libvirt инфраструктуры (удаленное подключение с поддержкой авторизации)

Подготовка KVM-Libvirt инфраструктуры (удаленное подключение с поддержкой авторизации)

Сегодня я расскажу и покажу как настроить удаленное управление гипервизором KVM/Qemu. Одним из ключевых моментов построения современных систем виртуализации ориентированных на продакшн-использование является централизованное управление и естественно, что централизация управления достигается использованием API. Одним из API для управления гипервизорами KVM/Qemu является Libvirt и стоит отметить, что эта библиотека, позволяет управлять не только KVM/Qemu, но и LXC.


Обзор open source платформы управления фермой виртуализации KVM (новое в WebVirtCloud)

Обзор open source платформы управления фермой виртуализации KVM (новое в WebVirtCloud)

Как верно подметили читатели моего блога, я конечно рассказал как установить WebVirtCloud, но не рассказал, чем же она так кардинально отличается от того же Proxmox например, да и немного скриншотов бы тоже не помешало. Я в свою очередь наверное даже пойду дальше и подготовлю небольшое видео, где продемонстрирую создание нескольких виртуальных машин и покажу некоторые новые фишки WebVirtCloud.


Настройка OS Windows для работы в UTC time (проблема с локальным временем виртуальной машины в системе виртуализации KVM)

Настройка OS Windows для работы в UTC time (проблема с локальным временем виртуальной машины в системе виртуализации KVM)

Ничего против Windows не имею и считаю, что для каждой задачи требуется свой инструмент, но некоторые легаси-вещи там тянутся из из совсем уже глубины веков и я сейчас говорю не про поддержку кодировки UTF-8, сейчас с этим дела обстоят немного лучше, а про часы системы которые все еще не в UTC. И это кстати сказать порождает некоторые нетривиальные баги при виртуализации ОС Windows в KVM.


Запуск узла KVM-фермы WebVirtCloud (Ввод в эксплуатацию тестового сервера Metatron)

Запуск узла KVM-фермы WebVirtCloud (Ввод в эксплуатацию тестового сервера Metatron)

Как вы наверное знаете я активно использую в работе консоль управления гипервизорами KVM которая называется WebVirt Cloud. Она гарантированно OpenSource с исходными кодами которые я активно переделываю под себя и сегодня я хотел рассказать как в нее добавить одну ноду.


Использование QEMU/KVM для установки операционной системы на физический диск

Использование QEMU/KVM для установки операционной системы на физический диск

Сегодня в очередной раз мне понадобилось производить множественные операции с физическим жестким диском и если бы я по честному использовал установочные носители и инструментарий тестирования, то мне пришлось бы раз 30 перезагрузить компьютер. Мало того, что мне потребовалась бы для этого выделенная рабочая станция, так и времени бы это заняло гораздо больше.


Отзывы и комментарии