70 votes

Le DNS Round-Robin est-il "suffisant" pour l'équilibrage de charge de contenu statique ?

Nous disposons d'un ensemble de contenu statique partagé que nous diffusons entre nos sites web à l'adresse suivante http://sstatic.net . Malheureusement, ce contenu n'est actuellement pas du tout équilibré en termes de charge - il est servi par un seul serveur. Si ce serveur a des problèmes, tous les sites qui en dépendent sont effectivement hors service car les ressources partagées sont des bibliothèques javascript et des images partagées essentielles.

Nous cherchons des moyens d'équilibrer la charge du contenu statique sur ce serveur, afin d'éviter la dépendance à un seul serveur.

Je me rends compte que le DNS round-robin est, au mieux, une solution de bas de gamme (certains pourraient même dire que c'est une solution de haut de gamme). ghetto ), mais je ne peux m'empêcher de me demander Le DNS round robin est-il une solution "suffisante" pour l'équilibrage de base de la charge d'un contenu statique ?

Il y a une discussion à ce sujet dans le [dns] [équilibrage de charge] et j'ai lu d'excellents articles sur le sujet.

Je suis conscient des inconvénients courants de l'équilibrage de la charge DNS par le biais de plusieurs enregistrements A round-robin :

  • il n'y a généralement pas de battements de cœur ou de détection de défaillance avec les enregistrements DNS, de sorte que si un serveur donné dans la rotation tombe en panne, son enregistrement A doit être supprimé manuellement des entrées DNS.
  • le temps de vie (TTL) doit nécessairement être fixé à un niveau très bas pour que cela fonctionne, puisque les entrées DNS sont mises en cache de manière agressive sur Internet.
  • les ordinateurs clients sont chargés de vérifier qu'il existe plusieurs enregistrements A et de choisir le bon.

Mais, le DNS round robin est-il suffisant comme solution de départ, mieux que rien, "pendant que nous recherchons et mettons en œuvre de meilleures alternatives" comme forme d'équilibrage de charge pour notre contenu statique ? Ou bien le DNS round robin ne vaut-il pas grand-chose dans le cadre de l'équilibrage de charge ? cualquier circonstances ?

3 votes

HAProxy n'est pas une option ?

7 votes

Comme je l'ai dit dans le message, il s'agit d'une question spécifique sur les points suivants este solution -- peut-on rester sur le sujet ?

4 votes

Équilibrage des charges ( fr.wikipedia.org/wiki/Load_balancing_%28computing%29 ) est très différente de la redondance ( fr.wikipedia.org/wiki/Redondance_%28ingénierie%29 ). Comme Jeff l'a indiqué dans son paragraphe d'introduction, il cherche un moyen d'éliminer un point de défaillance unique (redondance), et non un véritable équilibrage de la charge. Quelqu'un peut-il ré-étiqueter ?

1voto

Matias Nino Points 1616

L'équilibrage de charge round-robin ne fonctionne que si vous contrôlez également la zone DNS afin de pouvoir modifier la liste des serveurs et la transmettre aux maîtres de zone en temps utile.

Comme mentionné dans une des autres réponses, le mal caché du round-robin est la mise en cache DNS qui peut se produire n'importe où entre vos serveurs et le client, ce qui annule complètement le petit avantage de cette solution. Même avec un TTL DNS fixé à une valeur très basse, vous avez peu de contrôle sur la durée pendant laquelle le cache DNS du FAI ou même du client gardera l'adresse IP morte active.

C'est une amélioration par rapport à un SPOF, c'est sûr, mais seulement marginale. Je jetterais un coup d'œil à l'hébergeur de votre serveur et verrais ce qu'il a à offrir, beaucoup ont une sorte de service d'équilibrage de charge de base qu'ils peuvent fournir.

Vous pouvez tout aussi bien avoir un seul serveur avec le contenu statique dupliqué dans S3 et basculer sur le CNAME S3 lorsque votre serveur principal tombe en panne. Vous obtiendrez le même délai, mais sans le coût des serveurs multiples.

1voto

Mark Points 1

Cela dépend vraiment de ce dont vous parlez et du nombre de serveurs que vous faites tourner. J'ai eu une fois un site qui fonctionnait sur plusieurs serveurs, et j'ai utilisé le DNS round robin sur ce site en raison principalement de ma novice à l'époque, et ce n'était vraiment pas un gros problème. Ce n'était pas un gros problème parce que ça ne plantait pas. C'était un système vraiment stupide et non compliqué, il a donc tenu le coup, et avait un niveau de trafic assez constant. S'il tombait en panne à cause du trafic, c'était pendant la journée et je pouvais facilement m'en occuper. Je dirais que votre contenu statique est suffisamment simple pour ne pas provoquer de plantage par lui-même.

En dehors des pannes matérielles, etc., quelle a été la stabilité de votre serveur ? Quel est le niveau de trafic sur ce contenu ? En supposant qu'il s'agisse d'un serveur Apache ou autre et que le trafic soit relativement stable, il ne va pas se planter souvent et je dirais que le système round-robin est "suffisant".

Je suis sûr que je vais être descendu parce que je ne prêche pas une solution 100% HA, mais ce n'est pas ce que vous avez demandé. Tout dépend de ce que vous êtes prêt à accepter comme solution par rapport à l'effort dépensé.

1voto

Si vous utilisiez RR DNS pour l'équilibrage de charge, ce serait parfait, mais ce n'est pas le cas. Vous l'utilisez pour activer un serveur redondant, auquel cas ce n'est pas correct.

Comme l'a dit un post précédent, vous avez besoin de quelque chose pour détecter les battements de cœur et arrêter de les frapper jusqu'à ce qu'ils reviennent.

La bonne nouvelle est que heartbeat est disponible à un prix très bas, que ce soit dans les commutateurs ou dans Windows.

Je ne sais pas ce qu'il en est pour les autres systèmes d'exploitation, mais je suppose qu'il en est de même.

1voto

hughdbrown Points 15770

Je vous suggère d'attribuer une adresse IP supplémentaire à chacun de vos serveurs (en plus de l'IP statique que vous utilisez, par exemple, pour ssh), et de l'intégrer au pool DNS. Ensuite, vous utilisez un logiciel pour permuter ces adresses IP en cas de défaillance d'un serveur. Heartbeat ou CARP peuvent faire cela, par exemple, mais il existe d'autres solutions.

Cela présente l'avantage que pour les clients de votre service, rien ne doit changer dans la configuration, et vous n'avez pas à vous soucier de la mise en cache ou du TTL du DNS, mais vous pouvez toujours tirer parti de l'équilibrage de charge du DNS round-robin.

1voto

rrichter Points 2273

Cela fera probablement l'affaire, surtout si vous pouvez avoir plusieurs IP sur vos boîtes statiques. Ayez une IP "serve static content" et une IP "manage machine". Si une machine tombe en panne, vous pouvez soit utiliser une solution HA existante, soit intervenir manuellement pour faire apparaître l'IP de la machine défaillante sur l'un des autres "membres de la grappe" ou sur une toute nouvelle machine (en fonction de la rapidité avec laquelle elle sera mise en service).

Toutefois, une telle solution posera quelques petits problèmes. L'équilibrage de la charge sera loin d'être parfait et si vous comptez sur une intervention manuelle, vous risquez d'avoir des pannes pour certains visiteurs.

Un équilibreur de charge matériel peut probablement mieux répartir la charge et assurer la disponibilité du cluster que le DNS round-robin. D'un autre côté, il s'agit d'une (ou de deux, puisque l'idéal est d'avoir les LB dans un cluster HA) pièce de matériel qu'il faudra acheter, alimenter et refroidir et (éventuellement) prendre le temps de se familiariser avec (si vous n'avez pas déjà des équilibreurs de charge dédiés).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X