NIC Teaming in Kombination mit Hyper-V nicht empfehlenswert


Ich möchte mit diesem Eintrag meine Erfahrungen bezüglich des, im Titel genannten, Themas niederschreiben.

Es geht um die neue Windows-eigene Virtualisierungsfunktion von Windows Server 2008.
Dadurch, dass Server oft mindestens 2 Netzwerkkarten (NIC) eingebaut haben, wird ein Verbund von diesen oft in Erwägung gezogen, um die Geschwindigkeit, Stabilität und Ausfallsicherheit des Servers zu gewährleisten.

Da wir seit fast einem halben Jahr nun einen Dell PowerEdge 2970 mit 2 Quad Opteron 2356 und 16GB RAM im Keller zu stehen haben, der vorrangig für Virtualisierung gebraucht werden soll, musste ich zwangsläufig erfahrung mit der Thematik machen.

Der Server besitzt 2 Broadcom NetXtreme II Gigabit Netzwerkkarten.

Geplant war, die 2 Netzwerkkarten zu teamen und sowohl den Server als auch alle Virtuellen Maschinen (VMs) von Hyper-V über dieses NIC Team zu leiten. Somit wäre Redundanz sowohl für den Server als auch für die VMs gewährleistet und eine automatisches Load-Balancing würde auch für beide garantiert.

Nach dem NIC Teaming befand ich mich im ‚Manager für virtuelle Netzwerke‘ des Hyper-V Managers. Dort standen allerdings nur die 2 einzelnen NICs zur Auswahl, Broadcom.. und Broadcom.. #2.
Während der Server über das NIC Team ins Netzwerk geht können die VMs ja eine der beiden physischen Netzwerkkarten als Brücke ins Netz benutzen, dachte ich. So würde der Server weiter beide Netzwerkkarten (das Team) und die VMs zusätzlich eine der Netzwerkkarten mitbenutzen.
Funktioniert auch wunderbar solange man nicht versucht von den VMs auf den Server zu kommen. Denn die VMs werden keine Möglichkeit haben mit dem Server zu kommunizieren.
Das liegt daran, dass ein NIC Team nichts weiter ist als eine Art virtueller Switch. Die Hyper-V erstellt aber für die virtuellen Maschinen auch virtuelle Netzwerkkarten (logisch) und diese funktionieren ebenfalls wie ein virtueller Switch. Da nun keine Verbindung zwischen diesen zwei virtuellen Switches bestehen kann besteht auch nicht die Möglichkeit eines Zugriffs.
VMs betreiben wird jedoch schwer ohne mit dem Server zu arbeiten, zu oft brauch man Dateien oder Dienste, die nur auf dem Server laufen.

Ich fasse kurz zusammen:

(v) = virtuell
Server hat NIC1 und NIC2, zusätzlich NIC3(v)(Team).
NIC1 + NIC2 -> NIC3(v)

Hyper-V stellt für alle VMs eine virtuelle Netzwerkkarte zur Verfügung: NIC4(v)
Alle VMs nutzen diese virtuelle Netzwerkkarte.
Diese verweißt mit Hilfe des ‚Manager für virtuelle Netzwerke‘ auf eine externe, im Server physisch vorhandene Netzwerkkarte, ich leite alle über NIC1.
VM1 + VM2 + VMx -> NIC4(v)
NIC4(v) -> NIC1

Bei einem Zugriffsversuch von VM zum Server (z.B. ein simpler Ping) kommen sich die virtuellen Geräte in die Quere, es kommt zu keiner funktionierenden Verbindung.

Für dieses Problem gibt es mehrere Lösungen, je nach persönlicher Situation oder Erfahrung sollte jeder für sich selbst entscheiden.

1. Das NIC Team wird aufgelöst. Jetzt können Server und VMs beliebig NICs zugewiesen werden (alle auf eine NIC für schnellen Serverzugriff, Server und VMs auf unterschiedliche NICs für manuelles Load Balancing) ohne Probleme zu kriegen.

2. Es wird eine 3. Netzwerkkarte eingebaut. Man könnte das NIC Team für den Server belassen und die VMs über die 3. NIC leiten. Zugriffe von den VMs auf den Server laufen dann allerdings über die 3. NIC raus und über das Team wieder rein, es erfolgt kein direkter Zugriff, das kann Millisekunden kosten.

3. Ein externes Gerät (Host) oder eine Extra VM einrichten und mit den Daten des Servers bestücken, auf die die VMs zugreifen müssen. Der Zugriff zwischen den VMs läuft über das virtuelle Netzwerk von Hyper-V und trifft nicht auf das virtuelle Team vom Server, daher sollte es da keine Probleme geben. Macht jedoch Arbeit, da wichtige Daten sowohl auf den Server, als auch auf der Extra Maschine laufen müssen.

4. Es gibt eine Möglichkeit NIC Teams im Hyper-V ‚Manager für virtuelle Netzwerke‘ verfügbar zu machen, obwohl dort normalerweise nur die physischen Netzwerkkarten zur Auswahl stehen.
a) Microsoft Loopback Adpater installieren
b) Diesen per Netzwerkbrücke mit dem NIC Team verbinden (jetzt hat der Server keine Verbindung mehr ins Netz, also RDP über eine 3. NIC oder direkt vorm Server sitzen)
c) Nun im Hyper-V Netzwerkmanager als Externe Adapter den Loopback angeben, kurz einwirken lassen.
d) Von Loopback auf das Team umwechseln.
e) In der VM diesen externen Adapter auswählen und schon habt ihr ein NIC Team in der VM.

Ich danke Mann-IT für die kompetente Hilfe bezüglich dieses Themas.

Ich hoffe, Interessierte konnten dem Text etwas abgewinnen.

Viele Grüße und bis zum nächsten Mal.

2 Kommentare

  1. Hallo, ich habe mit Interesse diesen Erfahrungsbericht gelesen. Meine Anmerkung dazu, für eine Hyper-V Umgebung wird an sich ein Minimum von 4 Nic´s benötigt. Es funktioniert auch mit einer Karte einwandfrei, aber wenn man an´s Teaming denkt, sollten es schon mehr Karten sein. Ausserdem sollten auf dem Hostsystem möglichst auch keine anderen Dienst laufen. Teaming ist durchaus empfehlenswert für Hyper-V, allerdings nicht in der Konfig die hier aufgeführt ist 🙂
    Gruß Didn?

  2. hi,

    natürlich klappt teaming und hyper v. du hast einen fehler gemacht und zwar muss der hyper v switch den du erstllst nicht mit NIC1 sondern mit dem NIC3 verbunden sein, dann klappt es….

Schreibe einen Kommentar