Настройка программного балансировщика нагрузки программно-определяемой сети в инфраструктуре VMM
Райн Вайзелман
Программный балансировщик нагрузки Virtual Machine Manager (VMM) равномерно распределяет сетевой трафик арендатора и клиента между виртуальными сетевыми ресурсами, позволяя размещать одну нагрузку на нескольких серверах для увеличения доступности и масштабируемости. Подробнее.
С помощью VMM можно развернуть сетевой контроллер и программный балансировщик нагрузки. Если вы настроите программный балансировщик нагрузки, то сможете использовать мультиплексирование и NAT в инфраструктуре программно определяемой сети.
До начала работы
- Планирование: информацию о планировании программно определяемой сети и топологию планирования вы найдете в статье Планирование инфраструктуры программно определяемой сети. На этой диаграмме представлена настройка типовой среды, состоящей из 4 узлов. Ее высокую доступность обеспечивают три узла сетевых контроллеров (виртуальных машин) и три узла SLB/MUX. Два арендатора используют общую виртуальную сеть, разделенную на две виртуальных подсети, имитирующих уровень сети и уровень базы данных. И инфраструктуру, и виртуальные машины арендаторов можно распределить между любыми физическими хостами.
- Сетевой контроллер: прежде чем настраивать балансировку нагрузки, в инфраструктуре VMM необходимо развернуть сетевой контроллер программно определяемой сети, чтобы запустить вычислительную и сетевую инфраструктуру.
- Сертификат SSL: чтобы импортировать шаблон службы программного балансировщика нагрузки, вам потребуется сертификат SSL. Вы открыли доступ к нему, когда развернули сетевой контроллер. Чтобы использовать этот сертификат для балансировщика, щелкните его правой кнопкой мыши и экспортируйте без пароля в формате .CER. Поместите сертификат в библиотеке, в папке NCCertificate.CR, которую вы создали, когда настроили сетевой контроллер.
- Виртуальные машины программного балансировщика нагрузки: на всех виртуальных машинах программного балансировщика нагрузки должна быть установлена ОС Windows Server 2016.
Процедура развертывания
- Подготовка сертификата SSL. Поместите данный сертификат в библиотеку VMM.
- Загрузка шаблона. Загрузите шаблон службы, который понадобится для развертывания SLB/MUX в VMM.
- Создание логической сети. Вам понадобится создать логические сети:
- логическую сеть для зеркалирования транзитной (интерфейсной) физической сети;
- частную и публичную VIP-сети для назначения виртуальных IP-адресов (VIP) службе программного балансировщика нагрузки;
- в этих сетях должны быть доступны службы Active Directory и DNS. Вы должны обладать правами администратора домена и правом на создание записей DNS в этом домене.
- Импорт шаблона службы. Импортируйте и настройте шаблон службы программного балансировщика нагрузки.
- Развертывание программного балансировщика нагрузки. Разверните программный балансировщик нагрузки как службу VMM и настройте свойства этой службы.
- Проверка развертывания. Настройте пиринг BGP между экземпляром SLB/MUX и маршрутизатором BGP, назначьте публичный IP-адрес виртуальной машине или службе арендатора и получите доступ к этой виртуальной машине или службе за пределами сети.
Подготовка сертификата
- Правой кнопкой мыши щелкните сертификат SSL, который вы создали в процессе развертывания сетевого контроллера, и экспортируйте его без пароля в формате .CER.
- Поместите данный сертификат в папку NCCertificate.CR, которую вы импортировали в библиотеку VMM при развертывании сетевого контроллера.
Загрузка шаблона службы программного балансировщика нагрузки
- Загрузите шаблон службы SLB/MUX из репозитория GitHub программно определяемой сети Microsoft. Загруженный файл будет содержать два шаблона:
- Шаблон SLB Production Generation 1 VM.xml предназначен для развертывания службы программного балансировщика нагрузки на виртуальных машинах первого поколения.
- Шаблон SLB Production Generation 2 VM.xml предназначен для развертывания службы программного балансировщика нагрузки на виртуальных машинах второго поколения.
- Оба шаблона по умолчанию предназначены для трех виртуальных машин, однако их количество можно изменить в конструкторе шаблонов служб.
- Извлеките содержимое в папку на локальном компьютере. Позднее вы импортируете его в библиотеку.
Создание транзитной логической сети
- Откройте мастер создания логической сети и введите имя сети. При необходимости можно также ввести ее описание.
- В меню Параметры выберите пункт Одна подключенная сеть. Установите флажок Создать сеть виртуальных машин с таким же именем, чтобы предоставить виртуальным машинам прямой доступ к этой логической сети, и флажок Под управлением сетевого контроллера.
- В поле Сетевой узел добавьте информацию о сетевом узле своей подсети.
- Ознакомьтесь с информацией в разделе Сводка и завершите работу мастера создания логической сети.
Создание пула IP-адресов для транзитной логической сети
Это пул IP-адресов, в котором виртуальным машинам SLB/MUX и виртуальной машине узла BGP (если она развернута) назначаются выделенные IP-адреса. Обратите внимание:
- Убедитесь, что выбранный вами диапазон IP-адресов соответствует пространству IP-адресов вашей транзитной сети. Не включайте в пул IP-адресов, который вы собираетесь создать, первый IP-адрес своей подсети. Например, если диапазон IP-адресов подсети начинается с .1 и заканчивается .254, начните свой диапазон с .2.
- Когда транзитная логическая сеть будет создана, свяжите ее с профилем порта исходящей связи управляющего коммутатора, который вы создали при развертывании сетевого контроллера.
- Правой кнопкой мыши щелкните логическую сеть и выберите Создать пул IP-адресов.
- Укажите имя и, при необходимости, описание пула IP-адресов и убедитесь, что логическая сеть выбрана правильно.
- В меню Сетевой узел выберите подсеть, которую будет обслуживать этот пул IP-адресов. Если в сети вашего HNV-провайдера несколько подсетей, необходимо создать пул статических IP-адресов для каждой из них. Если узел только один (например, как в образце топологии), можно просто нажать кнопку Далее.
- В разделе Диапазон IP-адресов настройте начальный и конечный IP-адрес. Не используйте первые три IP-адреса доступной подсети. Например, если диапазон IP-адресов подсети начинается с .1 и заканчивается .254, начните свой диапазон с .4 или выше.
- Затем настройте адрес шлюза по умолчанию. Щелкните Вставить рядом с полем Основные шлюзы, введите адрес и используйте значение по умолчанию. При необходимости настройте DNS и WINS.
- Ознакомьтесь со сводкой данных и нажмите кнопку Готово, чтобы закрыть мастер.
- Убедитесь, что вы связали логическую сеть с профилем порта исходящей связи управляющего коммутатора.
Создание частной и публичной логических VIP-сетей
Вам понадобится частный пул VIP-адресов для назначения VIP-адресов и публичная VIP-сеть для службы SLB Manager.
- Запустите мастер создания логической сети. Введите имя и, при необходимости, описание сети.
- В меню Параметры выберите пункт Одна подключенная сеть. Установите флажок Создать сеть виртуальных машин с таким же именем, чтобы предоставить виртуальным машинам прямой доступ к этой логической сети. Выберите Под управлением сетевого контроллера.
- В поле Сетевой узел добавьте информацию о частной логической VIP-сети.
- Ознакомьтесь с информацией в разделе Сводка и завершите работу мастера.
- Повторите те же действия, чтобы создать публичную VIP-сеть, однако в меню Настройки выберите Под управлением сетевого контроллера и Публичная сеть IP-адресов.
Создание пула IP-адресов для частной и публичной VIP-сетей
- Правой кнопкой мыши щелкните частную логическую VIP-сеть и выберите Создать пул IP-адресов.
- Укажите имя и, при необходимости, описание пула IP-адресов и убедитесь, что логическая сеть выбрана правильно.
- Подтвердите сетевой узел по умолчанию и нажмите кнопку Далее.
- В разделе Диапазон IP-адресов настройте начальный и конечный IP-адрес. Не используйте первый IP-адрес доступной подсети. Например, если диапазон IP-адресов подсети начинается с .1 и заканчивается .254, начните свой диапазон с .2 или выше.
- В поле IP-адреса, зарезервированные для VIP балансировщика нагрузки введите диапазон IP-адресов подсети. Он должен совпадать с адресами начала и завершения, которые вы указали.
- Шлюз, DNS или WINS указывать не надо, поскольку этот пул используется для выделения IP-адресов для VIP только через сетевой контроллер. Нажмите кнопку Далее, чтобы пропустить эти экраны. При необходимости настройте DNS и WINS.
- Ознакомьтесь со сводкой данных и нажмите кнопку Готово, чтобы закрыть мастер.
- Повторите эту процедуру для настройки публичной логической VIP-сети, указав соответствующий диапазон адресов.
Импорт шаблона программного балансировщика нагрузки
Шаблон этой службы необходимо импортировать в библиотеку VMM. В приведенном здесь примере мы импортируем шаблон второго поколения.
- Щелкните Библиотека > Шаблоны > Шаблоны служб > Импорт шаблона.
- Перейдите в папку с нужным шаблоном службы и выберите файл SLB Production Generation 2 VM.xml.
- В процессе импорта обновите параметры шаблона в соответствии со своей средой. Обратите внимание, что ресурсы библиотеки были импортированы при развертывании сетевого контроллера.
- WinServer.vhdx Выберите базовый образ виртуального жесткого диска, который вы загрузили и импортировали в процессе развертывания сетевого контроллера.
- NCCertificate.CR: сопоставьте этот файл с ресурсом библиотеки NCCertificate.cr в библиотеке VMM.
- EdgeDeployment.CR: сопоставьте этот файл с ресурсом библиотеки EdgeDeployment.cr в библиотеке VMM.
- Не забывайте, что предварительно нужно скопировать сертификат .CER, который вы ранее создали, в папку NCCertificate.CR.
Импорт шаблона службы в библиотеку VMM
Теперь загруженный шаблон службы SLB/MUX можно импортировать в библиотеку VMM. В приведенном здесь примере мы импортируем шаблон второго поколения.
- Щелкните Библиотека > Шаблоны > Шаблоны служб > Импорт шаблона.
- Откройте папку с шаблоном службы, выберите файл SLB Production Generation 2 VM.xml и выполните отображаемые инструкции. В этом шаблоне службы заданы следующие параметры конфигурации виртуальной машины. Их нужно обновить в соответствии с конфигурацией вашей среды.
- WinServer.vhd: выберите базовый образ VHD, который вы загрузили и импортировали в библиотеку VMM в процессе развертывания сетевого контроллера.
- NCCertificate.cr: этот ресурс библиотеки содержит сценарий, который используется для настройки сетевого контроллера. Сопоставьте его с ресурсом библиотеки NCCertificate.cr в своей библиотеке VMM.
- EdgeDeployment.cr: выберите ранее подготовленный ресурс библиотеки EdgeDeployment.cr и импортируйте его в библиотеку VMM.
Развертывание службы программного балансировщика нагрузки
Теперь разверните экземпляр службы SLB/MUX.
- Выберите шаблон службы SLB Production Generation 2 VM.xml и пункт Настроить развертывание. Введите имя и, при необходимости, описание данного экземпляра службы. Целевой объект необходимо сопоставить с группой хостов, в которой содержится настроенный вами хост.
- В разделе Параметры сети сопоставьте параметр TransitNetwork со своей транзитной сетью виртуальных машин, а параметр ManagementNetwork — с сетью для управления виртуальными машинами.
- Когда сопоставление будет завершено, отобразится диалоговое окно Развернуть службу. Первоначально экземпляры виртуальных машин будут красными. Щелкните Просмотр обновления, чтобы автоматически найти подходящие хосты для виртуальной машины.
- В левой части окна Настроить развертывание отображаются параметры, которые вам необходимо задать.
- Настроив эти параметры, щелкните Развернуть службу, чтобы начать процесс развертывания. Продолжительность развертывания обычно составляет от 30 до 60 минут (в зависимости от оборудования).
- Если вы не используете лицензированный VHDX или VHDX не имеет ключа продукта из файла ответов, то развертывание завершится на странице Ключ продукта, когда будет выполняться инициализация виртуальной машины SLB/MUX. Вам нужно будет вручную получить доступ к рабочему столу виртуальной машины и пропустить или ввести ключ продукта.
- Когда развертывание службы будет завершено, убедитесь, что ваша служба отображается в меню Виртуальные машины (VM) и службы > Службы > Сведения о сети виртуальной машины для служб. Щелкните службу правой кнопкой мыши и убедитесь, что на странице Свойства для нее указано состояние Развернуто.
Параметр |
Необходимость |
Описание |
TransitNetwork |
Обязательный |
Ваша транзитная сеть виртуальных машин |
LocalAdmin |
Обязательный |
Выберите в своей среде учетную запись «Запустить как», которой будут присвоены права локального администратора на виртуальных машинах. В данной учетной записи должно использоваться имя пользователя Administrator. |
ManagementNetwork |
Обязательный |
Выберите сеть управления виртуальными машинами, которую вы создали для управления узлами. |
MgmtDomainAccount |
Обязательный |
Выберите учетную запись «Запустить как» с разрешениями на добавление виртуальных машин SLB/MUX в домен Active Directory, связанный с сетевым контроллером. Это может быть та же учетная запись, которую вы указали в параметре MgmtDomainAccount при развертывании сетевого контроллера. |
MgmtDomainFQDN |
Обязательный |
FQDN домена Active Directory, в который будут добавлены виртуальные машины SLB/MUX. |
SelfSignedConfiguration |
Обязательный |
Если вы используете самозаверяющий сертификат, задайте для этого параметра значение True. |
После развертывания убедитесь, что служба отображается в меню Все хосты > Службы > Сведения о сети виртуальной машины для служб. Щелкните службу SLB MUX правой кнопкой мыши, выберите Свойства и убедитесь, что ее состояние — Развернуто. Если произошел сбой развертывания SLB/MUX, прежде чем повторить попытку, обязательно удалите экземпляр службы со сбоем.
Если вы хотите вертикально или горизонтально масштабировать развернутый экземпляр службы программного балансировщика нагрузки, ознакомьтесь с этим блогом.
Настройка роли программного балансировщика нагрузки и свойств SLB/MUX
Теперь, когда служба программного балансировщика нагрузки развернута, можно настроить ее свойства. Для этого нужно связать экземпляр службы балансировщика, который вы развернули, с сетевым контроллером, а затем настроить пиринг BGP между экземпляром SLB/MUX и коммутатором TOR или узлом маршрутизатора BGP.
- Щелкните Структура > Сетевая служба. Правой кнопкой мыши щелкните службу сетевого контроллера и выберите Свойства.
- Выберите вкладку Службы > Роль балансировщика нагрузки > Связанная служба > Обзор.
- Выберите экземпляр службы SLB/MUX, который вы создали, и нажмите кнопку OK. Выберите учетную запись «Запустить как».
- В качестве IP-адреса управления укажите IP-адрес из пула адресов частной VIP-сети, который вы создали. Можно также задать диапазоны IP-адресов, которые нужно исключить из NAT для исходящего трафика.
- Щелкните экземпляр SLB/MUX в списке Роль балансировщика нагрузки в мастере. Введите локальный ASN своего центра обработки данных и сведения об устройствах или узлах BGP, с которыми SLB/MUX может установить одноранговую связь.
- Теперь экземпляр службы программного балансировщика нагрузки связан с этой службой, и экземпляр виртуальной машины SLB/MUX со всеми настройками должен отображаться в списке Роль балансировщика нагрузки.
Проверка развертывания
Чтобы проверить развертывание SLB/MUX, настройте одноранговую связь BGP между экземпляром SLB/MUX и маршрутизатором BGP, назначьте публичный IP-адрес виртуальной машине или службе арендатора и получите доступ к этой виртуальной машине или службе за пределами сети.
- Введите в мастере сведения о внешнем маршрутизаторе. Пример
- Нажмите кнопку OK, чтобы завершить процедуру настройки экземпляра службы SLB/MUX.
- В окне Задания убедитесь, что задания Добавить нужную конфигурацию в роль структуры, и Связать экземпляр службы с ролью структуры успешно завершены.
- Чтобы выполнить пиринг BGP, необходимо настроить на маршрутизаторе одноранговую связь BGP с SLB/MUX. Если вы используете аппаратный маршрутизатор, ознакомьтесь с документацией поставщика и узнайте, как настроить пиринг BGP на этом устройстве. Вам также необходимо знать IP-адрес экземпляра SLB/MUX, который вы развернули. Чтобы узнать его, войдите на виртуальную машину SLB MUX и выполните команду ipconfig /all в командной строке или воспользуйтесь консолью VMM.
- Если вы создадите новый пул VIP-адресов по завершении пиринга, необходимо будет объявить все пулы VIP-адресов с помощью консоли VMM.
Инициализация VIP-адресов для виртуальных машин арендаторов
VIP-адреса для виртуальных машин арендаторов можно инициализировать отдельно для каждой виртуальной машины или с помощью шаблонов служб.
Мы рассмотрим процедуру инициализации VIP отдельно для каждой виртуальной машины. Этот сценарий не типичный, но его рекомендуется использовать для оценки. Инициализация VIP-адреса для двух виртуальных машин с помощью PowerShell:
- Разверните экземпляр виртуальной машины с помощью шаблона виртуальной машины.
- Создайте шаблон VIP в консоли VMM.
- Создайте VIP-адрес и назначьте его виртуальным машинам с помощью PowerShell.
Создание шаблона VIP
- В консоли VMM щелкните Структура > Создать шаблон виртуального IP-адреса. Введите имя и, при необходимости, описание шаблона.
- В поле Порт виртуальных IP-адресов укажите порт для тестирования. В поле Порт сервера укажите порт, с которого будет сопоставляться трафик на сервере. Нажмите кнопку Далее.
- В поле Укажите тип шаблона выберите Специальный. Для параметра Производитель выберите значение Microsoft. Для параметра Модель выберите значение Сетевой контроллер Microsoft. Нажмите кнопку Далее.
- В поле Укажите параметры протокола выберите протокол, для которого нужно создать сопоставление VIP. Обычно используются протоколы HTTP и HTTPS, но для упрощения вы можете выбрать вариант Настройка, а затем — TCP. Если протокол TCP не отображается, введите его вручную. Нажмите кнопку Далее.
- Можно также выбрать вариант Включить сохраняемость, если вы настроили балансировщик нагрузки на «липкое» подключение. Нажмите кнопку Далее.
- Для параметра «Метод балансировки нагрузки» выберите значение По кругу. Нажмите кнопку Далее.
- Нажмите кнопку Далее на странице Мониторы работоспособности.
- Проверьте настройки и нажмите кнопку Готово, чтобы создать шаблон VIP.
Создание VIP-адреса с помощью PowerShell
Приведенный ниже образец сценария PowerShell позволяет создать VIP-адрес для двух виртуальных машин. В разделе параметров сценария замените приведенные значения на значения, которые соответствуют вашей тестовой среде. Данный сценарий необходимо выполнить на сервере VMM или на компьютере, на котором выполняется консоль VMM.
Настройка правил NAT для входящего и исходящего трафика
Чтобы выполнить пиринг BGP, необходимо настроить на маршрутизаторе одноранговую связь BGP с SLB/MUX.
- Если вы используете аппаратный маршрутизатор, ознакомьтесь с документацией поставщика и узнайте, как настроить пиринг BGP на этом устройстве.
- Узнайте IP-адрес экземпляра SLB/MUX, который вы развернули. Для этого войдите на виртуальную машину SLB/MUX и выполните команду ipconfig.
Затем настройте правила NAT для входящего и исходящего трафика.
- Щелкните Виртуальные машины (VM) и службы > Сети виртуальных машин и дважды щелкните сеть, для которой нужно настроить правила NAT.
- В мастере выберите Соединение. Выберите Подключение напрямую к дополнительной сети и Преобразование сетевых адресов (NAT).
- В поле Устройство шлюза введите имя службы сетевого контроллера.
- Щелкните Преобразование сетевых адресов и выберите публичный пул VIP-адресов. Не указывайте IP-адрес. Данному правилу будет автоматически назначен VIP-адрес. Это ограничение RTM.
- В поле Правила NAT щелкните Добавить и введите имя правила, протокол, порт входящего трафика и целевые адрес и порт для этого правила.
Созданные правила NAT отобразятся в мастере VMM.
Дальнейшие шаги