I would definitely recommend splitting the SQL and BES onto separate servers, whether you have them on VMs or not. The BES is pretty finnicky in my experience, so the less interference it has from other software the better. This is especially true on a VM. I don't know why, but when we had ours on a VM it was really unreliable. As soon as I moved it to a physical server (even an old, crappy one which should theoretically have performed worse than the VM) the BES started working much better.