vDPA: Support for block devices in Linux and QEMU
stefano-garzarella.github.io
stefano-garzarella.github.io
I honestly don’t know what this means. Is it faster? Is it more secure? Why would I use this vDPA thing instead of the good’ol virtio blk driver? Looking at the examples it certainly looks more cumbersome to setup…
If I'm implementing a hardware device anyway, why would I not just use NVMe as the interface? NVMe is superior to virtio-blk in every way that I can think of.
Even for a software device in userspace, why not use a technology like vfio-user to present an NVMe device, or just use vhost-user to present the virtio-blk device?
I've never really been able to get a clear value proposition for vDPA for storage laid out for me. Maybe I'm missing something critical - it's certainly possible.
In storage, however, the industry has agreed on NVMe. This is a full standard for control and data plane. All storage products on the market, including DPUs and SmartNICs, just present NVMe devices. So there's no case to be made for vDPA at all. It just isn't necessary.
As for vhost-user, it's perfect for VM use cases, but with containers or applications in the host, it's not easy to use. Whereas, a vDPA device (HW or SW) can easily be attached to the host kernel (using the virtio-vdpa bus) and be managed with the standard virtio-blk driver.
`cephadm bootstrap` requires docker or podman and ssh: https://docs.ceph.com/en/latest/cephadm/install/#bootstrap-a...
Ceph Object Gateway: radosgw: https://docs.ceph.com/en/latest/radosgw/ :
> The Ceph Object Gateway provides interfaces that are compatible with both Amazon S3 and OpenStack Swift, and it has its own user management. Ceph Object Gateway can use a single Ceph Storage cluster to store data from Ceph File System and from Ceph Block device clients. The S3 API and the Swift API share a common namespace, which means that it is possible to write data to a Ceph Storage Cluster with one API and then retrieve that data with the other API.
virtio-blk is probably faster, but then do HA redundancy with physically separate nodes and network io anyway; or LocalPersistentVolumes
Ceph's RBD is "special" in the sense that the client understands the clustering, and talks to multiple servers. If you wanted that in the mix, you'd have to run a local Ceph client -- like the Ceph software stack exposing block devices from kernel does. The only way I can see vDPA being relevant to that is to avoid middlemen layers, VM -> host kernel block device abstraction -> Ceph kernelspace RBD client. But the block device abstraction is pretty thin.
The real use case for vDPA, when talking about storage, seems to be standardizing an interface the hardware can provide. And then we're back to "why not NVMe?".
(Disclaimer: ex-Ceph-employee)
For a start, read their post on virtio-networking and vhost-net [0], continue with virtio-networking and DPDK [1] and finally read "Achieving network wirespeed in an open standard manner: introducing vDPA" [2].
In particular the last link has a lot of diagrams, recaps a lot of the virtio-networking topics and finally has a table which compares the other solutions to vDPA.
[0] https://www.redhat.com/en/blog/introduction-virtio-networkin... [1] https://www.redhat.com/en/blog/how-vhost-user-came-being-vir... [2] https://www.redhat.com/en/blog/achieving-network-wirespeed-o...
So it’s subscription or bust? Owch.
Very glad I decided to use Proxmox (as the Broadcom acquisition had been announced) for the small cluster we set up at our business a year ago, it’s been super stable, pretty easy to use but can do way more than I need (we’re not doing much that is that complicated yet)
LSI was the standard for hardware raid, 3com and others big network names. Now they are Broadcom, which basically means:
* do as little as possible
* axe most support
* screw the little guy
* milk milk milk
* no real heavy R&D
This means, to me, that lots of hardware and software is being handled far less diligently than Boeing.
And that scares me.
I use proxmox, which is hard to use but open. It is powerful, but you sort of have to be a sysadmin to climb the learning curve with it.
But I have lots of friends who are busy at home, but use vmware there. To them it is the same sort of "free" as proxmox.
They create an abstract model of vmware in their heads.
And when they're at work, they think of virtualization kinds of problems in terms of vmware. So at work, that's the tool they frequently reach for.
https://www.allthingsdistributed.com/2020/09/reinventing-vir...
> The Nitro System is comprised of three main parts: the Nitro Cards, the Nitro Security Chip, and the Nitro Hypervisor. The Nitro Cards are a family of cards that offloads and accelerates IO for functions ... The Nitro architecture also enabled us to make the hypervisor layer optional and offer bare metal instances. Bare metal instances provide applications with direct access to the processor and memory resources of the underlying server.
we will soon get to a point qemu will just be a job manager for software that plugs directly into local syscalls, like, you know, regular software running on your system.