Haute disponibilité multi-sites

15

Nous avons une application SaaS dont nous devons être hautement disponibles. Nous avons déjà un cluster de basculement Hyper-V coûteux et bien entretenu, mais aujourd'hui, le centre de données où nous hébergeons ce cluster a subi une panne de courant de cinq heures qui nous a complètement mis hors ligne. Alors maintenant, nous nous demandons si une meilleure approche pourrait être d'utiliser des serveurs dans deux centres de données distincts. En supposant que nous obtenons toutes les fonctions de réplication de fichiers back-end et de réplication de données entre ces deux sites, nous nous demandons comment gérer le routage frontal - pas étonnant comment nous abordons le problème, nous nous retrouvons toujours avec l'équilibreur de charge étant un seul point d'échec.

La question est donc ... comment pouvons-nous mettre en place un équilibrage de charge entre deux sites d'hébergement de telle sorte que l'équilibreur de charge ne soit pas le seul point de défaillance? Existe-t-il un moyen d'utiliser deux équilibreurs de charge distincts, un sur chaque site? Devrions-nous envisager un DNS à tour de rôle?

Mike
la source

Réponses:

14

Pour le faire correctement, vous devez avoir:

  • Deux instances séparées dans deux centres de données (comme vous l'avez déjà déterminé)
  • Synchronisation entre les deux centres de données (comme vous l'avez déjà déterminé)
  • Un moyen de rediriger les clients de l'un à l'autre en cas de panne

Il existe deux façons courantes de procéder. Un simple, un ... pas.

DNS

Le DNS Round-Robin n'est pas tout à fait ce que vous voulez, car il est probable que toutes les demandes soient envoyées au contrôleur principal de domaine, et le deuxième contrôleur de domaine n'est utilisé que pendant les temps d'arrêt du premier.

Ce que vous pouvez faire cependant, c'est définir un TTL très bas sur votre DNS (disons, 30 secondes ou 5 minutes), ce qui signifie que si votre contrôleur de domaine tombe en panne, vous mettez simplement à jour votre DNS et dans les 5 minutes environ, tous vos clients pointeront vers votre autre DC.

Cela signifie que, comme vos deux contrôleurs de domaine auront des dispositions IP différentes, vous devez vous adapter à cela dans votre configuration du centre de données.

BGP

Fondamentalement, si vous posez cette question, cela est hors de votre portée. En bref, vos adresses IP restent les mêmes, mais elles sont "déplacées" d'un centre de données à l'autre. Cela implique des routeurs coûteux, des plages IP coûteuses et des abonnements coûteux à votre registre local pour les numéros AS et les plages IP.

Vos routeurs BGP cessent de faire de la publicité sur votre centre de données principal et commencent à faire de la publicité sur votre centre de données secondaire. Ensuite, Internet parcourt le centre de données hors ligne et envoie du trafic vers votre nouveau contrôleur de domaine.


Si vous êtes virtualisé avec ESXi et vSphere, VMWare a un assez bon produit que nous avons testé une fois appelé VMWare Site Recovery Manager , qui fait essentiellement tout pour vous. Il maintient vos configurations VM synchronisées et les alimente sur le 2ème site lorsque le 1er site est hors ligne. C'est beaucoup d'argent cependant.

Mark Henderson
la source
Même avec SRM, vous devez toujours trier les éléments de réplication ainsi qu'une sorte de basculement IP.
EEAA
Certes, bien que esxi5 ait un nouveau produit de réplication non San. Je n'y ai cependant pas beaucoup réfléchi.
Mark Henderson
Oh c'est vrai. Je me souviens avoir entendu quelque chose à ce sujet.
EEAA
1

Vous devez équilibrer la charge des équilibreurs de charge.

Vous pouvez le faire avec le round-robin DNS mais cette approche pose de nombreux problèmes. Vous ne pouvez pas contrôler les clients qui mettent en cache les entrées plus longtemps que vous ne le souhaitez et vous ne pouvez pas forcer le trafic à se rendre à un certain emplacement.

Vous pouvez également le faire avec Global Server Load Balancing (GSLB). Il s'agit d'un moyen plus avancé d'exploiter le DNS pour vous donner une visibilité sur plusieurs centres de données à partir d'Internet. En bref, vous configurez un mécanisme pour diviser votre trafic en tranches et utilisez DNS pour choisir une tranche. Nous utilisons un hachage du résolveur DNS configuré pour effectuer des recherches pour le client. D'autres personnes utilisent la géographie pour se rendre au centre de données "le plus proche". Vous devrez ajouter un mécanisme pour supprimer rapidement une adresse IP du GSLB en cas de panne d'un point de défaillance unique pour ce centre de données ou ce cluster.

http://www.eukhost.com/web-hosting/kb/global-server-load-balancing/

Enfin, certaines personnes très avancées s'attaquent à ce problème avec Anycast DNS. Cela tente à nouveau de tirer parti de l'approche du centre de données "le plus proche". Anycasting votre service signifie que vous devrez éliminer toute «état». Cela peut s'avérer difficile.

dmourati
la source
Il semble que cette approche ait toujours un seul point de défaillance, le «serveur maître» décrit dans le lien que vous avez fourni.
Mike