Partager via


Détails de l’algorithme overcommit du cluster dans System Center 2012 R2 Virtual Machine Manager

Cet article décrit quatre approches pour l’algorithme de surcommit de cluster dans Microsoft System Center 2012 R2 Virtual Machine Manager (VMM 2012 R2). Vous trouverez un exemple ici pour vous aider à comprendre l’algorithme.

Version du produit d’origine : Microsoft System Center 2012 R2 Virtual Machine Manager
Numéro de base de connaissances d’origine : 3023928

Vue d’ensemble des approches de l’algorithme

L’objectif de la vérification du surcommit du cluster VMM 2012 R2 est de déterminer si les machines virtuelles ne seront pas redémarrées s’il existe un échec simultané des nœuds de réserve de cluster (R). Le cluster est supposé être surcommise jusqu’à ce qu’il soit prouvé autrement. Quatre approches sont tentées et, si une approche indique que le cluster n’est pas surcommise, l’état du cluster est défini sur OK. Sinon, l’état du cluster est défini sur Overcommitted.

Les quatre approches peuvent être visualisées dans une table comme suit :

Vérifier les méthodes Méthode de preuve Méthode d’emplacement
Vérification simple Simple preuve Emplacement simple
Vérification complète de la complexité Preuve complète Emplacement complet

Les quatre méthodes de vérification

Méthode de preuve

La méthode de preuve fonctionne en déterminant s’il existe suffisamment de machines virtuelles pour remplir tous les hôtes à un point où la plus grande machine virtuelle ne peut pas démarrer sur l’un des hôtes. Il considère le pire cas où la plus grande machine virtuelle est la dernière à basculer et le pire cas où chaque hôte a 1 octet de mémoire insuffisante pour démarrer la machine virtuelle.

Méthode d’emplacement

La méthode d’emplacement fonctionne en affectant chaque machine virtuelle sur un hôte ayant échoué à un emplacement de taille standard unique dont la taille est égale à la taille de la plus grande machine virtuelle sur tous les hôtes ayant échoué. Il compte ensuite le nombre d’emplacements disponibles sur chaque hôte restant et vérifie qu’il existe suffisamment d’emplacements libres pour affecter toutes les machines virtuelles actuellement sur les hôtes ayant échoué.

Vérification simple

La vérification simple ne prend pas en compte un ensemble spécifique d’hôtes ayant échoué. Au lieu de cela, cela rend les hypothèses à l’échelle du cluster les plus défavorables. La plus grande taille de machine virtuelle est utilisée comme machine virtuelle la plus grande dans l’ensemble du cluster. Les tailles de machine virtuelle basculant ne sont pas déterminées à partir d’un ensemble spécifique d’hôtes. Au lieu de cela, l’approche utilise la somme théorique la plus élevée qui peut être obtenue à partir d’hôtes défaillants R . De même, le nombre de mémoires ou d’emplacements disponibles sur d’autres hôtes est la somme des hôtes N-R les plus bas (où N représente la taille du cluster).

Vérification complète de la complexité

La vérification complète de la complexité itère sur chaque ensemble possible d’hôtes défaillants R . Il recalcule la taille de l’emplacement, la plus grande taille de machine virtuelle, les tailles de mémoire de l’hôte cible et le nombre d’emplacements. Cela s’appuie sur chaque combinaison possible d’hôtes défaillants. Le nombre de jeux à prendre en compte est Choose(N,R).. Ce nombre peut devenir prohibitifment faible pour les valeurs importantes de N et R. Étant donné que ce nombre est approximativement proportionnel à N^R, cette vérification est exécutée uniquement si N^R est inférieur à 5 000. Par conséquent, en termes pratiques, le contrôle de complexité complète n’est effectué que dans les situations selon le tableau suivant :

Réserve de cluster (R) Taille maximale du cluster (N)
1 4 999
2 70
3 17
4 8

Note

Le contrôle de complexité complète n’est qu’un affinement marginal sur la vérification simple, et la vérification de preuve simple offre des résultats très similaires.

Calculs et algorithmes

Définitions de valeurs et précalculations dans l’algorithme

Important

Les AdditionalMemory valeurs et AvailableSlots les valeurs ne peuvent pas être calculées à l’aide des valeurs d’un seul hôte. La valeur ou SlotSize à partir des LargestClusterVM hôtes défaillants source doit être connue. Dans une vérification simple, elles sont égales à la plus grande machine virtuelle du cluster. Dans une vérification complète de la complexité, elles sont égales à la plus grande machine virtuelle haute disponibilité (HA) dans l’ensemble d’hôtes défaillants. Certains hôtes échouent et d’autres hôtes reçoivent cette charge de travail. Les calculs de l’espace disponible sont incorrects, sauf s’ils ont été terminés pour les hôtes défaillants et non pour l’hôte récepteur.

Valeurs de cluster

Le tableau suivant présente les définitions des valeurs de cluster :

Nom de la valeur Définition
N Nombre total d’hôtes dans le cluster
R Valeur de réserve de cluster (autrement dit, nombre maximal d’échecs simultanés au modèle)
H Les hôtes sains restants à utiliser comme cibles pour le basculement (H = N - R)

Valeurs de l’hôte

Les valeurs suivantes sont précalculées pour chaque hôte. Lorsqu’une valeur est calculée pour le LargestClusterVMMB ou SlotSizeMB, elle est recalculée dans chaque itération de vérifications complètes de complexité.

Nom de la valeur Définition
AvailableMemory Il s’agit de la mémoire hôte utilisable totale pour les machines virtuelles basculées à utiliser.
AvailableMemory = Mémoire totale de l’hôte - Machines virtuelles existantes - Réserve d’hôte
AdditionalMemory Il s’agit de la ligne de remplissage après laquelle un hôte ne pourra plus démarrer la plus grande machine virtuelle qui bascule.
AdditionalMemory = Max(AvailableMemory - LargestClusterVM,0)
HAVMs Il s’agit du total des machines virtuelles haute disponibilité sur cet hôte.
AvailableSlots Il s’agit du nombre de machines virtuelles basculées que cet hôte est garanti pour pouvoir démarrer.
AvailableSlots = AvailableMemory / SlotSize, arrondi vers le bas
UsedSlots Il s’agit du nombre de machines virtuelles haute disponibilité sur cet hôte.
TotalSlots Nombre total d’emplacements sur un hôte.
TotalSlots = AvailableSlots + UsedSlots

Note

  • Une mémoire tampon de 64 mégaoctets (Mo) est ajoutée à la mémoire de chaque machine virtuelle pour tenir compte de la surcharge d’hyperviseur.
  • Les ordinateurs virtuels arrêtés, enregistrés, suspendus et en cours d’exécution sont tous comptabilisés. Un utilisateur client qui démarre une machine virtuelle arrêtée doit être pris en compte lorsque l’algorithme calcule des dépassements de service.
  • Si les machines virtuelles de mémoire dynamique sont présentes dans le cluster, leur demande de mémoire actuelle est utilisée.

Algorithmes dans les quatre approches

Emplacement simple

Les algorithmes de l’approche simple de l’emplacement sont les suivants :

  • SlotSize = plus grande machine virtuelle haute disponibilité dans le cluster.
  • Calculez les AvailableSlotsvaleurs , UsedSlotset TotalSlots les valeurs pour chaque hôte.
  • TotalSlotsRemaining = somme des plus petites valeurs H de TotalSlots.
  • Si Sum(UsedSlots) <= TotalSlotsRemaining, le cluster n’est pas surcommise.

Emplacement complet

Itéré sur chaque ensemble d’hôtes défaillants R . Les algorithmes de l’approche de l’emplacement complet sont les suivants :

  • SlotSize = plus grandes machines virtuelles haute disponibilité sur les hôtes défaillants R .
  • Calculez les AvailableSlotsvaleurs , UsedSlotset TotalSlots les valeurs pour chaque hôte.
  • TotalSlotsRemaining = somme de TotalSlots tous les hôtes non défaillants.
  • Comparez les valeurs sum(UsedSlots) et TotalSlotsRemaining les valeurs :
    • Si Sum(UsedSlots) >TotalSlotsRemaining, le cluster peut être surcomplé.
    • Si Sum(UsedSlots) <= TotalSlotsRemaining pour chaque ensemble d’hôtes défaillants, le cluster n’est pas surcommise.

Simple preuve

Les algorithmes de l’approche simple de preuve sont les suivants :

  • LargestClusterVM = plus grande machine virtuelle haute disponibilité dans le cluster.
  • Calculez AdditionalMemory, HAVMs pour tous les hôtes.
  • TotalAdditionalSpace = somme des plus petites valeurs H de AdditionalMemory.
  • TotalOrphanedVMs = (somme des plus grandes valeurs R de HAVMs) - LargestClusterVM.
  • Comparez les valeurs :
    • Si TotalOrphanedVMs<= TotalAdditionalSpace, le cluster n’est pas surcommise.
    • Si TotalOrphanedVMs la valeur est 0,>LargestClusterVM 0 et TotalAdditionalSpace = 0, le cluster peut être surcomplé.

Preuve complète

Itéré sur chaque ensemble d’hôtes défaillants R . Les algorithmes de l’approche de preuve complète sont les suivants :

  • LargestClusterVM = plus grande machine virtuelle haute disponibilité sur les hôtes défaillants R .
  • Calculez AdditionalMemory, HAVMs pour tous les hôtes.
  • TotalAdditionalSpace = somme des AdditionalMemory hôtes non défaillants.
  • TotalOrphanedVMs = (somme des HAVMsMB hôtes défaillants R ) - LargestClusterVM.
  • Comparez les valeurs :
    • Si TotalOrphanedVMs>TotalAdditionalSpace, le cluster peut être surcommise.
    • Si TotalOrphanedVMs = 0,LargestClusterVM> 0 et = TotalAdditionalSpaceMB 0, le cluster peut être surcomplé.
    • Si TotalOrphanedVMs<TotalAdditionalSpace pour chaque ensemble d’hôtes défaillants, le cluster n’est pas surcommise.

Combinaison des approches et de l’exemple

Aucune des méthodes n’indique que le cluster est surcomplé. Ils ne peuvent montrer que le cluster n’est pas surcommise. Si aucune des méthodes utilisées ne peut montrer que le cluster n’est pas surcommise, le cluster est marqué comme surcommise. Si même une méthode unique indique que le cluster n’est pas surcommise, le cluster est marqué comme OK et le calcul est arrêté immédiatement.

Toutefois, pour l’analyse complète de la complexité, si même un seul ensemble d’hôtes défaillants R indique que le cluster peut être surcomplé, la méthode est immédiatement terminée et ne signale pas le cluster comme OK.

Exemple pour ces approches

Cet exemple est conçu spécifiquement pour être un cas borderline. Une seule méthode (preuve complète) permet de montrer que le cluster n’est pas dépassé.

Supposons qu’un cluster possède quatre hôtes de 32 gigaoctets (Go). La réserve de mémoire de l’hôte est définie sur 9 Go. Une mémoire tampon de 64 Mo n’est pas ajoutée aux tailles de machine virtuelle dans cet exemple pour simplifier les nombres. La réserve de cluster (R) est définie sur 2.

Hôte Paramètres de la machine virtuelle AvailableMemory HAVMs Machine virtuelle la plus grande
Hôte A Ha 4 Go, 4 Go HA 15 Go 8 Go 4 Go
Hôte B Ha 4 Go, 4 Go HA 15 Go 8 Go 4 Go
Hôte C Haute disponibilité de 8 Go, 8 Go non HA 7 Go 8 Go 8 Go
Hôte D 6 Go non HA, 2 Go HA, 2 Go HA 13 Go 4 Go 2 Go

Exemple simple d’emplacement

Taille de l’emplacement = 8 Go

Hôte AvailableSlots UsedSlots TotalSlots
Hôte A 1 2 3
Hôte B 1 2 3
Hôte C 0 1 1
Hôte D 1 2 3

Dans la table, nous connaissons les valeurs suivantes :

  • TotalSlotsRemaining = deux valeurs les plus petites de TotalSlots = (1+3) = 4
  • TotalUsedSlots = 2+2+2+1 = 7

Étant donné TotalSlotsRemainingqu’elle TotalUsedSlots est supérieure à , l’approche a échoué.

Exemple complet d’emplacement

TotalUsedSlots = 7, quels que soient les hôtes qui échouent

Hôtes défaillants Taille de l’emplacement AvailableSlots sur les hôtes restants TotalSlots sur les hôtes restants
A, B 4 Go C : 1, D : 3 C : 2, D : 5. Total : 7 - Bon
A, C 8 Go B : 1, D : 1 B : 3, D : 3. Total : 6 - Échec
A, D 4 Go B : 3, C : 1 B : 5, C : 2. Total : 7 - Bon
B, C 8 Go R : 1, D : 1 R : 3, D : 3. Total : 6 - Échec
B, D 4 Go R : 3, C : 1 R : 5, C : 2. Total : 7 - Bon
C, D 8 Go R : 1, B : 1 R : 3, B : 3. Total : 6 - Échec

Comme certains ensembles d’hôtes défaillants ont conduit à TotalUsedSlots>TotalSlotsRemaining, l’approche a échoué.

Exemple simple de preuve

LargestClusterVM = 8 Go

Hôte AdditionalMemory
Hôte A 7 Go
Hôte B 7 Go
Hôte C 0 Go
Hôte D 5 Go

Dans la table, nous connaissons les valeurs suivantes :

  • TotalAdditionalSpace = deux valeurs les plus petites de AdditionalMemory = 0 Go + 5 Go = 5 Go.
  • TotalOrphanedVMs = (8 Go + 8 Go) - 8 Go = 8 Go.

Étant donné que TotalOrpanedVMsMB>TotalAdditionalSpacel’approche a échoué.

Exemple complet de preuve

Hôtes défaillants Plus grandHAVM AdditionalMemory Machines virtuelles orphelines OrphanedVMs - LargestHAVM <= AdditionalMemory
A, B 4 Go C : 3, D : 9. Total 12. R : 8, B : 8, Total 16. 16-4<=12 - Bon
A, C 8 Go B : 7, D : 5. Total 12. R : 8, C : 8, Total 16. 16-8<=12 - Bon
A, D 4 Go B : 11, C : 3. Total 14. R : 8, D : 4, Total 12. 12-4<=14 - Bon
B, C 8 Go R : 7, D : 5. Total 12. B : 8, C : 8, Total 16. 16-8<=12 - Bon
B, D 4 Go R : 11, C : 3. Total 14. B : 8, D : 4, Total 12. 12-4<=14 - Bon
C, D 8 Go R : 7, B : 7. Total 14. C : 8, D : 4, Total 12. 12-8<=14 - Bon

Étant donné que chaque ensemble d’hôtes défaillants a conduit à OrphanedVMsLargestHAVM< - = AdditionalMemory, l’approche a réussi et l’ensemble du cluster peut être marqué comme OK.