salut

trebuie sa realizez o solutie de load sharing pentru niste aplicatii de
retea pe mai multe masini

in principiu ar fi N noduri care ruleaza acele aplicatii iar balancingul
se face prin dns, redirector/l4 switch sau chiar ambele.

problema este de a elimina SPOF pentru storage-ul lor

de exemplu daca aceste servere ruleaza server MTA si pop3/imap pentru un
numar de conturi ar trebui sa share-uiasca acelas fs space somehow. altfel
mail-ul venit pe un nod si stocat pe discurile lui nu s-ar vedea daca il
citeste cu pop pe alt nod.
bineitneles ca vreau si redundanta per nod (adica daca pica toate si
ramane macar unul, sa continue sa mearga)

din cate stiu este GFS. dar solutia costa
ar mai fi MFS sistemul din MOSIX dar te obliga sa folosesti MOSIX si nu
stiu daca face replicare pe discurile locale ci probabil ca imparte
discurile intre noduri...

inter-mezzo ar marea ca face ce am nevoie dar spun ei pe site ca e lent
pentru update-uri multe simultane, ori eu cam asta am...

ar merita sa ma arunc la o solutie low level? kernel based ? ( de fapt o
solutie peste si sub VFS )

m-am mai gandit ca pot eu implementa la nivel aplicatie acest lucru

si anume astfel:
- identific operatiile/programele care ar modifica continutul partitiei
care se doreste replicata intre noduri
- facute hook-uri in toate aceste aplicatii ca sa aiba grija sa se
sincronizeze fs-ul

si anume:
- fiecare nod are lista celorlalte noduri
- cand se face o modificare in fs se va log intr-un sql local aceasta
schimbare (ex. sterge /var/la/la sau modificat /var/asdasd etc...)
- fiecare nod ruleaza un programel o data pe minut (pentru aplicatia mea
consider aceasta fereastra de desincronizare acceptabila) care se
conecteaza la sql-ul celorlalte noduri si verifica daca are de sincronizat
(adica fiecare inregistrare din acele sql jurnale vor avea un id unic iar
fiecare nod tine minte id-ul fiecarui peer la care a ramas cu
sincronizarea...) si daca da incearca sa sincronizeze transferand de pe
acel nod acel fisier sau executand operatia (ex. delete/unlink); cum
acceseaza el acele fisiere de la distanta eset alta discutie (de ex.
fiecare nod poate avea montat prin nfs discurile celorlalte noduri)
- inaite sa executa operatia va vedea daca are conflict (adica de ex. daca
chiar el intre timp a pus pe disc un fisier dupa ce a fost pus pe disc de
nodul al carui jurnal il citeste in acel moment; asta s-ar face destul de
simplu comparand acea inregistrade din jurnal cu jurnalul propriu sau al
celorlalte noduri)

normal ca chiar si asa mai exista destule posibile situatii deoarece
modificarile pe disk care le face un nod si scrierile in sql pentru acea
modificare nu sunt atomice...

voi ce credeti?

----------------------------
Mihai RUSU
"... and what if this is as good as it gets ?"

---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to 
unsubscribe from this list.

Raspunde prin e-mail lui