Друзья, я снова рад Вас приветствовать в цикле статей, посвящённых решениям Citrix. Но сегодня я не буду описывать, что, по результатам независимого исследования “магического квадрата Гартнера” (Gartner Magic Quadrant) в разрезе Application Delivery Controllers, описываемый ниже продукт находится в лидирующей тройке. Я хочу показать, что им можно и нужно пользоваться в разрезе “бытовых возможностей”. По моему опыту с Citrix NetScaler начинают сталкиваться администраторы средних и крупных компаний. И, как показывает практика и опыт, – в разрезе взаимодействия с Citrix XenDesktop / XenApp. А это говорит об одном: есть инструмент, который даже в бесплатной реализации может реализовать функционал, необходимый многим заказчикам для работы инфраструктуры веб-серверов и других компонентов, а следовательно может облегчить работу многим моим коллегам.


А именно хотел остановиться на некотором функционале, который обязательно пригодится? А именно — Балансировка нагрузки (Load Balancing). Казалось, вещь всем понятная, нужная, но к ее реализации зачастую подходим сквозь пальцы.

Кто-то скажет, зачем для небольших компаний использовать Citrix NetScaler, ведь есть решения на базе DNS — DNS Round Robin. Для балансировки нагрузки — это не самый хороший выбор. Отступая в сторону я бы сказал – это “’зло” и полная противоположность “Best Practices”. А брать в расчет Windows LBS при большом количестве более достойных альтернатив — это «не спортивно».

А теперь я покажу почему это именно так:

Диспозиция:

Имеем “зеркальных” 3 WEB сервера, NetScaler VPX, AD DNS. Полагаю настройку NS я опущу, т.к. настройку NetScaler многократно описывал.


image

Давайте проверим работу WEB серверов

1й:

image

2й:

image

3й:

image

Все готово для демонстрации.

Итак, установим критерии тестирования для выявления слабых и сильных месть обоих решений.
В диспозиции мы имеем 3 зеркальных Web сервера b настроенный MS DNS севрер с настроенным Round robin с созданными 3мя записями тестируемых серверов DNS.

image

Настроенный Citrix NetScaler c функционалом Load Balancing.

Прежде всего, освежим в памяти как работает DNS Round robin. Ну тут особо углубляться не буду в теорию, полагаю само название говорит само за себя. Давайте “Расскажу Ообъясню только на “пальцах”: при включенной функции Round robin сервер DNS каждый раз выдает новый ответ за запрос от клиентов. Ниже приведена наглядная картина, при которой каждый новый запрос получает новый ответ.

image

Казалось все понятно. Но давайте подумаем, что, если один из серверов недоступен и/или загружен. Усложним тестирование и выключим один из серверов:

image

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

Как поступить в подобной или аналогичной ситуации? Доступность для зеркальных Web серверов – это частный случай, в качестве балансировщика могут быть разнообразные сервисы и службы.
Почему как одно из решения я настойчиво рекомендую — посмотреть в сторону решения NetScaler от Citrix.

Во-первых, данную задачу может решить бесплатная версия Citrix NetScaler – NetScaler VPX Express. А во-вторых и последующих – решение проверенное временем, простое, удобное и предоставляющее большой сторонний дополнительный функционал. Кроме того, NS работают на самых распространённых типах гипервизоров – ESX, Hyper-V, Xen, KVM и в облаках Azure и AWS.

Давайте посмотрим общую настройку Citrix NetScaler для балансировки доступности Web сервиса.
Имеется LB сервевр с настроенной группой серверов.

image

Логически схема выглядит так – балансировщик нагрузки 192.168.0.7 и 3 сервера:

image

Осталось проверить, как будет вести себя балансировщик нагрузки Citrix NetScaler при выходе из строя 1 или даже 2х серверов из 3х имеющихся.

На видео я буду поочередно отключать один или два сервера с одновременным мониторингом доступности по ICMP протоколу и доступностью Load Balancing сервера.

image

Поехали!



Поехали!

Описание производимых операций:

— На представленном видео в начале мы с Вами видим как все 3 преднастроенные Web серверы работают, работает и LB сервер.
— Проверили доступность 3х серверов
— Отключили 1-ый сервер
— LB без потери стал перенаправлять на 2-ой и 3-ий серверы.
— Отключили 2-ой сервер
— LB без потери стал перенаправлять на 3-ий сервер.
— Включили 1-ый сервер
— LB без потери стал перенаправлять на 1-ый и 3-ий серверы.

Итак, давайте подведем краткие итоги. Уверен, что найду достаточно много вариантов применения инструмента балансировки нагрузки с помощью Citrix NetScaler в большинстве организаций. Следовательно, администраторы сетей, системный администраторы могут им пользоваться. Пользоваться бесплатно, а инструмент имеет широчайший спектр применения. Кроме того, если в последующем придется сталкиваться с VDI решением от Citrix,
То Вы будите существенно подготовлены)

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

P.S. В данном разделе мы не рассматриваем алгоритмы и методы балансировки, а лишь на макро уровне- откроем для себя новый инструментарий работы.

Кроме того, хочется знать Ваше мнение. Какие решения для балансировки вы используете? Буду рад любым комментариям и замечаниям.
Поделиться с друзьями
-->

Комментарии (19)


  1. click0
    23.08.2016 02:19

    Подскажу другие аналоги:

    1. Nginx
    2. haproxy
    3. relayd из Openbsd
    4. Direct Server Return (DSR) load balancing с помощью коммутатора и DSCP


    1. DyadyaMisha
      23.08.2016 10:23

      Apache ещё


  1. AxMuha
    23.08.2016 07:36

    Правильно понимаю, что требуется дополнительный сервер? ( По сравнению со схемой балансировки на уровне днс). И он является узким местом?


    1. stavinsky
      23.08.2016 09:27

      Правильно. Но обычно их(Netscaller, nginx, haproxy) тоже балансируют на уровне IP.


    1. 0000168
      23.08.2016 09:41

      Правильно. Кроме того, Netscaler может поставляться как физическое устройство, так и виртуальное. А в виртуальной реализации поставляется под основные типы гипервизоров.


  1. Manitou
    23.08.2016 09:33

    Совершенно не понятно, почему именно этот продукт предлагается использовать в качестве решения. Вернее даже так, использование ADC — правильный подход, однако «решение» не органичивается этим конкретным продуктом. Аналогичные варианты (в смысле «бесплатности») есть и у других вендоров. Если я не ошибаюсь, у express-версии, о которой и идет речь, есть ограничение в пропускной способности в 5Mbps, соответственно далеко вы на нём не уедете.


    1. 0000168
      23.08.2016 09:57

      Совершенно верно, Express — ограничение 5Mb, для LB и мониторинга доступности — «за глаза».

      Касаемо использование редакций ADC/Gateway/Express — во всех присутствует функционал LB.

      Отвечу и на вторую часть, почему Netscaler, то мое глубокое мнение что даже по сравнению с другими Free решениями реализация функционала балансировки нагрузки проще. Я так и акцентировал «в помощь начинающему администратору».

      Лично я все нестойки делаю через CLI, но имеющийся GUI просто шикарный.

      Manitou, расскажи о своем опыте развертывания LB сервера?


      1. IAmGroot
        23.08.2016 10:23

        А если сравнить его с Zen Load Balancer?

        Все тоже самое, плюс поддержка кластера «из коробки» в бесплатной версии


      1. Manitou
        23.08.2016 10:46
        +2

        Видимо это очень маленькая компания и веб-ресурс, которой 5Mbps «за глаза». В этом случае еще менее очевидно, зачем здесь три web-сервера в бэкенде. В итоге решение не обеспечивает ни высокую доступность (единственный виртуалных балансер — spof) ни высокую производительность (лимит в 5Mbps). Наиболее подходящий сценарий для express это обкатка конфигурации\скриптов, перед деплоем в продакшен.

        Что касается моего опыта, то работал с keepalived, haproxy, Netscaler, F5, Brocade, MS NLB. F5 оказался самым гибким и машстабируемым решением, используем платформу F5 VIPRION в кластерной конфигурации на C2400 качестве основны балансировки и управления трафиком, в дополнение к десятку младших платформ от 2200S до 8900. В основном используем функционал модулей GTM и LTM. Виртуальне балансеры не используем из-за проигрыша в производительности в операциях с SSL-offload. Инфрастуктура используется для хостинга нескольких крупных европейских онлайн-ретейлеров.

        Могу сказать, что подходы Netscaler и F5 близки, Brocade несколько отличается. Нет никакого смысла завязываться на конкретного вендора, если в дальнейшем не планируется продолжение сотрудничества. Если 5Mbps это «за глаза», и требуется только балансировка web-трафика, то в случа nix можно ограничится keepalived/haproxy/nginx, если же это MS, то даже стандартного NLB будет достаточно.


  1. Berserkr
    23.08.2016 09:41

    что будет когда сломается сервер с нетскалером?


    1. 0000168
      23.08.2016 09:44

      Полагаю, тоже что и если сломается любой другой сервер) Если серьезно — то бэкап это всего один файл ns.conf.
      Мое мнение, жизнь без бэкапов — хождение по лезвию.


  1. Balintrue
    23.08.2016 11:01
    +1

    Андрей, добрый день!
    Спасибо за статью, но со своей стороны, как администратора Citrix Netscaler, хотелось бы добавить, что Netscaler — это огромный комбайн и балансировка это самое малое, что он умеет. Как говорили коллеги выше, для балансировки www можно применять более дешевые (бесплатные) решения.
    То, что Вы описали неправильную и правильную балансировку — за это Вам респект, т.к. многие мои коллеги поступают именно первым (неверным) способом, настраивая балансировку через DNS.


    1. 0000168
      23.08.2016 11:05

      Я использую не только как Web балансировщик, но и использую балансировку для RMS, использую для мониторинга доступности сервисов и серверов.
      Я бы назвал не комбайном, а скорее огромным КОНСТРУКТОРОМ.


  1. Neuronix
    23.08.2016 13:05

    По своему опыту, в нетскалере без бутылки не обойдёшься :) Правда это про SSO VPN для VDI


    1. Balintrue
      23.08.2016 13:22
      +1

      Не соглашусь, даже базовой документации с сайта Citrix достаточно, чтобы настроить простые вещи как балансировку, Netscaler Gateway для публикации XenApp или XenDesktop, прямое и обратное проксирование.
      Немого сложнее настраивается Content Switching и Application Firewall, причем на портале Citrix очень много подробных инструкций и видео.
      А Вы SSO VPN для VDI не через Gateway настраивали? ИМХО, там все элементарно, главное чтобы Back-end инфраструктура уже работала.


    1. 0000168
      23.08.2016 13:58

      Николай, расскажи, с чем именно возникли вопросы требующие не менее 0.5 л)
      На мой взгляд SSO, LB, VPN, AAA, публикация XD|XAPP ничего сложного.

      Действительно сложнее настроить App Firewall, балансировку нагрузки видео или настроить сложные политики сессий


  1. Ant1k
    24.08.2016 02:41

    А что именно подразумевается под бесплатной версией? Разве фича лоад балансер работает из коробки без лицензии или вы имеете ввиду 90 дневную лицензию?


    Давно уже работаю с нетскелерами, но про "бесплатную версию" слышу первый раз, везде лицензии. Возможно просто не обращал внимания никогда.


  1. 0000168
    24.08.2016 09:49

    NetScaler VPX Express

    В свое время писал стал тут и тут про его развертывание


  1. DmitryKm
    24.08.2016 14:48

    Для небольших проектов использую:
    Nginx + HaProxy

    Также учитывая что все висит на DigitalOcean — переодически использую их Floating IP через API для быстрого перенаправления.