Типы балансировки нагрузки
Существует два типа платформ балансировки нагрузки - HAProxy и виртуальный сервер Linux, также известный как LVS, и Seesaw v2 - платформа балансировки нагрузки на основе виртуального сервера Linux.
Качели - это очень гибкий инструмент, который можно использовать как базовый балансировщик нагрузки для веб-сайтов малого и среднего размера, так и расширенный балансировщик нагрузки для сетей корпоративного уровня, где дюжина серверов соединена между собой. Он поддерживает некоторые из расширенных функций Ipv6, таких как anycast, многоадресная, одноадресная и прямой возврат сервера, несколько VLAN.
Прочная конструкция обеспечивает простоту обслуживания и надежность. Он был разработан в 2012 году для удовлетворения уникальных потребностей Google, которые не удовлетворяли существующие возможности. Он разработан на Go, который является языком со статической типизацией и является производным от Язык C. Он содержит множество высокоуровневых языковых функций, таких как сборка мусора для очистки памяти, безопасность типов, массивы переменной длины, возможности динамической типизации и карты значений ключей, а также большую стандартную библиотеку. Golang - это скомпилированный язык, разработанный Google. Многие современные приложения, такие как Docker, Kubernetes, InfluxDB, Gogs (Go Git Service) и Caddy, написаны на Go.
Предварительные требования
- Ссылка для загрузки последней версии GoLang для Linux доступна по адресу https: // golang.org / dl / в виде архивного файла.
- Целостность тарбола можно проверить, сравнив хеш-значение, созданное с помощью команды shassum, с хеш-значением, указанным на веб-сайте. Если есть какая-либо разница в значениях хэшей, необходимо всегда загружать новый tarball архива. Если проверка прошла успешно, переходите к руководству.
В этой команде -a используется для указания алгоритма генерации хеш-значения, и эта команда в целом выполняет контрольную сумму SHA256 архивных файлов.
- Следующим шагом является извлечение файлов архива tar, если проверка целостности прошла успешно, в каталог / usr / local с помощью приведенной ниже команды: $ sudo tar -C / user / local -xvzf go1.11.5.linux-amd64.деготь.gz
В этой команде -C указывает целевой каталог, куда отправляются извлеченные файлы.
- Чтобы настроить среду Go в Ubuntu, настройте рабочее пространство Go, создав каталог ~ / go_project_directory, который является корнем рабочего пространства. Рабочее пространство содержит три основных каталога
• bin - содержит бинарные файлы голанга.
• src- хранит все исходные файлы.
• pkg- в котором будут храниться объекты пакета.
Дерево каталогов можно создать следующим образом: $ mkdir -p ~ / go_projects / bin, src, pkg
$ cd go_projects /
$ ls - Чтобы выполнить Go, следуйте инструкциям остальных программ Linux, не указывая его абсолютный путь. Каталог, в котором установлен golang, должен использоваться как одно из значений переменной среды $ PATH.
- Добавить / USR / местные / идти / бен в переменную среды PATH необходимо выполнить следующую команду:
Или можете открыть его в терминале с помощью команды
$ vi .профильпотом / USR / местные / идти / бен должен быть добавлен к пути. Затем все изменения должны быть сохранены, и пользователю необходимо выйти из профиля и снова войти в систему для дальнейших действий.
- Все пути задаются в профиле путем установки значений GOPATH и GOBIN.
экспорт GOBIN = "$ GOPATH / bin"- Если GoLang установлен в пользовательском каталоге, отличном от каталога по умолчанию (/ usr / local), необходимо указать этот каталог в качестве переменной GOROOT. Это сделано в .профиль
экспорт ПУТЬ = $ ПУТЬ: / usr / local / go / bin: $ GOPATH / bin - Среду GoLang после успешной настройки можно проверить в терминале, выполнив следующую команду: $ go
$ go env
Установка качелей
- Требовалось установить Go, поскольку Seesaw v2 разработан с его помощью и зависит от нескольких пакетов Go, например:
> github.com / golang / glog
> github.com / dlintw / goconf
> github.com / golang / protobuf / proto
> гитхаб.com / miekg / dns
- Если кто-то хочет регенерировать код protobuf, также необходимы компилятор protobuf и генератор компилятора Go protobuf: $ apt-get install protobuf-compiler
$ go get -u github.com / golamg / protobuf / proto, proto-gen-go- Всегда необходимо убедиться, что $ GOPATH / bin находится в $ PATH и в каталоге качелей.
- Следующим шагом является запуск команды make, поскольку она приводит к добавлению нескольких двоичных файлов в $ GOPATH / bin с префиксом sawaw_, эти двоичные файлы должны быть установлены в соответствующие места.
$ сделать тест
$ make install
$ make protoПосле выполнения трех вышеуказанных команд двоичные файлы качелей устанавливаются в соответствующие места. это можно сделать, создав saw_install в $ GOPATH / bin и выполнив приведенный ниже скрипт.
SEESAW_BIN = "/ usr / local / качели"
SEESAW_ETC = "/ etc / качели
SEESAW_LOG = "/ var / log / качели"
INIT = 'ps -p 1 -o comm ='
install -d "$ SEESAW_BIN" "$ SEESAW_ETC" "$ SEESAW_LOG"
установить "$ GOPATH / bin / saw_cli" / usr / bin / sawaw
для компонента в ecu, engine, ha, healthcheck, ncc, watchdog; делать
установить "$ GOPATH / bin / sawaw _ $ component" "$ SEESAW_BIN"
Выполнено
если [$ INIT = "инициализация"]; тогда
установить "etc / init / Seeaw_watchdog.conf "" / etc / init "
elif [$ INIT = "systemd"]; тогда
установить "etc / systemd / system / Seeaw_watchdog".служба "" / etc / systemd / system "
systemctl --system daemon-reload
фи
установить "etc / sawaw / watchdog".cfg "" $ SEESAW_ETC "
# Включить CAP_NET_RAW для двоичных файлов с качелями, которым требуются необработанные сокеты.
/ sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / sawaw_ha"
/ sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / sawaw_healthcheck"
Настройка качелей
- Каждому узлу нужны качели.cfg, известный как файл конфигурации, в котором хранится информация об узле и его одноранговом узле. Protobuf - это файл конфигурации кластера для каждого кластера в текстовом формате. Это позволяет открывать его с помощью любого текстового редактора Linux, такого как nano, vi. Можно изменить качели.cfg с помощью следующей команды:
Пример качелей.cfg файл
[кластер]anycast_enabled = ложь
name = au-syd
node_ipv4 = 192.168.
node_ipv6 = 2015: кафе :: 2
peer_ipv4 = 192.168.10.3
peer_ipv6 = 2015: кафе :: 3
vip_ipv4 = 192.168.10.1
vip_ipv6 = 2015: кафе :: 1
[config_server]
первичный = качели-config1.пример.ком
вторичный = качели-config2.пример.ком
третичный = качели-config3.пример.ком
[интерфейс]
узел = eth0
фунт = eth1
Описание указанного скрипта приведено ниже
- anycast_enabled - Anycast можно включить, установив это значение.
- name - Краткое имя, которое дается этому кластеру.
- node_ipv4 - IPv4-адрес текущего узла Seesaw.
- peer_ipv4 - IPv4-адрес нашего однорангового узла Seesaw.
- vip_ipv4 - IPv4-адрес для текущего виртуального IP-адреса кластера.
Заключение
Благодаря огромным преимуществам функции балансировки нагрузки, она часто используется во многих корпоративных сетях. Обычно в стандарте IPv4 существует три режима доставки: Unicast, Multicast и Broadcast. Anycast принимается в IPv6. Anycast редко присутствует в IPv4. Anycast использует для идентификации интерфейса из группы интерфейсов, которые подключаются к одной и той же службе. VIP-адреса - это виртуальные IP-адреса, не принадлежащие ни одному физическому сетевому интерфейсу. Балансировщик нагрузки должен быть надежным и обладать наиболее важными функциями облачных сервисов.
Многие из балансировщиков нагрузки на рынке не имеют мониторинга внутреннего сервера и многих других специфических функций. На уровне 2/3/4 взаимодействия открытых систем существует несколько методов балансировки нагрузки. Эти уровни - уровень канала передачи данных, сетевой уровень и транспортный уровень. Seesaw использует технику уровня 4 с NAT и DSR (прямой возврат сервера). DSR изменяет поток трафика или нагрузку, позволяя серверу отвечать напрямую клиенту. В целом балансировщик нагрузки The Seesaw отличается прочностью и надежностью благодаря этим аспектам.