A system comprising: a processor and memory; and machine readable instructions stored in the memory, when executed by the processor, configure the processor to perform a method for minimizing co-locations of hard disk drive, HDD, bound virtual machines, the method comprising: receiving a request to deploy a virtual machine on a node from a plurality of nodes running a plurality of virtual machines in a cloud computing system; collecting data regarding HDD input output operations per second, IOPS, performed by the plurality of nodes when running the plurality of virtual machines; selecting one of the plurality of nodes having an HDD IOPS value less than an observed HDD IOPS value for the plurality of nodes running the plurality of virtual machines, the observed HDD IOPS value being generated based on the collected data, wherein the observed HDD IOPS value for the plurality of nodes includes a maximum HDD IOPS value for the plurality of nodes; receiving a predicted HDD IOPS value for the virtual machine, the predicted HDD IOPS value being generated based on the collected data, wherein the predicted HDD IOPS value for the virtual machine includes a maximum predicted HDD IOPS value for the virtual machine; determining a new HDD IOPS value for the selected node based on the HDD IOPS value for the selected node and the predicted HDD IOPS value for the virtual machine; determining whether the new HDD IOPS value for the selected node is greater than the observed HDD IOPS value for the plurality of nodes; if the new HDD IOPS value for the selected node is greater than the observed HDD IOPS value for the nodes, determining whether to select another node as a target node for deploying the virtual machine; and instantiating the virtual machine on the selected node when the new HDD IOPS value for the selected node is less than or equal to the observed HDD IOPS value for the plurality of nodes. a processor and memory; and machine readable instructions stored in the memory, when executed by the processor, configure the processor to perform a method for minimizing co-locations of hard disk drive, HDD, bound virtual machines, the method comprising: receiving a request to deploy a virtual machine on a node from a plurality of nodes running a plurality of virtual machines in a cloud computing system; collecting data regarding HDD input output operations per second, IOPS, performed by the plurality of nodes when running the plurality of virtual machines; selecting one of the plurality of nodes having an HDD IOPS value less than an observed HDD IOPS value for the plurality of nodes running the plurality of virtual machines, the observed HDD IOPS value being generated based on the collected data, wherein the observed HDD IOPS value for the plurality of nodes includes a maximum HDD IOPS value for the plurality of nodes; receiving a predicted HDD IOPS value for the virtual machine, the predicted HDD IOPS value being generated based on the collected data, wherein the predicted HDD IOPS value for the virtual machine includes a maximum predicted HDD IOPS value for the virtual machine; determining a new HDD IOPS value for the selected node based on the HDD IOPS value for the selected node and the predicted HDD IOPS value for the virtual machine; determining whether the new HDD IOPS value for the selected node is greater than the observed HDD IOPS value for the plurality of nodes; if the new HDD IOPS value for the selected node is greater than the observed HDD IOPS value for the nodes, determining whether to select another node as a target node for deploying the virtual machine; and instantiating the virtual machine on the selected node when the new HDD IOPS value for the selected node is less than or equal to the observed HDD IOPS value for the plurality of nodes. receiving a request to deploy a virtual machine on a node from a plurality of nodes running a plurality of virtual machines in a cloud computing system; collecting data regarding HDD input output operations per second, IOPS, performed by the plurality of nodes when running the plurality of virtual machines; selecting one of the plurality of nodes having an HDD IOPS value less than an observed HDD IOPS value for the plurality of nodes running the plurality of virtual machines, the observed HDD IOPS value being generated based on the collected data, wherein the observed HDD IOPS value for the plurality of nodes includes a maximum HDD IOPS value for the plurality of nodes; receiving a predicted HDD IOPS value for the virtual machine, the predicted HDD IOPS value being generated based on the collected data, wherein the predicted HDD IOPS value for the virtual machine includes a maximum predicted HDD IOPS value for the virtual machine; determining a new HDD IOPS value for the selected node based on the HDD IOPS value for the selected node and the predicted HDD IOPS value for the virtual machine; determining whether the new HDD IOPS value for the selected node is greater than the observed HDD IOPS value for the plurality of nodes; if the new HDD IOPS value for the selected node is greater than the observed HDD IOPS value for the nodes, determining whether to select another node as a target node for deploying the virtual machine; and instantiating the virtual machine on the selected node when the new HDD IOPS value for the selected node is less than or equal to the observed HDD IOPS value for the plurality of nodes.