Recentemente sono stato da un Cliente dotato di un Failover Cluster Hyper-V a tre nodi con a bordo alcune Virtual Machines che erogano servizi in ambiente di Produzione.

Come sapete (o immaginate :) , nel momento in cui il Failover Cluster riscontra un problema in una VM (es. schermata blu), procede ad effettuare il processo di failover del relativo Resource Group verso un altro Host e riavvia la VM; qualora il problema specifico fosse circoscritto alla NIC associata all’External Virtual Switch a cui è attestata la VM, però, il Failover Cluster non rileverebbe alcun failure (la VM, di fatto, continuerebbe a funzionare) e, di conseguenza, non si potrebbe scatenare la procedura di failover descritta nel caso precedente con il risultato di avere una VM isolata dalla rete.

Come ovviare a questo scenario?

Una soluzione e due workaround:

1. Utilizzo del Network Teaming offerto dal Vostro Vendor (attenzione al falso mito “Hyper-V non supporta il NIC Teaming”: come spiegato in questo articolo Microsoft non supporta direttamente il NIC Teaming; pensateci un attimo: chi sviluppa driver di NIC e Teaming? Esatto, gli Hardware Vendors :)

“[…] Summary
Since Network Adapter Teaming is only provided by Hardware Vendors, Microsoft does not provide any support for this technology thru Microsoft Product Support Services. As a result, Microsoft may ask that you temporarily disable or remove Network Adapter Teaming software when troubleshooting issues where the teaming software is suspect.
If the problem is resolved by the removal of Network Adapter Teaming software, then further assistance must be obtained thru the Hardware Vendor. […]”

2. Se la vostra Parent Partition ha una scheda di rete virtuale attestata sull’External Virtual Switch utilizzato dalle VM (default con Windows Server 2008/Hyper-V Server 2008, opzionale con Windows Server 2008 R2/Hyper-V Server 2008 R2), potreste aggiungere nel Resource Group della VM una risorsa IP “fittizia” in modo che, in caso di failure dell’External Virtual Switch, il Cluster sia in grado di scatenare il processo di failover grazie al relativo failure della risorsa IP “fittizia”.

3. Nel caso non abbiate la NIC virtuale segnalata al punto 2, potete creare una risorsa "Generic Script" per ogni Resource Group/HAVM utilizzando questo script pubblicato sul blog di Robert per monitorare lo stato delle NIC fisica.

A presto,

Simone

 

Risorse correlate

Microsoft Support Policy for NIC Teaming with Hyper-V

HowTo monitor the NIC used by a Virtual Machine in a Hyper-V cluster