Featured products

Содержание:

Алгоритмы и методы балансировки

  • справедливость: нужно гарантировать, чтобы на обработку каждого запроса выделялись системные ресурсы и не допустить возникновения ситуаций, когда один запрос обрабатывается, а все остальные ждут своей очереди;
  • эффективность: все серверы, которые обрабатывают запросы, должны быть заняты на 100%; желательно не допускать ситуации, когда один из серверов простаивает в ожидании запросов на обработку (сразу же оговоримся, что в реальной практике эта цель достигается далеко не всегда);
  • сокращение времени выполнения запроса: нужно обеспечить минимальное время между началом обработки запроса (или его постановкой в очередь на обработку) и его завершения;
  • сокращение времени отклика: нужно минимизировать время ответа на запрос пользователя.
  • предсказуемость: нужно чётко понимать, в каких ситуациях и при каких нагрузках алгоритм будет эффективным для решения поставленных задач;
  • равномерная загрузка ресурсов системы;
  • масштабирумость: алгоритм должен сохранять работоспособность при увеличении нагрузки.

Round Robin

example.com	xxx.xxx.xxx.2
www.example.com	xxx.xxx.xxx.3
example.com	xxx.xxx.xxx.2
www.example.com	xxx.xxx.xxx.3
www.example.com	xxx.xxx.xxx.4
www.example.com	xxx.xxx.xxx.5
www.example.com	xxx.xxx.xxx.6

Sticky Sessions

upstream backend {
ip_hash;

server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
server backend4.example.com;
}

Программный Балансировщик Нагрузки

Динамический Кластер CommuniGate Pro может быть использован для управления программными балансировщиками нагрузки, такими как Linux IPVX, запущенными на тех же системах, что используются в качестве членов Кластера.

Выберите члены кластера, на которые будет распределяться входящий трафик. В конфигурации фронтенд-бэкенд для этого обычно используются все фронтенды.

Убедитесь, что на всех выбранных членах кластера в качестве алиаса на локальном интерфейсе (loopback) настроен адрес VIP (смотрите выше).

Через Веб Интерфейс Администратора откройте в разделе Установки страницу Кластер и выберите группу балансировки A для выбранных серверов:

Вес Балансировки
Используйте эту настройку для указания относительного веса этого сервера в Группе Балансировки Нагрузки. Чем больше это значение, тем большая часть входящих соединений TCP и пакетов UDP распределяется на этот сервер.

Все или часть выбранных серверов должны быть оснащены программным обеспечением балансировщика нагрузки, и у них должна быть настроена программа-помощник «Внешний балансировщик Нагрузки». Эта программа должна реализовывать Балансировки Нагрузки.

Как только первая программа-помощник Балансировки Нагрузки запущена на Члене Кластера, Контроллер Кластера активизирует Балансировщик и направляет весь входящий трафик на этот член Кластера, который распределяет этот трафик на сервер Группы Балансировки этого члена Кластера.

Если член Кластера с активным Балансировщиком Нагрузки останавливается или переключается в состояние «не готов», Контроллер Кластера запускает другой балансировщик нагрузки в этой же группе (если такой есть).

Linux IPVS

Пакет CommuniGate Pro для Linux включает в себя сценарий оболочки Services/IPVSHelper.sh, который может быть использован для управления балансировщиком нагрузки IPVS.

Этот сценарий ожидает наличия файла с адресами VIP в /etc/sysconfig/vipaddrs и настройки локального интерфейса (loopback) с этими адресами (смотрите выше).

Укажите $Services/IPVSHelper.sh parameters в качестве пути к приложению-помощнику Внешнего Балансировщика Нагрузки, и запустите его, включив маркер Помощника. Поддерживаются следующие параметры:

-p число
постоянство: все соединения с того же адреса IP будут направлены на тот же Член Кластера, если они получены в течение указанного числом количества секунд. Укажите 0 (ноль) для отключения постоянства. По умолчанию используется значение 15 секунд.
-i интерфейс
имя сетевого интерфейса, на который приходят пакеты. адресованные на адрес VIP. По умолчанию используется имя eth0.
-s число
значение «идентификатора синхронизации» (syncID), который используется для синхронизации таблиц соединений с активного балансировщика нагрузки на другие Члены Кластера в этой же группе балансировки. По умолчанию используется значение 0.
-t число
значение тайм-аута (в секундах) на чтение команд, отправленных сервером CommuniGate Pro. По умолчанию используется значение 15 секунд.
-f путь-к-файлу
путь в файловой системе сервера к файлу со списком адресов VIP. По умолчанию используется значение /etc/sysconfig/vipaddrs
-r число
значение относительного веса активного балансировщика в Группе Балансировки Нагрузки. Для всех других членов группы применяется значение 100. По умолчанию используется значение 100.
-m
если указан этот параметр, то программа-помощник не выполняет команды оболочки ОС на самом деле, а только записывает их в лог CommuniGate Pro.

Обратите внимание: рекомендуется использовать ядро Linux версии 3.5.3-1 или новее. При использовании более ранних версий ядра, соединения TCP к активному балансировщику нагрузки прерываются, когда другой сервер становится активным балансировщиком

Обратите внимание: если на члене Кластера включить программу-помощник внешнего балансировщика нагрузки, а потом выключить. Некоторые активные соединения могут быть разорваны

Если вы не планируете снова запускать программу-помощник, перезапустите службу ipvsadm в ОС, или полностью отключите её.

Руководство CommuniGate Pro. Copyright 1998-2019, Stalker Software, Inc.

Проверочные Вызовы

Балансировщик нагрузки обычно отправляет некоторые запросы на сервера в своих «балансировочных пулах». При неполучении ответа Балансировщик Нагрузки удаляет сервер из пула и распределяет входящие запросы на оставшиеся в пуле сервера.

Если SIP-Ферма включена, собственные запросы Балансировщика Нагрузки могут передаваться на другие сервера, входящие в SIP-Ферму, и, таким образом, ответы будут поступать от других серверов. Это может привести к тому, что Балансировщик Нагрузки решит, что сервер, которому был послан запрос, не функционирует и исключит этот сервер из обслуживаемого набора серверов. Для решения этой проблемы используйте следующие запросы SIP для проверки доступности реального сервера Балансировщиком Нагрузки: OPTION sip:aaa.bbb.ccc.ddd:5060 SIP/2.0 Route: <sip:aaa.bbb.ccc.ddd:5060;lr> другие поля пакетов SIP где aaa.bbb.ccc.ddd — IP адрес тестируемого Сервера CommuniGate Pro.

Эти пакеты обрабатываются Сервером aaa.bbb.ccc.ddd , который генерирует ответы и отправляет их обратно Балансировщику Нагрузки (или тестирующему устройству).

Правила балансировки

Для работы балансера нужно как минимум одно правило

1
2
3
4
5

set load-balancing wan rule500description’main load-balancing’

set load-balancing wan rule500inbound-interface’eth0′

set load-balancing wan rule500interfaceeth1 weight’1′

set load-balancing wan rule500interfaceeth2 weight’1′

set load-balancing wan rule500protocol’all’

inbound-interface — интерфейс локальной сети, где находятся клиенты

interface — под этим параметром вносим интерфейсы, между которыми должна работать балансировка и его вес

С protocol и description и так всё ясно.

Это общее правило, которое затрагивает всех клиентов, подключенных к шлюзу. Трафик балансируется равномерно между ними. Если у вас, например, один провайдер 50 мбит\с, а другой 100 мбит\с, то поставьте веса к примеру 1 и 2 или 50 и 100, чтобы нагрузка распределялась равномерно.

Так же есть возможность сделать режим failover

1 set load-balancing wan rule500failover

Веса тут будут служить для failover’a приоритетом. У кого вес больше — тот и работает. Если интерфейс с большим весом падает, то переходит на второй. Возможно у вас один из провайдеров очень медленный (3g или 4g например) или просто плохо работает и вы не можете с этим ничего поделать, а деваться некуда. Тогда failover в основном правиле очень даже кстати.

Но, если у вас всё-таки балансировка то, как показывает практика, одним правилом не обойдешься.

Начнем с того, что VoIP не умеет работать с балансировкой. Вынесем подсеть с телефонами в отдельное правило

1
2
3
4
5
6
7

set load-balancing wan rule5description’VoIP traffic’

set load-balancing wan rule5’failover’

set load-balancing wan rule5inbound-interface’eth0′

set load-balancing wan rule5interfaceeth1 weight’1′

set load-balancing wan rule5interfaceeth2 weight’100′

set load-balancing wan rule5protocol’all’

set load-balancing wan rule5source address’172.16.1.0/24′

Тут используем параметр source address, все кто из подсети 172.16.1.0/24 будут ходить только через одного провайдера.

Так же есть сервисы, которые не могут работать с двумя разными IP в одной сессии. Например, PPTP серверы, некоторые банковские сервисы, LDAP Account Manager и.т.д

1
2
3
4
5
6
7

set load-balancing wan rule10description’One IP service’

set load-balancing wan rule10destination address’0.0.0.0′

set load-balancing wan rule10’failover’

set load-balancing wan rule10inbound-interface’eth0′

set load-balancing wan rule10interfaceeth1 weight’100′

set load-balancing wan rule10interfaceeth2 weight’1′

set load-balancing wan rule10protocol’all’

Тут используем параметр destination address, которому задаём ip адрес сервиса.

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

Ещё на заметку, шлюз провайдера настраивается не только по команде set load-balancing, но и в маршрутах

1
2

set protocols static route0.0.0.0next-hop’10.10.1.1′

set protocols static route0.0.0.0next-hop’10.10.2.1′

Станки для динамической балансировки

Станки для динамической балансировки отличаются от статических тем, что на них проверяемое изделие вращается, и в это время определяется неуравновешенность при помощи специальных измерительных приборов.

В России и за границей для динамической балансировки коленчатых валов наиболее распространён станок типа Гишольт.

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

Фиг. 662. Схема балансировочного станка типа Гишольт.

Конструкция и принцип работы станка видны из схемы станка (фиг. 662).

На чугунной станине станка находится стойка А с двумя опорами, на которых на двух ножах С покоится прямоугольная рама.

В горизонтальном положении рама поддерживается плоской пружиной Д, которая соединена со второй пружиной Е. Один конец плоской пружины прикреплён к станине станка в точке Ж. На левой стороне рамы находится передняя бабка И, вращающаяся от электромотора и передающая вращение изделию — валу К, который опирается двумя шейками на две пары роликов Л и М. На передней бабке установлен маховик О с делениями по окружности и коррекционный диск Н. Диск может повёртываться в обе стороны, причём угол поворота отсчитывается делениями.

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

При разгоне изделия электромотором рама закрепляется рукояткой, которая препятствует ей качаться.

После достижения определённого количества оборотов рукоятка повёртывается, и рама начинает качаться, показывая величину колебания на специальной шкале Г, называемой амплиметром.

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

При вращении неуравновешенного изделия на станке получается вибрация, т: е. колебательные движения от изделия К и рамы В. Амплитуда колебаний у них различная, но при сложении колебаний получается сложенная или так называемая результативная волна, которая при определённом числе колебаний может достигать максимальной величины.

Фиг. 663. Кривая колебаний рамы станка А, изделия В и результативная С.

На фиг. 663 показана кривая колебаний рамы А, изделия В и результативная С.

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

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

Определив величину дисбаланса, передвигают противовес П (фиг. 662) на необходимое расстояние, т. е. создают искусственную неуравновешенность на другом конце станка — в передней бабке И.

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

После повёртывания диска окончательно проверяют и отмечают на валу место, где нужно будет высверливать лишний металл. Зная величину дисбаланса и задаваясь диаметром сверла, определяют глубину сверления. Весьма часто сверление заменяют сошлифованием излишка металла на точиле. После этого производят проверочную балансировку.

Фиг. 664. Общий вид балансировочного станка типа Гишольт.

На фиг. 664 показан балансировочный станок типа Гишольт (общий вид). G левой стороны станка на стойке находится амплиметр, который на схеме станка (фиг. 662) изображён в правой части станины. Впереди станка внизу показана педаль, служащая для включения мотора, вращающего изделие.

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

Единицей измерения дисбаланса на станке типа Гишольт является величина унцо-дюйм, т. е. момент от груза весом 28,35 г при плече 25,4 мм.

Допустимая неуравновешенность коленчатых валов зависит от характера конструкции мотора и практически принимается равной 0,02 до 0,25 унцо-дюймов, т. е. примерно от 15 до 180 грамм-миллиметров.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *