Journal load balancing avec balance

Posté par  (site web personnel) .
Étiquettes :
0
12
oct.
2005
bonjour cher journal,

cela fait bien longtemps que je n'avais pas partagé avec toi une découverte qui m'a bien fait plaisir.
en cherchant une solution de répartition de charge (load balancing), j'ai pu trouver des solutions des plus simples, au plus compliquées.
en passant du DNS round robin au LVS et son problème d'adresse MAC...

et , par hasard, je tombe sur un logiciel tout simple, qui se nomme simplement balance.

il est distribué sous GPL, et est disponible à cette adresse :

http://www.inlab.de(...)

balance est un proxy tcp qui marche au niveau user.
c'est à dire qu'il tourne comme un daemon, qu'il faut être root pour écouter les ports en dessous de 1024... etc

il s'installe d'une manière on ne peut plus simple.
un simple make && make install et vous voila prêt. (testé sur une debian sarge)

vous voila prêt à faire votre répartition de charge...

./balance http serveur_1 serveur_2

fera du load balancing du port 80 sur le serveur_1 et sur le serveur_2, le plus simplement du monde.

comme il s'agit d'un proxy tcp, dans les logs du serveur web, vous verrez l'IP du serveur ou balance a été lancé, et non pas l'IP du client web. ce qui peut être gênant pour le calcul des statistiques...
mais pour servir des images, ou des vidéos...

balance peut gérer le nombre de session simultanées, le fail over (la bascule quoi...)

on peut se connecter en mode interactif avec le deamon qui tourne, pour modifier la configuration.

c'est vraiment un logiciel très simple qui respect à mon point de vue le KISS (Keep It Stupid Simple)

je vous laisse le soin de le découvrir par vous même.
c'est un vrai plaisir. (je vous le dit, ça se teste en 10 minutes, montre en main)

j'ai pu rentrer en contact avec son auteur, il m'a répondu dans les deux heures, ce qui est bien agréable en cas de réflection intense sur un problème technique :-)

il y a sur ce même site deux autres logiciels qui ne sont pas open source (tcpproxy et balanceng) qui offrent plus de possibilitées.
(par exemple, le VRRP, ...)

bon test donc :-)
  • # Moi c'est Haproxy

    Posté par  (site web personnel) . Évalué à 2.

    Perso, moi j'utilise un truc qui s'appelle HAPROXY. C'est téléchargeable ici http://w.ods.org/tools/haproxy/(...) et c'est très simple.
  • # Y a aussi pen et pound

    Posté par  (site web personnel) . Évalué à 2.

    pound pour le http avec stick load balancing sur cookie (mais effectivement HAproxy a l'air plus propre) :
    http://www.apsis.ch/pound/(...)

    pen pour tout le reste (tcp) :

    http://siag.nu/pen/(...)

    super simple a utiliser mais je ne me rappelle plus des limitations.
  • # mes p'tis liens

    Posté par  . Évalué à 2.

    Pour ceux qui veulent tester des solutions cluster mais qui n'ont qu'une machine, voici un point de départ qui peu s'avérer utile :

    * Highly Available NFS-server using DRBD, Heartbeat and User Mode Linux : http://www.geocities.com/arhuaco/doc/uml/uml-drbd-nfs-heartbeat.htm(...)

    Ce que tu nous présente la ressemble fortement à :
    http://www.ultramonkey.org/3/topologies/sl-ha-lb-overview.html(...)
    http://www.ultramonkey.org/3/topologies/sl-ha-lb-eg.html(...)

    et je m'en vais essayer Balance de ce pas !
    • [^] # Re: mes p'tis liens

      Posté par  (site web personnel) . Évalué à 1.

      merci !
      c'est vraiment tres sympa, et tres pratique de pouvoir partager ses connaissances comme ca.
      j'ai jeté un coups d'oeil sur ldirectord, mais on y retrouve le meme probleme d'adresse MAC, qu'il faut faire des alias sur le loopback, etc...
      soit, c'est faisable, et ca marche bien.
      mais c'est plus sioux, et moins rapide.

      en cas d'astreinte, de nuit, pour pouvoir remonter un service sur une machine, ou un load balancing en 5 minutes, je me suis dit que balance etait une solution à garder dans sa boite à outils.

      un autre avantage que je vois à cette solution, c'est que par exemple, pour faire du load balancing de serveur web, on ne modifie pas la conf apache, on est pas obligé de jongler avec differents virtualhosts ecoutant sur differentes IP.
      on peut tester de n'importe ou le comportement des vrais serveurs.
      et ca, c'est quand meme mega pratique.
      c'est une chose qui me fait ne pas utiliser LVS en NAT par exemple...

      voila voila :-p
      • [^] # Re: mes p'tis liens

        Posté par  . Évalué à 2.

        en cas d'astreinte, de nuit, pour pouvoir remonter un service sur une machine, ou un load balancing en 5 minutes...

        En cas d'astreinte de nuit, quelque soit la manière dont est fait ton cluster (load balancing ou fail over), si un noeud tombe, c'est pas grave (à condition que ton cluster joue son rôle). Il n'y a "qu'a reinstaller et redescendre les sauvegardes" sur un nouveau noeud.

        ... je me suis dit que balance était une solution à garder dans sa boite à outils.

        Ou dans son bookmark ;)

        ... on peut tester de n'importe ou le comportement des vrais serveurs....

        Hum, pas sur des serveurs en prod tout de même ;) C'est bien pour cette raison que j'ai donné le lien permettant de tester un cluster sur des machines virtuelles ;)
  • # IPVS, c'est chouette

    Posté par  . Évalué à 2.

    Moi j'utilise IPVS piloté par keepalived pour dispacher du flux HTTP/HTTPS (devant des Apache 2) et du JDBC (devant des Postgresql). Je dispatche en Direct Routing, avec failover des dispatchers et ça fonctionne vraiment bien (RAS depuis un an maintenant, pour un site 24h/24 et 7j/7).

    IPVS : www.linuxvirtualserver.org/software/ipvs.html
    Keepalived : www.keepalived.org
    Astuce ARP/MAC : http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/LVS-HOWTO.arp_problem.(...) et http://article.gmane.org/gmane.linux.keepalived.devel/1652(...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.