A couple of months ago, Google Cloud launched gvnic, a new paravirtual network interface for virtual machines in Google Compute Engine. gvnic offers higher performance than and new features over the prior paravirtual network interface in GCE, virtio-net.
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-1036-gcp x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Feb 20 03:49:30 UTC 2021 System load: 0.08 Processes: 103 Usage of /: 14.9% of 9.52GB Users logged in: 0 Memory usage: 5% IPv4 address for ens4: 10.240.0.29 Swap usage: 0% 1 update can be installed immediately. 0 of these updates are security updates. To see these additional updates run: apt list --upgradable The list of available updates is more than a week old. To check for new updates run: sudo apt update Last login: Sat Feb 20 03:42:19 2021 from 173.194.90.36 extrudedaluminiu@instance-2:~$ lspci -nn 00:00.0 Host bridge [0600]: Intel Corporation 440FX - 82441FX PMC [Natoma] [8086:1237] (rev 02) 00:01.0 ISA bridge [0601]: Intel Corporation 82371AB/EB/MB PIIX4 ISA [8086:7110] (rev 03) 00:01.3 Bridge [0680]: Intel Corporation 82371AB/EB/MB PIIX4 ACPI [8086:7113] (rev 03) 00:03.0 Non-VGA unclassified device [0000]: Red Hat, Inc. Virtio SCSI [1af4:1004] 00:04.0 Ethernet controller [0200]: Google, Inc. Compute Engine Virtual Ethernet [gVNIC] [1ae0:0042] 00:05.0 Unclassified device [00ff]: Red Hat, Inc. Virtio RNG [1af4:1005] |
I worked on gvnic for nearly three years (though it was some time ago); It is exciting to see a new paravirtual device of this scope reach General Availability!
A new paravirtual device represents a VM guest/hypervisor ABI and requires careful attention to detail - we needed to ensure that the ABI is a good match to VM guest requirements, to a hypervisor and underlying network infrastructure properties, and is designed with forward-evolution and versioning in mind. There are tradeoffs at multiple levels - for example, VM guests and hypervisors may have different preferences for where in memory transmit or receive frames live and how they're scattered/gathered; whether receive frame headers are more efficient in-line or out-of-line; and hundreds of other decisions that impact system performance and maintainability.
Congratulations to everyone involved in the design and launch of the system; and to everyone who uses it, I hope it works well for you!