I am relatively new to OpenNebula, but I’ll try:
HA is described in the Advanced administration guide: http://docs.opennebula.org/4.14/advanced_administration/high_availability/index.html
For my setup, I have not decided yet whether it is worth the additional complexity. Should OpenNebula fail,
the physical hosts remain runing, as well as existing VMs on them. So for the services running on the private cloud servers, the outage of OpenNebula would not matter much.
I have tried GlusterFS and CEPH, and for OpenNebula I decided to use CEPH instead of GlusterFS. I have a CEPH RBD pool as a main datastore for VM images, and a non-shared system datastore with TM_MAD=ssh. I am also considering CEPH-FS for the system datastore, but so far I am OK with the current setup.
FWIW, my nodes have two physical disks per node, there is a 20 GB RAID-1 volume (linux md-based) for the root filesystem, 4 GB RAID-1 volume for swap, and the rest of both disks is used as non-RAID partitions with XFS for two separate CEPH OSDs (my OpenNebula nodes are also CEPH nodes).
I use MySQL backend remotely connecting to the MySQL server which runs other databases outside OpenNebula as well.
Hope this helps.