Helló
Arra lennék kiváncsi, milyen megoldások léteznek erre.
Van egy weblap, ami mondjuk tükrözve van 2 szerver közt. Load balance van tehát mindkét szerver kiszolgál egyszerre, plusz ha kiesik az egyik akkor még mindig megy a másik.
Eddig jó a dolog, de hogy lehet ezt a rendelkezésre állást DNS szinten feloldani? Tehát a asdfgh.hu mutat egy IP-re akkor ha kiesik az egyik akkor át kell állítani a dns-t.
Amit én ismerek
1. round robin. Ez nem 100%-s hiszen a kiesett gép az timeoutolni fog és max refresh után kap adatot a kliens ha szerencséje van, tehát dns-hez kell nyúlni.
2. Proxy, ami érzékeli az egyik szerver kiesését és átterheli a forgalmat a maradékra. Viszont ha behal a proxy akkor megintcsak dnshez kell nyúlni, hogy menjen a dolog.
Van erre valami módszer amivel ezt fel lehet oldani?
- 2044 megtekintés
Hozzászólások
Na azért ez eléggé becsapós dolog...
Az 1. verzió esetén két külön hálózatban lévő gépekről beszélünk, amik között folyamatos szinkront kell biztosítani.
Két szolgáltatás, két elérési ponttal.
A 2. verziónál ezt kiegészíted/lerontod egy proxyval. A proxy így egyedüli elérési pontként működik.
Három szolgáltatás, egy elérési ponttal.
Szvsz. proxy-t nem ezért kell alkalmazni.
DNS-ben turkálni sem túl jó dolog, mivel a specifikáció szerint bizonyos ideig az adatokat lehet cache-elni...
Ez alatt "hiába" módosítasz...
Kérdés, hogy mennyi ideig "hagyod" hogy ne menjen valamelyik szolgáltatásod...
--
Debian Linux rulez... :D
- A hozzászóláshoz be kell jelentkezni
Általában ezt úgy oldják meg, hogy ha kieső gép IP címét átveszi a még élő.
A DNS-sel az a baj, hogy van egy kis késleltetése. Ezt ugyan lehet állítani, ám túl alacsonyra nem célszerű, mert akkor meg a millió névfeloldás öli le a rendszert.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
(főleg, ha a kliens is támogatja)
szerintem egy browser sincs, ami ismerné...
- A hozzászóláshoz be kell jelentkezni
A faék megoldás, hogy az szolgáltatás két "virtuális" IP-n (tehát nem ez a vas elsődleges címe) fut és ha elmegy az egyik gép, akkor a másik felveszi kieső gép extra IP-jét. Ez persze fullos szinkront feltételez és pl. az adatbázist nem tudom hogy fogod normálisan tükrözni, illetve visszaállni vele. (Tudom létezik a master-master replikáció is...) Ez természetesen a földrajzi redundanciát erősen lecsökkenti és mindenképp egy szolgáltatóhoz köt.
Ha a DNS-el akarsz játszani azt is lehet, ha mondjuk 5 perces TTL-t adsz meg az A rekordoknak. A szinkronizálás problémáját itt is erősen át kell gondolni és a gépek működését nem árt két független helyről intézni.
Az sem árt, ha mondjuk 3 különféle szolgáltatónál vannak a névszerverek, hogy ezen se múljon a dolog.
- A hozzászóláshoz be kell jelentkezni
Egy szolgáltató virtuális gépekkel, csak eltérő helyen. Master-master replikáció. Az oldal állhat valamenyit, csak ne órákat.
- A hozzászóláshoz be kell jelentkezni
- a DNS megváltoztatása hiba esetén: ezzel az a gond, hogy irgalmatlanul nagy timeoutot eredményezhet (hiába állítod 60 másodpercre a ttl-t; vannak szolgáltatók, akik ezt felülbírálva min. x másodpercre cache-elnek, az a kliens, aki az ő dns resolverüket használja, az akár 1 óráig a rossz adatot láthatja; a ttl a kliens programot nem biztos, hogy érdekli, nem is biztos, hogy eljut hozzá, azaz elkezdi nézni az oldalt a user a browserből, és lehet, hogy a browser újraindítása nélkül nem találja meg az új ip-címet)
- a több IP cím a DNS-ben: ezzel az a gond, hogy a kliensek egy jó része eleve nem tudja kezelni a több IP-címet (random az egyiket használják, és kész, ha nem megy, akkor bukta), a nem működő IP-címre sokáig timeoutol a connect, amelyik kliens kezeli a több IP-címet, azok sem jegyzik meg, hogy melyik a jó IP-cím, azaz a timeout akár kérésenként is megismétlődhet!
- HA szerverpár egy LAN-ban: ez nagyjából a megvalósítható, és megfizethető megoldás
- proxy/DNAT/előtét load balancer: ez megvalósítható, igaz, akkor van értelme, ha HA a proxy/DNAT tűzfal/előtét load balancer, viszont a szolgáltató segítsége nélkül nehéz kétgéptermes redundáns megoldást nyújtani (két szolgáltatóst meg pláne nagyon nehéz) - de nem lehetetlen
- A hozzászóláshoz be kell jelentkezni
A "több IP a DNS-ben"-hez:
A kliens nem szokta ezt a helyzetet "kezelni". Round-robin módban használja az első címet.
Pl.:
# host www.google.hu
www.google.hu is an alias for www.google.com.
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 209.85.148.105
www.l.google.com has address 209.85.148.106
www.l.google.com has address 209.85.148.147
www.l.google.com has address 209.85.148.99
www.l.google.com has address 209.85.148.103
www.l.google.com has address 209.85.148.104
www.l.google.com has IPv6 address 2a00:1450:4001:c01::93
# host www.google.hu
www.google.hu is an alias for www.google.com.
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 209.85.148.104
www.l.google.com has address 209.85.148.105
www.l.google.com has address 209.85.148.106
www.l.google.com has address 209.85.148.147
www.l.google.com has address 209.85.148.99
www.l.google.com has address 209.85.148.103
www.l.google.com has IPv6 address 2a00:1450:4001:c01::93
--
Debian Linux rulez... :D
- A hozzászóláshoz be kell jelentkezni
"azaz a timeout akár kérésenként is megismétlődhet!"
Elso http lekerdezesre redirecttel kell valaszolni, ami az ipre mutat, es akkor nem lesz tobb nevfeloldas. Feltetelezem, csak egy vhost fut rajta.
- A hozzászóláshoz be kell jelentkezni
Sajna nem csak egy :(
- A hozzászóláshoz be kell jelentkezni
Ezzel viszont:
- onnantól kezdve annak a usernek már nem lesz failover, csak ha visszaballag a nyitóurl-re, amit az emberek 99%-a nem csinál meg
- ha az illető netán elbookmarkolja így az oldalt, akkor máris lesz neki egy nem mindig működő linkje
Szóval ezzel nem sokat javítottunk...
Feltetelezem, csak egy vhost fut rajta
Ez nem probléma; lehet csinálni a hostnévhez 1-1 gépenként dedikált nevet, és akkor arra lehet átdobni a usert.
- A hozzászóláshoz be kell jelentkezni
UGy ertettem, ha a masik nem elerheto. Igazabol egy jo serverhostingos helyen, megbizhato serverrel, nem hiszem, hogy evi szinten tul sokszor lenne ilyen, ez ido alatt valaki bookmarkol, szvsz vallalhato dolog.
Egyebbkent eredeti felteves valszeg nem mukodik a bongeszok kiszamithatatlansaga miatt.
- A hozzászóláshoz be kell jelentkezni
"1. round robin. Ez nem 100%-s hiszen a kiesett gép az timeoutolni fog és max refresh után kap adatot a kliens ha szerencséje van, tehát dns-hez kell nyúlni."
meglepo modon eleg sok browser/kliens ilyenkor raprobal a masik ip-re, ahelyett, hogy hibauzenetet adna a felhasznalonak (a bongeszes viszont egy picit lassabb lesz, mert tovabbra is kap kereseket a halott node)
"2. Proxy, ami érzékeli az egyik szerver kiesését és átterheli a forgalmat a maradékra. Viszont ha behal a proxy akkor megintcsak dnshez kell nyúlni, hogy menjen a dolog."
a loadbalancert/proxy-t is lehet HA-ba tenni (VRRP/CARP, vagy csak valami fapados heartbeat+arping), illetve lehet IP szinten is balanceolni a forgalmat (BGP/OSPF/IGRP balancing) de nyilvan ez nem az a kategoria.
Tyrael
- A hozzászóláshoz be kell jelentkezni