1. A computer-implemented method of determining compatibility of a virtual machine in a plurality of virtual machines with a host in a plurality of hosts, the method comprising: retrieving virtual machine properties from each of the plurality of virtual machines, the virtual machine properties including computing resource requirements of each of the plurality of virtual machine; retrieving host properties from each of the plurality of hosts, the host properties including available resources in each of the plurality of hosts; creating a plurality of host logical groups of a subset of the plurality of hosts having substantially same host properties; creating a plurality of virtual machine logical groups of a subset of the plurality of virtual machines having substantially same virtual machine properties; and creating a lookup matrix including the plurality of virtual machine logical groups and the plurality of host logical groups, wherein the lookup matrix provides answers whether each member of a particular virtual machine logical group can be transferred to each member of a particular host logical group; updating the lookup matrix if the virtual machine properties of a virtual machine change, wherein the updating includes moving the virtual machine to another virtual machine logical group that contains virtual machines having substantially same virtual machine properties as the virtual machine, wherein if the virtual machine properties of all virtual machines in a virtual machine logical group change then properties of the virtual machine logical group are changed and virtual machines are not transferred to another virtual machine logical group, and wherein the host properties of each host logical group are collectively distinguishable from the host properties of any other host logical group.