A computer-implemented method of determining compatibility of a virtual machine in a plurality of virtual machines (VM1-VM5) with a host in a plurality of hosts (H1-H5), the method comprising: retrieving host properties from each of the plurality of hosts (H1-H5), the host properties including available resources in each of the plurality of hosts (H1-H5); creating a plurality of host logical groups (HG1-HG5) of a subset of the plurality of hosts (H1-H5) having same host properties; characterised by: retrieving virtual machine properties from each of the plurality of virtual machines (VM1-VM5), the virtual machine properties including computing resource requirements of each of the plurality of the virtual machine; creating a plurality of virtual machine logical groups (VMG1-VMG5) of a subset of the plurality of virtual machines (VM1-VM5) having same virtual machine properties; and creating a lookup matrix including the plurality of virtual machine logical groups (VMG1-VMG5) and the plurality of host logical groups (HG1-HG5), and when the virtual machine (VM 1) is moved from one of the hosts (H 1) to another host, providing answers by the lookup matrix as to whether each member of a particular virtual machine logical group can be transferred to each member of a particular host logical group. retrieving host properties from each of the plurality of hosts (H1-H5), the host properties including available resources in each of the plurality of hosts (H1-H5); creating a plurality of host logical groups (HG1-HG5) of a subset of the plurality of hosts (H1-H5) having same host properties; characterised by: retrieving virtual machine properties from each of the plurality of virtual machines (VM1-VM5), the virtual machine properties including computing resource requirements of each of the plurality of the virtual machine; creating a plurality of virtual machine logical groups (VMG1-VMG5) of a subset of the plurality of virtual machines (VM1-VM5) having same virtual machine properties; and creating a lookup matrix including the plurality of virtual machine logical groups (VMG1-VMG5) and the plurality of host logical groups (HG1-HG5), and when the virtual machine (VM 1) is moved from one of the hosts (H 1) to another host, providing answers by the lookup matrix as to whether each member of a particular virtual machine logical group can be transferred to each member of a particular host logical group. retrieving virtual machine properties from each of the plurality of virtual machines (VM1-VM5), the virtual machine properties including computing resource requirements of each of the plurality of the virtual machine; creating a plurality of virtual machine logical groups (VMG1-VMG5) of a subset of the plurality of virtual machines (VM1-VM5) having same virtual machine properties; and creating a lookup matrix including the plurality of virtual machine logical groups (VMG1-VMG5) and the plurality of host logical groups (HG1-HG5), and when the virtual machine (VM 1) is moved from one of the hosts (H 1) to another host, providing answers by the lookup matrix as to whether each member of a particular virtual machine logical group can be transferred to each member of a particular host logical group.