Служебные программы

Утилита oVirt Engine Rename

Применение утилиты oVirt Engine Rename

При запуске команды engine-setup в чистом окружении создается некоторое количество сертификатов и ключей, использующих полное доменное имя диспетчера, предоставленное во время процесса настройки. Если полное доменное имя диспетчера позже нужно будет сменить (например, как последствие миграции ВМ, размещающей диспетчера, в другой домен), то информация в записях с полным доменным именем должна быть обновлена для отражения нового имени. Эту задачу автоматизирует команда ovirt-engine-rename.

Команда ovirt-engine-rename обновляет записи полного доменного имени диспетчера по следующим местоположениям:

  • /etc/ovirt-engine/engine.conf.d/10-setup-protocols.conf;
  • /etc/ovirt-engine/isouploader.conf.d/10-engine-setup.conf;
  • /etc/ovirt-engine/logcollector.conf.d/10-engine-setup.conf;
  • /etc/pki/ovirt-engine/cert.conf;
  • etc/pki/ovirt-engine/cert.template;
  • /etc/pki/ovirt-engine/certs/apache.cer;
  • /etc/pki/ovirt-engine/keys/apache.key.nopass;
  • /etc/pki/ovirt-engine/keys/apache.p12.

Примечание — Начиная с версии 3.0, появилась возможность добавления большего числа имен для доступа к веб-интерфейсу диспетчера.

Чтобы убедиться в том, что выбранные имена разрешаются на IP-адрес машины диспетчера, нужно добавить соответствующие записи на сервер DNS или в /etc/hosts (для проверки использовать команду ping enginename или getent hosts enginename).

Далее необходимо выполнить следующие команды:

echo \
'SSO_ALTERNATE_ENGINE_FQDNS="alias1.example.com alias2.example.com"' \
> /etc/ovirt-engine/engine.conf.d/99-custom-sso-setup.conf
systemctl restart ovirt-engine.service
  . List the alternate names separated by spaces.

Также возможно добавить IP-адрес машины диспетчера, но использование IP-адресов вместо имен DNS не является лучшей практикой.

Примечание — Несмотря на то, что команда ovirt-engine-rename создает новый сертификат для веб-сервера, на котором выполняется диспетчер, она не влияет на сертификат для самого диспетчера или на ЦС. В связи с этим при использовании команды ovirt-engine-rename существует некоторый риск, особенно в окружениях, прошедших через процесс обновления с РОСА Виртуализация более ранних версий. Соответственно, везде, где возможно, рекомендуется изменять полное доменное имя диспетчера с помощью команд engine-cleanup и engine-setup.

Важно — Во время процесса обновления старое имя хоста должно оставаться разрешаемым. Если работа утилиты oVirt Engine Rename завершится сбоем со следующим сообщением:

[ ERROR ] Host name is not valid:
<OLD FQDN> did not resolve into an IP address,

следует добавить старое имя хоста в файл /etc/hosts, запустить утилиту oVirt Engine Rename и затем удалить старое имя хоста из /etc/hosts.

Синтаксис команды oVirt Engine Rename

Базовый синтаксис команды ovirt-engine-rename:

/usr/share/ovirt-engine/setup/bin/ovirt-engine-rename

Команда также принимает следующие параметры:

  • --newname=[new name] ‒ указывает новое полное доменное имя диспетчера без необходимости действий со стороны пользователей;
  • --log=[file] ‒ указывает путь и имя файла, в который будет записываться журнал операции переименования;
  • --config=[file] ‒ указывает путь и имя файла конфигурации для использования во время операции переименования;
  • --config-append=[file] ‒ указывает путь и имя существующего файла конфигурации для добавления с ответами для автоматизации операции переименования;
  • --generate-answer=[file] ‒ указывает путь и имя файла, в котором записаны ответы и значения, измененные командой ovirt-engine-rename.

Переименование СУСВ с помощью утилиты oVirt Engine Rename

С помощью команды ovirt-engine-rename можно обновлять записи полного доменного имени (FQDN) СУСВ.

Утилита проверяет, предоставляет ли СУСВ локальный домен ISO или домен хранения данных. При предоставлением, перед тем как продолжать, утилита предлагает пользователю извлечь, выключить или перевести в режим обслуживания любые ВМ или домены хранения, подключенные к хранилищу, что обеспечивает сохранение подключения ВМ к своим виртуальным дискам и предотвращает потерю возможности подключения доменов хранилищ ISO во время процесса переименования.

Последовательность действий по переименованию СУСВ с помощью утилиты oVirt Engine Rename:

  1. подготовить все DNS и другие записи, необходимые для нового FQDN;
  2. обновить конфигурацию сервера DHCP, в случае если используется DHCP;
  3. обновить имя хоста на СУСВ;
  4. выполнить следующую команду:
/usr/share/ovirt-engine/setup/bin/ovirt-engine-rename
  1. по запросу команды нажать клавишу Enter для остановки службы engine:
During execution engine service will be stopped (OK, Cancel) [OK]:
  1. по запросу команды ввести новый FQDN для СУСВ:
New fully qualified server name:new_engine_fqdn

Команда ovirt-engine-rename обновит записи FQDN СУСВ.

Для виртуализированного ЦУ нужно выполнить следующие дополнительные шаги:

  1. на каждом из существующих узлов виртуализированного ЦУ выполнить следующую команду:
hosted-engine --set-shared-config fqdn new_engine_fqdn --type=he_local

Данная команда изменяет полное доменное имя в каждой локальной копии файла /etc/ovirt-hosted-engine-ha/hosted-engine.conf на всех узлах виртуализированного ЦУ.

  1. на каждом из узлов виртуализированного ЦУ выполнить следующую команду:
hosted-engine --set-shared-config fqdn new_engine_fqdn --type=he_shared

Данная команда изменяет полное доменное имя в главной копии файла /etc/ovirt-hosted-engine-ha/hosted-engine.conf разделяемого домена хранения.

Теперь все новые и уже существующие узлы виртуализированного ЦУ используют новое полное доменное имя.

Примечание — Утилита oVirt Engine Rename предназначена для работы только на локальных машинах. Смена имени диспетчера не изменяет автоматически имя на удаленных машинах хранилища данных. Смена имени на этих машинах должна выполняться вручную.

Для развертываний в удаленных хранилищах данных нужно выполнить следующие шаги на удаленной машине (не на машине диспетчера):

  1. удалить следующие файлы PKI:
/etc/pki/ovirt-engine/apache-ca.pem/etc/pki/ovirt-engine/apache-grafana- ca.pem/etc/pki/ovirt-engine/certs/*/etc/pki/ovirt-engine/keys/*
  1. обновить полное доменное имя СУСВ в следующих файлах (например, vm-new-name.local_lab_server.example.ru):
/etc/grafana/grafana.ini/etc/ovirt-engine-dwh/ovirt-engine-dwhd.conf.d/10-setup-database.conf
/etc/ovirt-engine-setup.conf.d/20-setup-ovirt-post.conf
  1. выполнить engine-setup с атрибутом --offline для исключения выполнения обновлений в это время:
engine-setup --offline

Утилита Engine Configuration

Применение утилиты Engine Configuration

Утилита Engine Configuration является консольной утилитой для настройки глобальных параметров окружения РОСА Виртуализация. Утилита взаимодействует со списком отображений "ключ-значение", которые хранятся в базе данных диспетчера виртуализации, и дает возможность получить список всех ключей и значений, доступных для настройки. Кроме того, для каждого из уровней настройки РОСА Виртуализация могут храниться различные значения.

Примечание — Для получения или настройки значений ключей конфигурации выполнение виртуализированного ЦУ или платформы JBoss не обязательно. Поскольку отображения "значение-ключ" конфигурации хранятся в базе данных диспетчера виртуализации, их можно обновлять при работающей службе postgresql. Далее изменения применяются при перезапуске службы ovirt-engine.

Синтаксис команды engine-config

Утилиту Engine Configuration можно запускать на машине, на которой установлен диспетчер виртуализации. Для получения подробных сведений об использовании см. вывод справки:

engine-config --help

Стандартные задачи:

  • Вывод списка доступных ключей конфигурации:
    engine-config --list
    
  • Вывод списка доступных значений конфигурации:
    engine-config --all
    
  • Получение значения ключа конфигурации:
    engine-config --get ИМЯ_КЛЮЧА
    

Для получения значения указанной версии ключа нужно заменить "ИМЯ_КЛЮЧА" на имя нужного ключа. Для указания версии конфигурации получаемого значения следует использовать параметр --cver. Если версия не указывается, выводятся значения для всех существующих версий.

  • Настройка значения ключа конфигурации:
    engine-config --set ИМЯ_КЛЮЧА=ЗНАЧЕНИЕ_КЛЮЧА --cver=ВЕРСИЯ
    

Следует заменить "ИМЯ_КЛЮЧА" на имя конкретного настраиваемого ключа и заменить "ЗНАЧЕНИЕ_КЛЮЧА" на настраиваемое значение. В окружениях с несколькими версиями конфигурации необходимо указать значение "ВЕРСИЯ".

  • Для применения изменений перезапустить службу ovirt-engine:
    systemctl restart ovirt-engine.service
    

Утилита Log Collector

Применение утилиты Log Collector

Утилита для сбора файлов журналов Log Collector включена в состав ПО СУСВ. С ее помощью можно легко собрать необходимые файлы журналов в окружении РОСА Виртуализация, например, для создания сводки при обращении в техподдержку.

По умолчанию утилита не установлена. Для установки необходимо выполнить в консоли СУСВ команду

dnf install ovirt-log-collector

Исполняемая команда сборщика ‒ ovirt-log-collector. Для ее запуска необходимо выполнить вход в Систему в качестве пользователя root и предоставить административные полномочия в окружении виртуализации. Команда ovirt-log-collector -h показывает сведения об ее применении, включая список всех действительных параметров.

Синтаксис команды ovirt-log-collector

Базовый синтаксис команды сборщика журналов:

ovirt-log-collector options list all|clusters|datacenters
ovirt-log-collector options collect

Поддерживаются два режима выполнения:

  • list ‒ параметр выводит список хостов, кластеров или дата-центров, присоединенных к диспетчеру виртуализации. Можно выполнять фильтрацию на основе списка объектов;
  • collect ‒ параметр выполняет сбор файлов журналов в виртуализированном ЦУ. Собранные файлы помещаются в файл архива в каталоге /tmp/logcollector. Каждому из файлов журналов команда ovirt-log-collector присваивает конкретное имя.

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

Для детализации требуемых действий у команды ovirt-log-collector существует множество параметров.

Общие параметры ovirt-log-collector

Общие параметры ovirt-log-collector:

  • --version ‒ отображает номер версии используемой команды и возвращает приглашение командной строки;
  • -h, --help ‒ отображает сведения об использовании команды и возвращает приглашение командной строки;
  • --conf-file=ПУТЬ ‒ настраивает "ПУТЬ" до конфигурационного файла, который должна использовать утилита;
  • --local-tmp=ПУТЬ ‒ настраивает "ПУТЬ" в качестве каталога для сохранения журналов (каталог по умолчанию ‒ /tmp/logcollector);
  • --ticket-number=ЗАЯВКА ‒ настраивает "ЗАЯВКУ" в качестве номера заявки в службу поддержки;
  • --upload= СЕРВЕР_FTP ‒ указывает "СЕРВЕР_FTP" в качестве цели при отсылке полученных файлов журналов по FTP (этот параметр используют только по рекомендации работников техподдержки);
  • --log-file=ПУТЬ ‒ указывает "ПУТЬ" для имени файла, который используется командой для вывода журнала;
  • --quiet ‒ режим без сообщений, при котором вывод сообщений в консоль является минимальным (по умолчанию выключен);
  • -v, --verbose ‒ режим подробной информации; расширенный вывод сообщений в консоль (по умолчанию выключен);
  • --time-only ‒ выводит только сведения о разнице во времени между хостами без создания сводки для техподдержки;

Параметры диспетчера виртуализации

С помощью этих параметров выполняется фильтрация собранных файлов журналов и указываются сведения об аутентификации виртуализированного ЦУ.

Эти параметры можно комбинировать в конкретные команды. Например, команда:

ovirt-log-collector --user=admin@internal --cluster ClusterA,ClusterB \
--hosts "SalesHost"*

конкретно указывает пользователя admin@internal и настраивает сбор журналов только для хостов SalesHost в кластерах A и B.

Параметры диспетчера виртуализации:

  • --no-hypervisors ‒ исключает хосты виртуализации из сбора файлов журналов;
  • --one-hypervisor-per-cluster ‒ собирает журналы только с одного гипервизора в кластере (диспетчера пула хранилища, при его наличии);
  • -u ПОЛЬЗОВАТЕЛЬ, --user= ПОЛЬЗОВАТЕЛЬ ‒ указывает имя пользователя для входа в Систему. "ПОЛЬЗОВАТЕЛЬ" указывается в формате пользователь@домен, где "пользователь" — это имя пользователя, а "домен" — имя используемого домена служб каталогов. Этот пользователь должен существовать в службе каталогов и должен быть известен диспетчеру виртуализации;
  • -r FQDN, --rhevm=FQDN ‒ указывает полное доменное имя диспетчера виртуализации, с которого нужно собрать файлы журналов, где "FQDN" необходимо заменить на полное доменное имя диспетчера. Подразумевается, что сборщик журналов запущен на том же локальном хосте, что и диспетчер виртуализации; значение по умолчанию — "localhost";
  • -c КЛАСТЕР, --cluster=КЛАСТЕР ‒ в дополнение к файлам журналов диспетчера виртуализации, собирает файлы с хостов виртуализации в указанном "КЛАСТЕРЕ". Необходимые кластеры должны указываться в виде списка имен кластеров или шаблонов для совпадения через запятую;
  • -d ДАТА-ЦЕНТР, --data-center= ДАТА-ЦЕНТР ‒ в дополнение к файлам журналов диспетчера виртуализации собирает файлы с хостов виртуализации в указанном "ДАТА-ЦЕНТРЕ". Необходимые дата-центры должны указываться в виде списка имен дата-центров или шаблонов для совпадения через запятую;
  • -H СПИСОК_ХОСТОВ, --hosts= СПИСОК_ХОСТОВ ‒ в дополнение к файлам журналов диспетчера виртуализации, собирает файлы с хостов виртуализации в указанном "СПИСКЕ_ХОСТОВ". Включаемые хосты должны указываться в виде списка имен хостов, полных доменных имен или IP-адресов. Также принимаются шаблоны для совпадения.

Параметры SSH

Параметры SSH:

  • --ssh-port=ПОРТ ‒ указывает "ПОРТ" для использования в подключениях по протоколу SSH между хостами виртуализации;
  • -k ФАЙЛ_КЛЮЧА, --key-file= ФАЙЛ_КЛЮЧА ‒ указывает "ФАЙЛ_КЛЮЧА" в качестве ключа SSH, используемого для доступа к хостам виртуализации;
  • --max-connections=MAX_CONNECTIONS ‒ указывает "MAX_CONNECTIONS" как максимально возможное число параллельных подключений по протоколу SSH для получения файлов журналов с хостов виртуализации. Число по умолчанию ‒ "10".

Параметры базы данных PostgreSQL

С помощью параметров pg-user и dbname необходимо указать имя пользователя базы данных и имя базы данных, если значения по умолчанию были ранее изменены.

Если база данных находится не на локальном хосте, следует использовать параметр pg-dbhost. Для сбора удаленных файлов журналов можно использовать дополнительный параметр pg-host-key. Для успешного сбора удаленных файлов журналов на сервере базы данных должно быть установлено расширение PostgreSQL ‒ SOS.

Параметры базы данных PostgreSQL:

  • --no-postgresql ‒ отключает сбор с базы данных. Сборщик журналов подключится к базе данных PostgreSQL диспетчера виртуализации и включит эти данные в отчет о журналах, если только не будет указан параметр --no-postgresql;
  • --pg-user= ПОЛЬЗОВАТЕЛЬ ‒ указывает "ПОЛЬЗОВАТЕЛЯ" в качестве пользователя, используемого для подключения к серверу базы данных (по умолчанию ‒ "postgres");
  • --pg-dbname= ИМЯ_БД ‒ указывает "ИМЯ_БД" в качестве имени базы данных для подключения к серверу баз данных (по умолчанию ‒ "rhevm");
  • --pg-dbhost= ХОСТ_БД ‒ указывает "ХОСТ_БД" в качестве имени хоста сервера база данных (по умолчанию ‒ "localhost");
  • --pg-host-key= ФАЙЛ_КЛЮЧА ‒ указывает "ФАЙЛ_КЛЮЧА" в качестве открытого файла идентификации на сервер базы данных. Значение по умолчанию отсутствует; этот параметр необходим, только если база данных существует не на локальном хосте.

Базовое использование Log Collector

При запуске без дополнительных параметров команда ovirt-log-collector по умолчанию собирает все файлы журналов с диспетчера виртуализации и его присоединенных хостов. Также собираются файлы журналов базы данных, если только не был указан параметр --no-postgresql. В примере ниже Log Collector выполняется для сбора файлов журналов СУСВ и трех присоединенных хостов:

ovirt-log-collector
INFO: Gathering oVirt Engine information...
INFO: Gathering PostgreSQL the oVirt Engine database and log files from localhost...
Please provide REST API password for the admin@internal oVirt Engine user (CTRL+D to abort): About to collect information from 3 hypervisors. Continue? (Y/n):
INFO: Gathering information from selected hypervisors... INFO: collecting information from 192.168.122.250 INFO: collecting information from 192.168.122.251 INFO: collecting information from 192.168.122.252
INFO: finished collecting information from 192.168.122.250 INFO: finished collecting information from 192.168.122.251 INFO: finished collecting information from 192.168.122.252 Creating compressed archive...
INFO Log files have been collected and placed in /tmp/logcollector/sosreport-rhn-account- 20110804121320-ce2a.tar.xz.
The MD5 for this file is 6d741b78925998caff29020df2b2ce2a and its size is 26.7M

Утилита Engine Vacuum

Применение утилиты Engine Vacuum

Утилита Engine Vacuum поддерживает базы данных PostgreSQL, обновляя информацию в таблицах и удаляя устаревшие строки, освобождая пространство на диске. Сведения о команде VACUUM и ее параметрах см. в документации PostgreSQL.

Исполняемая команда утилиты ‒ engine-vacuum. Для ее запуска необходимо выполнить вход в Систему в качестве пользователя root и предоставить административные полномочия в окружении РОСА Виртуализация.

Как вариант, утилиту можно запустить во время выполнения команды engine-setup для настройки параметров существующей установки:

$ engine-setup
...
[ INFO ] Stage: Environment customization
...
Perform full vacuum on the engine database engine@localhost?
This operation may take a while depending on this setup health and the configuration of the db vacuum process.
See https://www.postgresql.org/docs/12/static/sql-vacuum.html (Yes, No) [No]:

С параметром "Yes" утилита Engine Vacuum запускается в режиме подробного вывода.

Режимы Engine Vacuum

Утилита Engine Vacuum имеет два режима:

  • Standard Vacuum

Рекомендуется к частому запуску. Standard vacuum удаляет устаревшие версии в строках таблиц и индексов и помечает это пространство как доступное для будущего использования. Часто обновляемые таблицы должны очищаться таким образом на регулярной основе. Тем не менее стандартная очистка не возвращает пространство операционной системе. Без дополнительных параметров standard vacuum обрабатывает каждую таблицу в базе данных.

  • Full Vacuum

Не рекомендуется для повседневного использования. Рекомендуется в случаях, когда необходимо освободить значительный объем свободного пространства, ранее используемого таблицей. Full vacuum сжимает таблицы, записывая новые копии файлов таблиц, освобожденных от 6еиспользуемого пространства, тем самым давая возможность ОС получить это пространство. Работа в этом режиме занимает значительный объем времени. Для работы в этом режиме необходимо дополнительное место на диске для хранения новой копии таблицы до окончания процедуры и удаления старой копии. Поскольку этому режиму необходима эксклюзивная блокировка таблицы, он не может выполняться параллельно с работой других пользователей с этой таблицей.

Синтаксис команды engine-vacuum

Команда engine-vacuum имеет следующий базовый синтаксис:

engine-vacuum
engine-vacuum параметр

При запуске команды engine-vacuum без дополнительных параметров выполняется стандартная очистка.

У команды engine-vacuum есть некоторое число параметров для дальнейшей детализации.

Общие параметры команды engine-vacuum

Общие параметры команды engine-vacuum:

  • -h --help ‒ выводит сведения об использовании;
  • -a ‒ выполняет стандартную очистку, анализ базы данных и обновляет статистическую информацию оптимизатора;
  • -A ‒ анализирует базу данных и обновляет статистику оптимизатора, без очистки;
  • -f ‒ выполняет полную очистку;
  • -v ‒ выполняется в режиме подробного вывода в консоль;
  • -t table_name ‒ очищает конкретную таблицу или таблицы.

Пример команды:

engine-vacuum -f -v -t vm_dynamic -t vds_dynamic

Утилита отображения имен VDSM на имена сетей

Если имя логической сети состоит более чем из 15 символов или содержит символы не в кодировке ASCII, Система автоматически создает имя-идентификатор на хосте (vdsm_name); оно включает в себя буквы "on" и первые 13 символов уникального идентификатора сети, например "ona1b2c3d4e5f6g". Именно это имя отображается в файлах журналов хоста. Чтобы просмотреть список имен логических сетей и их автоматически созданных сетевых имен, нужно использовать утилиту VDSM to Network Name Mapping, расположенную в каталоге /usr/share/ovirt-engine/bin/.

Последовательность действий по отображению имен VDSM на имена логических сетей:

  1. во время первого запуска утилиты настроить переменную среды "PASSWORD", являющуюся паролем пользователя базы данных с правами на чтение базы данных диспетчера виртуализации, например, выполнить команду:
export PASSWORD=DatabaseUserPassword
  1. запустить утилиту VDSM to Network Name Mapping:
vdsm_to_network_name_map --user USER

где "ПОЛЬЗОВАТЕЛЬ (USER)" — это пользователь базы данных с правами на чтение базы данных диспетчера виртуализации, пароль которого присвоен переменной среды PASSWORD.

Утилита отобразит список имен логических сетей, отображенных на их соответствующие идентификаторы на хосте.

Утилиту можно запустить со следующими флагами:

  • --host — имя хоста/IP-адрес сервера баз данных (значение по умолчанию ‒ "localhost");
  • --port — номер порта сервера БД (значение по умолчанию ‒ "5432");
  • --database — имя базы данных (значение по умолчанию ‒ "engine" ‒ имя базы данных диспетчера виртуализации);
  • --secure — активирует защищенное соединение с базой данных (по умолчанию утилита выполняется с незащищенным соединением).