BtrPlace is a virtual machines placement algorithm for hosting platforms. You can specialized it safely through independant constraints to make it support what match your expectations.