Перейти к содержанию

Настройки → Дополнения#

С помощью раздела Дополнения есть возможность подключения/отключения и настройки необходимых дополнений.

SDN-controller – дополнение для настройки оверлейных сетей#

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

При использовании контроллера программно-определяемых сетей (SDN-controller), поддерживающего протокол Openflow, виртуальные коммутаторы обеспечивают дополнительную функциональность, например, списки управления доступом (Access Control List, ACL).

Примечание

Контроллер программно-определяемых сетей не входит в стандартный состав дистрибутива Numa vServer.

Чтобы определить, какой сетевой стек в настоящее время настроен, необходимо выполнить следующую команду:

xe host-param-get param-name=software-version param-key=network_backend uuid="host_uuid"

Если после выполнения команды вернулась строка bridge, необходимо переключить стек на Open vSwitch и выполнить перезагрузку:

1
2
3
xe-switch-network-backend openvswitch

reboot

Чтобы вернуться к стеку Linux-моста, необходимо выполнить следующую команду и после её выполнения следует перезагрузить сервер:

1
2
3
xe-switch-network-backend bridge

reboot

Внимание!

Стек Linux-моста не поддерживает протокол OpenFlow, межсерверные частные сети (Cross Server Private Networks) и не может управляться посредством контроллера программно-определяемых сетей.

Далее необходимо выполнить настройку iptables на всех хостах Numa vServer:

nano /etc/iptables/iptables

Необходимо добавить строки:

:xapi-INPUT - [0:0]
:xapi_nbd_input_chain - [0:0]
:xapi_nbd_output_chain - [0:0]
-A INPUT -j xapi-INPUT
-A INPUT -p tcp -m tcp --dport 10809 -j xapi_nbd_input_chain
-A INPUT -p gre -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 10809 -j xapi_nbd_output_chain
-A vServer-Firewall-0-INPUT -p tcp -m tcp --dport 21064 -j ACCEPT
-A vServer-Firewall-0-INPUT -p udp -m multiport --dports 5404,5405 -j ACCEPT
-A xapi-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 6653 -j ACCEPT 
-A xapi-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 6640 -j ACCEPT
-A xapi-INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 6640 -j ACCEPT
-A xapi-INPUT -j RETURN
-A xapi_nbd_input_chain -j REJECT --reject-with icmp-port-unreachable
-A xapi_nbd_output_chain -j REJECT --reject-with icmp-port-unreachable

В итоге /etc/iptables/iptables приобретет вид:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:vServer-Firewall-0-INPUT - [0:0]
:xapi-INPUT - [0:0]
:xapi_nbd_input_chain - [0:0]
:xapi_nbd_output_chain - [0:0]
-A INPUT -j xapi-INPUT
-A INPUT -p tcp -m tcp --dport 10809 -j xapi_nbd_input_chain
-A INPUT -p gre -j ACCEPT
-A INPUT -j vServer-Firewall-0-INPUT
-A FORWARD -j vServer-Firewall-0-INPUT
-A OUTPUT -p tcp -m tcp --sport 10809 -j xapi_nbd_output_chain
-A vServer-Firewall-0-INPUT -i lo -j ACCEPT
-A vServer-Firewall-0-INPUT -p icmp --icmp-type any -j ACCEPT
# DHCP for host internal networks (CA-6996)
-A vServer-Firewall-0-INPUT -p udp -m udp --dport 67 --in-interface xenapi -j ACCEPT
-A vServer-Firewall-0-INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Linux HA hearbeat
-A vServer-Firewall-0-INPUT -m conntrack --ctstate NEW -m udp -p udp --dport 694 -j ACCEPT
-A vServer-Firewall-0-INPUT -m conntrack --ctstate NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A vServer-Firewall-0-INPUT -m conntrack --ctstate NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A vServer-Firewall-0-INPUT -m conntrack --ctstate NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A vServer-Firewall-0-INPUT -p tcp -m tcp --dport 21064 -j ACCEPT
-A vServer-Firewall-0-INPUT -p udp -m multiport --dports 5404,5405 -j ACCEPT
-A vServer-Firewall-0-INPUT -j REJECT --reject-with icmp-host-prohibited
-A xapi-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 6653 -j ACCEPT
-A xapi-INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 6640 -j ACCEPT
-A xapi-INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 6640 -j ACCEPT
-A xapi-INPUT -j RETURN
-A xapi_nbd_input_chain -j REJECT --reject-with icmp-port-unreachable
-A xapi_nbd_output_chain -j REJECT --reject-with icmp-port-unreachable
COMMIT

Сохранить файл нажатием комбинацией клавиш Ctrl + O, подтвердить сохранение изменений нажатием клавиши Enter. Выйти из редактора Nano нажатием сочетания клавиш Ctrl + X.

Перезагружаем межсетевой экран, выполнив команду:

systemctl restart iptables

Для настройки TLS-соединения необходимо сгенерировать:

  1. Для каждого хоста виртуализации:
    1. Корневой сертификат (sdn-controller-ca.pem);
    2. Серверный сертификат (server-cert.pem);
    3. Серверный ключ (server-key.pem).
  2. Для Numa Collider:
    1. Корневой сертификат (ca-cert.pem);
    2. Сертификат клиента (client-cert.pem);
    3. Ключ клиента (client-key.pem).

Настройки в CLI Numa Collider, приведенные ниже, необходимо провести для каждого хоста виртуализации:

  1. Скопировать sdn-controller-ca.pem, server-cert.pem и server-key.pem в /etc/stunnel/certs/.

  2. Войти в CLI Numa vServer как суперпользователь (через ssh или локальную консоль).

  3. Перейти в каталог /etc/stunnel/certs/ и создать файл xapi-stunnel-ca-bundle.pem. Для этого необходимо выполнить следующие команды:

    find /etc/stunnel/certs -name '*.pem' | xargs cat > /etc/stunnel/xapi-stunnel-ca-bundle.pem.tmp
    mv /etc/stunnel/xapi-stunnel-ca-bundle.pem.tmp /etc/stunnel/xapi-stunnel-ca-bundle.pem
    

  4. Находясь в /etc/stunnel/certs/, создать xapi-ssl.pem и скопировать его в /etc/xcp:

    1
    2
    3
    cat server-key.pem > xapi-ssl.pem 
    cat server-cert.pem >> xapi-ssl.pem
    mv ./xapi-ssl.pem /etc/xcp/ 
    

  5. Включить SSL в Open vSwitch:

    ovs-vsctl set-ssl /etc/stunnel/certs/server-key.pem /etc/stunnel/certs/server-cert.pem /etc/stunnel/certs/sdn-controller-ca.pem
    

  6. Перезапустить xe-toolstack и загрузить модуль vport_vxlan:

    xe-toolstack-restart
    modprobe vport_vxlan
    

  7. Войти в CLI виртуальной машины Numa Collider (ncvm) как ncadmin.

  8. Создать каталог хранения сертификатов и ключа:

    mkdir /home/ncadmin/certs
    

  9. Скопировать ca-cert.pem, client-cert.pem, client-key.pem в /home/ncadmin/certs/.

  10. Войти в Numa Collider, подключить настроенные серверы (через вкладку Добавить → Сервер). Перейти во вкладку "Настройки → Дополнения". Найти модуль «sdn-controller».

Предупреждение

При попытке инкапсулировать в GRE пакет размером в 1500 байт, реальный размер пакета увеличится до 1524 байт (за счет добавления дополнительных заголовков GRE), а ввиду установленного маршрутизатором DF-бита (do not fragment), фрагментация пакета невозможна. Решить эту проблему можно принудительным снятием бита DF, тем самым побуждая маршрутизатор совершить фрагментацию пакета, но этот способ не рекомендуется, поскольку увеличивает количество передаваемых пакетов и количество служебной информации (overhead), тем самым снижая максимально доступную пропускную способность и увеличивая нагрузку на оборудование. Также сама процедура фрагментации требует дополнительного буфера памяти для хранения фрагментов, а также вычислительных мощностей для совершения сборки и фрагментирования пакетов. При наличии маршрутизаторов на пути следования пакетов рекомендуется уменьшить MTU до 1476, либо увеличить MTU на всех интерфейсах и каналах между маршрутизаторами, формирующими GRE (использование Jumbo-кадров c MTU от 1500 до 9216 байт).

Настройка дополнения#

Для настройки данного дополнения необходимо:

  • в блоке cert-dir указать путь к сертификатам в виртуальной машине Numa Collider (ncvm) (/home/ncadmin/certs);
  • сохранить конфигурацию;
  • для загрузки самого дополнения необходимо перевести его в положение включено.

Настройка дополнения sdn-controller

Настройка дополнения sdn-controller

Внимание!

Далее рассматривается создание оверлейной сети с инкапсуляцией GRE. Сеть с VxLAN создается аналогично (на шаге 7 из выпадающего списка выбирается инкапсуляция VxLAN). Настройка IPTABLES, OPENVSWITCH и SDN-контроллера уже выполнена с учетом использования как GRE, так и VxLAN инкапсуляции.

Для создания сети выполнить следующие действия (см. рисунки Создание сети GRE (часть 1), Создание сети GRE (часть 2), Создание сети GRE (часть 3)):

  • перейти на страницу «Добавить» → «Сеть»;
  • выбрать основной пул (1);
  • включить режим «Частная сеть» (2);
  • выбрать сетевой интерфейс (3);
  • задать имя для новой сети (4);
  • при необходимости задать MTU (5);
  • выбрать тип инкапсуляции (6);
  • нажать кнопку «Добавить пул» и выбрать все пулы и их физические сетевые интерфейсы, для которых создаем сеть (7);
  • нажать кнопку «Создать сеть» (8)

Создание сети GRE (часть 1)

Создание сети GRE (часть 1)

Создание сети GRE (часть 2)

Создание сети GRE (часть 2)

Создание сети GRE (часть 3)

Создание сети GRE (часть 3)

По завершении процесса создания сети откроется вкладка «Сеть» мастер-хоста пула, который был назначен на шаге 2 создания сети.

Вкладка «Сеть» мастер-хоста, содержащая созданную сеть (gre)

Вкладка «Сеть» мастер-хоста, содержащая созданную сеть (gre)

Созданный сетевой интерфейс (tunnel0)

Созданный сетевой интерфейс (tunnel0)

Проверить работу созданного туннеля возможно следующим способом:

  • создать ВМ на хостах Numa vServer, содержащих tunnel0;
  • VIF ВМ перевести в сеть созданного ранее туннеля;
  • включить ВМ;
  • повторить шаги с 1, 2, 3 для других ВМ;
  • в консоли ВМ выполнить команду:
ping ip_vm

где ip_vm – IP другой виртуальной машины с VIF в сети созданного туннельного подключения.

Вкладка «Сеть» виртуальной машины

Вкладка «Сеть» виртуальной машины

Перевод VIF ВМ в сеть туннеля (gre)

Перевод VIF ВМ в сеть туннеля (gre)

VIF ВМ в сеть туннеля (gre)

VIF ВМ в сеть туннеля (gre)

Внимание!

В случае если в новой сети нет DHCP-сервера, сетевым интерфейсам ВМ необходимо установить статические IP-адреса.

IP виртуальной машины №1

IP виртуальной машины №1

IP виртуальной машины №2

IP виртуальной машины №2

Ping ВМ №2 из ВМ №1

Ping ВМ №2 из ВМ №1

Transport-email - дополнение для настройки отправки email-сообщений#

Для настройки данного дополнения, необходимо:

  1. в блоке from (1) указать данные от чьего имени будут отправляться сообщения;
  2. в блоке transport (2) указать адрес сервера отправки сообщений;
  3. сохранить конфигурацию (3);
  4. дополнительно до загрузки дополнения можно протестировать настройки, ввести в поле (4) адрес получателя и нажать кнопку Test plugin, после чего на указанную электронную почту должно быть доставлено сообщение;
  5. для загрузки самого дополнения необходимо перевести его в положение включено (5).

Настройка дополнения для отправки email-сообщений

Настройка дополнения для отправки email-сообщений

Usage-report - дополнение отправки отчетов#

Для настройки данного дополнения, необходимо:

  1. в блоке emails (1) указать всех получателей отчетов
  2. указать периодичность отправки отчетов (2):
    • ежедневная отправка;
    • еженедельная;
    • ежемесячная;
  3. сохранить конфигурацию (3);
  4. для загрузки самого дополнения необходимо перевести его в положение включено (4).

Дополнение для отправки отчетов

Дополнение для отправки отчетов

Backup-reports - дополнение отправки отчетов о резервном копировании#

Для настройки данного дополнения необходимо:

  1. загрузить дополнение backup-reports, переключив его в положение включено;
  2. настроить и загрузить дополнение transport-email для возможности отправки отчетов через email-сообщения;
  3. дополнительно можно протестировать дополнение:
    • узнать идентификатор выполненного задания резервного копирования, перейдя в "Резервное копирование" → вкладка "Обзор" → раздел "Журнал" → статус задания (1) → идентификатор задания (2) (см. рисунок);
    • в разделе Test data ввести в поле runId идентификатор и нажать на кнопку Test plugin;
    • убедиться, что на электронную почту, указанную при создании задания резервного копирования, доставлено сообщение.

Идентификатор выполненной задачи

Идентификатор выполненной задачи

Балансировка нагрузки#

Максимальная

Для работы балансировки нагрузки (load-balancer) необходимо наличие двух и более серверов. Активация дополнения производится через меню "Настройки → Дополнения → load-balancer". Для настройки дополнения необходимо создать правило, для этого:

  1. убедиться, что включено дополнение load-balancer;
  2. раскрыть настройки, нажав на +;
  3. выбрать пункт Заполните информацию (необязательно);
  4. нажать на Добавить;

    Балансировка нагрузки
    Балансировка нагрузки

  5. заполнить форму Plan:

    • name: ввести название создаваемой политики;
    • mode: выбрать режим (подробное описание режимов в Режимы балансировки нагрузки);
    • pools: выбрать пул(-ы), в котором(-ых) будет применена политика;
    • execute host: выбрать серверы, на которые не будет распространяться правило;
    • anti-affinity tags: подробнее про правило Anti-affinity написано в VM anti-affinity (Правило Anti-affinity);
  6. установить критические пороги использования ресурсов (опционально):
    • максимальная нагрузка ЦП (%);
    • максимальный объем ОЗУ (МБ);
  7. добавить еще одно правило (опционально);
  8. сохранить конфигурацию.

Политика балансировки нагрузки

Политика балансировки нагрузки

При достижении сервером из выбранного пула установленных критических значений нагрузки ЦП и (или) объема ОЗУ, NC начнет распределять ВМ из нагруженного сервера между другими доступными серверами для достижения максимальной производительности серверов.

Режимы балансировки нагрузки#

При создании правила балансировки нагрузки на выбор представлено 3 режима: Performance, Density и Simple.

Режим Performance обеспечивает достижение максимального уровня производительности для ВМ, распределяя ВМ по всем доступным серверам. Например, если на одном сервере развернуты несколько ВМ и в какой-то момент времени одна из ВМ начинает использовать большие ресурсы для своей работы, то другие ВМ перемещаются на другой менее нагруженный сервер во избежание снижения их производительности.

Режим Density наоборот размещает ВМ на минимальном количестве серверов для снижения энергопотребления за счет отключения не нагруженных серверов.

Режим Simple не производит балансировку нагрузки на основе производительности, он необходим для функционирования пользовательских правил размещения, таких как VM anti-affinity (Правило Anti-affinity).

VM anti-affinity (Правило Anti-affinity)#

Правило Anti-Affinity предотвращает запуск ВМ с одинаковыми пользовательскими метками на одном сервере и распределяет их между серверами, повышая производительность и отказоустойчивость системы. Применение данного правила полезно при разворачивании высоконагруженных систем на нескольких ВМ во избежание их одновременного функционирования с использованием ресурсов только одного сервера или если на нескольких ВМ развернута база данных с репликацией.

Перед настройкой правила Anti-affinity необходимо задать пользовательские метки ВМ. Это можно сделать следующими способами:

  1. через панель Инфраструктура → Виртуальные машины раскрыть сведения о ВМ, добавить метки, нажав "+";
  2. перейти в ВМ во вкладку "Общее", в нижней части окна нажать "+", ввести наименование метки или выбрать из существующих.

Добавление пользовательских меток для ВМ. Вариант 1

Добавление пользовательских меток для ВМ. Вариант 1

Добавление пользовательских меток для ВМ. Вариант 2

Добавление пользовательских меток для ВМ. Вариант 2

Для включения правила Anti-affinity необходимо перейти в меню Настройки → Дополнения → load balancer, далее:

  1. убедиться, что включено дополнение load-balancer;
  2. раскрыть настройки, нажав на +;
  3. выбрать пункт Заполните информацию (необязательно);
  4. нажать на Добавить;
  5. заполнить форму Plan:
    • name: ввести название создаваемой политики;
    • mode: выбрать "Simple mode";
    • pools: выбрать пул(-ы), в котором(-ых) будет применена политика;
    • anti-affinity tags: выбрать необходимые метки ВМ.
  6. при необходимости указать игнорируемые метки в поле Ignored VM tags;
  7. сохранить конфигурацию.

Пример создания политики Anti-affinity

Пример создания политики Anti-affinity

При запуске ВМ с одинаковыми метками, выбранных при настройке правила Anti-affinity, часть ВМ мигрирует на другой сервер.

Auth-ldap - дополнение для LDAP аутентификации пользователей Numa Collider через LDAP#

Настройка доступа пользователей выполняется в следующей последовательности:

  1. Раскрыть дополнение auth-ldap.
  2. Ввести URI указав IP-адрес или FQDN LDAP-сервера, например: ldap//10.10.42.1.
  3. Указать базовую ветку каталога для поиска пользователя, например: DC=office,DC=example,DC=ru.
  4. Если для доступа к каталогу необходимо выполнить авторизацию, то необходимо раскрыть форму Credentials. Для этого нужно установить знак галочки рядом с полем Заполните информацию (не обязательно). После ввести имя и пароль пользователя, имеющего права доступа к каталогу.
  5. Указать фильтр пользователей, по которому они буду добавляться в NC, например: (sAMAccountName={{name}}). Для MS AD также доступны другие фильтры, например:
    • (sAMAccountName={{name}})
    • (sAMAccountName={{name}}@<domain>)
    • (userPrincipalName={{name}})
    • (&(sAMAccountName={{name}})(memberOf=<group DN>)) – если нужно указать принадлежность к группе.
  6. Указать атрибут для сопоставления пользователя LDAP с пользователем Collider, например: dn. Атрибут должен быть уникальным.
  7. Сохранить конфигурацию.
  8. Включить плагин.
  9. Выполнить тестовый запрос, указав имя и пароль пользователя.

Примечание

Пользователи начнут отображаться во вкладке "Пользователи" после их первого входа в Numa Collider.

Настройка подключения к MS AD

Настройка подключения к MS AD (часть 1)

Настройка подключения к MS AD

Настройка подключения к MS AD (часть 2)

Настройка синхронизации групп выполняется в следующей последовательности:

  1. Раскрыть форму Synchronize groups. Для этого нужно установить знак галочки рядом с полем Заполните информацию (не обязательно).
  2. Указать базовую ветку каталога для поиска групп, например: CN=Users,DC=office,DC=example,DC=ru.
  3. Указать фильтр, например: (ObjectClass=group).
  4. Указать атрибут для сопоставления группы LDAP с группой Collider, например: dn. Атрибут должен быть уникальным.
  5. Указать атрибут, используемый для определения названия группы в Collider, например: cn.
  6. Указать атрибут, используемый для поиска членов группы, например: member. Значения должны ссылаться на идентификаторы пользователей (см. атрибут user ID).
  7. Пользовательский атрибут, используемый для сопоставления членов группы с пользователями, например: dn.
  8. Сохранить настройки.
  9. Выполнить синхронизацию во вкладке Группы.

Примечание

Numa Collider не отображает количество пользователей групп из каталога LDAP.

Настройка синхронизации групп из MS AD (пример)

Настройка синхронизации групп из MS AD (пример)