Видове баланси на натоварване
Има два вида платформи за балансиране на натоварването - HAProxy и Linux Virtual Server, известни също като LVS, и Seesaw v2 е платформа за балансиране на натоварването, базирана на Linux виртуален сървър.
Seesaw е много гъвкав инструмент, който може да се използва като основен балансиращ товар за малки и средни уебсайтове до усъвършенстван балансиращ товар за мрежи на корпоративно ниво, където дузина сървъри са свързани помежду си. Той поддържа някои разширени функции на Ipv6 като anycast, multicast, unicast и директно връщане на сървъра, множество VLAN.
Наличието на здрав дизайн го прави подходящ за лесна поддръжка и надеждност. Той е проектиран през 2012 г., за да отговори на уникалните нужди на Google, на които съществуващите опции не отговарят. Той е разработен в Go, който е статично типизиран език и произлиза от C език. Той съдържа много езикови функции на високо ниво като събиране на боклука за почистване на паметта, безопасност на типа, масиви с променлива дължина, възможности за динамично писане и карти с ключ-стойност и голяма стандартна библиотека. Golang е компилиран език, разработен от Google. Много съвременни приложения като Docker, Kubernetes, InfluxDB, Gogs (Go Git Service) и Caddy са написани в Go.
Предварително условие
- Връзката за изтегляне на последната версия на GoLang за Linux е достъпна в https: // golang.org / dl / под формата на архивен файл.
- Целостта на tarball може да се провери чрез сравняване на стойността на хеш, генерирана с помощта на командата shassum, със стойността на хеш, предоставена в уебсайта. Ако има някаква разлика в хеш стойностите, винаги трябва да се изтегли нов tarball на архива. Ако проверката е успешна, продължете преди урока.
В тази команда -a се използва за задаване на алгоритъма за генериране на хеш стойност и тази команда като цяло изпълнява контролната сума SHA256 на архивните файлове.
- Следващата стъпка е да извлечете архивните файлове на tar, ако проверката на целостта е успешна, в / usr / local директорията с помощта на командата, дадена по-долу: $ sudo tar -C / user / local -xvzf go1.11.5.linux-amd64.катран.gz
В тази команда -C указва целевата директория, където се изпращат извлечените файлове.
- За да конфигурирате Go Environment в настройката на Ubuntu Go работно пространство, като създадете директория ~ / go_project_directory, която е коренът на работното пространство. Работното пространство съдържа три основни директории
• bin - съдържа двоични файлове на golang.
• src - който съхранява всички изходни файлове.
• pkg - който ще съхранява обекти на пакети.
Дърво на директории може да бъде създадено, както следва: $ mkdir -p ~ / go_projects / bin, src, pkg
$ cd go_projects /
$ ls - За да изпълните Go, следвайте като останалите програми на Linux, без да посочвате абсолютния път. Директорията, в която е инсталиран golang, трябва да се използва като една от стойностите на променливата на средата $ PATH.
- Добавям / usr / local / go / bin към променливата на средата PATH трябва да се изпълни следната команда:
Или може да го отворите в терминала с помощта на командата
$ vi .профилТогава / usr / local / go / bin трябва да се добави към пътя. След това всички промени трябва да бъдат запазени и потребителят трябва да излезе от профила и отново да влезе за по-нататъшни процедури.
- Всички пътеки се задават в профила чрез задаване на стойностите на GOPATH и GOBIN.
износ GOBIN = ”$ GOPATH / bin”- Ако GoLang е инсталиран в потребителска директория, различна от стандартната (/ usr / local), има изискването да се посочи тази директория като променлива GOROOT. Извършва се в th .профил от
износ PATH = $ PATH: / usr / local / go / bin: $ GOPATH / bin - Околната среда GoLang след успешна настройка може да бъде проверена в терминала, като изпълните следната команда: $ go
$ go env
Инсталиране на Seesaw
- Изискването беше да се инсталира Go, тъй като Seesaw v2 е разработен с него и зависи от няколко пакета Go като:
> github.com / golang / glog
> github.com / dlintw / goconf
> github.com / golang / protobuf / proto
> github.com / miekg / dns
- Ако някой желае да регенерира кода на protobuf, също е необходим компилаторът protobuf и генераторът на компилатора protobuf Go: $ apt-get install protobuf-compiler
$ go вземете -u github.com / golamg / protobuf / proto, proto-gen-go- Винаги трябва да се гарантира, че $ GOPATH / bin е в $ PATH и в директорията на ножовките.
- Следващата стъпка е да стартирате командата make, тъй като тя води до добавяне на няколко двоични файла в $ GOPATH / bin с префикс seeaw_, тези двоични файлове трябва да бъдат инсталирани на подходящи места.
$ make test
$ make install
$ make protoСлед стартиране на горните три команди бинарните файлове на клатушките са настроени на подходящи местоположения. това може да се направи чрез създаване на seeaw_install в $ GOPATH / bin и изпълнение на скрипта по-долу.
SEESAW_BIN = "/ usr / local / klackalica"
SEESAW_ETC = "/ и т.н. / клатушка
SEESAW_LOG = "/ var / log / klackalica"
INIT = 'ps -p 1 -o comm ='
инсталиране -d "$ SEESAW_BIN" "$ SEESAW_ETC" "$ SEESAW_LOG"
инсталирайте "$ GOPATH / bin / seeaw_cli" / usr / bin / playsaw
за компонент в ecu, engine, ha, healthcheck, ncc, watchdog; направете
инсталирайте "$ GOPATH / bin / klackalica _ $ компонент" "" $ SEESAW_BIN "
Свършен
ако [$ INIT = "init"]; тогава
инсталирайте "etc / init / seeaw_watchdog.conf "" / etc / init "
elif [$ INIT = "systemd"]; тогава
инсталирайте "etc / systemd / system / seeaw_watchdog.услуга "" / etc / systemd / system "
systemctl --system daemon-reload
fi
инсталирайте "и т.н. / клавиша / пазач.cfg "" $ SEESAW_ETC "
# Разрешаване на CAP_NET_RAW за бинарни файлове, които изискват сурови сокети.
/ sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / seeaw_ha"
/ sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / seeaw_healthcheck"
Конфигуриране на Seesaw
- Всеки възел изисква клатушка.cfg файл, известен като конфигурационен файл, където се съхранява информация за възела и принадлежащия му връстник. Protobuf е конфигурационният файл на клъстера за всеки клъстер и е в обикновен текстов формат. Това позволява да се отваря с всеки текстов редактор на Linux като nano, vi. Човек може да промени клатушката.cfg, като използвате следната команда:
Пример за клатушка.cfg файл
[клъстер]anycast_enabled = false
име = 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]
първичен = витрина-конфигурация1.пример.com
вторичен = витрина-конфигурация2.пример.com
третичен = ножовка-конфигурация3.пример.com
[интерфейс]
възел = eth0
lb = 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 AND DSR (Direct Server Return). DSR модифицира потока от трафика или товара, като позволява на сървъра да реагира директно на клиента. Като цяло балансьорът на натоварването Seesaw е здрав и надежден поради тези аспекти.