1. A system for associating a virtual machine (VM) with a computing resource, the system comprising: a memory for storing: an anti-affinity rule indicating that a first VM is to be separated from a second VM during execution of the first and second VMs, wherein the first VM is associated with a first computing resource of a plurality of computing resources; and a first failure correlation between the first computing resource and a second computing resource of the plurality of computing resources; and a processor coupled to the memory and programmed to: determine a second failure correlation between the first computing resource and a third computing resource of the plurality of computing resources, wherein the second failure correlation is less than the first failure correlation; and associate the second VM with the third computing resource based on the anti-affinity rule and the second failure correlation being less than the first failure correlation.