What is a SmartNIC you ask??
The term SmartNIC can actully be applied to range of devices, but generally it tends to refer to some sort of juiced up NIC or network interface card. Yes, they can do the regular job of being the connectivity piece in your server that enables communication with other devices but they also can do a whole lot more......
And before anyone asks, no not this guy
The Why ??
So before we get onto what they can do and how they do it lets take a look at the broader issues they address. Essentially, we've been asking more and more or our server CPUs for a while now and they're basically getting slammed! Memory as a bottle neck..... not so much, but CPUs absolutely - we seem to be finding more and more ways to chew through the limited CPU cycles we have. On a related note, does anyone remember our old friend spectre/meltdown and the performance impacting mitigations that came along with them 😱?? Not so good times!
It's really all about improving efficiency in the Datacentre. If we can better utilise the resouces we have and get better/more performance out of them then we're heading in the right direction. By offloading tasks not suited to being run on a general purpose CPU, not only do we improve the CPUs efficiency but we also hand that task to a device better suited to do the work.
There seems to be a bit of debate around the specifics of the name here but I'll take some liberties and group a bunch of things in this category: SmartNIC's (including those that are ASIC-based, FPGA-based, and SoC based), DPUs or data processing units, IPUs or infrastructure processing units and even FACs or functional accelerator cards! All these names came about I suppose because you have many vendors playing in this space: Broadcom, Intel, Fungible, Marvel Technology Group, Mellanox, Netronome, Solarflare to name a few. Generally these are programmable devices with their own processor, operating system, memory, networking and acceleration functions. In fact, the classic quote seems to be "its like a server within a server"!
Just some of the areas/things they can be used to accelerate (and who doesn't like a bit of extra performance):
- Network (embedded switch, load balancing, deep packet inspection, routing, virtualization security, firewalling, SDN, overlays)
- Storage (remote vsan, NVMe)
- NFV (network functions virtualization)
Project Monterey - VMware
Oh yeah, and this is where things get really interesting! Project Monterey was first announced at VMworld in 2020, with follow up sessions last year at VMworld 2021. It's VMwares vision of the next generation Datacentre with a distributed architecture and of course its all about the DPU (or SmartNIC if you prefer).
Looping back to the whole "server within a server" thing, here we have ESXi running on a DPU (yes, thats a PCIe device in the server)! How cool is that 🤯! In the first stages of the project the focus has been on Network and Security functions via NSX-T services offloaded to the DPU (think micro segmentation, visibility and policy formulation, threat detection and prevention). But when you start to consider other things like storage services running on the DPU, disaggregation starts to sound REAL interesting! Imagine remote vSAN or NVMeoF storage presented via DPUs to vSphere hosts or even bare metal nodes!
A facinating quote from an equally facinating article from Dell (source) :
"DPUs enable disaggregation and pooling of all datacenter resources, delivering high- performance and low latency at scale. The DPU can enable heterogenous compute (e.g. CPUs, GPUs, FPGAs) and storage resources (SSDs) distributed across servers to be pooled together directly to maximize utilization, and in doing so increase TCO (Total Cost of Ownership). DPUs enable disaggregation and pooling of compute and resources at scale"
With Project Monterey VMware are working with a number of ecosystem partners including: Intel, NVIDIA, Pensando Systems, Dell Technolgoies, HPE, and Lenovo. There is great content about this project online particularly some of the material from previous VMworlds, I'd suggest strating somewhere like this if your interested
Anyhow, I've ranted long enough - Project Monterey is now in the "Early Access stage" of the project but, unfortunately VMware haven't announced as yet when it'll be released. It certainly sounds like an interesting piece of work and I'm excited to keep an eye on how it develops. I did notice in one of the VMworld presentations it being installed in an ESXi build 8.0 EP1 (I think?) so, that might hint when we could see it.......maybe🤞🏼