Клъстериране в Proxmox VE

Клъстериране в Proxmox VE

В минали статии започнахме да говорим за това какво представлява Proxmox VE и как работи. Днес ще говорим за това как можете да използвате възможността за клъстериране и ще покажем какви предимства дава.

Какво е клъстер и защо е необходим? Клъстер (от английски cluster) е група от сървъри, обединени от високоскоростни комуникационни канали, работещи и изглеждащи на потребителя като едно цяло. Има няколко основни сценария за използване на клъстер:

  • Осигуряване на отказоустойчивост (висока наличност).
  • Балансиране на натоварването (Балансиране на натоварването).
  • Увеличаване на производителността (висока производителност).
  • Извършване на разпределени изчисления (Разпределено изчисление).

Всеки сценарий има свои собствени изисквания към членовете на клъстера. Например, за клъстер, който извършва разпределени изчисления, основното изискване е висока скорост на операции с плаваща запетая и ниска латентност на мрежата. Такива клъстери често се използват за изследователски цели.

Тъй като засегнахме темата за разпределените изчисления, бих искал да отбележа, че има и такова нещо като мрежова система (от английската мрежа - решетка, мрежа). Въпреки общото сходство, не бъркайте мрежовата система и клъстера. Grid не е клъстер в обичайния смисъл. За разлика от клъстера, възлите, включени в мрежата, най-често са разнородни и се характеризират с ниска наличност. Този подход опростява решаването на проблеми с разпределени изчисления, но не позволява създаването на едно цяло от възли.

Ярък пример за грид система е популярна изчислителна платформа БОИН (Отворена инфраструктура на Бъркли за мрежови изчисления). Тази платформа първоначално е създадена за проекта SETI @ home (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 V.E.

За да стартираме тестов клъстер, взехме три сървъра с инсталиран хипервизор Proxmox със същата конфигурация (2 ядра, 2 GB RAM).

Ако искате да знаете как можете да инсталирате Proxmox, тогава ви препоръчваме да прочетете предишната ни статия - Магията на виртуализацията: въвеждащ курс в Proxmox VE.

Първоначално, след инсталиране на операционната система, работи един сървър самостоятелен режим.

Клъстериране в Proxmox VE
Създайте клъстер, като щракнете върху бутона Създайте клъстер в съответния раздел.

Клъстериране в Proxmox VE
Задаваме име за бъдещия клъстер и избираме активна мрежова връзка.

Клъстериране в Proxmox VE
Щракнете върху бутона Създаване. Сървърът ще генерира 2048-битов ключ и ще го запише заедно с параметрите на новия клъстер в конфигурационните файлове.

Клъстериране в Proxmox VE
надпис ЗАДАЧА ОК показва успешното завършване на операцията. Сега, разглеждайки общата информация за системата, може да се види, че сървърът е преминал в клъстерен режим. Засега клъстерът се състои само от един възел, тоест все още няма възможностите, за които е необходим клъстер.

Клъстериране в Proxmox VE

Присъединяване към клъстер

Преди да се свържем със създадения клъстер, трябва да получим информация, за да завършим връзката. За да направите това, отидете в раздела Група и нажимаем бутона Информация за присъединяване.

Клъстериране в Proxmox VE
В прозореца, който се отваря, се интересуваме от съдържанието на полето със същото име. Ще трябва да се копира.

Клъстериране в Proxmox VE
Тук са кодирани всички необходими параметри за връзка: адресът на сървъра за връзка и цифровият пръстов отпечатък. Отиваме на сървъра, който трябва да бъде включен в клъстера. Натискаме бутона Присъединете се към клъстера и в прозореца, който се отваря, поставете копираното съдържание.

Клъстериране в Proxmox VE
полета Адрес на партньор и Fingerprint ще се попълни автоматично. Въведете root паролата за възел номер 1, изберете мрежовата връзка и натиснете бутона Присъединете се.

Клъстериране в Proxmox VE
По време на процеса на присъединяване към клъстер уеб страницата на GUI може да спре да се актуализира. Всичко е наред, просто презаредете страницата. По абсолютно същия начин добавяме още един възел и в резултат получаваме пълноценен клъстер от 3 работещи възела.

Клъстериране в Proxmox VE
Сега можем да контролираме всички клъстерни възли от един GUI.

Клъстериране в Proxmox VE

Организация с висока наличност

Proxmox извън кутията поддържа HA организационна функционалност както за виртуални машини, така и за LXC контейнери. полезност ха-мениджър открива и обработва грешки и неуспехи, като извършва преход от неуспешен възел към работещ. За да работи правилно механизмът, е необходимо виртуалните машини и контейнерите да имат общо файлово хранилище.

След активиране на функционалността за висока наличност, софтуерният стек на ha-manager непрекъснато ще наблюдава състоянието на виртуалната машина или контейнера и ще взаимодейства асинхронно с други клъстерни възли.

Прикачване на споделено хранилище

Като пример разположихме малък NFS файлов споделен адрес 192.168.88.18. За да могат всички възли на клъстера да го използват, трябва да извършите следните манипулации.

Изберете от менюто на уеб интерфейса Център за данни - Съхранение - Добавяне - NFS.

Клъстериране в Proxmox VE
Попълнете полетата ID и Сървър. В падащия списък Износ изберете желаната директория от наличните и в списъка съдържание — необходими типове данни. След натискане на бутона Добави хранилището ще бъде свързано към всички възли на клъстера.

Клъстериране в Proxmox VE
Когато създаваме виртуални машини и контейнери на някой от възлите, ние посочваме нашите съхранение като съхранение.

Настройване на HA

Например, нека създадем контейнер с Ubuntu 18.04 и да конфигурираме High Availability за него. След като създадете и стартирате контейнера, отидете на секцията Datacenter-HA-Add. В полето, което се отваря, посочете идентификатора на виртуалната машина/контейнера и максималния брой опити за рестартиране и преместване между възли.

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

Клъстериране в Proxmox VE
След натискане на бутона Добави полезност ха-мениджър ще уведоми всички възли на клъстера, че сега VM с посочения идентификатор се контролира и в случай на срив трябва да се рестартира на друг възел.

Клъстериране в Proxmox VE

Да направим катастрофа

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

Клъстериране в Proxmox VE

Работата на механизма HA не означава непрекъснатост на VM. Веднага след като възелът „падне“, работата на VM временно се спира, докато автоматично се рестартира на друг възел.

И тук започва „магията“ – клъстерът автоматично преназначи възела за стартиране на нашата виртуална машина и в рамките на 120 секунди работата беше автоматично възстановена.

Клъстериране в Proxmox VE
Гасим възел 2 на храненето. Да видим дали клъстерът ще оцелее и дали VM ще се върне автоматично в работно състояние.

Клъстериране в Proxmox VE
Уви, както виждаме, имаме проблем с факта, че вече няма кворум на единствения оцелял възел, което автоматично деактивира HA. Даваме команда за принудително инсталиране на кворум в конзолата.

pvecm expected 1

Клъстериране в Proxmox VE
След 2 минути механизмът на HA работи правилно и като не намери node2, стартира нашата VM на node3.

Клъстериране в Proxmox VE
Веднага щом включихме отново node1 и node2, клъстерът беше напълно възстановен. Моля, обърнете внимание, че VM не мигрира обратно към node1 самостоятелно, но това може да се направи ръчно.

Резюмиране

Разказахме ви как работи механизмът за клъстериране на Proxmox и също така ви показахме как HA е конфигуриран за виртуални машини и контейнери. Правилното използване на клъстериране и HA значително повишава надеждността на инфраструктурата, както и осигурява възстановяване след бедствие.

Преди да създадете клъстер, трябва незабавно да планирате за какви цели ще се използва и колко ще трябва да бъде мащабиран в бъдеще. Също така трябва да проверите мрежовата инфраструктура за готовност за работа с минимални закъснения, така че бъдещият клъстер да работи без повреди.

Кажете ни - използвате ли възможностите за клъстериране на Proxmox? Очакваме ви в коментарите.

Предишни статии за хипервайзора Proxmox VE:

Източник: www.habr.com

Добавяне на нов коментар