В эпоху цифровой трансформации компании сталкиваются с необходимостью управлять все более сложными и разнообразными IT-инфраструктурами. Серверы с операционными системами Windows и Linux, приложения на разных языках и фреймворках, облачные и контейнерные технологии - все это создает немалые трудности для админов и девопсов. Как эффективно управлять этим "зоопарком" систем и технологий?
Ответ - в использовании универсальных и гибких инструментов виртуализации, таких, как KVM (Kernel-based Virtual Machine). Это opensource-решение, которое превращает Linux в гипервизор, позволяя запускать виртуалки с любыми ОС прямо на "голом железе".
Преимущества KVM для разношерстных инфраструктур
Совместимость и гибкость
Главный козырь KVM - он одинаково хорошо ладит с Windows, Linux и Mac. Можно развернуть виртуалки с разными ОС на одних и тех же хостах и управлять ими централизованно. Никаких плясок с бубном, чтобы подружить Windows-сервер с Linux-кластером - KVM сам все утрясет.
Плюс, виртуалки на KVM используют стандартные форматы дисков вроде QCOW2 и RAW. Это значит, что их легко переносить между разными гипервизорами и системами виртуализации. Никакого вендорлока и привязки к конкретным продуктам.
Скорость и масштабируемость
За счет прямой работы с "железом" через ядро Linux, KVM обеспечивает впечатляющую производительность виртуалок. Они могут шустро крутиться почти на родной скорости, что важно для высоконагруженных задач вроде биг даты, научных расчетов или хайлоад-сервисов.
А главное - KVM легко и быстро масштабируется. Нужно больше мощностей для растущего бизнеса? Без проблем: добавляй ресурсы к имеющимся виртуалкам или разворачивай новые одним кликом. Сотни и тысячи виртуальных машин - обычное дело для KVM-кластеров.
Безопасность и изоляция
Для KVM безопасность - не пустой звук. Каждая виртуалка живет в своей песочнице и никак не влияет на соседей. Даже если одна из них сломается или подхватит вирус, другие будут как огурчики.
А еще KVM поддерживает крутые фичи безопасности: шифрование дисков, сетевую изоляцию через VLAN, ролевую модель доступа и интеграцию с Active Directory/LDAP для строгой аутентификации и авторизации юзеров.
Опенсорс и кастомизация
В отличие от проприетарных гипервизоров вроде VMware, исходники KVM открыты и доступны для всех желающих. Это дает огромный простор для кастомизации и тюнинга под свои нужды.
Хотите добавить новую фичу в KVM или интегрировать его с in-house системой provisioning? Не вопрос, ковыряйте исходники сколько душе угодно. Опенсорсная природа KVM породила целую экосистему инструментов и надстроек, от коммерческих дистрибутивов вроде RHEV и Oracle Linux KVM до open-source проектов типа oVirt и Proxmox.
Экономия на спичках
Щадящий подход KVM к еще один жирный плюс в его пользу. Сам гипервизор бесплатен, а консолидация нагрузки позволяет сэкономить на "железе", электричестве и охлаждении серверов.
К тому же, за счет открытости и совместимости, с KVM не нужно покупать дорогущие SAN-хранилища или сетевое оборудование. Подойдет любой no-name "ширпотреб" - и вперед, к виртуализации своих разношерстных систем.
Анатомия KVM-решений
Чтобы эффективно рулить разнокалиберными системами на KVM, нужно разобраться, как все это хозяйство устроено и из каких компонентов состоит.
- Гипервизор: Собственно KVM, который работает как модуль ядра Linux и превращает хост в гипервизор. Главная задача - разруливать доступ виртуалок к CPU, памяти и девайсам.
- QEMU: Верный оруженосец KVM, отвечающий за эмуляцию железячных примочек вроде дисков, сетевых карт и видеоадаптеров. Без него виртуалкам каюк.
- Libvirt: Удобная библиотека, которая предоставляет единый API для управления разными гипервизорами, включая KVM. Позволяет рулить виртуалками, сетями и хранилками через один интерфейс.
- Утилиты управления: Кучка инструментов для ручного и автоматического управления KVM, от консольного virsh и гуевого virt-manager до продвинутых веб-порталов типа oVirt или Proxmox.
- Сеть и хранилище: Без сетевых плюшек вроде бриджей, VLAN и балансировки трафика никуда. То же самое с местом для виртуальных дисков: локальные LVM, NFS или iSCSI хранилки - все к рукам.
Мосты к другим мирам
Чтобы получить максимум выхлопа от KVM в плане управления разносортицей систем, нужно научиться подключать его к другим технологиям виртуализации и облачным платформам.
- Замиксовать с VMware
У вас уже есть инфраструктура на базе VMware vSphere? Не беда, подружим ее с KVM! Виртуалки VMware можно сконвертить в родной формат KVM с помощью утилит вроде virt-v2v или VMware vCenter Converter. А еще оба гипервизора могут делить общее NFS-хранилище, что облегчает перенос данных туда-сюда.
- Подобрать ключик к Hyper-V
Microsoft Hyper-V - еще один популярный гипервизор, особенно в инфраструктурах на Windows. Но и с ним KVM найдет общий язык. Виртуалки Hyper-V можно сконвертить в KVM-формат через утилиты Microsoft Virtual Machine Converter или Disk2VHD. А если подключить общее iSCSI или Fibre Channel хранилище - вообще сказка.
- Закадрить OpenStack
Для тех, кто строит частные и гибридные облака, связка KVM+OpenStack - просто находка. KVM - один из основных гипервизоров, на которых крутится OpenStack, так что этот союз самой судьбой предначертан. С OpenStack можно управлять тысячами виртуалок KVM, сетями и СХД через один портал. А еще он умеет мигрировать виртуалки между нодами, обеспечивая отказоустойчивость и масштабируемость облака.
- Приправить контейнерами
Докер, Кубер и иже с ними - главные рок-звезды мира DevOps. Но и с ними KVM спелся на ура. Можно запускать контейнеры прямо на виртуалках KVM, получая дополнительный слой изоляции и безопасности. Или развернуть Kuber-кластер на KVM-нодах, как в Red Hat OpenShift. Два в одном: и виртуализация, и контейнеризация.
KVM в деле: реальные кейсы
Теперь, вооружившись знаниями о KVM, посмотрим, как все это применяется на практике для укрощения неоднородных инфраструктур.
Консолидация серверов
Представьте, что у вас десятки физических серверов с Windows, Linux и AIX, тонна legacy-приложений и конский счет за электричество. Самое время виртуализировать все это добро на паре мощных KVM-хостов. Создаем виртуалки под каждый сервер, выделяем ресурсы, мигрируем данные и приложения — профит. Меньше железа, проще управление, дешевле эксплуатация. Красота!
Разработка и тестирование
Вы — крутая софтверная контора, которая пилит приложения под Windows, Linux и Mac. Чтобы не плодить девайсы, виртуализируем все три системы на KVM. Разрабы получают виртуалки под нужные ОС, ставят IDE и зависимости, пишут код, компилят, тестируют. Все на одной машине, никаких переключений и плясок с бубном. А когда надо выкатить релиз — делаем снапшот и дуем паровозом.
Учебные лаборатории
Чем закупать тонну ноутов под IT-лабу в универе, дешевле и проще развернуть виртуальный класс на базе KVM. Студенты будут заходить со своих devices на KVM-виртуалки с нужным софтом и лабами. Никакой возни с железом, лицензиями на ПО и обновлениями. А преподам — централизованное управление всей этой сворой одним кликом.
Аварийное восстановление
KVM можно использовать как недорогую и надежную площадку для аварийного восстановления after disaster. Реплицируем виртуалки продуктовых систем на резервный сайт с KVM, регулярно синкаем данные. Если продакшн ляжет, тут же подымаем запасные копии на KVM - и бизнес спасен.
Конечно, это лишь малая толика сценариев, где KVM помогает эффективно управлять зоопарком из разнородных систем. Под капотом у этой технологии - еще много интересных фич и возможностей. Главное - KVM универсален, надежен и удобен. А значит, если хотите виртуализировать все и вся, смело берите KVM на вооружение - не ошибетесь.