Sziasztok,
Felmerült itt nálunk egy olyan igény, h. hajj de jó lenne nekünk valami magas rendelkezésre állású, load balanced sql megoldás.
Én az Oracle RAC-ot ismerem ilyen szinten, a többi lehetőség elég ködös. Olyan szinten ismerem az alternatívákat, hogy míg a RAC az "everything shared", addig a többiek leginkább a "nothing shared" architektúrát valósítják meg.
A fő gondom, hogy hw szinten nekünk inkább az Oracle megoldása lenne kényelmes, de ugyanakkor szeretnék egy esélyt adni az alternatív megoldásoknak is, mert valahogy mostanában nagyon nem húz a szívem a jósda felé :)
A kérdés tehát az lenne, hogy kinek milyen tapasztalata van ebben az Sql clustering témakörben? Érdemes belevágni, vagy jobb az active/passive megoldás? SAN-ról ha ki tudok tolni 2-3 szerver meghajtására képes IOPS-t és adatmennyiséget, akkor érdemes-e szórakozni a mysql féle replikációs megoldással h. minden van mindenhol, de semmi sincs egy helyen? Hiretlen ennyi hülye kérdés jutott eszemebe, köszi a válaszokat!
Üdv,
Zoli
- 2168 megtekintés
Hozzászólások
én még nem láttam tisztességesen működő, supportált clustert postgreshez. A 9-esben már van valami, de azt még nem láttam.
- A hozzászóláshoz be kell jelentkezni
hm, akkor annak utána fogok nézni, köszi.
Az a legnagyobb kínom h. meg tudom oldani a SAN-t alá, akár egy ocfs2-vel pl., és a lun-t tudom még tükrözni is másik storage-ra is hwesen, de erre a kócerájra sajnos pont az ora féle rac a leginkább "ajánlott", erre szeretnék valami alternatívát, de még én sem láttam semmit ami tuti lett volna :(
- A hozzászóláshoz be kell jelentkezni
egy komoly ellenérvet tudok a rac ellen: azt a kis számocskát a számla végén (a total sum sorban) :))
ha ez neked nem gond, akkor maradj a rac mellett.
postgres téren nem túl rég végignéztem mindent, amit találni lehetett és egyik sem volt jó. ebbe beleértendő a pénzes supportos verzió is. akkor még volt raidelhető sql frontend is, azóta nem tudom, mit csináltak vele.
- A hozzászóláshoz be kell jelentkezni
A te ellenérved az én ellenérvem is. :) Csak ezt nem akartam a nagy publikum felé ellenérvként írni, mert jönnek a trollok h. meg kell fizetni, így-úgy-amúgy...
A 9-es az amelyiknél vannak már ilyen jellegű fejlesztések is? Nézek mindjárt egy changelogot.
- A hozzászóláshoz be kell jelentkezni
Nézd, azt, amit azért a sok-sok pénzért tud a RAC, senki mástól nem kapod meg.
Egyszerűen _nincs_ konkurens termék.
Ha engedsz az igényekből, akkor más megoldások is szóbajöhetnek, de ezen a ponton vagy fájdalmas lesz a kompromisszum, vagy az alkalmazásod nem tud architektúrafüggetlen lenni. Azaz be kell építened az alkalmazásba a replikáció valamilyen szintű ismeretét/kezelését - ettől már csak egy lépés, hogy magát a replikációt (elosztott adatbázist) is az alkalmazásod csinálja, és akkor viszont a határ a csillagos ég tudásban és funkcionalitásban.
- A hozzászóláshoz be kell jelentkezni
Nézd, azt, amit azért a sok-sok pénzért tud a RAC, senki mástól nem kapod meg.
A kérdés mindig az, hogy valóban kell-e az a sok-sok minden sok-sok pénzért, amit a RAC adni tud. Előszeretettel tolják a RAC-ot a sales emberek, csak azt felejtik el sokszor, hogy a RAC akkor ad sok-sok előnyt, ha sok-sok PLSQL futkos az adatbázis felett, de simán eladnak RAC-ot olyan helyre is, ahol egy tábla van ezer bejegyzéssel, csak vegye meg az ügyfél, mert jól jön majd, ha lesz kétszer ekkora adatbázisa.
Ha felmerült a váltás lehetősége, akkor igen esélyes, hogy nincs sok-sok PLSQL, hanem az üzleti logikát az alkalmazás rétegben oldják meg, onnan pedig INSERT/SELECT/UPDATE/DELETE utasításokon kívül nem használnak más SQL parancsot. Ebben az esetben tökéletes megoldás lehet a MySQL és a PgSQL cluster is...
--
http://wiki.javaforum.hu/display/~auth.gabor/Home
- A hozzászóláshoz be kell jelentkezni
Pont az ilyen jellegű alternatív megoldások érdekelnek, csak valahogy mindegyik más filozófiával fogja meg ugyanazt a kérdést.
Tehát egzakt shared storage, több node, load-balanced megoldást nem nagyon találtam sem a mysql, sem a pgsql háza táján. Mindenki mindenkivel replikál össze-vissza, de nekem meg pont nem erre lenne szükségem, mert ezt storage szinten elintézem + elég megbízható a storage-em ahhoz h. rá merjem bízni a cuccot mindenféle sw replikáció és stb. nélkül, jah és elég lenne az IOPS / Mbps páros is a dolog alá, tehát azt nem nagyon akarom disztibutálni (szép magyar szó :) )
Btw. igen, leginkább alkalmazás rétegben lenne megoldva a kényes rész. Nem mondom h. nem használnánk triggert, joint, tranzakciót, de ez már csak ilyen business.
- A hozzászóláshoz be kell jelentkezni
Osztott storage fölé nagyteljesítményű SQL szervert nehéz csinálni, eleve arra kell tervezni. Nem hiszem, hogy a közeljövőben bármilyen SQL szerver csak úgy hiphop adjon egy ilyen fícsört, nem érdemes várni se. (Úgy érzem a világ is inkább a shared-nothing clusterek felé megy.)
A Mysql 5.5 -el jön a félszinkron replikáció ami tovább bővíti a replikációban rejlő lehetőségeket, de ez még nem RAC. A Mysql clusternek semmi köze az osztott storage -hoz, bár szinkron a replikáció, más téren erőteljesen kompromisszumos a dolog, a képességeihez kell tervezni az applikációt, nem lehet csak úgy bedobni a meglévő adatbázisokat.
Ha neked RAC kell, akkor neked RAC kell. :) Ahogy más is írta, nincs párja. Ha ragaszkodsz az osztott storage-hoz akkor nem is lesz.
Az MSSQL/DB2 és a többi zárt nemtom hogy áll ezen a fronton.
- A hozzászóláshoz be kell jelentkezni
subscribe
- A hozzászóláshoz be kell jelentkezni
nálunk is lesz/készül elvileg valami mysql cluster, aminek társadminja leszek. ha lesz kézzel fogható eredményünk meg kapok engedélyt rá, akkor firkálok róla valamit.
--
A gyors gondolat többet ér, mint a gyors mozdulat.
- A hozzászóláshoz be kell jelentkezni
Hogy a többi fórumozót idézzem: subscribe (mert eléggé érdekelne a megvalósítás).
Egyébként a környezet hasonló? Mármint shared storage?
- A hozzászóláshoz be kell jelentkezni
A mysql nem tud shared storage-ot kezelni párhuzamosan két gépről, mert nincs benne distributed lock manager. És nem tudok róla, hogy készülne ilyen, ergó egyhamar nem is lesz (az Oracle meg ugye minek akarna ilyet? akinek ez kell, az vegyen tőle szépen RAC-ot - na ezért nem hiszem, hogy ilyet akarnának írni)
- A hozzászóláshoz be kell jelentkezni
Beta meg, de eleg igeretes, kertem toluk beta verziot, es jo cucc lesz: scaledb.com.
- A hozzászóláshoz be kell jelentkezni
Ez erdekesen nez ki. Tud intra-query parallelism-et? (gyk. ugyanaz a query tobb CPU-n fut ugyanazon a gepen)
- A hozzászóláshoz be kell jelentkezni
Nem, de allitolag tervezett feature, a RAC szintu accounting is. Igaz, eleg sok open source project van szep tervekkel:).
- A hozzászóláshoz be kell jelentkezni
Amit leírtak, az jól hangzik. Kérdés, hogy mi válik belőle valósággá. :)
Meg mintha nem open-source alapon képzelnék el ennek a terméknek a jövőjét...
Mondjuk ha ilyet írnék, én is inkább meggazdagodni szeretnék belőle :D
- A hozzászóláshoz be kell jelentkezni
I like it! (burkolt +1)
SPAMtelenül - MX spamszűrő szolgáltatás, ahogyan még sosem próbálta
- A hozzászóláshoz be kell jelentkezni
EZ nagyon tetszik. Kérdés h. mennyire fog fejlődni, illetve mennyiért akarják osztogatni.
- A hozzászóláshoz be kell jelentkezni
mysql-cluster
orákel szerint carrier-grade
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
Ezzel csak az a baj, hogy egyedul az NDB storage engine supportolt, tehat az egesz adatbazis el kell ferjen a RAM-ban kb. 2x.
(7.1 utan elvileg a nem indexelt oszlopokat ki tudja irni lemezre is, de errol meg nem lattam tesztet/nem probaltam)
- A hozzászóláshoz be kell jelentkezni
hát, ram mindig kell...
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
a vonatkozó árajánlatok mindenképpen...:)
- A hozzászóláshoz be kell jelentkezni
hja:D
de már apt-get install mysql-cluster is megoldja, igaz, support nélkül.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
Mondom a teljes DB meret x2 RAM kell neki. Akarsz minden gepbe 64Gb+ RAM-ot? :-)
(es akkor meg csak egy nyuzuge ~30Gb db-rol beszelek, es ez csak a storage igeny. Erre jon az os+cache.
- A hozzászóláshoz be kell jelentkezni
Tudom neked soknak tunik a 64GB de nem az :)
--
1 leszel vagy 0 élő vagy hulla!
- A hozzászóláshoz be kell jelentkezni
Nem abszolut ertekben soknak, hanem szimplan storage-re feleslegesnek :-)
- A hozzászóláshoz be kell jelentkezni
Ennyi erővel a 30GB-os adatbázis is felesleges :)
"640KB ought to be enough", ahogy bölcs vezérünk is megmondta
- A hozzászóláshoz be kell jelentkezni
értem én, és igen :)
De majd legyőzik. Vagy addig imádkozok amig valaki megirja a Slony-III -at.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
úgy érzem, a slony3-at a pg9 elavulttá tette...
- A hozzászóláshoz be kell jelentkezni
remélem is.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
kicsit felreertheto szerintem a megfogalmazas.
arrol van szo, hogy 5.0-s mysql clusterben minden in-memory volt, es az adatvesztes elkerulese miatt ebben a felallasban minden adat legalabb 2 node-on meg kell hogy legyen.
(SizeofDatabase × NumberOfReplicas × 1.1 ) / NumberOfDataNodes
5.1-ben mar lehet lemezen tarolni a nem indexelt oszlopokat:
http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-disk-data.html
Tyrael
- A hozzászóláshoz be kell jelentkezni
Szia!
Én a RAC-hoz hasonló megoldást csak DB2-vel hallottam és az is csak main frames gépeken, igaz itt nem az adatbázis szoftver tudja a leállás nélküli átkapcsolást hanem a main frame memória átvándorlás megoldása. De ezt csak hallottam, nem 100 hogy így is van, Oracle DB-kel dolgozok nem DB2-vel.
Szerintem pontosan fogalmazd meg mit is akartok megvalósítani. Kell-e nektek a DB szinten való load-balancing, vagy csak a HA megoldás kell, ha elég a HA megoldás milyen is kell pontosan, Data-Guard,Stream,Cold Failover, ha Cold Failover-es akkor milyen, kézi átkapcsolásos, oracle clusterware-rel megoldott vagy esetleg 3rd party féle átkapcsolásos.Ha Data-Guard-os akkor logikai vagy fizikai ezenkívül maximális védelem, maximális rendelkezésre állás vagy maximális teljesítmény módban. Ha RAC-ot akarok akkor az alkalmazásaitok amik rajta fognak futni nem e ütköznek bele a RAC hibáiba, mert sajnos vannak neki, és lehet pont emiatt fogjátok megutálni a RAC-ot, mert amire nektek kell arra nem jó, holott szerintem az egyik legnagyobb találmánya az ORACLE-nek.
Oracle szinten így hirtelen ennyi jutott eszembe, amivel foglalkoztam is, bár a stream-est még sose próbáltam /Primary DB és a Secondary DB között oracle stream megoldással kerülnek át az adatok/, ezt én is csak hallottam. Lehet ezenkívül még vannak újabb megoldások.
Én azt javasolnám, hogy szedd össze pontosan mit és mire is szeretnétek használni, és ezután érdeklődd meg melyik megoldás is lenne a legjobb nektek.
- A hozzászóláshoz be kell jelentkezni
A DB2 normal PC-n is tudja, a Workgroup Edition-tol felfele, PureScale neven fut, es teljesen korekt shared everything cluster megoldas. A z/OS verziobol portoltak lefele, es aki hasznalta mar, a szerint nagyon durvan jo, egyeduli problema csak az ara (15k USD/socket, bar az meg mindig jobb mint a RAC).
Ha mar DB2, nekik van egy HADR nevu verzio is, ami 2 gepes hotspare shared nothing cucc, ezt probaltam is, HA/DR celokra jo, viszont clusterezni (teljesitmeny-novelesi cellal) csak bizonyos trukkok mellet (A server master x db-n, slave y db-n, B server master y db-n, slave x db-n0) Elonye hogy baromi stabil, megbizhato es relative fagyipenzbe kerul (1500USD/szerver)
- A hozzászóláshoz be kell jelentkezni
Ez a DB2 HADR még érdkes is lehetne, gondolom a meglévő GPFS-em felett is tudna futni pl. :)
- A hozzászóláshoz be kell jelentkezni
A HADR az shared nothing, tehat nem kell kozos tarolo, mind2 szervernek sajat replikaja van a teljes db bol. Gyk ugy mukodik hogy diszkreiraskor a master elkuldi a binaris logot a slave-nek, amelyik ugyanugy beleirja (a mar kiszamolt) datat a sajat db-jebe. Lehet szinkron es aszinkron verziot is csinalni belolle, eleg popec cuccc.
- A hozzászóláshoz be kell jelentkezni
Hm, ebben az esetben viszont nem tudom kitolni a storage-ről a performanciát, hacsak mondjuk nem azt csinálom h. pl. 2 lunon vannak a cuccok, 1-es lun a master, 2-es a slave és akkor egy ilyen "fura" elosztás, mint amit javasoltál is. Tükrözés meg TrueCopy és van még 1 mirrorom másik storage-re is. Atombiztos kb.
- A hozzászóláshoz be kell jelentkezni
Persze, a HA/DR-nek az a lenyege hogy ne legyen SPOF benne, tehat a storage sem. Persze ettol meg ha szeretned, lehet ugyanarra a storage-re rakni (szinkron modban, aszinkronban semmi ertelme)
- A hozzászóláshoz be kell jelentkezni
Ez a technológia ha jól értem megfelel az ORACLE dataguard-jának. Azaz amit végrehajtottam SQL utasítás(vagy ha akarom akkor asszinkron módba később) szinkronizál a slave/standby felé.
Ezért is írtam, hogy pontosan mondja el mit szeretne mert elég sok megoldás létezik, de a RAC amit előtte szeretett volna az nem DR megoldás.(Lehet DR is de azt csak bizonyos távolságban, ezért szokták azt csinálni hogy egy RAC cluster az 1ik telephelyen egy RAC cluster a másik telephelyen és közte DataGuard szinkronizál, csak ez nagyon költséges).
- A hozzászóláshoz be kell jelentkezni
http://wiki.postgresql.org/wiki/Postgres-XC
talán. kéne hozzá vagy 3-4 gép és kipróbálnám. Mondjuk akkor a mysql-cluster -t is, de ahhoz minimum 5 kell, hogy értelme legyen.
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
Prodba 5 kell, de tesztelni boven eleg 4 is, az egyik sql node siman lehet a management node-n, nem ad hozza tul sok terhelest.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Bar ez is Oracle, es egyre erdekesebb license araik vannak, de a mysql ndb cluster nem olyan rossz, de teny, hogy nincs osszehasonlitasi alapom, mert csak ezzel dolgozom. :) Sok RAM, es viszonylag gyors diszk alrendszer kell (LCP/GCP generalas miatt). Maga a cluster manageles viszont elegge kezi vezerlesu. Nalunk van alatta egy OpenSAF alapú mukodo middleware.
- A hozzászóláshoz be kell jelentkezni
Amennyit azon managelni kell... Nekem a tesztgepek siman visszamasztak a clusterbe ha elhalaloztak. Persze, lehet, h eles kornyezetbe nem ilyen jok a tapasztalatok.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
A clusteren beluli manageles meg nem trukkos, de ha meg arra huzol egy reteget...
Pl. van egy clustered, amiben van:
2 ndb management node
x db storage node, paronkent szinkron replikacioval
x db sql node, amikhez az applikaciok kapcsolodhatnak
majd kitalalod, hogy ez igy keves, es az egeszet megduplazod egy masik szolgaltatonal, a ketto kozott pedig csinalsz egy aszinkron replikaciot. Na itt mar kezd bonyolultabb lenni a management... :)
- A hozzászóláshoz be kell jelentkezni
A sima master-slave replikacio miert nem volt jo?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Jo az :)
A ket nagy cluster kozott master-slave (aszinkron) replikacio van. Mivel fizikailag is messze vannak egymastol, a szinkron replikacio szoba sem johet.
A kis clusterben a node groupon belul pedig szinkron replikacio van. (asszem 2PC amit a mysql hasznal)
Tehat van ket site, a ketto kozott aszinkron replikacio, a siteon belul pedig szinkron replikacio.
- A hozzászóláshoz be kell jelentkezni