Общие сведения о сетевой подсистеме SpaceVM
Краткое описание
Данный раздел содержит описание построения и функционирования сетевой подсистемы SpaceVM, основных объектов, составляющих сетевую подсистему, их взаимодействия и доступные пользователю настройки. Сетевая подсистема построена на основе виртуальных коммутаторов, представляющих собой изолированные сетевые устройства на уровне ОС вычислительного узла.
Основные объекты сетевой подсистемы
Виртуальные коммутаторы
Виртуальные коммутаторы являются связующим звеном для других объектов сетевой подсистемы:
-
Cетевых интерфейсов всех типов:
На схеме изображен виртуальный коммутатор switch A, к которому подключены физический и внутренний (сервисный) интерфейсы вычислительного узла.
Виртуальные коммутаторы могут быть трех типов:
-
«uplink»: к виртуальному коммутатору этого типа можно подключать только физические или агрегированные интерфейсы;
-
«mixed»: к виртуальному коммутатору этого типа можно подключать любые интерфейсы, кроме интерфейсов виртуальных машин;
-
«virtual»: к виртуальному коммутатору этого типа можно подключать только сетевые интерфейсы виртуальных машин.
Тип коммутаторов virtual
Виртуальные коммутаторы типа «virtual» создаются автоматически и только при создании и в составе виртуальной сети.
STP
На виртуальных коммутаторах типов «uplink» и «mixed» протоколы
семейства STP(Spanning Tree Protocol) выключены, а также происходит
фильтрация транзита пакетов BPDU (Bridge Protocol Data Units).
Для проверки необходимо из CLI-интерфейса вычислительного узла
выполнить команду: tcpdump -i "интерфейс" stp --direction='out'
,
где "интерфейс"
- это имя физического интерфейса узла в состоянии UP.
В выводе на экран не должно быть уведомлений о пакетах STP.
Это означает отсутствие исходящих BPDU с портов
виртуальных коммутаторов.
Коммутаторы по умолчанию
-
Коммутатор default типа «mixed» -- это коммутатор СУ SpaceVM. К нему подключены физический интерфейс и виртуальный сетевой интерфейс управления mgmt.
-
Коммутатор blackhole типа «mixed» -- это коммутатор-"заглушка". Не имеет никаких подключений. В некоторых случаях используется для подключения к нему сетевых интерфейсов виртуальных машин.
Создать виртуальный коммутатор можно двумя способами:
-
Перейти в раздел Сети -- Сетевые настройки основного меню и далее выполнить:
-
выбрать нужную подсеть управления;
-
выбрать пункт меню Виртуальные коммутаторы;
-
нажать кнопку Добавить виртуальный коммутатор.
-
-
Перейти в раздел Серверы основного меню и далее выполнить:
-
выбрать целевой сервер;
-
выбрать пункт меню Сети -- Виртуальные коммутаторы;
-
в открывшемся окне нажать кнопку Добавить виртуальный коммутатор.
-
Группы портов
Группы портов -- это объекты для группировки интерфейсов по совокупности параметров VLAN и MTU (для внутренних интерфейсов и интерфейсов виртуальных машин), привязываются к виртуальным коммутаторам.
Порт-группы могут быть четырех типов:
- «internal»: предназначены для внутренних интерфейсов;
- «uplink»: предназначены для физических и агрегированных интерфейсов;
- «kernel»: предназначены для внутренних интерфейсов;
- «virtual»: предназначены для интерфейсов виртуальных машин.
Примечания
- Порт-группы типа «kernel» создаются автоматически. Их нельзя создать или удалить. Помимо этого, в порт-группы типа «kernel» нельзя подключить интерфейсы, созданные пользователем.
- Порт-группы типа «virtual» создаются автоматически при создании виртуальных сетей.
При создании или изменении параметров порт-группы доступны следующие режимы VLAN:
- none;
- access;
- trunk;
- native-tagged;
- native-untagged.
Также предоставлена возможность привязки порт-группы к нескольким виртуальным коммутаторам. Создание порт-групп производится из окна информации виртуального коммутатора с помощью кнопки Добавить порт-группу.
Физические интерфейсы
Физические интерфейсы в SpaceVM являются представлением физических сетевых интерфейсов сервера. Объекты этого типа нельзя создать или удалить, используя Web-интерфейс или интерфейс командной строки. Информация о существующих физических интерфейсах собирается автоматически на этапе добавления вычислительного узла и хранится на протяжении всего времени существования объекта вычислительного узла. Собираемая информация включает сведения о производителе сетевой карты, используемом драйвере, максимально поддерживаемой величине MTU, скорости соединения (при условии, что сетевой интерфейс подключен) и др.
Однако, пользователю предоставляется возможность настройки некоторых параметров и состояния физических интерфейсов:
- изменение величины MTU интерфейса;
- включение/выключение «promiscuous» (неразборчивого) режима интерфейса;
- включение/выключение интерфейса (перевод в состояние UP/DOWN);
- включение/выключение SR-IOV интерфейса (при условии, что сетевой адаптер поддерживает эту функцию).
Подключение физических интерфейсов может быть осуществлено двумя способами:
-
Перейти в раздел Сети -- Сетевые настройки основного меню и далее выполнить:
-
выбрать нужную подсеть управления;
-
выбрать пункт меню Виртуальные коммутаторы;
-
выбрать целевой виртуальный коммутатор;
-
нажать кнопку Подключить интерфейс;
-
выбрать тип интерфейса «physical» и далее следовать шагам мастера добавления интерфейса.
-
-
Перейти в раздел Серверы основного меню и далее выполнить:
-
выбрать целевой сервер;
-
выбрать пункт меню Сети -- Физические интерфейсы;
-
нажать кнопку Подключить;
-
выбрать виртуальный коммутатор, порт-группу и физический интерфейс.
-
Агрегированные интерфейсы
Агрегированные интерфейсы в SpaceVM -- это группа нескольких интерфейсов, созданная с целью:
-
объединения (увеличения) пропускной способности;
-
резервирования физических интерфейсов.
Объекты этого типа можно создать, удалить или модифицировать, используя Web-интерфейс.
Создание агрегированного интерфейса может быть осуществлено двумя способами:
-
Перейти в раздел Сети -- Сетевые настройки основного меню и далее выполнить:
-
выбрать нужную подсеть управления;
-
выбрать пункт меню Виртуальные коммутаторы;
-
выбрать целевой виртуальный коммутатор;
-
нажать кнопку Подключить интерфейс;
-
выбрать тип интерфейса «aggregated» и далее следовать шагам мастера добавления интерфейса.
-
-
Перейти в раздел Серверы основного меню и далее выполнить:
-
выбрать целевой сервер;
-
выбрать пункт меню Сети -- Агрегированные интерфейсы;
-
нажать кнопку Добавить;
-
в открывшемся окне заполнить необходимые поля:
- название;
- описание;
- выбрать из списка виртуальный коммутатор, порт-группу, физические интерфейсы, тип агрегации и связь протокола управления агрегацией каналов;
- опция включения интерфейса после создания.
-
При создании или модификации параметров агрегированного интерфейса предоставляется выбор следующих режимов агрегации:
-
«active-backup»: используется для резервирования подключения, в этом режиме работает один из физических интерфейсов, включенных в агрегацию, а остальные будут задействованы в случае отказа активного;
-
«balance-slb»: используется для объединения пропускной способности нескольких физических интерфейсов и балансировки нагрузки на них;
-
«balance-tcp»: используется для объединения пропускной способности нескольких физических интерфейсов и балансировки нагрузки на них, однако, в отличие от «balance-slb», использует протокол LACP для отслеживания состояния подключения.
Внимание
- Для работы агрегации в режиме «balance-tcp» необходима настройка порт-групп со стороны физического коммутатора.
- Для работы агрегации в режимах «active-backup» и «balance-slb» порты физического коммутатора не должны быть объединены в порт-группу.
Внутренние (сервисные) интерфейсы
Внутренние (сервисные) интерфейсы в SpaceVM представляют собой виртуальные сетевые устройства, используемые для обеспечения доступности вычислительных узлов на сетевом уровне. Этим интерфейсам назначаются IP-адреса.
При создании внутреннего интерфейса выбирается виртуальный коммутатор, в который интерфейс будет подключен, параметры интерфейса:
- режим получения адреса: динамический или статический;
- IP-адрес;
- маска подсети;
- MAC-адрес;
- порт-группа, которой будет принадлежать интерфейс.
Внимание
-
При выборе динамического режима получения адреса интерфейсом, необходимо убедиться, что к выбранному для подключения виртуальному коммутатору также подключен физический или агрегированный интерфейс. В противном случае созданный внутренний интерфейс не будет иметь доступ к сети и, как следствие, не сможет получить IP-адрес от DHCP-сервера.
-
Также необходимо убедиться, что настройки VLAN выбранной порт-группы и настройки VLAN порт-группы, к которой относится физический или агрегированный интерфейс, указанный выше, не будут препятствовать прохождению сетевого трафика, порождаемого создаваемым внутренним интерфейсом.
Создание внутреннего интерфейса может быть осуществлено двумя способами:
-
Перейти в раздел Сети -- Сетевые настройки основного меню и далее выполнить:
-
выбрать нужную подсеть управления;
-
выбрать пункт меню Виртуальные коммутаторы;
-
выбрать целевой виртуальный коммутатор;
-
нажать кнопку Подключить интерфейс;
-
выбрать тип интерфейса «internal» и далее следовать шагам мастера добавления интерфейса.
-
-
Перейти в раздел Серверы основного меню и далее выполнить:
-
выбрать целевой сервер;
-
выбрать пункт меню Сети -- Внутренние интерфейсы;
-
нажать кнопку Добавить;
-
в открывшемся окне заполнить необходимые поля, выбрав виртуальный коммутатор и параметры интерфейса.
-
MAC-адреса
Первые 3 октета генерируемых MAC-адресов (Organizational Unique Identifier (OUI)) контроллером SpaceVM
для виртуальных и внутренних интерфейсов везде одни и те же: 02:ff:f0
.
4 октет в десятичной системе счисления генерируется случайно от 0 до 127 при установке контроллера и доступен для изменения пользователем. При генерации он переводится в шестнадцатеричную систему счисления.
Примеры генерируемых MAC-адресов
- 4 октет 0: генерируемый MAC-адрес 02:ff:f0:00:68:33;
- 4 октет 22: генерируемый MAC-адрес 02:ff:f0:16:b4:82;
- 4 октет 99: генерируемый MAC-адрес 02:ff:f0:63:6a:b0.
С помощью команды controller macs
в CLI можно увидеть все имена и MAC-адреса внутренних интерфейсов,
физических интерфейсов, виртуальных интерфейсов, виртуальных функций.
Файл hosts (локальная база данных доменных имен)
Записи в файлах /etc/hosts
на узлах SpaceVM формируются из двух источников:
-
Основной источник.
Рассылка изменений с активного контроллера, вследствие чего поддерживается синхронность разрешения имен в рамках всех узлов всех кластеров, управляемых данным контроллером.
-
Второй источник.
Добавление записей, локальных для данного узла, при помощи команды CLI узла:
net hosts add/remove
Команда hosts
в CLI выводит все записи в /etc/hosts
.
Команда net hosts update
в CLI обновляет все записи в /etc/hosts
согласно списку файлов в /etc/hosts.d
и текущему hostname
узла.
Также есть возможность добавить/удалить свои записи командой net hosts
(это тоже будут отдельные файлы,
но в каталоге /etc/hosts.d.local
). С контроллера можно добавить записи сразу на всех узлах, используя
стандартную команду node nodes cli
, например, node nodes_cli 'net hosts add myhostname 192.168.11.107'
.
На контроллере есть дополнительная команда CLI controller repair_hosts
(проверяет и обновляет соответствия файла
/etc/hosts
таблице внутренних интерфейсов базы данных контроллера).
Внимание
В случае несовпадения данных файла /etc/hosts
на контроллерах с узлами система автоматически добавит недостающую
информацию в файл /etc/hosts
на узлах. При этом существующие записи не будут перезаписаны.
Описание параметров вывода команды "net show bonds"
Name
- имя интерфейса.-
Bond mode
- режим работы бонда.Возможные режимы описаны в Агрегированных интерфейсах:
-
balance-tcp;
-
balance-slb;
-
active-backup.
-
-
Lacp
- отображает поведение протокола управления агрегацией каналов (LACP).Не все коммутаторы поддерживают LACP. Если коммутатор не поддерживает LACP, то используйте bond_mode=balance-slb или bond_mode=active-backup.
Возможны варианты:
-
active;
-
passive;
-
off.
-
-
Lacp time
- устанавливает период проверки работоспособности (heartbeat) к 1 секунде (fast) или 30 секундам (slow).По умолчанию - slow.
Возможны варианты:
-
fast;
-
slow.
-
-
Fallback
- определяет поведение бонда openvswitch в режиме LACP.Если коммутатор не поддерживает LACP, то установка этого параметра в значение true позволяет вернуться к active-backup режиму работы. Если для параметра установлено значение false, бонд будет отключён. В обоих случаях, когда коммутатор настроен на использование режима LACP, бонд будет использовать LACP протокол.
Возможны варианты:
-
true;
-
false.
-
-
Members
- имена интерфейсов, входящих в бонд. -
Connected to
- виртуальный коммутатор, которому принадлежит бонд. -
Updelay
- количество миллисекунд, в течении которых соединение должно быть активным, перед тем как будет принято решение, что интерфейс поднят. -
Downdelay
- количество миллисекунд, в течении которых соединение находится в выключенном состоянии, перед тем как будет принято решение, что интерфейс выключен.Значение "0" отключает интерфейс немедленно.
-
Lacp_status
- отображает состояние протокола LACP, сконфигурирован или нет. -
Active member mac
- MAC-адрес и имя активного интерфейса в бонде. -
Bond member
- имя интерфейса, участвующего в бонде. -
State
- состояние интерфейса (включен/выключен). -
Status
- статус интерфейса (активный/неактивный член бонда). -
May_enable
- статус возможности включения интерфейса.