Condividi tramite


Dettagli dell'algoritmo di overcommit del cluster in System Center 2012 R2 Virtual Machine Manager

Questo articolo descrive quattro approcci per l'algoritmo di overcommit del cluster in Microsoft System Center 2012 R2 Virtual Machine Manager (VMM 2012 R2). È possibile trovare un esempio qui per comprendere l'algoritmo.

Versione originale del prodotto: Microsoft System Center 2012 R2 Virtual Machine Manager
Numero KB originale: 3023928

Panoramica degli approcci nell'algoritmo

L'obiettivo del controllo dell'overcommit del cluster VMM 2012 R2 consiste nel determinare se le macchine virtuali non verranno riavviate se si verifica un errore simultaneo di nodi di riserva cluster (R). Si presuppone che il cluster venga sovracommesso fino a quando non viene dimostrato altrimenti. Vengono provato quattro approcci e, se un approccio indica che il cluster non è sovracommesso, lo stato del cluster è impostato su OK. In caso contrario, lo stato del cluster è impostato su Overcommitted.

I quattro approcci possono essere visualizzati in una tabella come segue:

Metodi check Metodo proof Metodo slot
Controllo semplice Proof-simple Slot-simple
Verifica completa della complessità Proof-full Slot-full

I quattro metodi check

Metodo proof

Il metodo di verifica funziona determinando se sono presenti macchine virtuali sufficienti per riempire tutti gli host a un punto in cui la macchina virtuale più grande non può essere avviata in uno degli host. Considera il caso peggiore in cui la macchina virtuale più grande è l'ultimo a essere eseguito il failover e anche il peggiore caso in cui ogni host ha 1 byte di memoria insufficiente per avviare la macchina virtuale.

Metodo slot

Il metodo slot funziona assegnando ogni macchina virtuale in un host non riuscito a un singolo slot di dimensioni standard le cui dimensioni sono uguali alle dimensioni della macchina virtuale più grande in tutti gli host non riusciti. Conta quindi il numero di slot disponibili in ogni host rimanente e verifica che siano presenti slot liberi sufficienti per assegnare tutte le macchine virtuali attualmente in host non riusciti.

Controllo semplice

Il controllo semplice non considera un set specifico di host non riusciti. Invece, fa ipotesi a livello di cluster peggiore. La dimensione massima della macchina virtuale viene usata come macchina virtuale più grande nell'intero cluster. Le dimensioni delle macchine virtuali di failover non vengono decise da un set specifico di host. L'approccio usa invece la somma teorica più alta che può essere ottenuta dagli host con errori R . Analogamente, il numero di memoria o slot disponibili in altri host è la somma tra gli host N-R più bassi (dove N rappresenta le dimensioni del cluster).

Verifica completa della complessità

Il controllo completo della complessità esegue l'iterazione su ogni set possibile di host con errori R . Ricalcola le dimensioni dello slot, le dimensioni maggiori della macchina virtuale, le dimensioni della memoria host di destinazione e il numero di slot. Questa operazione viene eseguito in base a ogni possibile combinazione di host con errori. Il numero di set da considerare è Choose(N,R). Questo numero può diventare proibitivamente basso per valori elevati di N e R. Poiché questo numero è approssimativamente proporzionale a N^R, questo controllo viene eseguito solo se N^R è minore di 5.000. Pertanto, in termini pratici, il controllo completo della complessità viene eseguito solo nelle situazioni in base alla tabella seguente:

Riserva cluster (R) Dimensioni massime del cluster (N)
1 4.999
2 70
3 17
4 8

Note

Il controllo completo della complessità è solo un perfezionamento marginale rispetto al controllo semplice, e il semplice controllo delle prove offre risultati molto simili.

Calcoli e algoritmi

Definizioni di valore e precalcolazione nell'algoritmo

Importante

I AdditionalMemory valori e AvailableSlots non possono essere calcolati utilizzando i valori di un singolo host. Il valore di o SlotSize dagli host con errori di LargestClusterVM origine deve essere noto. In un controllo semplice, sono uguali alla macchina virtuale più grande nel cluster. In un controllo completo della complessità, sono uguali alla macchina virtuale a disponibilità elevata più grande nel set di host con errori. Alcuni host avranno esito negativo e altri host riceveranno tale carico di lavoro. I calcoli dello spazio disponibile non sono corretti a meno che non siano stati completati per gli host con errori e non per l'host ricevente.

Valori cluster

La tabella seguente illustra le definizioni dei valori del cluster:

Nome valore Definizione
N Numero totale di host nel cluster
R Valore di riserva del cluster( ovvero il numero massimo di errori simultanei da modellare)
H Gli host integri rimanenti da usare come destinazioni per il failover (H = N - R)

Valori host

I valori seguenti sono precalcolati per ogni host. Quando viene calcolato un valore per LargestClusterVMMB o SlotSizeMB, viene ricalcolato in ogni iterazione dei controlli di complessità completi.

Nome valore Definizione
AvailableMemory Si tratta della memoria host totale utilizzabile per le macchine virtuali di cui è stato eseguito il failover.
AvailableMemory = Memoria totale host - MACCHINE virtuali esistenti - Riserva host
AdditionalMemory Si tratta della riga di riempimento dopo la quale un host non sarà più in grado di avviare la macchina virtuale più grande di cui viene eseguito il failover.
AdditionalMemory = Max(AvailableMemory - LargestClusterVM,0)
HAVMs Si tratta del totale delle macchine virtuali a disponibilità elevata in questo host.
AvailableSlots Si tratta del numero di macchine virtuali di cui è garantito l'avvio di questo host.
AvailableSlots = AvailableMemory / SlotSize, arrotondato verso il basso
UsedSlots Questo è il numero di macchine virtuali a disponibilità elevata in questo host.
TotalSlots Numero totale di slot in un host.
TotalSlots = AvailableSlots + UsedSlots

Note

  • Un buffer da 64 megabyte (MB) viene aggiunto alla memoria di ogni macchina virtuale per tenere conto dell'overhead dell'hypervisor.
  • Vengono conteggiati tutti gli stati arrestati, salvati, sospesi e macchine virtuali in esecuzione. Un utente tenant che avvia una macchina virtuale arrestata deve essere tenuto in considerazione quando l'algoritmo calcola gli overcommits.
  • Se nel cluster sono presenti macchine virtuali di memoria dinamica, viene usata la domanda di memoria corrente.

Algoritmi nei quattro approcci

Slot-simple

Gli algoritmi nell'approccio semplice slot sono i seguenti:

  • SlotSize = la macchina virtuale a disponibilità elevata più grande nel cluster.
  • Calcolare i AvailableSlotsvalori , UsedSlotse TotalSlots per ogni host.
  • TotalSlotsRemaining= somma dei valori H più piccoli di TotalSlots.
  • Se Sum(UsedSlots) <= TotalSlotsRemaining, il cluster non viene sovracommesso.

Slot-full

È stata eseguito l'iterazione su ogni set di host con errori R . Gli algoritmi nell'approccio con slot-full sono i seguenti:

  • SlotSize = più grandi macchine virtuali a disponibilità elevata negli host con errori di R .
  • Calcolare i AvailableSlotsvalori , UsedSlotse TotalSlots per ogni host.
  • TotalSlotsRemaining = somma di TotalSlots in tutti gli host non con errori.
  • Confrontare i valori Sum(UsedSlots) e TotalSlotsRemaining :
    • Se Sum(UsedSlots) >TotalSlotsRemaining, il cluster può essere sovracommesso.
    • Se Sum(UsedSlots) <= TotalSlotsRemaining per ogni set di host con errori, il cluster non viene sovracommesso.

Proof-simple

Gli algoritmi nell'approccio proof-simple sono i seguenti:

  • LargestClusterVM = la macchina virtuale a disponibilità elevata più grande nel cluster.
  • Calcolare AdditionalMemory, HAVMs per tutti gli host.
  • TotalAdditionalSpace= somma dei valori H più piccoli di AdditionalMemory.
  • TotalOrphanedVMs= (somma dei valori R più grandi di HAVMs) - LargestClusterVM.
  • Confrontare i valori:
    • Se TotalOrphanedVMs<= TotalAdditionalSpace, il cluster non viene sovracommesso.
    • Se TotalOrphanedVMs è 0, LargestClusterVM>0 e = TotalAdditionalSpace 0, il cluster può essere sovracommesso.

Proof-full

È stata eseguito l'iterazione su ogni set di host con errori R . Gli algoritmi nell'approccio proof-full sono i seguenti:

  • LargestClusterVM = la macchina virtuale a disponibilità elevata più grande negli host con errori di R .
  • Calcolare AdditionalMemory, HAVMs per tutti gli host.
  • TotalAdditionalSpace = somma di AdditionalMemory in host non con errori.
  • TotalOrphanedVMs = (somma degli host con errori di HAVMsMB R ) - LargestClusterVM.
  • Confrontare i valori:
    • Se TotalOrphanedVMs>TotalAdditionalSpace, il cluster può essere sovracommesso.
    • Se TotalOrphanedVMs = 0,>LargestClusterVM 0 e = TotalAdditionalSpaceMB 0, il cluster può essere sovracommesso.
    • Se TotalOrphanedVMs<TotalAdditionalSpace per ogni set di host con errori, il cluster non viene sovracommesso.

Combinazione degli approcci e dell'esempio

Nessuno dei metodi mostra che il cluster viene sovracommesso. Possono mostrare solo che il cluster non è sovracommesso. Se nessuno dei metodi usati può indicare che il cluster non è sovracommesso, il cluster viene contrassegnato come sovracommesso. Se anche un singolo metodo indica che il cluster non viene sovracommesso, il cluster viene contrassegnato come OK e il calcolo viene arrestato immediatamente.

Tuttavia, per l'analisi completa della complessità, se anche un singolo set di host con errori R indica che il cluster può essere sovracommesso, il metodo viene completato immediatamente e non contrassegna il cluster come OK.

Esempio per questi approcci

Questo esempio è progettato in modo specifico per essere un caso di bordo. Solo un metodo (proof-full) riesce a indicare che il cluster non è sovracommesso.

Si supponga che un cluster abbia quattro host da 32 gigabyte (GB). La riserva di memoria host è impostata su 9 GB. Un buffer da 64 MB non viene aggiunto alle dimensioni delle macchine virtuali in questo esempio solo per semplificare i numeri. La riserva cluster (R) è impostata su 2.

Host Impostazioni della macchina virtuale AvailableMemory HAVMs Macchina virtuale più grande
Host A 4 GB di disponibilità elevata, 4 GB di disponibilità elevata 15 GB 8 GB 4 GB
Host B 4 GB di disponibilità elevata, 4 GB di disponibilità elevata 15 GB 8 GB 4 GB
Host C 8 GB di disponibilità elevata, 8 GB non a disponibilità elevata 7 GB 8 GB 8 GB
Host D 6 GB di disponibilità elevata, 2 GB di disponibilità elevata, 2 GB di disponibilità elevata 13 GB 4 GB 2 GB

Esempio semplice di slot

Dimensioni slot = 8 GB

Host AvailableSlots UsedSlots TotalSlots
Host A 1 2 3
Host B 1 2 3
Host C 0 1 1
Host D 1 2 3

Dalla tabella sono noti i valori seguenti:

  • TotalSlotsRemaining = due valori più piccoli di TotalSlots = (1+3) = 4
  • TotalUsedSlots = 2+2+2+1 = 7

Poiché TotalUsedSlots è maggiore di TotalSlotsRemaining, l'approccio non è riuscito.

Esempio di slot-full

TotalUsedSlots = 7, indipendentemente dagli host che hanno esito negativo

Host con errori Dimensioni slot AvailableSlots negli host rimanenti TotalSlots negli host rimanenti
A, B 4 GB C: 1, D: 3 C: 2, D: 5. Totale: 7 - Buono
A, C 8 GB B: 1, D: 1 B: 3, D: 3. Totale: 6 - Non riuscito
A, D 4 GB B: 3, C: 1 B: 5, C: 2. Totale: 7 - Buono
B, C 8 GB R: 1, D: 1 R: 3, D: 3. Totale: 6 - Non riuscito
B, D 4 GB R: 3, C: 1 R: 5, C: 2. Totale: 7 - Buono
C, D 8 GB R: 1, B: 1 R: 3, B: 3. Totale: 6 - Non riuscito

Poiché alcuni set di host con errori hanno portato a TotalUsedSlots>TotalSlotsRemaining, l'approccio non è riuscito.

Esempio semplice di correzione

LargestClusterVM = 8 GB

Host AdditionalMemory
Host A 7 GB
Host B 7 GB
Host C 0 GB
Host D 5 GB

Dalla tabella sono noti i valori seguenti:

  • TotalAdditionalSpace = due valori più piccoli di AdditionalMemory = 0 GB + 5 GB = 5 GB.
  • TotalOrphanedVMs = (8 GB + 8 GB) - 8 GB = 8 GB.

Poiché TotalOrpanedVMsMB>TotalAdditionalSpace, l'approccio non è riuscito.

Esempio di prova completo

Host con errori Più grandeHAVM AdditionalMemory Vm orfane OrphanedVMs - LargestHAVM <= AdditionalMemory
A, B 4 GB C: 3, D: 9. Totale 12. R: 8, B: 8, Totale 16. 16-4<=12 - Buono
A, C 8 GB B: 7, D: 5. Totale 12. R: 8, C: 8, Totale 16. 16-8<=12 - Buono
A, D 4 GB B: 11, C: 3. Totale 14. R: 8, D: 4, Totale 12. 12-4<=14 - Buono
B, C 8 GB R: 7, D: 5. Totale 12. B: 8, C: 8, Totale 16. 16-8<=12 - Buono
B, D 4 GB R: 11, C: 3. Totale 14. B: 8, D: 4, Totale 12. 12-4<=14 - Buono
C, D 8 GB R: 7, B: 7. Totale 14. C: 8, D: 4, Totale 12. 12-8<=14 - Buono

Poiché ogni set di host con errori ha portato a OrphanedVMsLargestHAVM< - = AdditionalMemory, l'approccio è riuscito e l'intero cluster può essere contrassegnato come OK.