Virtualization originally showed up in servers, where VMware provided software to virtualize servers and storage so that multiple servers could be run on a single hardware device. Each server had its own shared or dedicated CPU, memory, and disk resources. As the concept of SDN came along, the need for virtualized networks arrived. In the beginning, network virtualization was local to the network adapters in the server, allowing multiple virtual servers to share the same network connection.
While, initially, simple network virtualization was useful, the need for more powerful features came along. These features, such as firewalls, hardware pass-through, and others, pushed the industry to create better hardware with features such as SR-IOV, which is the ability to utilize hardware features on network cards on multiple virtual machines, essentially virtual functions.