Отже, розглянемо питання первинної установки компонентів ovirt-engine та ovirt-host.
Більш докладно процеси встановлення завжди можна подивитися в документації.
Для 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
Для віртуальної машини корисно встановити гостьового агента:
Примітка: для встановлення зручно використовувати засоби автоматизації розгортання або встановлення 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 адреси – автоматично, часовий пояс – московська, додана підтримка російської мови.
Повторюємо (чи виконуємо паралельно) усім хостах. Від включення «порожнього» сервера до готового стану, з урахуванням 2-х тривалих завантажень, потрібно близько 20 хвилин.
Додавання вузла в oVirt
Виконується дуже просто:
Compute → Hosts → New →…
У майстрі обов'язкові поля Name (ім'я, що відображається, напр., kvm03), Hostname (FQDN, напр. kvm03.lab.example.com) і секція Authentication — користувач root (незмінно) - пароль або SSH Public Key.
Після натискання кнопки Ok Ви отримаєте повідомлення «Якщо 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 потребує додаткових нескладних кроків.
Як говорилося раніше, якщо використовується апаратний DCB/DCBX, налаштування DCB_REQUIRED має бути включене в немає і цей крок може бути пропущений.
$ 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).
На стороні клієнта потрібний сучасний браузер і SPICE клієнт для взаємодії з консоллю.
Перша машина успішно запущена. Однак для повнішої роботи системи потрібно виконати ряд додаткових налаштувань, про що продовжимо в наступних статтях.