Во второй части цикла о платформе виртуализации сети от VMware я расскажу о контроллерах. Напомню, что они нужны для расчёта сетевой топологии, распространения настроек и создания логических сетей и логики распространения трафика внутри неё. Для этого контроллеры на «южную» сторону, Open vSwitch (OVS) устройства, распространяют необходимую информацию, полученную с «северного» NVP API, чем обеспечивают соответствие между логическими сетями, согласно данным полученным NVP API и транспортной сетью, обеспечиваемой программируемыми виртуальными пограничными устройствами.
Детальнее это выглядит так:
Если в транспортной сети происходит изменение – например, запускается или выключается ВМ, мигрирует на другой хост – контроллер обновляет необходимые правила маршрутизации, и состояние транспортной сети, чтобы состояние подключения ВМ соответствовало подключению ВМ к логическим сетям. К примеру, включается новая виртуальная машина, которая должна быть подключена к определённой логической сети – кластер контроллеров обновляет необходимые правила маршрутизации, чтобы включённая ВМ была подключена к требуемой виртуальной сети.
Точно так же если запрос с API вносит изменения в конфигурацию логической сети, используемой ВМ, контроллер меняет правила маршрутизации всех соответствующих устройств в сети для выполнения запроса к API.
NVP нужно три контроллера для создания кластера – что обеспечивает возможность балансировки задач между разными контроллерами, а также предоставляет отказоустойчивость необходимую для функционала, предоставляемого контроллерами.
Итак, разобравшись с ролью контроллеров перейдём к процессу сборки контроллеров.
Установка NVP контроллеров
VMware распространяет контроллеры NVP в виде ISO образа. В продуктиве этот ISO образ используется для записи оптического диска, который, в свою очередь, используется для установки ПО на физический сервер. В версии NVP 3.1 требования к аппаратному обеспечению контроллера – 8-ми ядерный x64 процессор, 64 ГБ памяти, 128 ГБ на жёстком диске и гигабитный сетевой интерфейс. Конечно, можно, как и я, запускать контроллеры в виртуальных машинах, но в данный момент это не поддерживается на продуктивных системах.
Контроллеры являют собой Ubuntu Server 12.04 с уже интегрированным ПО контроллера. Так что после окончания установки с диска вы получите чистый контроллер NVP готовый к настройке.
Сам процесс довольно прост и прямолинеен:
Создать пароль администратора (опционально, но рекомендовано)
Указать имя хоста (опционально, но рекомендовано)
Указать IP адрес (очевидно что это важнейший шаг)
Указать DNS и NTP сервера
Указать адрес управления свитчами и IP адрес API (об этом чуть дальше)
Теперь рассмотрим эти шаги детальнее. Контроллеры NVP предлагают простой и понятный командный интерфейс с контекстной помощью. Если вы застряли с какой-либо командой просто нажмите Tab для автодополнения команды или двойной Tab для вывода всего возможного списка опций.
Для указания пароля для администратора необходимо дать следующую команду
После чего будет необходимо ввести новый пароль, а потом повторить его для подтверждения ввода. Легко, не правда? И довольно знакомо если вы раньше уже использовали Linux.
Изменение имени хоста тоже простой процесс:
Теперь вы готовы указать IP адрес контроллера. Используйте следующую команду чтобы увидеть сетевые интерфейсы, доступные на контроллере:
Вы заметите, что для каждого интерфейса в системе NVP создаёт соответствующий мост – фактически это мост OVS. Таким образом, если в сервере используется два интефейса eth0 и eth1, инсталлятор автоматически создаст breth0 и breth1. И, в общем-то, адреса необходимо настраивать для мостов, а не для физических интерфейсов.
Допустим вы хотите для указать для интерфейса breth0, соответствующий физическому eth0, IP адрес. Для этого необходимо использовать следующую команду:
Конечно же вы будете использовать правильный адрес и маску сети в данной команде, но для проверки доступности сети вы можете использовать стандартную команду ping. Заметьте, что какие-либо дополнительные параметры не поддерживаются в командной оболочке NVP.
Теперь можно добавить стандартный маршрут:
Предположим, что сеть работает нормально, и теперь в конфигурацию можно добавить DNS и NTP сервера с помощью следующих команд:
Повторяйте команду до тех пор пока не введёте все необходимые сервера. Если вы ошиблись и ввели не тот IP адрес, что со мной случается постоянно, вы можете удалить неправильный адрес с помощью команды remove.
Замените dns-server на ntp-server для удалению соответствующего сервера.
Вполне возможно чтобы NTP сервер использовал несколько IP адресов, и следующие несколько команд позволят контроллеру понять какие IP адреса использовать для разных функций. Это позволит распределить определённые типы трафика между разными интерфейсами, и, потенциально, сетями, согласно вашим требованиям.
Для начала, укажем IP адрес который необходимо использовать для управляющего трафика
Теперь укажем NVP какой адрес использовать для роли менеджера свитчей (эта роль используется для связи с устройствами OVS):
И, наконец, интерфейс на котором NVP будет слушать запросы к API (эта роль обрабатывает северный REST API трафик):
Как только вы закончили с первоначальной настройкой вы готовы приступить к созданию кластера. Для этого используется команда join control-cluster
В случае с первым контроллером кластера он подключается сам к себе. В случае использования нескольких IP адресов у контроллера – необходимо указывать интерфейс для менеджемент трафика. Следующая команда позволит создать новый кластер:
Для второго и третьего контроллеров в кластере вы можете использовать IP как первого хоста, так и любой ноды кластера без какой-либо разницы.
Как только кластер создан вы можете проверить его состояние несколькими разными способами. Во-первых, с помощью команды show control-cluster status, которая покажет подключена ли данная нода к большинству кластера, а также безопасна ли перезагрузка данной ноды. Также можно использовать команду show control-cluster startup-nodes чтобы получить список всех нод которые являются членами данного кластера.
Вывод команды приведён ниже
Чтобы получить статистику о подключениях к контроллеру NVP есть команда show control-cluster connections вывод которой будет примерно следующим:
Как только кластер контроллеров настроен и запущен вы готовы к добавлению других компонентов NVP в окружение. В следующей части я расскажу о NVP Manager – компоненте позволяющим продолжить настойку NVP добавлением шлюзов, сервисных нод и гипервизоров.
Оригинал: Scott Lowe
Детальнее это выглядит так:
Если в транспортной сети происходит изменение – например, запускается или выключается ВМ, мигрирует на другой хост – контроллер обновляет необходимые правила маршрутизации, и состояние транспортной сети, чтобы состояние подключения ВМ соответствовало подключению ВМ к логическим сетям. К примеру, включается новая виртуальная машина, которая должна быть подключена к определённой логической сети – кластер контроллеров обновляет необходимые правила маршрутизации, чтобы включённая ВМ была подключена к требуемой виртуальной сети.
Точно так же если запрос с API вносит изменения в конфигурацию логической сети, используемой ВМ, контроллер меняет правила маршрутизации всех соответствующих устройств в сети для выполнения запроса к API.
NVP нужно три контроллера для создания кластера – что обеспечивает возможность балансировки задач между разными контроллерами, а также предоставляет отказоустойчивость необходимую для функционала, предоставляемого контроллерами.
Итак, разобравшись с ролью контроллеров перейдём к процессу сборки контроллеров.
Установка NVP контроллеров
VMware распространяет контроллеры NVP в виде ISO образа. В продуктиве этот ISO образ используется для записи оптического диска, который, в свою очередь, используется для установки ПО на физический сервер. В версии NVP 3.1 требования к аппаратному обеспечению контроллера – 8-ми ядерный x64 процессор, 64 ГБ памяти, 128 ГБ на жёстком диске и гигабитный сетевой интерфейс. Конечно, можно, как и я, запускать контроллеры в виртуальных машинах, но в данный момент это не поддерживается на продуктивных системах.
Контроллеры являют собой Ubuntu Server 12.04 с уже интегрированным ПО контроллера. Так что после окончания установки с диска вы получите чистый контроллер NVP готовый к настройке.
Сам процесс довольно прост и прямолинеен:
Создать пароль администратора (опционально, но рекомендовано)
Указать имя хоста (опционально, но рекомендовано)
Указать IP адрес (очевидно что это важнейший шаг)
Указать DNS и NTP сервера
Указать адрес управления свитчами и IP адрес API (об этом чуть дальше)
Теперь рассмотрим эти шаги детальнее. Контроллеры NVP предлагают простой и понятный командный интерфейс с контекстной помощью. Если вы застряли с какой-либо командой просто нажмите Tab для автодополнения команды или двойной Tab для вывода всего возможного списка опций.
Для указания пароля для администратора необходимо дать следующую команду
set user admin password
После чего будет необходимо ввести новый пароль, а потом повторить его для подтверждения ввода. Легко, не правда? И довольно знакомо если вы раньше уже использовали Linux.
Изменение имени хоста тоже простой процесс:
set hostname
Теперь вы готовы указать IP адрес контроллера. Используйте следующую команду чтобы увидеть сетевые интерфейсы, доступные на контроллере:
show network interfaces
Вы заметите, что для каждого интерфейса в системе NVP создаёт соответствующий мост – фактически это мост OVS. Таким образом, если в сервере используется два интефейса eth0 и eth1, инсталлятор автоматически создаст breth0 и breth1. И, в общем-то, адреса необходимо настраивать для мостов, а не для физических интерфейсов.
Допустим вы хотите для указать для интерфейса breth0, соответствующий физическому eth0, IP адрес. Для этого необходимо использовать следующую команду:
set network interface breth0 ip config static 192.168.1.5 255.255.255.0
Конечно же вы будете использовать правильный адрес и маску сети в данной команде, но для проверки доступности сети вы можете использовать стандартную команду ping. Заметьте, что какие-либо дополнительные параметры не поддерживаются в командной оболочке NVP.
Теперь можно добавить стандартный маршрут:
add network route 0.0.0.0 0.0.0.0
Предположим, что сеть работает нормально, и теперь в конфигурацию можно добавить DNS и NTP сервера с помощью следующих команд:
add network dns-server IP адрес
add network ntp-server IP адрес
Повторяйте команду до тех пор пока не введёте все необходимые сервера. Если вы ошиблись и ввели не тот IP адрес, что со мной случается постоянно, вы можете удалить неправильный адрес с помощью команды remove.
remove network dns-server
Замените dns-server на ntp-server для удалению соответствующего сервера.
Вполне возможно чтобы NTP сервер использовал несколько IP адресов, и следующие несколько команд позволят контроллеру понять какие IP адреса использовать для разных функций. Это позволит распределить определённые типы трафика между разными интерфейсами, и, потенциально, сетями, согласно вашим требованиям.
Для начала, укажем IP адрес который необходимо использовать для управляющего трафика
set control-cluster management-address
Теперь укажем NVP какой адрес использовать для роли менеджера свитчей (эта роль используется для связи с устройствами OVS):
set control-cluster role switch_manager listen-ip
И, наконец, интерфейс на котором NVP будет слушать запросы к API (эта роль обрабатывает северный REST API трафик):
set control-cluster role api_provider listen-ip
Как только вы закончили с первоначальной настройкой вы готовы приступить к созданию кластера. Для этого используется команда join control-cluster
В случае с первым контроллером кластера он подключается сам к себе. В случае использования нескольких IP адресов у контроллера – необходимо указывать интерфейс для менеджемент трафика. Следующая команда позволит создать новый кластер:
join control-cluster
Для второго и третьего контроллеров в кластере вы можете использовать IP как первого хоста, так и любой ноды кластера без какой-либо разницы.
Как только кластер создан вы можете проверить его состояние несколькими разными способами. Во-первых, с помощью команды show control-cluster status, которая покажет подключена ли данная нода к большинству кластера, а также безопасна ли перезагрузка данной ноды. Также можно использовать команду show control-cluster startup-nodes чтобы получить список всех нод которые являются членами данного кластера.
Вывод команды приведён ниже
Чтобы получить статистику о подключениях к контроллеру NVP есть команда show control-cluster connections вывод которой будет примерно следующим:
Как только кластер контроллеров настроен и запущен вы готовы к добавлению других компонентов NVP в окружение. В следующей части я расскажу о NVP Manager – компоненте позволяющим продолжить настойку NVP добавлением шлюзов, сервисных нод и гипервизоров.
Оригинал: Scott Lowe
Комментариев нет:
Отправить комментарий