Haute disponibilité

Facebooktwitterredditpinterestlinkedinmail

La haute disponibilité d’un système d’information rassemble deux concepts fondamentaux généralement utilisés de concert :

  • La tolérance aux pannes (ou fail-over), qui permet à un ou des systèmes redondants (de secours, donc) de se tenir prêt(s) à prendre le relais du système principal en cas de panne, accompagnés d’un système qui détecte les éventuelles pannes et change de système actif au besoin.
  • La répartition de charge (ou load-balancing), qui permet à un unique service d’être assuré par une grappe (ou cluster) de fournisseurs. La charge est répartie entre les fournisseurs. De fait, le système est aussi tolérant aux pannes, puisque la chute d’un nœud ne fait que modifier la répartition de charge.

Chacun de ces deux systèmes peut être dit entrant, comme par exemple dans le cas d’un site Internet servi par une grappe de serveurs web; ou sortant dans le cas d’un accès à Internet constitué de plusieurs points d’accès.

La théorie

La répartition de charge est généralement employée à des fins de performances. Même si cela parait évident, je préfère préciser qu’il ne sert à rien de répartir la charge d’un système sans l’avoir d’abord optimisé. On peut toujours construire une autoroute de 2×4 voies; flambante neuve; en ligne droite; creusée à travers les montagnes, mais si elle n’est utilisée que par des mobylettes, je n’en vois pas l’intérêt.

En principe, un répartiteur de charge est un système qui , selon son degré “d’intelligence”, a conscience d’un ensemble de fournisseurs pour un service donné. Il reçoit les requêtes des utilisateurs, qu’il redirige tour à tour vers l’un des fournisseurs en fonction :

  • De l’état du fournisseur (fonctionnel ou non). C’est l’aspect tolérance aux pannes.
  • D’un algorithme de répartition (tour à tour, par quantité de données, en fonction de la charge du fournisseur, etc).
  • De mesures éventuellement plus poussées auprès des fournisseurs (degré de charge, ressources disponibles, etc).
  • D’un éventuel maintient de session. Certains services ont besoin qu’un fournisseur conserve la prise en charge d’un utilisateur donné sur toute la durée de sa session.

Tout cela nécessite différents niveaux de “conscience” et “d’intelligence”, qui varient selon la couche du modèle OSI sur laquelle intervient le système. Pour rappel :

  1. La couche physique
  2. La couche liaison
  3. La couche réseau
  4. La couche transport
  5. La couche session
  6. La couche présentation
  7. La couche application

Il existe plusieurs solutions permettant de mettre en place de la haute disponibilité :

  • La mise en place d’un répartiteur de charge matériel.
  • La mise en place d’un logiciel commercial de répartition de charge.
  • La création à partir de zéro à l’aide d’outils open source génériques.
  • La mise en place de solutions open source dédiées.

Nous ne traiteront que des solutions open source dans cet article.

La répartition de charge entrante

Serveurs web

Architecture commune

Nous allons étudier différentes solutions, toutes open-source, et dans une configuration la plus similaire possible afin qu’elles restent comparables.

Facebooktwitterredditpinterestlinkedinmail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *