oVirt за 2 години. Частина 3. Додаткові налаштування

У цій статті ми розглянемо низку необов'язкових, але корисних налаштувань:

Ця стаття - продовження, початок див. oVirt за 2 години Частина 1 и частина 2.

Статті

  1. Запровадження
  2. Установка менеджера (ovirt-engine) та гіпервізорів (hosts)
  3. Додаткові параметри — Ми тут

Додаткові налаштування менеджера

Для зручності роботи поставимо додаткові пакети:

$ sudo yum install bash-completion vim

Для включення автодоповнення команд bash-completion слід перейти в bash.

Додавання додаткових імен DNS

Це буде потрібно, коли до менеджера необхідно підключитися за альтернативним ім'ям (CNAME, псевдонім або просто коротке ім'я без доменного суфікса). З міркувань безпеки менеджер допускає підключення лише з дозволеного списку імен.

Створюємо файл конфігурації:

$ sudo vim /etc/ovirt-engine/engine.conf.d/99-custom-sso-setup.conf

такого змісту:

SSO_ALTERNATE_ENGINE_FQDNS="ovirt.example.com some.alias.example.com ovirt"

і перезапускаємо менеджер:

$ sudo systemctl restart ovirt-engine

Налаштування аутентифікації через AD

oVirt має вбудовану базу користувачів, але також підтримуються зовнішні провайдери LDAP, в т.ч. AD.

Найпростіший шлях для типової конфігурації - запуск майстра та перезапуск менеджера:

$ sudo yum install ovirt-engine-extension-aaa-ldap-setup
$ sudo ovirt-engine-extension-aaa-ldap-setup
$ sudo systemctl restart ovirt-engine

Приклад роботи майстра
$ sudo ovirt-engine-extension-aaa-ldap-setup
Доступні LDAP implementations:
...
3 — Active Directory
...
Виберіть будь ласка: 3
Please enter Active Directory Forest name: example.com

Please select protocol to use (startTLS, ldaps, plain) [startTLS]:
Please select method to obtain PEM encoded CA certificate (File, URL, Inline, System, Insecure): URL
URL: wwwca.example.com/myRootCA.pem
Enter search user DN (для example uid=username,dc=example,dc=com or leave empty for anonymous): CN=oVirt-Engine,CN=Users,DC=example,DC=com
Enter search user password: *password*
[ INFO ] Attempting to bind using 'CN=oVirt-Engine,CN=Users,DC=example,DC=com'
Будь ласка, використовуйте Single Sign-On для Virtual Machines (Yes, No) [Так]:
Please specify profile name that will be visible to users [example.com]:
Please provide credentials to test login flow:
Введіть ім'я користувача: someAnyUser
Enter user password:
...
[ INFO ] Login sequence executed successfully
...
Select test sequence to execute (Done, Abort, Login, Search) [Done]:
[ INFO ] Stage: Transaction setup
...
РЕЗЮМЕ КОНФІГУРАЦІЇ
...

Використання майстра підходить для більшості випадків. Для складних конфігурацій налаштування виконуються вручну. Докладніше у документації oVirt, Користувачі та ролі. Після успішного підключення Engine до AD у вікні підключення з'явиться додатковий профіль, а на вкладці Дозволи об'єкти системи — можливість видавати повноваження користувачам і групам AD. Слід зазначити, що зовнішнім каталогом користувачів та груп може бути не тільки AD, але й IPA, eDirectory та ін.

Багатопрохідність

У виробничому середовищі система зберігання повинна бути підключена до хоста декількома незалежними шляхами множинного вводу-виводу. Як правило, у CentOS (і отже oVirt'е) проблем зі складанням множинних шляхів до пристрою не виникає (find_multipaths yes). Про додаткові налаштування для FCoE написано у 2-ї частини. Варто звернути увагу на рекомендацію виробника СГД — багато хто рекомендує використовувати політику round-robin, а за промовчанням в Enterprise Linux 7 використовується service-time.

На прикладі 3PAR
та документа HPE 3PAR Red Hat Enterprise Linux, CentOS Linux, Oracle Linux та OracleVM Server Implementation Guide EL створюється як Host з Generic-ALUA Persona 2, для нього в налаштування /etc/multipath.conf вносяться такі значення:

defaults {
           polling_interval      10
           user_friendly_names   no
           find_multipaths       yes
          }
devices {
          device {
                   vendor                   "3PARdata"
                   product                  "VV"
                   path_grouping_policy     group_by_prio
                   path_selector            "round-robin 0"
                   path_checker             tur
                   features                 "0"
                   hardware_handler         "1 alua"
                   prio                     alua
                   failback                 immediate
                   rr_weight                uniform
                   no_path_retry            18
                   rr_min_io_rq             1
                   detect_prio              yes
                   fast_io_fail_tmo         10
                   dev_loss_tmo             "infinity"
                 }
}

Після чого дається команда на перезапуск:

systemctl restart multipathd

oVirt за 2 години. Частина 3. Додаткові налаштування
Мал. 1 - політика множинного введення-виводу за умовчанням.

oVirt за 2 години. Частина 3. Додаткові налаштування
Мал. 2 - політика множинного введення-виведення після застосування налаштувань.

Налаштування керування живленням

Дозволяє виконати, наприклад, апаратне скидання машини, якщо Engine не зможе тривалий час отримати відповідь від Host'а. Реалізується через Fence Agent (агент огорожі).

Compute -> Hosts -> HOST - Edit -> Power Management, далі включити Enable Power Management і додати агента - Add Fence Agent -> +.

Вказуємо тип (наприклад, для iLO5 треба вказати ilo4), ім'я/адресу ipmi інтерфейсу, а також ім'я/пароль користувача. Користувача рекомендується створити окремого (напр., oVirt-PM) і, у разі iLO видати йому привілеї:

  • Увійти
  • Віддалена консоль
  • Virtual Power and Reset
  • Віртуальний медіа
  • Configure iLO Settings
  • Administer User Accounts

Не питайте, чому саме так, підібрано досвідченим шляхом. Консольний fencing agent вимагає меншого набору прав.

При налаштуванні списків контролю доступу слід мати на увазі, що агент запускається не на engine, а на «сусідному» хості (так званий Power Management Proxy), тобто якщо в кластері виявиться тільки один вузол, керування харчуванням працювати не буде.

Налаштування SSL

Повна офіційна інструкція - в документації, Appendix D: oVirt and SSL — Replacing the oVirt Engine SSL/TLS Certificate.

Сертифікат може бути як нашого корпоративного ЦС, так і зовнішнього комерційного центру сертифікації.

Важливе зауваження: сертифікат призначений для підключення до менеджера, що не вплине на взаємодію між Engine та вузлами – вони будуть використовувати самопідписані сертифікати, видані Engine.

вимоги:

  • сертифікат видавця ЦС у форматі PEM, з усім ланцюжком до кореневого ЦС (від підлеглого видавця на початку до кореневого наприкінці);
  • сертифікат для Apache, випущений видавцем ЦС (також доповнений всім ланцюжком сертифікатів ЦС);
  • приватний ключ для Apache без пароля.

Припустимо, наш видавничий центр сертифікації працює під керуванням CentOS, називається subca.example.com, а запити, ключі та сертифікати розміщуються в каталозі /etc/pki/tls/.

Виконуємо резервні копії та створюємо тимчасовий каталог:

$ sudo cp /etc/pki/ovirt-engine/keys/apache.key.nopass /etc/pki/ovirt-engine/keys/apache.key.nopass.`date +%F`
$ sudo cp /etc/pki/ovirt-engine/certs/apache.cer /etc/pki/ovirt-engine/certs/apache.cer.`date +%F`
$ sudo mkdir /opt/certs
$ sudo chown mgmt.mgmt /opt/certs

Завантаження сертифікатів, виконуємо її зі своєї робочої станції або передаємо іншим зручним способом:

[myuser@mydesktop] $ scp -3 [email protected]:/etc/pki/tls/cachain.pem [email protected]:/opt/certs
[myuser@mydesktop] $ scp -3 [email protected]:/etc/pki/tls/private/ovirt.key [email protected]:/opt/certs
[myuser@mydesktop] $ scp -3 [email protected]/etc/pki/tls/certs/ovirt.crt [email protected]:/opt/certs

В результаті ви повинні побачити всі 3 файли:

$ ls /opt/certs
cachain.pem  ovirt.crt  ovirt.key

Встановлення сертифікатів

Копіюємо файли та оновлюємо списки довіри:

$ sudo cp /opt/certs/cachain.pem /etc/pki/ca-trust/source/anchors
$ sudo update-ca-trust
$ sudo rm /etc/pki/ovirt-engine/apache-ca.pem
$ sudo cp /opt/certs/cachain.pem /etc/pki/ovirt-engine/apache-ca.pem
$ sudo cp /opt/certs/ovirt03.key /etc/pki/ovirt-engine/keys/apache.key.nopass
$ sudo cp /opt/certs/ovirt03.crt /etc/pki/ovirt-engine/certs/apache.cer
$ sudo systemctl restart httpd.service

Додати/оновити конфіраційні файли:

$ sudo vim /etc/ovirt-engine/engine.conf.d/99-custom-truststore.conf
ENGINE_HTTPS_PKI_TRUST_STORE="/etc/pki/java/cacerts"
ENGINE_HTTPS_PKI_TRUST_STORE_PASSWORD=""
$ sudo vim /etc/ovirt-engine/ovirt-websocket-proxy.conf.d/10-setup.conf
SSL_CERTIFICATE=/etc/pki/ovirt-engine/certs/apache.cer
SSL_KEY=/etc/pki/ovirt-engine/keys/apache.key.nopass
$ sudo vim /etc/ovirt-imageio-proxy/ovirt-imageio-proxy.conf
# Key file for SSL connections
ssl_key_file = /etc/pki/ovirt-engine/keys/apache.key.nopass
# Certificate file for SSL connections
ssl_cert_file = /etc/pki/ovirt-engine/certs/apache.cer

Далі перезапускаємо всі порушені служби:

$ sudo systemctl restart ovirt-provider-ovn.service
$ sudo systemctl restart ovirt-imageio-proxy
$ sudo systemctl restart ovirt-websocket-proxy
$ sudo systemctl restart ovirt-engine.service

Готово! Час підключитися до менеджера та перевірити, чи з'єднання захищене підписаним SSL сертифікатом.

Архівація

Куди ж без неї! У цій секції йтиметься про архівацію менеджера, архівація ВМ — окреме питання. Архівні копії робитимемо 1 раз на добу і складатимемо NFS, напр., на ту саму систему, де ми розмістили ISO образи — mynfs01.example.com:/exports/ovirt-backup. Не рекомендується зберігати архіви на тій самій машині, де працює Engine.

Встановлюємо та включаємо autofs:

$ sudo yum install autofs
$ sudo systemctl enable autofs
$ sudo systemctl start autofs

Створюємо скрипт:

$ sudo vim /etc/cron.daily/make.oVirt.backup.sh

такого змісту:

#!/bin/bash

datetime=`date +"%F.%R"`
backupdir="/net/mynfs01.example.com/exports/ovirt-backup"
filename="$backupdir/`hostname --short`.`date +"%F.%R"`"
engine-backup --mode=backup --scope=all --file=$filename.data --log=$filename.log
#uncomment next line for autodelete files older 30 days 
#find $backupdir -type f -mtime +30 -exec rm -f {} ;

Робимо файл виконуваним:

$ sudo chmod a+x /etc/cron.daily/make.oVirt.backup.sh

Тепер щоночі ми будемо отримувати архів налаштувань менеджера.

Менеджмент-інтерфейс хостів

Кокпіт - Сучасний адміністративний інтерфейс для Linux систем. У разі виконує роль, близьку web-интерфейсу ESXi.

oVirt за 2 години. Частина 3. Додаткові налаштування
Мал. 3 - зовнішній вигляд панелі.

Встановлюється дуже просто, потрібні пакети cockpit та плагін cockpit-ovirt-dashboard:

$ sudo yum install cockpit cockpit-ovirt-dashboard -y

Увімкнення Cockpit:

$ sudo systemctl enable --now cockpit.socket

Налаштування брандмауера:

sudo firewall-cmd --add-service=cockpit
sudo firewall-cmd --add-service=cockpit --permanent

Тепер можна підключитися до хоста: https://[Host IP or FQDN]:9090

VLAN

Докладніше про мережі варто почитати в документації. Можливостей багато, тут опишемо підключення віртуальних мереж.

Для підключення інших підмереж їх спочатку слід описати в конфігурації: Network -> Networks -> New, тут обов'язковим полем є лише ім'я; чекбокс VM Network, що дозволяє машинам використовувати цю мережу, увімкнений, а для підключення тега треба включити Enable VLAN tagging, прописати номер VLAN та натиснути Ок.

Тепер потрібно пройти в хости Compute -> Hosts -> kvmNN -> Network Interfaces -> Setup Host Networks. Додану мережу з правої частини Unassigned Logical Networks перетягнути вліво Assigned Logical Networks:

oVirt за 2 години. Частина 3. Додаткові налаштування
Мал. 4 — перед додаванням мережі.

oVirt за 2 години. Частина 3. Додаткові налаштування
Мал. 5 — після додавання мережі.

Для масового підключення кількох мереж до хоста зручно при створенні мереж надати їм мітку(и), і додавати мережі за мітками.

Після створення мережі хости перейдуть у стан Non Operational, поки не закінчиться додавання мережі на всі вузли кластера. Така поведінка викликається ознакою Require All на вкладці Cluster під час створення нової мережі. Якщо мережа потрібна не на всіх вузлах кластера, цю ознаку можна відключити, тоді мережа при додаванні хосту буде праворуч у секції Non Required і можна вибрати, чи підключати її до конкретного хоста.

oVirt за 2 години. Частина 3. Додаткові налаштування
Мал. 6 - вибір ознаки вимоги мережі.

Специфічне для HPE

Майже всі виробники мають інструменти, що підвищують зручність роботи з їх продуктами. На прикладі HPE, корисні AMS (Agentless Management Service, amsd для iLO5, hp-ams для iLO4) та SSA (Smart Storage Administrator, робота з дисковим контролером) та ін.

Підключення репозиторію HPE
Імпортуємо ключ та підключаємо репозиторії HPE:

$ sudo rpm --import https://downloads.linux.hpe.com/SDR/hpePublicKey2048_key1.pub
$ sudo vim /etc/yum.repos.d/mcp.repo

такого змісту:

[mcp]
name=Management Component Pack
baseurl=http://downloads.linux.hpe.com/repo/mcp/centos/$releasever/$basearch/current/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/GPG-KEY-mcp

[spp]
name=Service Pack for ProLiant
baseurl=http://downloads.linux.hpe.com/SDR/repo/spp/RHEL/$releasever/$basearch/current/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/GPG-KEY-mcp

Перегляд вмісту репозиторію та інформації про пакет (довідково):

$ sudo yum --disablerepo="*" --enablerepo="mcp" list available
$ yum info amsd

Встановлення та запуск:

$ sudo yum install amsd ssacli
$ sudo systemctl start amsd

Приклад роботи утиліти роботи з дисковим контролером
oVirt за 2 години. Частина 3. Додаткові налаштування

На цьому поки що все. У наступних статтях планую розповісти про деякі базові операції та застосування. Напр., як зробити VDI в oVirt'і.

Джерело: habr.com