I do not want to have this situation ever occur: Split brain when some kvm's are runing on one node and some on the other.
Make two DRBD volumes
Run all the VMs on one node on one DRBD volume and do the same for the other node using the other DRBD volume.
I have described this in detail on the wiki, complete with info on how to recover from split-brain.
Some advantages:
When split-brain happens you only need to resync 50% of your data, one DRBD volume. Rarely do both split-brain at the same time.
You can utilize your resourceses better gaining some performance when both nodes are up.
Using the failoverdomains with HA VMs you can ensure the VMs will live on the proper server by default.
All that being said, I do not use HA VMs on my DRBD volumes.
If setup properly AND working properly I can not think of any way that HA could possibly make a bad decision when a node fails and DRBD is involved.
But there is one problem,
HA is not aware of the DRBD status.
With HA, running the VMs on one node like you sugested or both as I suggested this can still happen:
1. DRBD split-brains at 1AM
2. The node running the VMs, where the current data is located, fails at 6AM.
3. HA starts the VMs up on the other node, the one with the OLD data.
4. Now you have a mess to sort out, have fun with that.
Sometimes it is better to let a human make a decision on what the best thing to do is.
Maybe I can easily fix the failed node by swapping a power supply, I might prefer to do that rather than loose some data.
We need to make HA aware of DRBD status, it needs to work more like this:
1. node runnings VMs fails
2. HA looks at what the DRBD status was 5 minutes ago
a) If status was good, start VM on other node
b) if status was bad, do nothing, alert a human to make a decision
Until I can figure out how to do that, DRBD + HA is not a combination I would recommend.