Во минатите написи, почнавме да зборуваме за тоа што е Proxmox VE и како функционира. Денес ќе разговараме за тоа како можете да ја искористите можноста за кластерирање и да покажете какви придобивки дава тоа.
Што е кластер и зошто е потребен? Кластерот (од англискиот кластер) е група на сервери обединети со канали за комуникација со голема брзина, кои работат и му се појавуваат на корисникот како една целина. Постојат неколку главни сценарија за користење на кластер:
Обезбедување толеранција на грешки (висока достапност).
Балансирање на товарот (Load Balancing).
Зголемување на продуктивноста (високи перформанси).
Изведување на дистрибуирано пресметување (Дистрибуирано пресметување).
Секое сценарио има свои барања за членовите на кластерот. На пример, за кластер што врши дистрибуирано пресметување, главниот услов е голема брзина на операции со подвижна запирка и мала латентност на мрежата. Таквите кластери често се користат за истражувачки цели.
Бидејќи ја допревме темата за дистрибуирани компјутери, би сакал да забележам дека постои и такво нешто како мрежен систем (од англиската мрежа - решетка, мрежа). И покрај општата сличност, не мешајте го мрежниот систем и кластерот. Решетката не е кластер во вообичаена смисла. За разлика од кластерот, јазлите вклучени во мрежата најчесто се хетерогени и се карактеризираат со мала достапност. Овој пристап го поедноставува решавањето на дистрибуирани компјутерски проблеми, но не дозволува создавање на една целина од јазли.
Впечатлив пример за мрежен систем е популарна компјутерска платформа КОЛЕК (Berkeley Open Infrastructure for Network Computing). Оваа платформа првично беше создадена за проектот СЕТИ @ дома (Search for Extra-Terrestrial Intelligence at Home), справување со проблемот на наоѓање вонземска интелигенција преку анализа на радио сигнали.
Како го прави ова делоОгромна низа податоци добиени од радио телескопи се распарчуваат на многу мали парчиња и тие се испраќаат до јазлите на мрежниот систем (во проектот SETI@home, волонтерски компјутери ја играат улогата на такви јазли). Податоците се обработуваат на јазлите и по завршувањето на обработката се испраќаат до централниот сервер на проектот SETI. Така, проектот го решава најкомплексниот глобален проблем без да ја има на располагање потребната компјутерска моќ.
Сега кога имаме јасно разбирање за тоа што е кластер, предлагаме да размислиме како може да се создаде и користи. Ќе користиме систем за виртуелизација со отворен код Proxmox VE.
Особено е важно јасно да се разберат ограничувањата и системските барања на Proxmox пред да започнете да креирате кластер, имено:
максимален број на јазли во кластерот - 32;
сите јазли мора да имаат истата верзија на Proxmox (има исклучоци, но тие не се препорачуваат за производство);
ако во иднина се планира да се користи функционалноста Висока достапност, тогаш кластерот треба да има најмалку 3 јазли;
портите мора да бидат отворени за јазлите да комуницираат едни со други UDP/5404, UDP/5405 за коросин и TCP/22 за SSH;
доцнењето на мрежата помеѓу јазлите не треба да надминува 2 ms.
Направете кластер
Важно! Следната конфигурација е тест. Не заборавајте да проверите со официјална документација Проксмокс В.Е.
За да извршиме тест кластер, земавме три сервери со инсталиран хипервизор Proxmox со иста конфигурација (2 јадра, 2 GB RAM).
Првично, по инсталирањето на ОС, работи еден сервер самостоен режим.
Создадете кластер со кликнување на копчето Креирај кластер во соодветниот дел.
Поставивме име за идниот кластер и избираме активна мрежна врска.
Притиснете го копчето Креирај. Серверот ќе генерира 2048-битен клуч и ќе го запише заедно со параметрите на новиот кластер во конфигурациските датотеки.
Напис ЗАДАЧАТА ОК укажува на успешно завршување на операцијата. Сега, гледајќи ги општите информации за системот, може да се види дека серверот се префрлил на режим на кластер. Засега кластерот се состои од само еден јазол, односно сè уште ги нема можностите за кои е потребен кластер.
Приклучување на кластер
Пред да се поврземе со креираниот кластер, треба да добиеме информации за да ја завршиме врската. За да го направите ова, одете во делот Кластерот за информатичка технологија и притиснете го копчето Информации за приклучување.
Во прозорецот што се отвора, ние сме заинтересирани за содржината на истоименото поле. Ќе треба да се копира.
Сите потребни параметри за поврзување се кодирани овде: адресата на серверот за поврзување и дигиталниот отпечаток од прст. Одиме до серверот што треба да биде вклучен во кластерот. Го притискаме копчето Приклучи се на Кластер и во прозорецот што се отвора залепете ја копираната содржина.
области Адреса на врсници и Отпечаток од прст ќе се пополни автоматски. Внесете ја root лозинката за јазолот број 1, изберете ја мрежната врска и притиснете го копчето Зачлени се.
За време на процесот на приклучување на кластерот, веб-страницата GUI може да престане да се ажурира. Во ред е, само повторно вчитај ја страницата. На ист начин додаваме уште еден јазол и како резултат добиваме полноправно кластер од 3 работни јазли.
Сега можеме да ги контролираме сите јазли на кластерот од еден GUI.
Организација со висока достапност
Proxmox out of the box поддржува функционалност за организација на HA и за виртуелни машини и за LXC контејнери. Алатка ха-менаџер детектира и се справува со грешки и неуспеси, изведувајќи превртување од неуспешен јазол во работен. За механизмот да работи правилно, неопходно е виртуелните машини и контејнерите да имаат заедничко складирање на датотеки.
По активирањето на функционалноста Висока достапност, оџакот на софтверот ha-manager континуирано ќе ја следи состојбата на виртуелната машина или контејнерот и асинхроно ќе комуницира со други јазли на кластерот.
Се прикачува споделен простор
Како пример, распоредивме мал дел од датотеката NFS на 192.168.88.18. За да можат сите јазли на кластерот да го користат, треба да ги направите следните манипулации.
Изберете од менито за веб-интерфејс Центар за податоци - Складирање - Додај - NFS.
Пополнете ги полињата ID и сервер. Во паѓачката листа Извоз изберете го саканиот директориум од достапните и во списокот содржина — потребни типови податоци. По притискање на копчето Додај складиштето ќе биде поврзано со сите кластерски јазли.
Кога креираме виртуелни машини и контејнери на кој било од јазлите, го одредуваме нашето складирање како складирање.
Поставување HA
На пример, ајде да создадеме контејнер со Ubuntu 18.04 и да ја конфигурираме високата достапност за него. Откако ќе го креирате и стартувате контејнерот, одете во делот Datacenter-HA-Add. Во полето што се отвора, наведете го ID на виртуелната машина/контејнер и максималниот број обиди за рестартирање и движење помеѓу јазли.
Ако оваа бројка се надмине, хипервизорот ќе го означи VM како неуспешен и ќе го стави во состојба Error, по што ќе престане да врши какви било дејства со него.
По притискање на копчето Додај корист ха-менаџер ќе ги извести сите јазли од кластерот дека сега VM со наведената ID е контролирана и во случај на паѓање мора да се рестартира на друг јазол.
Ајде да направиме несреќа
За да видиме како точно функционира механизмот за префрлување, ајде да го исклучиме напојувањето на node1 ненормално. Гледаме од друг јазол што се случува со кластерот. Гледаме дека системот поправи дефект.
Работењето на механизмот HA не значи континуитет на VM. Штом јазолот „падне“, операцијата на VM привремено се прекинува додека не се рестартира автоматски на друг јазол.
И тука започнува „магијата“ - кластерот автоматски го преназначи јазолот да работи на нашиот VM и во рок од 120 секунди работата беше автоматски вратена.
Го гаснеме јазолот 2 за исхрана. Ајде да видиме дали кластерот ќе преживее и дали VM автоматски ќе се врати во работна состојба.
За жал, како што можеме да видиме, имаме проблем со фактот дека веќе нема кворум на единствениот преживеан јазол, што автоматски го оневозможува HA. Даваме команда за принудно инсталирање на кворум во конзолата.
pvecm expected 1
По 2 минути, механизмот HA работеше правилно и, не наоѓајќи го node2, го стартуваше нашиот VM на node3.
Штом повторно ги вклучивме node1 и node2, кластерот беше целосно обновен. Ве молиме имајте предвид дека VM не мигрира назад во node1 самостојно, но тоа може да се направи рачно.
Сумирање
Ви кажавме како функционира механизмот за кластерирање Proxmox, а исто така ви покажавме како HA е конфигуриран за виртуелни машини и контејнери. Правилната употреба на кластерирањето и HA во голема мера ја зголемува доверливоста на инфраструктурата, како и обезбедување на обновување при катастрофи.
Пред да креирате кластер, треба веднаш да планирате за какви цели ќе се користи и колку ќе треба да се скалира во иднина. Исто така, треба да ја проверите мрежната инфраструктура за подготвеност да работи со минимални доцнења, така што идниот кластер работи без дефекти.
Кажете ни - дали ги користите можностите за кластерирање на Proxmox? Ве очекуваме во коментари.