Round robin

Stellvia

WRInaute impliqué
Bonjour,

Imaginons que j'ais 1 site , 1 NDD et 4 serveurs dédié :

- SD1
- SD2
- SD3
- SD4

J'applique la méthode du round robin et je configure mon bind pour que chaque visiteurs soit rediriger aléatoirement sur un dédié .

j'en viens a 2 questions de noob :

1 : le premier truc qui me viens a l'esprit c'est comment ca se passe au niveau des liens , a chaque fois que le visiteur clic sur un lien ( interne ) le DNS le renvois aléatoirement sur un autre serveur ?

2 : .... a ce compte la comment faire pour avoir une seule BDD mysql ? Je veut dire par la j'aimerais pas que mes données soit enregistré sur un des serveur au hasard , mais toujours sur le meme .

C'est un peu flou pour moi le round robin....
 

dmathieu

WRInaute accro
La solution la plus simple serait de n'avoir qu'un seul serveur sql
et 3 serveurs web.
Ainsi, tu enregistre toujours au même endroit.

Autrement, une autre solution s'appelle le clustering. Mais en terme de technique, je ne saurais te dire comment mettre cela en place.
 

wullon

WRInaute accro
Je ne sais pas si tu voulais parler du Round Robin au niveau des DNS.

Dans ce cas là, c'est l'adresse IP associée au nom de domaine qui change, donc pas de problème pour les liens puisque c'est un nom. C'est ce que fait Google avec ses DC (entre autre).

Les problèmes qui se posent sont :
- la synchronisation des serveurs (il faut que les n serveurs renvoient les mêmes données à l'utilisateur)
- la conservation des sessions (si pour une raison X ou Y, l'IP associée au ndd change au cours du surf...)
 

biddybulle

WRInaute passionné
Le round robin te permet la répartition de charge et au niveau des serveurs et bien il se passe le pion mais quoi qu'il arrive il y en un en facade qui est chargé de la distribution. Le round robin pour un serveur apache c'est très bien mais si le serveur sur lequel pointe le DNS lâche c'est la misère car le DNS pointe sur une seule IP celle qui du serveur en charge du round robin.

C'est cher pour pouvoir mettre en place cela sur des DNS wullon, ou cela se fait très simplement ?

En ce qui concerne ta base de donnée, pour mysql par exemple tu peux la laisser accessible à tes 4 serveurs dédiés qui viendront se servir ou alors effectivement si elle est saturée au niveau des requêtes te lancer dans du clustering. J'en saurai plus bientôt, nous allons le tester sur du Microsoft virtual server avec des Ubuntu Server dedans.
 

Stellvia

WRInaute impliqué
mmmmmhhh

si a chaque fois que le visiteur charge une page , le serveur1 est a nouveau sollicité pour savoir lequel des serveur va charger la page , alors ca reviens au meme puisque du coup , serveur1 va se taper toutes les connection du site ?!

la je comprend plus l'interet ....



par contre si c'est au niveau du DNS que l'ip est attribué , la ca vaut le coup , mais c'est possible ou pas ? Parce que dans les dns de mes domaine en tout cas je peux mettre que DNS1 / DNS2 , enfin il me semble , ca depend du registar peut etre ?


EDIT :

j'ais été voir chez mon registar ( ovh ) , dans la gestion des dns , quand on clic sur "Mode: plus que 2 serveurs dns" , on a alors acces a 13 formulaires , c'est de ca qu'on parle ?

DNS1 (
DNS2 ( serveur1 )
serveur2
serveur3
serveur4
serveurX
serveurX
 

treivilo

WRInaute discret
Bonjour,

Dans l'idéal, la configuration d'un service ouvert sur le web (en mode "haute disponibilité") répond à certains impératifs d'architecture.

Il faut, au bas mot :

Partie résolution des noms d'hotes :


  • Une machine, appelons la ns1, qui est serveur DNS primaire
    Une machine, appelons la ns2, qui est serveur DNS secondaire
    Une machine, appelons la ns3, qui est serveur DNS tertiaire

Ces 3 résolveurs sont connus dans la zone dns et seront contactés dans l'ordre de leur inscription. Ainsi, si ns1 ne répond pas, le client contactera ns2 et, s'il ne répond pas à son tour, il contactera ns3.

Il est à noter que, selon je ne sais plus quelle RFC, ces 3 machines doivent être sur 3 réseaux différents, idéalement chez 3 prestataires différents.

Ensuite, pour la partie service en elle même ("front end") :


  • Une machine, appelons la www1, qui est serveur web primaire
    Une machine, appelons la www2, qui est serveur web secondaire
    Une machine, appelons la www3, qui est serveur web tertiaire

Qui seront, dans le cas d'un round-robin, contactés dans l'ordre dans lequel ils apparaissent dans la zone ou, selon la configuration, selon leur "poids" (le nombre de leurs occurences dans celle ci).

Vient enfin le "back office" qui lui peut être composé d'autants de machines que nécessaire, chacune se chargeant d'un ou plusieurs services (smtp, pop, mysql, logs, ...).

J'oublie dans cette liste les pare-feus, les éventuels proxies inversés, ...

Cette solution est "l'idéale", et peu de sites web demandent un uptime tel qu'il soit nécessaire de déployer une telle architecture.

Après, comme certains l'ont évoqué, tu peux te pencher vers une solution en cluster.

Là, les choses sont quelque peu différentes.

Pour mémoire, le principe du cluster est de faire en sorte que X machines physiques n'en constituent qu'une virtuelle. Tu utilises différentes adresses ip pour les faire communiquer entre elles (adresses de service, adresses de front end, adresses de back-end, adresse d'administration, ...). A noter que, pour un uptime frolant les 100% (ce que certains clients nous demandent dans ma vie pro), il est nécessaire que toutes ces adresses soient redondées sur différents réseaux, eux même redondés par différents routeurs.

Ici aussi, différentes possibilités :

Cas 1 : Tout est clusterisé en machines physiques :

Il faut un cluster de dns, puis un cluster de serveurs web, puis un cluster de back office, ....

C'est très très très cher, mais si ca répond à ton impératif de n'avoir, par exemple, aucun "SPOF" (Single Pointe Of Failure, Maillon Faible Unique), tu es à peu près tranquille, sous réserve que la disposition physique des machines suive (hors de question que toutes ces machines soient dans la même salle chez le même hébergeur).

Cas 2 : Tout est clusterisé mais en machines virtuelles :

Par exemple, tu prends un SF-25000 de chez Sun, sur lequel tu peux créer 16 domaines différents. Tu charges X domaines du dns, Y autres du Web et Z du back office.

Là, tu as un "spof", dans ce sens ou (si on considère qu'un seul SF-25000 fasse tout) si la salle oùest hébergé ton 25000 prend feu / a un défaut électrique / un avion s'écrase dessus / autre, ben tu arrêtes ta production.

Dans tout cela, je n'ai pas parlé des données en elles même. En effet, quelle utilité d'avoir X machines si elles partagent toutes le même système de stockage de données. Il faut donc adjoindre à cette architecture un réseau de stockge (SAN ou NAS) lui aussi redondé, au moins pour les données les plus critiques.

Certains utilisateurs, extrèmement exigeants en terme de disponibilité, ont besoin qu'en plus de cette architecture "primaire" tout soit redondé sur un site distant dit "secondaire". On parle alors de PRA (Plan de Reprise d'activité) ou DRP (Disaster Recovery Plan). Ce site est en sommeil pendant 99.999999999 % de l'activité. Le jour où survient la catastrophe (c'est à dire que le site primaire est down au dela d'un seuil convenu), la production bascule sur le site secondaire, soit dans des conditions identiques à la production primaire (on parle alors de PRA FULL), soit dans des conditions dégradées (on parle alors de PRA dégradé), au choix du client.

Tout cela pour dire que le monde de la haute disponibilité est un monde passionnant mais qui peut vite "rendre fou", dans ce sens où l'on peut aisément rentrer dans une course au "toujours mieux" et se retrouver avec des architectures hyper complexes.

Désolé pour la longueur de ce message,

Olive

Quelques infos supplémentaires :
 

biddybulle

WRInaute passionné
l'interêt stellvia c'est qu'en ce qui concerne le calcul des pages. Il n'est pas obligé de s'en occuper. cela c'est dans le cas ou tu n'as effectivement qu'une seule IP à associer pour Le DNS.

Mais si tu as plusieurs adresses ip différentes et bien tu remplis les adresses DNS et tu les rediriges vers chaque serveur web. Là c'est très bien mais c'est déjà plus cher.
 

Stellvia

WRInaute impliqué
Mais ca se passe comment au niveau des mails ?

Si j'envois un mail a user@XXX.com , avec un round robin sur 3 serveurs le mails a une chance sur 3 de se retrouver sur un des 3 serveurs oO et pour tous les récupurer on fait comment ?
 

wullon

WRInaute accro
En fait, pour l'email, il n'y a pas vraiment besoin de RRDNS, étant donné qu'il y a déjà une fonctionnalité pour indiquer plusieurs serveurs MX (mail exchanger) dans les DNS.

Il me semble qu'en pratique, les serveurs emails secondaires "stockent" les emails, et les réenvoient au serveur primaire dès que celui ici est up, mais je ne suis pas du tout sûr.
 

Stellvia

WRInaute impliqué
Salut tout le monde

Me revoila :p

J'ais modifier mes dns j'ais mis l'ip de mon dédié 1 en dns primaire et l'ip de mon dédié 2 en dns secondaire .

C'est bien comme ca que ca marche le round robin ???


J'ais uploadé 2 page différente avec le meme nom et quand je refresh www.mondomaine.com/page.php , c'est toujours la meme page qui apparait ( celle du dédié 2 )

Comment ca se fait ? y a u truc qui " activer le round robin " ? ca devrais alterner et ca alterne quedalle ><
 

wullon

WRInaute accro
Stellvia a dit:
Salut tout le monde

Me revoila :p

J'ais modifier mes dns j'ais mis l'ip de mon dédié 1 en dns primaire et l'ip de mon dédié 2 en dns secondaire .

C'est bien comme ca que ca marche le round robin ???
Pas du tout :D.

Tu as une redondance a niveau des DNS, c'est encotre chose.

Il faut que dans les DNS tu mettes quelque chose du genre :
Code:
www IN A IP1
www IN A IP2

Comment sont gérés tes DNS ?
 

Stellvia

WRInaute impliqué
ok lol j'avais rien compris

voila maintenant ma configuration :

DNS PRIMAIRE : IP_SERVEUR_1
DNS SECONDAIRE : IP_SERVEUR_2


SERVEUR 1 :

www IN A IP_SERVEUR_1
www IN A IP_SERVEUR_2

SERVEUR 2 :

www IN A IP_SERVEUR_2
www IN A IP_SERVEUR_1


j'ais bon cette fois ?

parce que ca alterne toujours pas ^^


dois-je changer aussi

IN NS
et
IN DOA

?

Merci d'essayer de m'aider wullon parce que je patauge la je t'explique pas ;)
 

wullon

WRInaute accro
Mais t'as bien paramètrer des serveurs DNS (en général c'est BIND) sur tes deux dédiés ?
Tu peux filer le domaine en MP ? Enfin normalement tu peux tester tout seul avec dnsstuff.com.
 

Stellvia

WRInaute impliqué
Voila le fichier .hosts du serveur dédié 1:

$ttl 86400
mondomaine.com. IN SOA sd1182.sivit.org.
webmaster.mondomaine.com. (
2006100502
21600
3600
604800
86400 )
IN NS sd1182.sivit.org.
IN MX 10 mail.mondomaine.com.
IN A IP_SERVEUR_1
www IN A IP_SERVEUR_1
www IN A IP_SERVEUR_2
mail IN A IP_SERVEUR_1

et le fichier .hosts du serveur dédié 2 :

$ttl 86400
mondomaine.com. IN SOA sd1187.sivit.org.
webmaster.mondomaine.com. (
2006100502
21600
3600
604800
86400 )
IN NS sd1187.sivit.org.
IN MX 10 mail.mondomaine.com.
IN A IP_SERVEUR_2
www IN A IP_SERVEUR_2
www IN A IP_SERVEUR_1
mail IN A IP_SERVEUR_2


Mais ca n'alterne rien du tout .... :oops: C'est toujours les pages du serveur1 qui sont affichées ( le serveur 1 est en DNS primaire je sais pas si ca un rapport mais je précise )
 

Stellvia

WRInaute impliqué
rectification ...

si je fait F5 ca change rien

en fait la page change si MOI je change d'ip

c'est normal ? c'est le principe ?
 

wullon

WRInaute accro
Hey, ça serait cent fois plus simple en connaissant le domaine en question.

Là, on (enfin en tout cas moi je le suis :eek:) est obligé d'interpoler un peu et c'est pas top.
 
Haut