SR-IOV und virtio
Kurz: virtio und SR-IOV machen virtuelle Maschinen schneller: virtio durch standardisierte, schlanke virtuelle Geräte, SR-IOV durch direkte Hardwareanteile.
Genauer: Eine vollständig emulierte Netzwerkkarte oder Festplatte kostet viel Rechenzeit. Beide Verfahren sparen diesen Aufwand auf unterschiedliche Weise.
Im Detail
- virtio: Der Gast weiß, dass er virtuell ist, und nutzt Treiber für einfache virtuelle Geräte (virtio-net, virtio-blk) mit gemeinsamen Warteschlangen im Speicher. Standard bei KVM/QEMU, in Linux eingebaut. Unter Windows braucht man die virtio-Treiber.
- SR-IOV: Eine PCIe-Karte (meist Netzwerkkarte) teilt sich in mehrere „virtuelle Funktionen”, die man direkt je einer VM zuweist. Die VM spricht mit Hardware, fast ohne Software-Umweg, mit sehr geringer Latenz.
- Nachteil von SR-IOV: Live-Migration ist schwierig, Funktionen wie virtuelle Switch-Regeln sind eingeschränkt, es braucht Hardware- und BIOS-Unterstützung (IOMMU).
- GPU-Durchreichen: Mit VFIO lässt sich eine ganze Grafikkarte einer VM geben, das Prinzip ist dasselbe.
- Wahl: virtio für Allgemeines, SR-IOV oder Durchreichen für Spitzenleistung.
Siehe auch: Virtualisierung mit KVM und QEMU