Ради интереса недавно поискал базовые понятия в интернетах и не нашел достойного описания, поэтому пишу сам, просто, базово, как для себя на заре своего становления в направлении виртуализации, мне бы это помогло быстрее понять основы.
Введение
Виртуализация — это технология, которая позволяет запускать несколько виртуальных машин (ВМ) на одном физическом сервере. Каждая ВМ работает как отдельный компьютер со своей операционной системой. Это позволяет оптимизировать использование ресурсов серверов и снижать затраты на оборудование.
Как пример, можем рассмотреть такие сервисы как хостинг сайтов, создание тестовых сред и тд.
KVM: Базовая технология виртуализации
На сегодняшний день KVM (Kernel-based Virtual Machine) является одним из самых популярных решений для виртуализации на платформе Linux. Его используют как малые компании, так и крупный бизнес, включая облачных провайдеров, благодаря его эффективности и широким возможностям.
Основные моменты:
-
KVM встроен в ядро Linux и превращает Linux в гипервизор.
-
Гипервизор — это программа, которая управляет виртуальными машинами (бывает несколько типов гипервизоров, в нашем случае KVM является гипервизором 1-го типа, о других типах можно легко найти информацию в поисковиках).
-
KVM поддерживает запуск нескольких ОС на одном сервере, эффективно распределяя ресурсы между ВМ.
Резюмируем: KVM встроен в ядро Linux начиная с версии 2.6.20, и благодаря этому его легко установить и настроить на большинстве современных серверов. Он работает как гипервизор — компонент, который позволяет запускать несколько операционных систем на одном сервере одновременно.
OpenStack: Облачная платформа
OpenStack — это платформа с открытым исходным кодом, которая позволяет компаниям создать собственное облако, аналогичное облакам Amazon или Google. Она объединяет в себе разные компоненты для управления серверами, хранением данных и сетями. Самым популярным гипервизором для OpenStack является KVM, благодаря своей высокой производительности и поддержке Linux. С этого момента мы и начинаем понимать суть связки KVM + OpenStack.
Основные моменты:
-
OpenStack — это набор инструментов для создания и управления облачными инфраструктурами.
-
Он позволяет автоматизировать создание виртуальных машин, сетей, хранилищ и других ресурсов.
-
OpenStack поддерживает работу с различными гипервизорами, включая KVM.
Как работает связка KVM и OpenStack
Теперь поймем как эти две технологии KVM и OpenStack работают вместе.
Когда пользователь создаёт виртуальную машину в OpenStack, на уровне гипервизора за это отвечает KVM. OpenStack посылает команды KVM для создания новой ВМ с заданными параметрами — процессором, памятью и местом на диске. После создания OpenStack автоматически добавляет виртуальную машину в сеть и подключает к хранилищу.
Основные моменты:
-
OpenStack использует KVM как гипервизор для управления виртуальными машинами.
-
KVM предоставляет интерфейс низкого уровня для работы с ВМ, а OpenStack автоматически управляет их созданием, запуском, остановкой и удалением.
-
Такая связка позволяет легко масштабировать инфраструктуру и управлять большим количеством серверов и виртуальных машин через веб-интерфейс.
Преимущества использования KVM с OpenStack
Здесь перечислю несколько ключевых преимуществ нашей связки.
-
Открытый исходный код. Оба решения — OpenStack и KVM — имеют открытый исходный код, что даёт гибкость в настройке и позволяет избежать зависимости от одного вендора.
-
Высокая производительность. KVM предоставляет производительность близкую к «нативной» работе железа, а OpenStack эффективно управляет большими кластерами серверов.
-
Широкие возможности для масштабирования. OpenStack позволяет легко добавлять новые серверы в кластер, а KVM гарантирует стабильную работу ВМ даже при высокой нагрузке.
Какие модули есть в OpenStack
OpenStack состоит из множества модулей (сервисов), которые обеспечивают управление различными аспектами облачной инфраструктуры, такими как вычислительные ресурсы, сети, хранилища и безопасность. Перечислю основные модули OpenStack:
1. Compute (Nova)
-
Nova — сервис для управления виртуальными машинами (инстансами). Это главный компонент для запуска и управления виртуальными серверами.
-
Поддерживает различные гипервизоры, такие как KVM, QEMU, Xen, Hyper-V, VMware и другие.
2. Networking (Neutron)
-
Neutron отвечает за создание и управление сетями в OpenStack. Позволяет создавать виртуальные сети, подсети, маршрутизаторы, балансировщики нагрузки, а также управлять сетевыми политиками и безопасностью.
-
Поддерживает интеграцию с SDN (Software-Defined Networking) и сетевыми плагинами от разных вендоров.
3. Block Storage (Cinder)
-
Cinder предоставляет блочные хранилища для виртуальных машин, такие как тома, которые можно подключить к инстансам. Позволяет создавать, удалять и управлять блочными устройствами.
-
Может интегрироваться с различными системами хранения данных, такими как Ceph, NetApp, EMC и другие.
4. Object Storage (Swift)
-
Swift — объектное хранилище, предназначенное для хранения больших объемов данных. Это распределённое и масштабируемое хранилище для объектов (файлов), которое обеспечивает высокий уровень доступности и репликации данных.
-
Применяется для хранения резервных копий, архивов, мультимедиа и других объектов, которые могут быть доступны через API.
5. Identity Service (Keystone)
-
Keystone — это сервис аутентификации и авторизации пользователей и сервисов OpenStack. Keystone управляет пользователями, ролями, проектами (тенантами) и сервисами, предоставляя единую точку входа для всех модулей.
-
Keystone также управляет API-токенами и доступом на основе ролей (RBAC).
6. Image Service (Glance)
-
Glance управляет дисковыми образами, которые используются для создания виртуальных машин. Образы могут быть загружены, сохранены и развернуты на инстансах.
-
Поддерживает различные форматы образов, такие как RAW, QCOW2, VDI и VMDK.
7. Dashboard (Horizon)
-
Horizon — это веб-интерфейс для управления облаком OpenStack. Через Horizon пользователи могут управлять инстансами, сетями, хранилищем и другими сервисами.
-
Предоставляет удобный интерфейс для конечных пользователей и администраторов.
8. Orchestration (Heat)
-
Heat — сервис оркестрации, который позволяет автоматизировать развертывание и управление инфраструктурой, используя шаблоны (темплейты). С его помощью можно описать сложные структуры виртуальных машин, сетей и хранилищ.
-
Работает по аналогии с AWS CloudFormation.
9. Telemetry (Ceilometer)
-
Ceilometer — сервис для сбора данных о работе всех компонентов OpenStack, включая использование ресурсов (CPU, диски, сети). Эти данные могут использоваться для биллинга, мониторинга и аналитики.
-
Позволяет отслеживать использование ресурсов для отчетности и расчета затрат.
10. Database as a Service (Trove)
-
Trove — сервис, который предоставляет базы данных как услугу (DBaaS). Он упрощает развёртывание и управление базами данных, такими как MySQL, PostgreSQL и другие.
-
Trove автоматизирует развертывание, управление и масштабирование баз данных.
11. Data Processing (Sahara)
-
Sahara — сервис для управления большими данными (Big Data). Он упрощает развертывание кластеров Hadoop, Spark и других платформ для обработки данных на базе OpenStack.
-
Используется для выполнения задач по обработке данных в распределённых кластерах.
12. Bare Metal Provisioning (Ironic)
-
Ironic — сервис для управления физическими серверами (bare-metal). Он позволяет автоматически развертывать операционные системы на физических серверах, используя их как часть облачной инфраструктуры.
-
Это удобно для тех случаев, когда нужны реальные серверы, а не виртуальные машины.
13. DNS as a Service (Designate)
-
Designate — сервис для управления DNS-зонами и записями. Это позволяет организовать работу с доменными именами в облаке, автоматизируя создание DNS-записей для инстансов и других ресурсов.
14. Shared File System (Manila)
-
Manila — сервис для управления файловыми системами, позволяющий предоставлять общий доступ к файловым системам для нескольких виртуальных машин. Это аналог блочных и объектных хранилищ, но для файлового уровня.
15. Key Management (Barbican)
-
Barbican — сервис для управления секретами и ключами шифрования. Он обеспечивает безопасное хранение и управление секретными данными, такими как ключи шифрования, сертификаты и пароли.
16. Messaging Service (Zaqar)
-
Zaqar — это сервис для организации очередей сообщений между сервисами и приложениями в OpenStack. Позволяет организовать масштабируемую и надежную передачу сообщений между компонентами приложений.
17. Container Orchestration (Magnum)
-
Magnum — сервис для управления контейнерами в OpenStack. Он предоставляет возможность развертывания и управления контейнерными оркестраторами, такими как Kubernetes, Docker Swarm и Mesos, в среде OpenStack.
18. Secret Storage (Castellan)
-
Castellan — библиотека для управления секретами и ключами. Это вспомогательный модуль, который часто используется другими сервисами для безопасного хранения данных.
Ключевые отличия между OpenStack и KVM
Сведем теперь ранее озвученные тезисы в единую таблицу для лучшего усвоения материала.
Параметры |
OpenStack |
KVM |
---|---|---|
Тип |
Full cloud management platform |
Bare-metal гипервизор |
Основное применение |
Управление облачной инфраструктурой |
Виртуализация физических серверов |
Область управления |
Управляет целыми облачными средами |
Управляет виртуализацией отдельных серверов |
Масштабируемость |
Высоко масштабируемый для крупных развертываний |
Масштабируемый, но в первую очередь для отдельных серверов |
Интегрируемость |
Интегрируется с различными облачными платформами и гипервизорами |
Интегрируется напрямую с ядром Linux |
Сложность |
Более сложный, требует оркестровки нескольких услуг |
Более простой, сфокусированный на виртуализации |
Место в инфраструктуре |
Управление верхнего уровня |
Низкий уровень виртуализации |
Заключение
Здесь наверно стоит еще раз сказать что связка KVM и OpenStack — это мощный инструмент для создания частных облаков и виртуализированных инфраструктур, с достаточно большой долей использования на рынке России. Базовые понятия из данной статьи я полагаю должен знать любой начинающий сисадмин, DevOps, MLOps, прочий опс или сетевой инженер. Данная технология является востребованной в современных IT-решениях.
Скорее всего вы захотите поковырятся в ней и попробовать в тестовом режиме, здесь открывается еще один ее плюс, это удобство и достаточная простота ее разворачивания, учитываю что OpenStack модульный, можно для начала ограничится несколькими модулями.
p.s.
не смог удержаться….
Добавлю короткую пошаговую инструкцию по начальной установке OpenStack с KVM, чтобы у вас было представление о процессе настройки.
-
Установка KVM на сервер:
sudo apt install qemu-kvm libvirt-bin virtinst
-
Установка и настройка OpenStack. Для начинающих лучшим вариантом будет использование автоматизированных инструментов, например DevStack или MicroStack:
sudo snap install microstack --devmode --beta microstack init
-
Запуск первой виртуальной машины через панель управления Horizon (веб-интерфейс OpenStack) или с помощью CLI-команд.
ссылка на оригинал статьи https://habr.com/ru/articles/849314/
Добавить комментарий