NIC-Teaming auf Hyper-V-Host oder innerhalb jeder VM?

NIC-Teaming auf Hyper-V-Host oder innerhalb jeder VM?

Ich habe Windows Server 2016 Datacenter auf einem Dell T620 installiert und dann die Hyper-V-Rolle installiert. Als Nächstes habe ich ein NIC-Team erstellt, das aus 2 physischen 1-Gbit/s-Netzwerkadaptern besteht. Das Team heißt LANTeam. Die Einstellungen sind: Teaming-Modus – Switch-unabhängig, Lastausgleichsmodus – dynamisch, Standby-Adapter – Keine (alle Adapter aktiv)

Im Kontrollfeld „Netzwerkverbindungen“ dieses Servers sehe ich alle meine physischen Netzwerkkarten und jetzt auch eine weitere Verbindung namens „LANTeam“. Das ist der Name der Verbindung, aber der Gerätename lautet „Microsoft Network Adapter Multiplexor Driver“.

Wenn ich auf diese Netzwerkverbindung doppelklicke, wird eine Geschwindigkeit von 2,0 Gbit/s angezeigt, was Sinn macht, da es sich hier um zwei zusammengeschaltete Verbindungen mit je 1 Gbit/s handelt.

Hier wird es für mich etwas unklar:

Ich öffne den Hyper-V-Manager und klicke auf „Virtual Switch Manager“. Ich erstelle einen neuen virtuellen Switch (extern) und wähle „Microsoft Network Adapter Multiplexor Driver“ aus der Dropdown-Liste.

Ich nenne diesen Switch „LAN vSwitch“

Als nächstes erstelle ich meine erste VM. Im Eigenschaftenfenster wähle ich „LAN vSwitch“ aus der Dropdown-Liste aus.

Wenn ich diese VM starte (ich habe Windows 2016 Server installiert), gehe ich zu „Netzwerkverbindungen“ und doppelklicke auf den einen (und einzigen) Netzwerkadapter (der nur „Ethernet“ heißt, es wird angezeigt, dass die Geschwindigkeit nur 1,0 Gbit/s beträgt).

Warum nicht 2,0 Gbit/s? Mein Ziel ist es, einige VMs zu erstellen, die alle über eine 2,0 Gbit/s-Ethernet-Verbindung verfügen.

Antwort1

Die Diskrepanz, die Sie sehen, liegt nur in der gemeldeten Geschwindigkeit der Netzwerkkarte. Zunächst einige Hintergrundinformationen:

Windows lügt ein bisschen, wenn es Ihnen sagt, dass die zusammengeschlossenen Netzwerkkarten mit 2 Gbit/s laufen, denn so funktioniert Teaming oder Bonding nicht wirklich. Mit Teaming können Sie diskrete Verbindungen über die beiden Netzwerkkarten ausgleichen. Eine einzelne Verbindung kann nur eine einzelne Netzwerkkarte sättigen. Teaming wird nur dann effektiv, wenn es mit mehreren Netzwerkendpunkten zu tun hat, daher ist es im Allgemeinen eine gute Option für die Einrichtung auf dem VM-Host. Die Einrichtung von Bonds oder Teams innerhalb von VMs und nicht auf dem Host kann auf verschiedenen Plattformen seltsame Folgen haben, und Sie sollten dies nach Möglichkeit vermeiden. Im Allgemeinen ist es am besten, den Bond an der Stelle einzurichten, an der die meisten Verbindungen auftreten, und das ist normalerweise so nah an einem Netzwerk-Trunk wie möglich.

Zurück zum Problem der Geschwindigkeitsmeldung innerhalb Ihrer VM – es ist keine Lüge. Sie haben 1-Gbit/s-NICs an Ihren Host angeschlossen und mit dem vSwitch verbunden, der die Vernetzung für Ihre Instanzen bereitstellt. Dies reduziert die Geschwindigkeit des gesamten vSwitch auf 1 Gbit/s, und das ist eine bekannte Flusssteuerungsbeschränkung von HyperV. Der vSwitch ignoriert die gemeldete Kapazität der Verbindung, da diese für die Flusssteuerung unerheblich ist. Sie können immer noch insgesamt 2 Gbit/s vom Host übertragen, nur nicht an eine einzelne VM.

Wenn Sie dennoch eine Netzwerkverbindung mit Hostsystembusgeschwindigkeit zwischen VMs wünschen, können Sie einen „leeren“ virtuellen Switch erstellen, der keine Verbindung zu einer physischen Netzwerkkarte herstellt, sondern nur zu jeder VM und dem Host. Dies kann nützlich sein, wenn Sie viel Ost-West-Verkehr zwischen VMs haben.

Aufbauend auf dem obigen Beispiel könnten Sie dieses Problem fast vollständig umgehen, indem Sie Layer 2 beim Hypervisor beenden. Sie könnten alle Ihre VMs mit diesem leeren vSwitch verbinden und so die Busgeschwindigkeitskommunikation aktivieren. Nachdem dies eingerichtet ist, könnten Sie den HyperV-Host als Gateway verwenden und den Layer-3-Verkehr vom vollständig virtuellen vSwitch an ein auf Layer 3 adressiertes Team auf dem Host weiterleiten. Dies würde einige Netzwerkkomplexitäten mit sich bringen, z. B. die Notwendigkeit der Portweiterleitung und die Verwendung eines NAT. HyperV verfügt jedoch über sehr benutzerfreundliche Steuerelemente dafür.

verwandte Informationen