Привет, друзья! С этой статьи компания Orion soft начинает вести свой блог на Хабре. Сегодня я расскажу о том, как происходит развертывание системы виртуализации zVirt. Текст предназначен для тех, кто еще ни разу не работал с нашим гипервизором, но в тайне (или явно) мечтает об этом. Мы с коллегами решили помочь вам сэкономить свое время, познакомившись с процессом деплоя виртуально, и подготовили инструкцию how-to (можно повторять все прямо за нами). Под катом — подробный гайд по развертыванию zVirt в режиме Hosted Engine (то есть прямо на ваших хостах) с примерами значений, рекомендациями по базовым настройкам и понятными скриншотами. Так что если вы ждали знак, чтобы решиться установить у себя zVirt, вот он. Время пришло сегодня :)
Меня зовут Игорь Бонев, я — директор продуктов zVirt и Termit в компании Orion soft. Если вдруг вы не слышали про zVirt, для начала — пару слов о платформе. zVirt представляет собой российскую систему виртуализации, построенную на базе решения с открытым исходным кодом oVirt. Еще в 2018 году мы приступили к разработке своего продукта, и за годы собственного развития форка Orion soft увел zVirt достаточно далеко от изначального открытого исходного кода. В частности, в zVirt были исправлены некоторые характерные для oVirt баги с хранилищем, разработана своя версия SDN для работы с сетью, реализованы механизмы Site Recovery и так далее (тем, кому интересно, об этом мы расскажем подробнее в следующих материалах нашего блога).
Еще одна особенность zVirt — исключительно российская разработка. Вся среда виртуализации и смежные с ней решения протестированы и стабильно работают на российских ОС. Так что если вы рассматриваете zVirt как один из вариантов виртуализации, например, на Astra Linux, Альт Линукс…да и вообще на любых ОС, разумеется, его хочется развернуть и протестировать. И сейчас я расскажу, как конкретно это сделать максимально быстро.
Устанавливаем zVirt
Итак, для начала приготовления этого блюда нам потребуется:
-
3 сервера
2 сервера — кластеризованные хосты в режиме Host Engine
1 сервер будет работать с поддержкой SDN (это новая фишка zVirt, о которой мы расскажем в одной из следующих статей).
Хотя бы одна СХД (в примере у нас iSCSI; но в принципе можно сделать NFS, Fibre Channel или другое хранилище — просто настройка будет происходить немного иначе).
Коммутатор;
Маршрутизатор;
И по желанию сервер DNS (хотя можно и без него).
Чтобы собрать рекомендованную конфигурацию zVirt, нужно соединить компоненты согласно следующей топологии:
Настроим DNS
Если развертывать zVirt с DNS (как уже говорилось, можно и без него…но зачем?), нужно сначала настроить разрешение имена хостов в прямом и обратном направлении. Это необходимо для корректного развертывания Менеджера управления
Для этого нужно создать на DNS-сервере зоны прямого и обратного просмотра и внести в них соответствующие A и PTR записи. Например, вот такие:
Компонент |
FQDN |
IP-адрес |
Виртуальная машина с Менеджером управления (ВМ Hosted Engine) |
he-engine.test- env.local |
10.252.12.14/ 24 |
Сервер 1 |
he-host-1.test- env.local |
10.252.12.11/ 24 |
Сервер 2 |
he-host-2.test- env.local |
10.252.12.12/ 24 |
Сервер 3 |
he-host-3.test- env.local |
10.252.12.13/ 24 |
Устанавливаем zVirt Node
Убедившись, что в BIOS серверов включена поддержка аппаратной виртуализации Intel VT или AMD-V, можно приступать. Лучше также сразу включить аппаратную виртуализацию ввода/вывода MMU (Intel VT- d или AMD-Vi), потому что позволит в дальнейшем использовать проброс устройств. Позаботьтесь, чтобы у вас уже были учетные записи zVirt, иначе вас не пустит загружать репозиторий zVirt Node.
Далее действуем по схеме:
Загружаем образ zVirt Node и закидываем его на USB или DVD, загружаем с носителя сервер
В меню загрузки выбираем Install zVirt Node и нажимаем Enter.
Выбираем язык по умолчанию, часовой пояс и раскладку клавиатуры.
После этого нужно выбрать устройство, на которое нужно установить среду исполнения zVirt Node (раздел Installation Destination). В разделе Storage configuration нужно выбрать Custom и разметить диск с помощью автоматического сценария, кликнув на Click here to create them automatically. После автоматической разметки можно будет изменить пространство для lvm разделов, не затрагивая атрибуты диска и произвести другие настройки. Кстати, именно на этом этапе можно включить шифрование.
Настроим сеть
Строго говоря, этот шаг можно выполнить и после установки. Но раз уж у нас уже открыта консоль, и она позволяет сразу задать параметры адаптеров и сети, почему бы не сделать этого сразу?
Для настройки нужно просто выбрать сетевой интерфейс из раздела Network & Host Name и перейти во вкладку конфигурации сети (кнопка [Configure])
Не забудьте нажать [Save] и переключить тумблер в состояние ON на следующем экране
В поле Host Name вводим имя хоста и нажимаем кнопку [Apply].
Также на этом этапе можно сразу настроить политику безопасности и Kdump, установить пароль пользователя root в разделе Root password.
После этого установщик позволит вам нажать заветную кнопку [Begin Installation].
Настраиваем IP-адреса
Если сетевая конфигурация не была настроена при установке zVirt Node, ее необходимо применить уже через консоль. Для этого входим на сервер под учетной записью root и запускаем утилиту nmtui (команда nmtui).
В разделе Edit a connection мы выбираем нужный интерфейс и настраиваем IP в ручном режиме (выбираем manual). Теоретически можно, конечно, доверить присвоение адресов DHCP, но лучше этого не делать, чтобы ничего не поломалось в случае его недоступности.
Тут все стандартно — указываем IP-адрес в формате <address>/<prefix>, шлюз по умолчанию, адрес DNS-сервера (можно ввести несколько в порядке приоритета, нажимая Add)
На этом этапе нужно обязательно отметить опцию Automatically connect, а после этого выйти из настроек и сначала деактивировать (рядом с интерфейсом пропадёт), а потом снова активировать соединение. Процедуру необходимо выполнить на всех серверах виртуализации, чтобы ваш кластер начал нормально работать.
Настраиваем репозитории
Еще одна процедура, которую нужно провести перед развертыванием Менеджера управления и добавлением хостов в среду — это настройка репозиториев.
Для этого будет использоваться веб-интерфейс Cockpit. Вообще, на zVirt Node он по умолчанию включен, но если по каким-то причинам он окажется остановленным, запустить его можно через консоль SSH командой systemctl enable --now cockpit
Настройка репозиториев происходит по следующему сценарию:
В браузере перейдите по адресу (IP или FQDN) сервера виртуализации на порт 9090 для получения доступа в веб-интерфейс Cockpit zVirt Node (например, https://he-host-1.test- env.local:9090/).
Войдите под учётной записью root и перейдите в раздел Терминал.
С помощью команды dnf repolist all проверяем статус репозиториев (ожидаемый статус для репозиториев zvirt – включено (enabled))
На скриншоте выше показана ситуация, когда репозитории отключены. Если у вас так же — включите их командой dnf config-manager --enable "zvirt" и повторно проверьте статус репозиториев.
Настраиваем доступ к репозиториям с помощью утилиты zvirt-credentials: zvirt-credentials -u <username> -p <password>. (юзернейм и пасворд выдаются при получении лицензии).
Ура! Репозитории готовы!
Предварительная подготовка СХД
Все, мы на финишной прямой! Осталось только подготовить СХД, если вы развертываете Менеджер управления в режиме Hosted Engine. В этом случае хранилище будет добавлено в среду как домен hosted_storage для хранения диска виртуальной машины Hosted Engine.
Обратите внимание! Если же LUN, который планируется использовать для домена hosted_storage, ранее был в использовании, его необходимо очистить:
1. Удалите сопоставления разделов в kpartx -dv /dev/mapper/<LUN_ID>
2. Ликвидируйте файловую систему или raid-подписи: wipefs -a /dev/mapper/<LUN_ID>
3. Сообщите операционной системе об изменениях в таблице разделов: partprobe
Для работы по интерфейсу iSCISI нужно:
Выделить LUN (скажем, размером 100 Гб)
Передать СХД имена инициаторов iscsi, в качестве которых выступают хосты zVirt (Имя инициатора хранится в файле /etc/iscsi/initiatorname.iscsi). В СХД нужно указать iqn всех хостов, которые будут находиться в центре данных с этим хранилищем
# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.1994-05.com.redhat:a2f614dc9ca
Настроить имена пользователей и пароли
Проверить доступность таргета iSCSI на всех хостах:
# iscsiadm --mode discovery --type sendtargets --portal 10.252.12.10:3260 10.252.12.10:3260,1 iqn.2003-01.org.linux-iscsi.data.x8664:sn.40c037a2f63f
Развертывание Менеджера управления
Итак, начинаем.
В браузере переходим по адресу (IP или FQDN) первого сервера на порт 9090 для получения доступа в веб-интерфейс Cockpit zVirt Node (например https://he-host-1.test- env.local:9090/).
Входим под учётной записью root. В боковой панели нажимаем zVirt и выбираем вкладку Hosted Engine
Под вариантом Hosted Engine нажимаем [ Запустить ] и установщик начинает свою работу. От нас ему нужны будут следующие параметры:
◦ FQDN Менеджера управления (например, he-engine.test-env.local).
◦ Выберите ручной режим сетевой конфигурации.
◦ Введите IP-адрес Менеджера управления (например, 10.252.12.14/24).
◦ Убедитесь, что от сервера получен шлюз по умолчанию (например, 10.252.12.254).
◦ Введите адрес DNS-сервера, который позволяет разрешать имена в среде (например, 10.252.3.250).
◦ Убедитесь, что выбран корректный сетевой интерфейс или бонд (например, enp1s0).
◦ Задайте пароль для пользователя root Менеджера управления.
◦ Выберите, разрешен ли пользователю root доступ по SSH к Менеджеру.
◦ Задайте количество vCPU для ВМ Hosted Engine (минимум 4).
◦ Задайте размер RAM для ВМ Hosted Engine (минимум 4096 Мб).
На следующем этапе мы задаем пароль пользователя admin, который будет использоваться для доступа к веб-порталу zVirt.
После проверки конфигурации нажимаем [Подготовить ВМ]
Дождитесь успешной подготовки ВМ Hosted Engine и перейдите к настройке хранилища для домена hosted_storage, нажав [ Дальше ].
На этапе конфигурации хранилища нужно будет задать следующие параметры:
a. Выберите тип (iSCSI);
b. Введите IP-адрес СХД (например, 10.252.12.10);
c. Измените порт, если он отличается от стандартного (3260);
d. Если для обнаружения целей требуется аутентификация, введите имя пользователя и пароль;
e. Нажмите [ Получить список целей ]
f. Подключите соответствующий LUN, который будет присоединен как домен хранения — для этого из списка целей выберите нужную.
g. Из обнаруженных LUN выбираем тот, который будет использоваться как домен hosted_storage
h. Если развернуть группу Дополнительно, можно будет увеличить размер диска ВМ Hosted Engine, если это требуется.
i. А в соответствующем поле нужно ввести имя пользователя и пароль, настроенные для подключения к таргету
Если все было сделано правильно, вы можете [Завершить установку]
Для проверки доступности Менеджера управления перейдите в браузере по адресу https://<engine_fqdn>, которое вы задали при установке. Например, he-engine.test-env.local.
Войдите на Портал администрирования под пользователем admin с паролем, заданным при развертывании Менеджера управления, и вы сможете проверить, в каком состоянии находится ваша среда zVirt.
Заключение
Как вы можете видеть, процедура развертывания zVirt в режиме Hosted Engine достаточно проста. После этого вы можете самостоятельно добавлять центры данных, домены хранения, кластеры, хосты и другие сущности, пользуясь возможностями системы виртуализации для своих нужд. Если будет интерес, эти процессы я также могу разобрать подробнее в следующей статье.
Кстати, если вы пользовались zVirt или, наоборот, oVirt, расскажите о своем опыте. Поделитесь, про какие аспекты работы с платформой и ее архитектуру вам интереснее всего было бы прочитать в следующих наших статьях на Хабре?
Комментарии (18)
Grigory_Otrepyev
09.04.2024 11:29Поделитесь, про какие аспекты работы с платформой и ее архитектуру вам интереснее всего было бы прочитать в следующих наших статьях на Хабре?
Начну с трех простых вопросов
1. Как ваша система работает с RDMA \ iSER и с какими СХД вы это тестировали, в каких режимах?
2. В начале статьи вы заявили про SDN, с какими коммутаторами это работает?
3. Как в вашей системе выполняется откат на снапшот виртуальной машины ?
geniussbk
09.04.2024 11:29+1Подскажите пожалуйста на какой версии centos оно работает, кроме centos можно поставить на astra или Ubuntu?
Grigory_Otrepyev
09.04.2024 11:29Проще в личке спросить у автора другой статьи - https://habr.com/ru/articles/769360/
Хотя .. 3 (три) комментария с Зарегистрирован 13 марта 2019 .. неужели уже три учетки разморозили ?
dtkbrbq
09.04.2024 11:29Исходя из статьи оно из исошника разворачивается сразу готовое, а не на ОС ставится, и такой выбор - centos, очень странный.
ibonev Автор
09.04.2024 11:29Установка поддерживается только на zVirt Node, который является составной частью решения.
beremour
09.04.2024 11:29помнится, engine в ovirt'e не уимеет себя мигрировать на другой сторадж..
виснут задачи
задачи нельзя снять
итд
опасайтесь покупать ovirt
ibonev Автор
09.04.2024 11:29zVirt – решение на базе доработки oVirt. Для данной проблемы у нас есть специальные скрипты и Hosted Engine успешно переезжает. В бэклоге есть задача вынести миграцию Hosted Engine через интерфейс.
Grigory_Otrepyev
Точно не QEMU-KVM в роли гипервизора ?
и даже ссылка на Compatibility Guide будет? Ну, там где про протестированные российские серверы, или даже про версии прошивок и драйверов ?
Это физическая или логическая коммутация ? Если физическая, то как включать VM в сетевую карту, а если логическая, то где виртуальные свичи ?
Затем, что виртуализация должна перезагрузиться и войти в строй без внешних сервисов.
Потому что, если у вас упала вся , условно, стойка и DNS на ней, то ваша система не поднимется при зависимости от DNS. Иначе придется делать балансировку DNS, ваша же система умеет работать с, ну скажем, 4 DNS ? (Ниже написано, что (можно ввести несколько в порядке приоритета, нажимая Add)
Стоп стоп. Где глава про выбор сервера, требования по памяти, процессорам, совместимость с сетевыми картами ? На какой сервер еще можно ставить
Centoszvirt, на какой уже нельзя ? Где требования по совместимости СХД, режимы работы ? NFS - какой версии можно, какой нет, какой функционал будет доступен ?То есть, система годится для разворачивания только в местах с доступом к интернету, принести в закрытый контур ISO на флешке нельзя.
На скрине опции для IP v6, так на чем у вас работает кластер, на ip v4 или на ip v6 ?
https://cockpit-project.org/ . не иначе, тоже представляет собой российскую систему виртуализации
Вот так просто проскочили раздел Challenge-Handshake Authentication Protocol (CHAP) . Какой нужен \ поддерживается, unidirectional CHAP \ bidirectional CHAP ?
Настройки для etherchannel выше не приводились и не описаны.
Кроме того, это у вас что, виртуальная машина сервера управления
берет в заложникизахватывает физическую сетевую карту, или как ?Хардкод, как много в этом слове ..
То есть, нужно И СХД И локальные диски?? Не у всех локальные диски в серверах стоят, некоторые по старой школе 16-32 гб флешку или SSD или sata dom ставят и живут спокойно.
Судя по тексту дальше, будет развернута еще одна виртуальная машина ?
В каких случаях это требуется ?
А, вон оно что.
???????
И, разумеется, у статьи сразу +5, как и положено корпоративным статьям.
anater
Судя по комментам нужна инструкция а не статья?)
Grigory_Otrepyev
@anater
Пользователь Зарегистрирован 1 июля 2013, комментариев 2, оба в темах про звирт.
ну привет, консерва.
ssn3
По Вашему kvm и oVirt одни и те же вещи делают?
Grigory_Otrepyev
@ssn3
Пользователь Зарегистрирован 3 апреля 2019 - комментариев три.
Ну привет, еще одна консерва
ssn3
Здравствуйте, о великий. На вопрос соизволите ответить? Не погнушайтесь, ответьте.
sub31
Много вопросов, которые легко снимаются одной установкой кластера. Сервера нужны для теста почти любые. Ну с поддержкой виртуализации конечно. И оборудование должно поддерживаться одним из последних ядер линейки 5.15. В том смысле, что не должно быть выпилено как ide и не должно быть слишком специфичным к которому ещё не успели написать драйвера.
О статье. Лёгкий комикс для простой установки, описывающий редчайшую задачу развёртывания на серверах с доступом к интернет.
Формально требования - минимум два хоста, а остальное уже можно в виртуализации.
Разворачивал ovirt. Послевкусие как после добротной поделки, которую постоянно пилят по частям. То одна часть начинает развиваться и ломать другие зависимости, то другая.
Компоненты: qemu, kvm, libvirt, open switch, open stack, postgres, vdsm,...
В общем на флешку ставить не стоит. Можно на не слишком мелкий ssd (64-128ГБ достаточно) . Но разделяемая СХД необходима. Есть чуть более сложный вариант с тремя хостами и glusterfs... Но в статье только третий хост из этой схемы выплыл. Да и чем сложнее решение, тем оно менее надёжное.
Для теста можно развернуть виртуализацию на одном хосте и даже будет работать, но до истечения сертификата vdsm, который не получится стандартным образом перевыпустить только потому, что нельзя увести узел в обслуживание с активными машинами, а для перевыпуска должна работать вм с управляющей машиной.
Grigory_Otrepyev
Лист совместимости пусть покажут.
И какая на ней будет кластерная файловая система и гле прочитать про работу механизма HA и кластерных блокировок ? В открытой документации, разумеется.
Тут так то был независимый обзор звирта, и он на порядок лучше этого описания "далее далее". Я, скажем, еще не спросил - как и где на этих скриншотах задается management VLAN для хостов
ibonev Автор
https://www.orionsoft.ru/sovmestimost-po-i-oborudovaniya
В качестве кластерной ФС используется LVM с блокировками через sanlock. Если есть вопросы, всегда готовы помочь. Пишите на info@orionsoft.ru
На скриншотах этого нет, но управление можно перевести в отдельный VLAN со своим VLAN ID.
ibonev Автор
В целом, в качестве сервера подойдет любой, где запускается Linux и есть аппаратная виртуализация. Вопрос в том, насколько быстро это будет работать. Для стендов можно использовать вложенную виртуализацию.
Можно даже на одном, если памяти достаточно. Требуется СХД или NAS с NFS. Для тестов можно поднять ISCSI target где-то на другом сервере или дать NFS шару.
ibonev Автор
zVirt – система управления виртуализацией, которая в качестве гипервизора использует QEMU-KVM
https://www.orionsoft.ru/sovmestimost-po-i-oborudovaniya
На схеме устройства с подписью "ВМ" – гипервизоры, на которых после развертывания zVirt и добавления их в среду можно будет стартовать ВМ
1. Использование DNS упрощает администрирование инфраструктуры и снижает вероятность ошибок при развертывании и сопровождении инфраструктуры
2. DNS, как и любой другой инфраструктурный сервис не должен быть зависим от работоспособности среды виртуализации и должен быть реализован как выделенный сервис с обеспечением отказоустойчивости.
Требования и рекомендации к аппаратному обеспечению и другим компонентам есть в Wiki по ссылке https://wiki.orionsoft.ru/ru/zvirt/latest/preplanning-guide.adoc
и лучшие практики: https://wiki.orionsoft.ru/ru/zvirt/best-practice
Но спасибо за комментарий. Напишу отдельную статью по планированию и выбору железа. :)
Развертывание в изолированной среде также поддерживается, включая возможность создания локальных репозиториев. В данном пункте подразумевается необходимость покупки лицензии или заказа демо для доступа к исходным репозиториям, в которых в т.ч находится ISO c zVirt Node.
Поддерживается как конфигурация IPv4, так и IPv6. На скрине в разделе IPv6 стоит настройка по умолчанию.
Cockpit - это универсальный веб-интерфейс для дистрибутивов Linux, который в некоторых дистрибутивах установлен по умолчанию, а в некоторых доступен для установки в официальных репозиториях.
Unidirectional по умолчанию. Для bidirectional нужно будет подправить iscsid.conf руками.
1. В статье рассказываем один из примеров развертывания zVirt. В нашей Wiki можно посмотреть другие варианты: https://wiki.orionsoft.ru/ru/zvirt/latest/install-guide.adoc
2. Нет. В данном случае для сетевого взаимодействия используется Linux Bridge.
В целом, да, нужны локальный диски (для гипервизора) и для отказоустойчивой конфигурации внешняя СХД. Но возможны варианты.
Увеличить размер диска Engine может потребоваться при увеличении инсталляции, росте кол-ва ВМ или хостов. Место нужно для СУБД