It should be the job of the storage system to recommend a particular backend implementation, whether this is
- vbd: blkback
- vbd3: tapdisk3
- qdisk: qemu qdisk
For example, a Ceph implementation could recommend 'qdisk'; a regular .vhd backend could recommend 'vbd3' and an LVM implementation with type=raw could recommend 'vbd'.
It's fine to keep a per-VBD override for people who really know what they're doing.