1. A system for associating a virtual machine (VM) with a computing resource, the system comprising: a memory for storing a placement rule indicating one of the following: that a first virtual machine (VM) is to be co-located with a second VM during execution of the first and a second VM, or that the first VM is to be separated from the second VM during execution of the first and second VMs; and a processor programmed to: determine failure correlations for a plurality of computing resources associated with the first VM; select a computing resource with a lowest failure correlation from the plurality of computing resources; and associate the second VM with the selected computing resource despite the association violating the placement rule.