= bubbalog =Дневникът на моето стадо

Новата играчка – web HA-Cluster под FreeBSD

Tuesday 04.08.2009 03:50 EET · Публикувано от в = Cluster =, = FreeBSD =, = HA-cluster =

Това е, борбата започна. А всичко на глед беше толкова безобидно… Просто исках да направя така, че да мога да хосвам блога на няколко машини паралелно като са подредени по някаква поредица. Едната ако падне – да се прехвърлят заявките на следващата. Ако втора падне – на следващата и така натам… Излишно е да казвам, че това е поредната простотийка с обучителна  цел, но да си кажа честно вече ми се завъртат и други мисли в главата. Просточко, нали? Но не…

След няколко часа чудене и мислене на схванати и тромави скрипт-базирани начини за синхронизация на отделните машини се отказах. Задачата излезе маааалко по-сложничка от колкото си мислех. Попитах в любимия форум (http://forums.bgdev.org) да ми подметнат кокълче, за какво мога да се захвана и да чета… И ми подметнаха няколко ключови думички – Failover, Load Balancing, които само бях чувал до сега и винаги ми звучаха  страшно, но явно това е пътя за решението на моята задачка. Поровичках се малко из нета и попаднах в чудния свят на клъстърите… Е това вече ме разби и направо ме накара да се почуствам нищожно невеж.

Все съм си мислил, че клъстъра (Cluster) са просто няколко машини работещи като една, но не се оказа така. Простете ми, ако напиша занатам някоя глупост, но толкова си разбирам засега, все пак захванах материята преди по-малко от седмица с ниво на знанието равно на нула. Оказа се, че те биват няколко вида, като това което би могло да ми свърши работа са паралелни клъстъри (Parallel Computing Cluster) и високонатеждни клъстъри (High Availability Cluster). Това общо взето за Apache само. А може да се направи и проста репликация само на апаха… или с NFS server/client… За MySQL задачката се оказа също забавна и като допълнителен бонус – там положението е: или MySQL Cluster (което не било за предпочитане, защото данните се пазели във временна памет и при срив заминават), или  MySQL master/slave replication (по-удачния вариант)… И всичко това подплатено с поне 2 лоуд балансера за да се пазят и те един друг и да няма слаби точки по системата (SPoF – Single Point of Failure). Съответно се зарових да търся как се конфигурира такова животно с болната амбиция, че до няколко дена мога да го подкарам. Е да, ама не.

Първото което ми разби илюзиите беше минималния брой на машините. За нещо по-човешко се оказа, че ми трябват поне 6 машини (nodes). 2 за Apache, 2 за MySQL и 2  за Load Balance. Второто стряскащо нещо е, че всеки клъстър се конфигурира сам за себе си и няма никакъв туторейл или правило и още по-малко строгоспецифичен софтуер за изграждането му. И започна едно четене… нужно ми беше да започна да посмилам целия тоси обем информация който изчетох за една седмица, както и да намеря най-удобния заход за развитие на системата. И така, след около седмица четене, стратегията е готова и борбата започва. Стратегията е да разработя модулите малко по малко на виртуални машини, докато разбера кое как работи индивидуално и след това да се копува хардуер, като мисля да се придържам към следния план доколкото мога:

  1. Работа с лоуд балансера, да се развие работата му.
  2. Тестове на различни начини и техники за синхронизация на Apache.
  3. Избир на подходящата система за MySQL часта, дали да е клъстър или репликация.
  4. Сглобяване на всичко и пускането му в работен режим…

Ами това е засега. Вече имам известен напредък и именно затова започвам и да пиша, но понеже е среднощ, а и напредъка така да се каже е нищожен, но достатъчен за да ми светне лампичката и да ми се проядни голяма част от занятието, засега няма да споменавам нищо. След няколко дена, когато изчистя някой проблем – тогава, а до тогава… Ами на линия съм и си стискам палци.

2 коментара за “Новата играчка – web HA-Cluster под FreeBSD”

  1. […] в 21:33 на 16.08.2009, категория = FreeBSD = Както вече споменах в началния пост по въпроса, реших да се захвана да градя клъстър под […]

  2. Евала,
    Много ми е помагал твоя блог.
    FreeBSD fen

Остави коментар

Писането на кирилица е задължително!
Коментари, които не са на кирилица ще бъдат изтрити без предупреждение.
Всеки коментари съдържащи 1 или повече линка, ще бъдат публикувани след одобрение.