oVirt за 2 часа. Часть 2. Установка менеджера и хостов

Эта статья — следующая в цикле по oVirt, начало здесь.

Статьи

  1. Введение
  2. Установка менеджера (ovirt-engine) и гипервизоров (hosts) — Мы здесь
  3. Дополнительные настройки

Итак, рассмотрим вопросы первичной установки компонентов ovirt-engine и ovirt-host.

Более подробно процессы установки всегда можно посмотреть в документации.

Содержание

  1. Установка ovirt-engine
  2. Установка ovirt-host
  3. Добавление узла в oVirtN
  4. Настройка сетевого интерфейса
  5. Настройка FC
  6. Настройка FCoE
  7. Хранилище ISO образов
  8. Первая ВМ

Установка ovirt-engine

Для Engine минимальные требования 2 ядра/4 ГиБ ОЗУ/25 ГиБ хранилища. Рекомендованные — от 4 ядер/16 ГиБ ОЗУ/50 ГиБ хранения. Используем вариант Standalone Manager, когда engine работает на выделенной физической или виртуальной машине вне управляемого кластера. Для нашей установки возьмем виртуальную машину напр., на отдельно стоящем ESXi*. Удобно использовать средства автоматизации развертывания или клонирование из ранее подготовленного шаблона или установку kickstart.

*Примечание: для производственной системы это плохая идея, т.к. менеджер работает без резерва и становится узким местом. В этом случае лучше рассмотреть вариант Self-hosted Engine.

При необходимости, процедура конвертации Standalone в Self Hosted подробно описана в документации. В частности, хосту нужно дать команду reinstall с поддержкой Hosted Engine.

На ВМ устанавливаем CentOS 7 в минимальной конфигурации, далее обновляем и перезагружаем систему:

$ sudo yum update -y && sudo reboot

Для виртуальной машины полезно установить гостевого агента:

$ sudo yum install open-vm-tools

для хостов VMware ESXi, или для oVirt:

$ sudo yum install ovirt-guest-agent

Подключаем репозиторий и устанавливаем менеджер:

$ sudo yum install https://resources.ovirt.org/pub/yum-repo/ovirt-release43.rpm
$ sudo yum install ovirt-engine

Базовая настройка:

$ sudo engine-setup

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

$ sudo engine-setup --accept-defaults

Теперь мы можем подключиться к нашему новому engine по адресу ovirt.lab.example.com. Здесь еще пусто, поэтому переходим к установке гипервизоров.

Установка ovirt-host

На физический хост устанавливаем CentOS 7 в минимальной конфигурации, далее подключаем репозиторий, обновляем и перезагружаем систему:

$ sudo yum install https://resources.ovirt.org/pub/yum-repo/ovirt-release43.rpm
$ sudo yum update -y && sudo reboot

Примечание: для установки удобно использовать средства автоматизации развертывания или установку kickstart.

Пример кикстарт файла
Внимание! Существующие разделы удаляются автоматически! Будьте осторожны!

# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us','ru' --switch='grp:alt_shift_toggle'
# System language
lang ru_RU.UTF-8

# Network information
network  --bootproto=dhcp --device=ens192 --ipv6=auto --activate
network  --hostname=kvm01.lab.example.com

# Root password 'monteV1DE0'
rootpw --iscrypted $6$6oPcf0GW9VdmJe5w$6WBucrUPRdCAP.aBVnUfvaEu9ozkXq9M1TXiwOm41Y58DEerG8b3Ulme2YtxAgNHr6DGIJ02eFgVuEmYsOo7./
# User password 'metroP0!is'
user --name=mgmt --groups=wheel --iscrypted --password=$6$883g2lyXdkDLbKYR$B3yWx1aQZmYYi.aO10W2Bvw0Jpkl1upzgjhZr6lmITTrGaPupa5iC3kZAOvwDonZ/6ogNJe/59GN5U8Okp.qx.
# System services
services --enabled="chronyd"
# System timezone
timezone Europe/Moscow --isUtc
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --fstype xfs --size=1024 --ondisk=sda  --label=boot
part pv.01 --size=45056 --grow
volgroup HostVG pv.01 --reserved-percent=20
logvol swap --vgname=HostVG --name=lv_swap --fstype=swap --recommended
logvol none --vgname=HostVG --name=HostPool --thinpool --size=40960 --grow
logvol / --vgname=HostVG --name=lv_root --thin --fstype=ext4 --label="root" --poolname=HostPool --fsoptions="defaults,discard" --size=6144 --grow
logvol /var --vgname=HostVG --name=lv_var --thin --fstype=ext4 --poolname=HostPool --fsoptions="defaults,discard" --size=16536
logvol /var/crash --vgname=HostVG --name=lv_var_crash --thin --fstype=ext4 --poolname=HostPool --fsoptions="defaults,discard" --size=10240
logvol /var/log --vgname=HostVG --name=lv_var_log --thin --fstype=ext4 --poolname=HostPool --fsoptions="defaults,discard" --size=8192
logvol /var/log/audit --vgname=HostVG --name=lv_var_audit --thin --fstype=ext4 --poolname=HostPool --fsoptions="defaults,discard" --size=2048
logvol /home --vgname=HostVG --name=lv_home --thin --fstype=ext4 --poolname=HostPool --fsoptions="defaults,discard" --size=1024
logvol /tmp --vgname=HostVG --name=lv_tmp --thin --fstype=ext4 --poolname=HostPool --fsoptions="defaults,discard" --size=1024

%packages
@^minimal
@core
chrony
kexec-tools

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
# Reboot when the install is finished.
reboot --eject

Сохраните этот файл, напр., на ftp.example.com/pub/labkvm.cfg. Для использования сценария при запуске установки ОС следует выбрать пункт ‘Install CentOS 7’, включить режим редактирования параметров (клавиша Tab) и в конце (с пробелом, без кавычек) дописать

' inst.ks=ftp://ftp.example.com/pub/labkvm.cfg'

.
Сценарий установки удаляет сущствующие разделы на /dev/sda, создает новые по рекомендации разработчика (посмотреть их после установки удобно командой lsblk). Имя хоста устанавливается как kvm01.lab.example.com (после установки можно изменить командой hostnamectl set-hostname kvm03.lab.example.com), получение IP адреса — автоматически, часовой пояс — московский, добавлена поддержка русского языка.

Пароль пользователя root: monteV1DE0, пароль пользователя mgmt: metroP0!is.
Внимание! Существующие разделы удаляются автоматически! Будьте осторожны!

Повторяем (или выполняем параллельно) на всех хостах. От включения «пустого» сервера до готового состояния, с учетом 2-х длительных загрузок требуется порядка 20 минут.

Добавление узла в oVirt

Выполняется очень просто:

Compute → Hosts → New →…

В мастере обязательны поля Name (отображаемое имя, напр., kvm03), Hostname (FQDN, напр. kvm03.lab.example.com) и секция Authentication — пользователь root (неизменямо) — пароль или SSH Public Key.

После нажатия кнопки Ok Вы получите сообщение «You haven’t configured Power Management for this Host. Are you sure you want to continue?». Это нормально — управление питанием мы рассмотрим далее, после успешного подключения хоста. Однако, если машины, на которые установлены хосты, не поддерживает управление (IPMI, iLO, DRAC и т.п.), рекомендую его отключить: Compute → Clusters → Default → Edit → Fencing Ploicy → Enable fencing, убрать галку.

Если на хосте не был подключен репозиторий oVirt, установка закончится неудачей, но ничего страшного — надо его добавить, затем нажать Install -> Reinstall.

Подключение хоста занимает не более 5-10 минут.

Настройка сетевого интерфейса

Посколько мы строим отказоустойчивую систему, сетевое подключение также должно обеспечивать резервированное подключение, что и выполняется на вкладке Compute → Hosts → HOST → Network Interfaces — Setup Host Networks.

В зависимости от возможностей вашего сетевого оборудования и подходов к архитектуре, возможны варианты. Оптимальнее всего подключаться к стеку top-of-rack коммтуаторов, чтобы при отказе одного сетевая доступность не прервалась. Рассмотрим на примере агрегированного канала LACP. Для настройки агрегированного канала «взять» мышкой 2-й незадействованный адаптер и «отвезти» к 1-му. Откроется окно Create New Bond, где LACP (Mode 4, Dynamic link aggregation, 802.3ad) выбран по умолчанию. На стороне коммутаторов выполняется обычная настройка LACP группы. Если нет возможности построить стек коммутаторов, можно задействовать режим Active-Backup (Mode 1). Настройки VLAN рассмотрим в следующей статье, а подробнее с рекомендациями по настройке сети в документе Planning and Prerequisites Guide.

Настройка FC

Fibre Channel (FC) поддерживается «из коробки», его использование сложностей не вызывает. Настройку сети хранения, включающую настройку систем хранения и зонирование fabric коммутаторов в рамках настройки oVirt мы не будем.

Настройка FCoE

FCoE на мой взгляд так и не получил широкого распространения в сетях хранения, но часто применяется на серверах в качестве «последней мили», напр., в HPE Virtual Connect.

Настройка FCoE требует дополнительных несложных шагов.

Setup FCoE Engine

Статья на сайте Red Hat B.3. How to Set Up Red Hat Virtualization Manager to Use FCoE
On the Manager
, следующей командой добавляем ключ в менеджер и перезапускаем его:


$ sudo engine-config -s UserDefinedNetworkCustomProperties='fcoe=^((enable|dcb|auto_vlan)=(yes|no),?)*$'
$ sudo systemctl restart ovirt-engine.service

Setup Node FCoE

На oVirt-Host’ах нужно установить

$ sudo yum install vdsm-hook-fcoe

Далее обычная настройка FCoE, статья на Red Hat: 25.5. Configuring a Fibre Channel over Ethernet Interface.

Для Broadcom CNA дополнительно смотрим User Guide FCoE Configuration for Broadcom-Based Adapters.

Убедиться, что установлены пакеты (уже идут в minimal):

$ sudo yum install fcoe-utils lldpad

Далее сама настройка (вместо ens3f2 и ens3f3 подставляем имена CNA, включенных в сеть хранения):

$ sudo cp /etc/fcoe/cfg-ethx /etc/fcoe/cfg-ens3f2
$ sudo cp /etc/fcoe/cfg-ethx /etc/fcoe/cfg-ens3f3
$ sudo vim /etc/fcoe/cfg-ens3f2
$ sudo vim /etc/fcoe/cfg-ens3f3

Важно: если сетевой интерфейс аппаратно поддерживает DCB/DCBX, параметр DCB_REQUIRED должен быть установлен в no.

DCB_REQUIRED=«yes» → #DCB_REQUIRED=«yes»

Далее следует убедиться, что adminStatus выключен на всех интерфейсах, в т.ч. без включенного FCoE:

$ sudo lldptool set-lldp -i ens3f0 adminStatus=disabled
...
$ sudo lldptool set-lldp -i ens3f3 adminStatus=disabled

Если есть другие сетевые интерфейсы, можно включить LLDP:

$ sudo systemctl start lldpad
$ sudo systemctl enable lldpad

Как говорилось ранее, если используется аппаратный DCB/DCBX, настройка DCB_REQUIRED должна быть включена в no и этот шаг может быть пропущен.

$ sudo dcbtool sc ens3f2 dcb on
$ sudo dcbtool sc ens3f3 dcb on
$ sudo dcbtool sc ens3f2 app:fcoe e:1
$ sudo dcbtool sc ens3f3 app:fcoe e:1
$ sudo ip link set dev ens3f2 up
$ sudo ip link set dev ens3f3 up
$ sudo systemctl start fcoe
$ sudo systemctl enable fcoe

Для сетевых интерфейсов проверить включен ли автостарт:

$ sudo vim /etc/sysconfig/network-scripts/ifcfg-ens3f2
$ sudo vim /etc/sysconfig/network-scripts/ifcfg-ens3f3

ONBOOT=yes

Просмотр настроенных FCoE интерфейсов, вывод команды не должен быть пуст.

$ sudo fcoeadm -i

Последующая настройка FCoE выполняется как для обычного FC.

Далее следует настройка систем и сети хранения — зонирование, SAN-хостов, создание и презентация томов/LUN’ов, после чего хранилище можно подключить к ovirt-host’ам: Storage → Domains → New Domain.

Domain Function оставляем Data, Storage Type — Fibre Channel, Host — любой, имя — напр., storNN-volMM.

Наверняка ваша система хранения допускает подключение не просто резервирование путей, но и балансировку. Многие современные системы способны передавать данные по всем путям одинаково оптимально (ALUA active/active).

Для включения всех путей в активное состояние, надо настроить мультпасинг, об этом в следующих статьях.

Настройка NFS и iSCSI выполняется подобным образом.

Хранилище ISO образов

Для установки ОС понадобятся их установочные файлы, чаще всего доступные в виде ISO образов. Можно использовать встроенный путь, но для работы с образами в oVirt разработан специальный тип хранилища — ISO, который можно нацелить на NFS сервер. Добавляем его:

Storage → Domains → New Domain,
Domain Function → ISO,
Export Path — напр., mynfs01.example.com:/exports/ovirt-iso (на момент подключения папка должна пустой, менеджер должен иметь возможность писать в нее),
Name — напр., mynfs01-iso.

Для хранения образов менеджер создаст структуру
/exports/ovirt-iso/<some UUID>/images/11111111-1111-1111-1111-111111111111/

Если на нашем NFS сервере ISO образы уже есть, для экономии пространства удобно вместо копирования файлов прилинковать их в эту папку.

Первая ВМ

На этом этапе уже можно создать первую виртуальную машину, установить на нее ОС и прикладное ПО.

Compute → Virtual Machines → New

Для новой машины указать имя (Name), создать диск (Instance Images → Create) и подключить сетевой интерфейс (Instantiate VM network interfaces by picking a vNIC profile → выбрать из списка пока что единственный ovirtmgmt).

На стороне клиента нужен современный браузер и SPICE клиент для взаимодействия с консолью.

Первая машина успешно запущена. Однако для более полной работы системы требуется выполнить ряд дополнительных настроек, о чем продолжим в следующих статьях.

Источник: habr.com