Дисклеймер: данная статья не рассчитана на опытных линуксоидов, что уже собаку съели, куря мануалы OpenNebula, – для них большая часть текста покажется либо наивной, либо очевидной, либо наивно-очевидной. Мы хотим не рассказать о том, что же это за зверь такой, а скорее порекомендовать, на что обратить внимание, если вас поставили перед фактом, что надо переходить на российское ПО, и вам предстоит импортозаместить систему виртуализации. Ну, или пока запустить ее в тестовом режиме.

Не секрет, что сертифицированные операционные системы ООО «РусБИТех-Астра» названы в честь городов-героев, и самая известная из них — Astra Linux Special Edition "Смоленск" (ОС специального назначения). Про нее слышали все, кто так или иначе сталкивался с вопросом импортозамещения ПО. Есть еще специализированные релизы «Новороссийск», «Севастополь», «Керчь», «Мурманск» и «Ленинград». Они уже не так широко известны, так как предназначены для менее массовой архитектуры, чем x86-64. Но наш сегодняшний разговор пойдет не об операционной системе, а о продукте ООО «РусБИТех-Астра», который носит имя города Брест.

Что же это такое? Полное название продукта — программный комплекс средств виртуализации «Брест». По заявлению разработчика, это «современный инструментарий для управления виртуальными структурами любой сложности с применением средств защиты ОС Astra Linux Special Edition».

Собственно, базовый функционал виртуализации реализован в составе ОС с помощью KVM (модуль ядра Linux), QEMU (эмуляция аппаратного обеспечения), libvirt (демон и набор инструментов для управления виртуализацией) и virt-manager (приложение для управления виртуальными машинами).

Это классическая схема реализации виртуализации в Linux-системах, такая связка используется плюс-минус во всех отечественных дистрибутивах. Гораздо интереснее становится, если мы хотим выйти за рамки виртуализации для тестов на отдельно взятом сервере. Тут уже начинаются различия:

  1. ROSA Linux предлагает использовать oVirt (логично, учитывая то, что базовый дистрибутив RHEL).

  2. ALT Linux – PVE или OpenNebula.

  3. Astra Linux – OpenNebula.

Программный комплекс "Брест" предлагает три варианта использования:

  1. Локальная виртуализация.

  2. Серверная виртуализация.

  3. «Облако» ресурсов и виртуальных машин (ВМ).

Локальная и серверная виртуализация
Данные сценарии подразумевают создание и использование на локальном компьютере или сервере нескольких ВМ, управляемых с помощью virt-manager. Он позволяет подключать удаленные физические серверы по протоколам TCP (SASL+Kerberos), SSL/TLS и ssh для управления виртуализацией на нескольких серверах.

«Облако» ресурсов и виртуальных машин
Такой сценарий позволяет создавать и управлять большим количеством ВМ, при этом доступны все преимущества «облачного» решения: масштабируемость, высокая доступность и безопасность. ПК «Брест» позволяет через единый web-интерфейс управлять машинами, работающими в режиме дискретного и мандатного управления доступом, с учетом требований в части контроля целостности.

И вот о некоторых практических особенностях установки и настройки ПО в этом случае я и хотел бы сегодня рассказать.

 

Считаем сервера

Для локально-серверного сценария достаточно одного физического сервера. «Облако» ресурсов и виртуальных машин тоже можно установить и настроить на одном сервере, когда свободных серверов мало, а широкий спектр возможностей «облака» задействовать хочется, например, если нужен web-интерфейс управления и полноценное разграничение прав. Естественно, что, если сервер один, ни о какой высокой доступности речь не идет.

Компоненты для установки будут следующие:

  1. Узел виртуализации.

  2. ОС Astra Linux Special Edition «Смоленск».

  3. Контроллер домена (Astra Linux Directory (ALD) или FreeIPA).

  4. ПК СВ «Брест».

А если нужна высокая степень доступности?

Контроллер домена можно виртуализировать в качестве локальной виртуализации, а Frontend — установить параллельно с узлом виртуализации. Frontend-серверов неплохо бы сделать несколько. Их должно быть нечетное количество, так что необходимо минимум 3 сервера.

Данный сценарий можно реализовать с доменом как на базе ALD, так и FreeIPA. По множеству причин второй вариант мне нравится больше, и именно его я рекомендую использовать, чтобы как минимум избежать прописывания в /etc/hosts адресов всех Frontend-серверов и узлов виртуализации. 

 

Храним данные

Нам понадобится общее хранилище данных, которое будет подключено к Frontend-серверу и узлам виртуализации. В качестве такового можно использовать распределенное хранилище CEPH, файловые системы NFS, CIFS, OCFS2 и CEPHFS-сервера или хранилища с доступом по протоколу iSCSI.

При планировании совместного хранилища важно помнить, что OpenNebula требует для работы минимум два подключенных LUN'а, о чем чуть более подробно расскажу ниже.

Но сначала надо понять философию OpenNebula: виртуальная машина (ВМ) – не отдельная единица, а лишь запускаемый экземпляр заранее созданного шаблона.
Процедура создания ВМ следующая: 

  1. Создаем образ диска.

  2. Создаем шаблон ВМ, к которому подключаем образ диска.

  3. Создаем экземпляр ВМ по шаблону.

Для хранения образов шаблонов нужен один LUN (тип хранилища — IMAGE), а для хранения данных запускаемых экземпляров – второй (тип хранилища — SYSTEM). Все изменения диска шаблона в процессе работы экземпляра находятся именно во втором хранилище. Ну, и чтобы не смешивать все в одну/две кучи, рекомендуется добавить отдельный LUN для ISO-образов (но тоже с типом хранилища IMAGE). Кстати, если загружать образы виртуальных жестких дисков, экспортированных из других систем виртуализации (да и в принципе, если загружать любые образы), необходимо обеспечить достаточно свободного места на Frontend-сервере, так как он сначала кэширует загружаемый файл в директорию /var/tmp.

 

Сетевые настройки

Ну, и, конечно же, нашим будущим виртуальным машинам понадобится доступ к сети.

Сеть в сценарии с «облаком» ресурсов и виртуальных машин настраивается двумя способами в зависимости от того, должна ли она иметь доступ наружу или нет.

Если такой доступ есть, в качестве моста, предоставляющего ВМ доступ к сети, используются физические сетевые адаптеры узлов виртуализации. В этом нам поможет bridge-utils – и да, настраивать его базовую конфигурацию придется из консоли. Самое главное – запомнить имя, которое мы дали мосту, это имя должно быть одинаковым на всех узлах.

Для частной сети без выхода во внешнюю сеть используется программный коммутатор Open vSwitch. Он тоже настраивается из консоли (имена мостов также запоминаем и не путаем). И не забываем настроить линки Open vSwitch-коммутаторов между узлами, чтобы сеть была едина на всех узлах.

 

Финализируем

Как итог, могу сказать, что с данной системой виртуализации вполне можно иметь дело, особенно если все хорошо спланировать (вообще универсальный совет):

  1. Сколько будет серверов и где расположить домен-контроллер.

  2. Сколько будет Frontend-серверов и где они будут размещаться.

  3. Какое хранилище будет использовано и как оно будет подключаться.

Заранее стоит продумать сетевые настройки и выделить пулы адресов как для инфраструктуры системы виртуализации, так и для ВМ (в том числе и для внутренней сети).

Не забыть про "плавающий" высокодоступный адрес RAFT и адреса для модулей удаленного администрирования IPMI (необходимы для обеспечения отказоустойчивости ВМ).

Зарезервировать адреса под расширение инфраструктуры.

Важно помнить, что придется менять набор тех привычек, с которым мы подходим к виртуализации. Как и со всеми продуктами на базе Linux, многое придется делать из консоли (подробности можно найти на ресурсе разработчика), но с этим пора смириться, если импортозамещение уже дышит вам в спину.

Комментарии (8)


  1. oleshii
    30.10.2021 16:36

    Импортозамещение на импортной Open Source OS ? Ню-ню....


    1. Digital_Design Автор
      01.11.2021 12:14

      В этой статье обсуждается вопрос подхода к импортозамещению системы виртуализации и на что следует обращать внимание при планировании, а не фундаментальные вопросы, насколько операционные системы из реестра отечественные. Об этом было сказано уже очень много)


  1. oleshii
    01.11.2021 13:12

    Зачем подход, если виртуализация также не является отчественной технологией ? Виртуализация есть программно аппаратный дополнительный слой изоляции оборудования от лицевой OS. Если аппаратура импортная, OS импортная, технология импортная, то импортозамещение не более схоластика, фикция, имеющая под собой совсем иные цели. Проверяется это на раз-два: берётся ЛЮБОЙ (подчёркиваю, любой, не обязательно программный !), продукт и раскладывается на комплектующие. У каждой комплектующей выявляется производитель. Потом подсчитываем процент - сколько произведено по количеству номенклатуры из импорта. Цифра будет интересной: от 40 до 95% импортных комплектующих в любом продукте. Это ещё раз подтверждает вышеозвученный тезис.


    1. Digital_Design Автор
      01.11.2021 16:15

      Давайте не будем порождать очередной виток холиваров на тему отечественности ОС (да и ПО в целом) из реестра, об этом сказано уже очень много.

      (Да и у нас в блоге это уже обсуждалось)

      В данной статье мы не рассматриваем, насколько ПО, которое внесено в реестр, отечественное, а на сколько импортное.

      И если у вас нет требования переводить вашу инфраструктуру на «отечественное ПО», то и импортозамещаться вам не к чему, статья не о том.

      Она о том, на что обратить внимание тем, у кого такое требование есть. И для них, поверьте, вопрос отечественности или импортности – совсем не важен.

      Есть реестр ПО – из него они должны использовать.


      1. oleshii
        01.11.2021 22:14

        Тогда следует исключить из статьи термин 'импортозамещение', который сам по себе является величиной мнимой. Ибо импорт - есть, замещение - есть, импортозамещения НЕТ. На бумаге существует, в жизни - нет. Попытки контролировать неконтролируемое или запретить незапрещённое выливаются в ещё большую проблему, чем простое отсутствие контроля.


  1. dm_shardakov
    01.11.2021 14:37

    По описанию очень напоминает тот же проксмокс. Была возможность испробовать данный продукт, есть хоть какие-то плюсы в его использовании?


    1. Digital_Design Автор
      01.11.2021 14:38

      Из основного в свете импортозамещения: Брест есть в реестре.))))) + применение средств защиты Astra Linux Special Edition

      А если вдаваться в подробности – то можно надолго уйти в холивар «OpenNebula vs Proxmox vs oVirt vs OpenStack»

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


      1. AlexGluck
        02.11.2021 01:01

        Для OpenNebula более красноглазые нужны, но она мне больше симпатизирует. Ovirt и его реализации импортозамещённые, спасибо больше не надо (плюс дистролок). Попробовав opennebula больше не хочется другие (нет дистролока). PVE импортозамщённые не трогал, но оригинальный мне так же не нравится из-за дистролока.

        Для количества машин 1-32 я бы взял OpenNebula

        Для количества машин 16-100 я бы взял Ovirt (больше готовых плюшек)

        Для количества машин >100 я бы взял openstack

        В каких кейсах я бы выбрал PVE, пока не придумал.