Aller au contenu

Les groupes à haute disponibilité

Présentation

Un groupe à haute disponibilité (ou Availability Set), est un regroupement logique de machines virtuelles qui permet à Azure de répartir leur hébergement, pour réduire le risque qu’elles deviennent indisponibles simultanément. Il contribue à protéger une application contre certaines pannes matérielles et les interruptions liées à la maintenance de la plateforme. Par exemple, une machine virtuelle peut être arrêtée dans le cadre d'une maintenance qui peut être planifiée ou non planifiée, ou suite à un arrêt soudain du serveur physique qui l'exécute.

Fonctionnement

Azure attribue à chaque machine virtuelle deux domaines, dans lesquels elles sont réparties. Ces deux répartitions sont complémentaires : la première concerne les pannes, la seconde la maintenance :

Domaine Rôle
Domaine de défaillance (Fault Domain) Séparer les VM entre des ensembles de matériels qui ne partagent pas la même alimentation électrique et le même commutateur réseau. Une panne affectant un domaine peut ainsi épargner les autres.
Domaine de mise à jour (Update Domain) Répartir les VM en groupes qui peuvent redémarrer séparément lors d’une maintenance planifiée. Azure ne redémarre qu’un domaine à la fois.

Un groupe à haute disponibilité peut comporter jusqu’à 3 domaines de défaillance, selon la région, et 20 domaines de mise à jour.

Voici un exemple avec une application Web : nous déployons la même application sur deux machines virtuelles appartenant au même groupe à haute disponibilité. Un service Azure Load Balancer (répartiteur de charge) répartit les requêtes entre elles. Si une VM devient indisponible, l’autre peut continuer à répondre aux requêtes des utilisateurs, à condition que l’application et ses dépendances soient également conçues pour fonctionner dans ce cas de figure.

Quelles sont ses limites ?

Les groupes à haute disponibilité permettent à Azure de répartir les machines virtuelles entre plusieurs domaines de défaillance et de mise à jour : ils ne répliquent pas automatiquement une application et ses données, et ne corrige pas les défaillances du système d’exploitation ou du logiciel. Il reste exposé à certaines pannes communes aux Datacenters. Les zones de disponibilité, qui permettent de répartir les instances entre des emplacements physiquement distincts d’une même région, offrent une meilleure isolation.

Avec au moins deux machines virtuelles dans un groupe à haute disponibilité, Azure prévoit un SLA de 99,95 % pour la connectivité à au moins une instance, selon les conditions du contrat. Ce chiffre ne garantit pas, à lui seul, la disponibilité de toute l’application. Le groupe n’a pas de coût propre ; les VM et les ressources utilisées restent facturées.

Pour les nouveaux déploiements, Microsoft recommande actuellement les Virtual Machine Scale Sets en mode d’orchestration flexible, qui proposent davantage de fonctions de gestion et de mise à l’échelle. Les groupes à haute disponibilité restent utiles lorsque les zones de disponibilité ne sont pas proposées dans la région, dans laquelle nous souhaitons affecter une machine virtuelle.

Mise en œuvre

Pour utiliser un groupe à haute disponibilité, nous devons d’abord le créer, puis y associer les machines virtuelles lors de leur création. Azure attribue automatiquement à chaque machine un domaine de défaillance et un domaine de mise à jour. Il répartit les machines entre les domaines disponibles afin de limiter le risque d’indisponibilité simultanée lors d’une panne matérielle ou d’une maintenance planifiée. Plusieurs machines peuvent toutefois appartenir à un même domaine de défaillance ou de mise à jour.