So, the failover won’t actually be automatic though since Roon bridges require exclusive access to an audio device. Moreover, since each endpoint has its own bridge, it’s actually worse now in that you’ll need to identify and then manually restart one of those bridges.
If you’re running a single bridge eg; as a systemd service, the service will automatically restart for you in less than a second if it does happen to fail. Moroever, by running a single bridge you get much better performance since the CPU scheduler in the kernel is able to better manage vectorized workloads (things like convolutions are vectorized operations that require special CPU instructions that can disrupt other workloads on the VM).
All you’re going to get is increased latency by running a bunch of VMs. In fact, even amazon is going down the route of providing bare metal instances (or using very low level hypervisors that provide exclusive hardware access) due to the disadvantages of VMs.
If you do want multiple running bridges for whatever reason then use docker. There’s no virtualization overhead and the network hit is very minimal (order of microseconds).