Hi Gilad/Martin,
Thanks for the reply.
Let me explain the scenario in details:-
Each Host would have local filesystems and can be integrated with oVirt as POSIX filesystems storage.
Assume each server can run maximum 6 VMs simultaneously(due to memory/CPU constraints) and we have configured 5 hosts (Node1, Node2....Node5).
In the beginning the 5 hosts are being configured in the oVirt engine and there is no VM.
Now I create the first VM named VM1 and place it in Node1, from this point oVirt Schedular would decide which other host it would put the replica on. This replica VM1 will be in passive state in another host (Node 2 as per diagram). The same procedure would apply on the other created VMs as well.
The role of the oVirt scheduler would be to optimize the placement of VMs in such a way that we can maximize the number of VMs availability in case of host(s) failure. Also it should replicate the delta updates to corresponding passive VMs.
As per the scenario in a perfect condition 4 VMs are running in each host providing scope for running 2 extra VMs(maximum 6)in case of other host failures.The underlying local storage have kept 4 extra VMs (QCOW2 disks and config files) from different hosts in addition to the 4 VM disk files for the running VMs.
Due to some reason Node2 and Node4 have failed, now the replicated passive VMs for the failed nodes will be started on the remaining nodes. In this case most of the VMs were able to start in different node except VM7 and VM14 as those VMs don't have replicas available in the other running nodes.
The maximum availability of the VMs can be calculated using the following formula:-
Total No. of VMs running after node failure = ((Total No. of Nodes) - (No. of failed Nodes)) * (Max. No. of VMs that can run per Node)
The HA VM reservation is an excellent feature no doubt, but I think its only applicable if you have a shared storage underlying(NFS,SAN,Gluster etc..).(Correct me if I'm wrong)
And yes GlusterFS does have distributed replicated feature which can replicate VM data in multiple bricks, but in GlusterFS you have to map the replicated bricks during creation and the data can only be replicated between the two (or multiple based on your replication numbers) bricks only.
The advantage of this feature would be that you can add standalone nodes(odd/even numbers) in oVirt ecosystem and schedular can place VMs in such a balanced and optimized mode so that maximum number of VMs remain available after N nodes failure from M number of nodes(where M>N)
Please put your valuable thoughts regarding the same.
Request you to let me know if you need any further clarifications from my side.
Thanks
Kausik