Netzwerkkarten und Virtualisierung

Eine Frage, die ich mittlerweile schon häufiger bekommen habe und daher wohl mal "öffentlich" beantworten sollte: "Mein Server hat eine Gigabit Netzwerkkarte, in der virtuellen Maschine kann ich aber nur eine 100MBit Karte konfigurieren. Jetzt muss ich ja doch anstatt Virtual Server etwas anderes nehmen, damit ich eine schnellere Netzwerkanbindung in der VM bekomme..."

Klingt logisch, ist aber trotzdem falsch.

Bei einer physischen Netzwerkkarte gilt dieses ja schon, da der Hardware Chip auf der Karte ein bestimmtes Protokoll für das Kabel implementiert und eine eingebaute Funktionalität hat, die weitestgehend durch Silizium festgelegt wird. In der virtuellen Welt wird aber auch die Hardware virtualisiert. Hierbei muss man zwischen zwei Modi der Virtualisierung unterscheiden: Die Hardware, die virtualisiert wird, aber in der VM genauso erscheint wie im Host (z.B. der Prozessor - die VM sieht immer die CPU, die im Host steckt) und die Hardware, die emuliert wird. Emuliert wird ja der Chipsatz (Intel 440BX), die Grafikkarte (S3 Trio) und auch die Netzwerkkarte (Intel 21140, ehemals DEC 21140). Emuliert bedeutet, dass dort keine Hardware genutzt wird, sondern das Gerät vollständig in Software existiert. Das wiederum bedeutet, dass die Geschwindigkeit des Gerätes nur von der Geschwindigkeit der Emulation und der darunter liegenden Hardware abhängt.
Im Beispiel der Netzwerkkarte bedeutet das, dass nur die CPU Ressourcen und die Netzwerkkarte des Host die Geschwindigkeit der Netzwerkkommunikation in der VM beeinflussen. Auf der anderen Seite ist natürlich auch die Hardware des Host eine gemeinsam genutzte Ressource, deren Leistungsfähigkeit sich der Host und alle dort laufenden VMs teilen müssen.

Das beschriebene Verhalten hat aber noch ein paar weitere Konsequenzen, die z.T. nur die Anwender mit mobilen Geräten merken.

1. Beispiel: Die "Offload" Funktionalitäten aktueller Netzwerkkarten. Im Kontext der Virtualisierung macht die wenig Sinn und stört teilweise sogar, da ja das Hardware Modell in der VM ein anderes ist, als die reale Netzwerkkarte des Host. Damit es dort nicht zu ungewollten Beeinträchtigungen kommt, ist es häufig ratsam, die Offload Funktionen zu deaktivieren.

2. Beispiel: Drahtlos Netzwerke - die Virtualisierung muss Netzwerkpakete mit der MAC Adresse der VM abschicken, die sich natürlich von der MAC Adresse der realen (WLAN) Karte unterscheidet. Das wiederum mögen die üblichen Access Points nicht... (Ausnahme: Virtual PC im NAT Modus)