Оптимизировали живую миграцию и добавили дашборд для мониторинга в Deckhouse Virtualization Platform
Мы оптимизировали живую миграцию виртуальных машин в Deckhouse Virtualization Platform: теперь ВМ переносятся между узлами кластера без прерывания сетевых соединений. А ещё добавили в платформу дашборд мониторинга виртуальных машин, который позволяет отслеживать в Grafana нагрузку на CPU, память и другие ресурсы.
Недавно мы доработали живую миграцию виртуальных машин между гипервизорами: теперь она выполняется без прерывания сетевых соединений. А ещё пользователям стал доступен дашборд в Grafana, который позволяет следить за потреблением CPU, памяти и других параметров.
Живая миграция без прерывания доступа
Живая миграция виртуальных машин — это механизм, который позволяет переносить запущенную ВМ с одного гипервизора на другой без прерывания её работы. Это важно, например, когда физические узлы кластера необходимо перевести в режим обслуживания или перезагрузить.
Deckhouse Virtualization Platform основана на Kubernetes, изначально заточенном под stateless-контейнеры, которые можно без проблем перезапускать на узлах кластера без потери данных. Виртуальные машины же работают с дисками и имеют более строгие требования к задержкам при миграции, которым необходимо соответствовать для обеспечения целостности данных.
Для управления сетевыми взаимодействиями в кластере мы используем Cilium. Он по умолчанию ожидает, что у каждой сущности (например, пода или ВМ) в кластере свой уникальный IP-адрес. Однако при миграции на целевом узле создаётся копия виртуальной машины, на которую должна будет переехать оперативная память с работающей ВМ. При этом у копии тот же IP-адрес, что и у исходной ВМ. В этот момент Cilium «теряется» и не понимает, куда отправлять трафик.
Мы решили эту проблему:
Миграция происходит без единого разрыва бесшовно. Пользователи не заметят перемещения виртуальной машины, даже если в этот момент происходит активный обмен трафиком.
Сетевые соединения не рвутся, а продолжают корректно работать при миграции.
Для тестирования изменений мы использовали iPerf, который измеряет пропускную способность сети в реальном времени. Запускали его на виртуальных машинах и проверяли поведение соединений в разных сценариях: между узлами, между ВМ, через NodePort и LoadBalancer. Теперь даже при активном сетевом трафике миграция проходит без прерывания доступа.
Дашборд для мониторинга в Grafana
Виртуальные машины в DVP запускаются внутри подов Kubernetes. Раньше работа с метриками виртуальных машин была не такой удобной: их можно было отслеживать только через поды:
Под — это сервисная сущность, а пользователи виртуализации работают с ВМ.
При миграции у одной ВМ временно существовало два пода, что затрудняло работу с метриками.
Теперь в Grafana появился отдельный дашборд мониторинга виртуальных машин. Он позволяет отслеживать:
использование CPU и памяти;
состояние запущенных ВМ;
общую нагрузку на инфраструктуру виртуализации.
В будущем планируем добавить на дашборд метрики по нагрузке на отдельные узлы и по проектам.
Написать комментарий