6.5.3.2 Масштабирование

Операция по добавлению ВУ (Compute-ноды) в облачную инфраструктуру относится к горизонтальному масштабированию и выражается в увеличении количества ресурсов, доступных к использованию платформой виртуализации.

Начальные условия, необходимые для добавления дополнительного ВУ в облачную инфраструктуру:

  1. Настроена поддержка виртуализации (служба гипервизора).
  2. Настроен репозиторий (ОС, OpenStack, TIONIX).
  3. Настроена сеть 10.x.x.x [1].

Данные условия предъявляются в контексте конкретного аппаратного средства, вводимого в эксплуатацию в качестве вычислительного узла.

Под настроенной сетью подразумевается ряд фактов:

  • установлен Open vSwitch [2];
  • вычислительный узел доступен по инфраструктурной сети [3];
  • создан мост [4].

Подробные инструкции по установке ОС и настройке вычислительного узла (ВУ) изложены ниже (Раздел 6.5.3.2.2).

Удалите (упакуйте с помощью xz) все .repo-файлы, расположенные в директории /etc/yum.repos.d, кроме файла с настройкой доступа к репозиториям TIONIX, если у инфраструктурных узлов нет выхода в Интернет.

Примечания.

Дополнительная информация о подготовке нового узла – настройке репозиториев различными способами, настройке сети – изложена в документе Инструкция по развертыванию ОП TIONIX (Подготовка вычислительных узлов, Настройка репозиториев, Приложение).

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

Дополнительный материал может быть найден в Интернет, на сайте официальной документации OpenStack для платформы Victoria [5].

Внимание.

Чтобы упростить задачу настройки репозиториев, скопируйте файл tionix.repo c любого работающего ВУ, из директории /etc/yum.repos.d, на добавляемый узел, в директорию с тем же путём (названием).

Используйте безопасное копирование – scp, во избежание компроментации узла.

После того как выполнены основные условия, следует подготовить ВУ к использованию СХД, а также настроить дополнительные сетевые сервисы. Для вступления внесённых изменений в силу потребуется выполнить перезапуск служб ОП (Раздел 6.5.3.2.5).

Для проверки присутствия гипервизора в инфраструктуре авторизуйтесь в интерфейсе управления (TIONIX.Dashboard) с правами администратора (admin) и перейдите:

Администратор >> Вычисления >> Гипервизоры

Добавленный ВУ с уникальным именем (compute_N) должен присутствовать в списке. Перейдите к просмотру деталей гипервизора (Обзор), при необходимости.

6.5.3.2.1 Подготовка сетевого имени

Вычислительному узлу необходимо присвоить уникальное (сетевое) имя, выполните две команды:

hostname
hostnamectl set-hostname compute_N

Первая команда выводит текущее имя хоста (хранится в файле /etc/hostname), а вторая корректно назначает новое имя (compute_N).

Чтобы применить изменение имени хоста, потребуется перезагрузка системы. Выполните одну из приведенных ниже команд:

# init 6
или
# systemctl reboot
или
# shutdown -r

Внимание.

После выполнения процедуры смены имени узла рекомендуется убедиться, что изменения вступили в силу (выполните команду hostname после перезагрузки).

6.5.3.2.2 Подготовка узла

Необходимо проверить, что поддержка аппаратной виртуализации включена (модуль ядра kvm_intel активен). Выполните команду:

lsmod | grep kvm

Примечание.

Поддержка аппаратного расширения виртуализации (Intel VT), как правило, включается из BIOS на самом начальном этапе конфигурирования ВУ.

После включения ВУ и загрузки операционной системы переведите SELinux в режим «Permissive» [6]. Для этого выполните команду:

setenforce 0

Укажите режим работы – отредактируйте конфигурационный файл /etc/selinux/config:

SELINUX=permissive

Выполнить редактирование можно одной командой (с помощью строкового редактора):

sed -i s/^SELINUX=.*$/SELINUX=permissive/ /etc/selinux/config

Для вступления изменений в силу перезапустите компьютер:

reboot

После перезагрузки убедитесь, что система защиты SELinux функционирует в Permissive-режиме:

getenforce

Должно быть выведено сообщение Permissive.

Отключите службу сетевого фильтра firewalld:

systemctl stop firewalld
systemctl disable firewalld

6.5.3.2.2.1 Установка OvS

Из командной оболочки (bash) выполните команду установки программного пакета:

dnf install openvswitch

Продуктивные сети должны подаваться на интерфейс таким же образом, как это настроено в облаке. Например, если сеть 192.168.x.x подана в облаке с помощью VLAN, то на новом хосте настройку необходимо выполнить аналогично предыдущим настройкам ВУ.

Файл /etc/sysconfig/network-scripts прописывается по аналогии с другими хостами (ВУ). Интерфейс продуктивных сетей должен быть добавлен в мост OvS. После внесения настроек перезапустите сетевые службы:

systemctl network restart

Чтобы новый ресурс резолвился, необходимо дополнить файл статического разрешения имен (/etc/hosts) информацией о новом узле (IP-адрес и алиас), на всех хостах (control/compute) облака. Скопируйте этот файл из работающего ВУ в развертываемый (целевой) ВУ; используйте утилиту безопасного копирования scp или доступную программу клиента SCP [7].

ВАЖНО.

Все узлы в облаке должны резолвиться по DNS (динамически) или с помощью алиасов, прописанных в /etc/hosts (статически).

6.5.3.2.2.2 Установка агентов

Установите на подготавливаемую (Compute-) ноду службы Nova и Neutron, содержащие агенты Nova Compute Agent и Neutron Open vSwitch Agent [8].

Выполните команду:

dnf install -y openstack-nova-compute openstack-neutron-openvswitch

Примечание.

Кроме указанных пакетом, необходимые зависимости будут также установлены (из репозитория).

После установки пакетов необходимо активировать работу агента TIONIX.Agent. Для этого потребуется указать на него в конфигурационном файле Nova (/etc/nova/nova.conf), так, чтобы агент TIONIX использовался в качестве Compute-драйвера.

Кроме того, требуется точное указание типа используемой системы виртуализации (прописать KVM в секции [libvirt]).

Пример готовой настройки /etc/nova/nova.conf:

[DEFAULT]
compute_driver = tionix_agent.virt.driver.TnxLibvirtDriver
monkey_patch = True
monkey_patch_modules = nova.virt.driver:tionix_agent.virt.monkey_patch

[libvirt]
virt_type = kvm

6.5.3.2.2.3 Настройка конфигурации сетевых служб

Скопируйте конфигурационные файлы из ранее настроенного ВУ:

  • /etc/nova/nova.conf;
  • /etc/nova/nova-compute.conf;
  • /etc/neutron/neutron.conf [9];
  • /etc/neutron/plugins/ml2/openvswitch_agent.ini [10].

Исправьте параметр в конфигурации Nova (/etc/nova/nova.conf), указывающий на IP-адрес:

[DEFAULT]

# IP-хоста инфраструктурной сети
my_ip = ...

Исправьте секцию ovs в конфигурационном файле openvswitch_agent.ini:

[ovs]

local_ip = 10.x.x.x
bridge_mappings = external:br-vlan

Параметр local_ip используется для туннеллирования VXLAN приватных сетей (обычно - инфраструктурной сети).

Параметр bridge-mappings сопоставляет физические сети и сети Neutron для работы сетей VLAN и Flat.

В данном примере:

``external`` -- название физической сети в настройках свойств виртуальной сети Neutron;

br-vlan – название OvS-моста в операционной системе.

Название (физической) сети указывается при создании сети из Dashboard (см. Облачные сети).

Если в конкретном случае OvS-мост не собирается с помощью изменений в конфигурационных файлах, то можно собрать мост вручную. Создайте мостовой провайдер OvS (br-provider):

ovs-vsctl add-br br-provider

Выполните команду аггрегации двух интерфейсов в мост:

ovs-vsctl add-bond br-provider  bond0 eno1 eno2 lacp=active

где eno1 и eno2 – название физических интерфейсов (определяемых в ОС).

6.5.3.2.2.4 Установка TIONIX.Agent

Установите модуль TIONIX.Agent:

dnf install -y python-consul python-tionix_agent

Настройки агента производятся в файле конфигурации модуля – /etc/tionix/agent.conf.

6.5.3.2.2.5 Настройка службы гипервизора

Включите режим «прослушивания» для службы гипервизора. Отредактируйте файл /etc/sysconfig/libvirtd так, чтобы он содержал строку:

LIBVIRTD_ARGS="--listen"

Отредактируйте файл /etc/libvirt/libvirtd.conf так, чтобы он содержал строки:

listen_tls = 0
listen_tcp = 1
auth_tcp = "none"

Альтернативно, скопируйте файл конфигурации службы гипервизора (/etc/libvrt/libvirtd.conf) с любого работаюшего ВУ на вводимый в эксплуатацию (вычислительный) узел, используя команду scp:

scp /etc/libvrt/libvirtd.conf tionix@IP-адрес:/etc/libvirt/

Пропишите новые SSH-ключи для Nova, как описано здесь. Это необходимо для живой миграции и операции изменения размеров инстанса (flavour resize) [11].

Предоставьте пользователю Nova возможность входа в систему, выполните команды:

# usermod -s /bin/bash nova
# su nova

Используя утилиту безопасного копирования, рекурсивно скопируйте директорию /var/lib/nova/.ssh/ с любого из рабочих ВУ в директорию /var/lib/nova/, расположенную на целевом ВУ [12]:

ssh -C tionix@<исходный_ВУ> scp -rp /var/lib/nova/.ssh <цель>

где

<цель> – полный путь к узлу и директории, в которую копируется исходное содержимое директории с ключами (IP-адрес:/var/lib/nova/).

После копирования назначьте права (nova:nova) на всё содержимое скопированной директории:

chown nova:nova -R /var/lib/nova/.ssh

Проверьте доступ к другому ВУ (без запрашивания пароля):

su - nova
ssh <Compute-нода>
exit

6.5.3.2.3 Подготовка СХД

Если используются эфемерные диски, то необходимо с помощью утилиты gdisk разметить LUN с СХД как один раздел.

Примечание.

Если используются multipath, то должна быть настроена соответствующая системная служба (multipathd).

Создайте файловую систему (ФС) на разделе, выполнив команду:

mkfs.xfs /dev/mapper/mpathdb-disk1

Примонтируйте хранилище в директорию /var/lib/nova/instances и добавьте следующую запись в файл /etc/fstab:

/dev/mapper/mpathdb-disk1 /mpathb xfs defaults 1 1

ВАЖНО.

Необходимо быть очень внимательным при внесении новой или изменении старой информации о способах монтирования файловых систем. Неверные изменения в файле /etc/fstab могут заблокировать нормальную загрузку ОС.

Пропишите права с помощью команды:

chown nova:nova -R  /var/lib/nova/instances

6.5.3.2.4 Настройка дополнительных сетевых сервисов

В случае изоляции сетей между УУ (контроллером) и ВУ необходимо доустановить на Compute-ноду агенты: DHCP; metadata; L3. Выполните команду:

dnf install -y openstack-neutron-common openstack-neutron

Скопируйте конфигурационные файлы (из любого доступного рабочего ВУ):

  • /etc/neutron/dhcp_agent.ini;
  • /etc/neutron/metadata_agent.ini;
  • /etc/neutron/l3_agent.ini.

Запустите сетевые службы Neutron:

systemctl restart neutron-dhcp-agent neutron-metadata-agent neutron-l3-agent

Добавьте сетевые службы в автозагрузку:

systemctl enable neutron-dhcp-agent neutron-metadata-agent neutron-l3-agent

6.5.3.2.5 Перезапуск служб

По завершении всех вышеописанных настроек на ВУ необходимо выполнить перезапуск служб OpenStack и ОП TIONIX.

Выполните команды:

systemctl restart libvirtd  openstack-nova-compute neutron-openvswitch-agent tionix-agent

Включите автозагрузку служб:

systemctl enable libvirtd  openstack-nova-compute neutron-openvswitch-agent tionix-agent

Примечание.

Перечисленные службы обеспечивают работу взаимосвязанных подсистем облачной платформы: гипервизора, Nova, агента OvS и агента TIONIX.

Сноски

[1]https://docs.openstack.org/neutron/queens/install/compute-install-rdo.html
[2]https://docs.openstack.org/neutron/queens/install/environment-networking-compute-rdo.html
[3]https://docs.openstack.org/neutron/queens/admin/deploy-ovs-selfservice.html
[4]https://docs.openstack.org/neutron/queens/configuration/index.html
[5]https://docs.openstack.org/neutron/queens/admin/config-ml2.html
[6]SELinux – система принудительного контроля доступа, реализованная на уровне ядра операционной системы.
[7]https://www.vseprolinux.ru/scp-linux, https://docs.ovh.com/au/en/storage/pca/sftp/
[8]https://docs.openstack.org/neutron/queens/configuration/openvswitch-agent.html
[9]https://docs.openstack.org/neutron/queens/admin/deploy-ovs-provider.html
[10]https://docs.openstack.org/nova/latest/user/resize.html
[11]https://www.linuxtechi.com/resize-openstack-instance-command-line/
[12]https://qastack.ru/server/264595/can-scp-copy-directories-recursively