CloudStack has to coordinate several components.
At a high level:
User/API
↓
CloudStack Management Server
↓
Selects resources
↓
Selects Host + Primary Storage
↓
Gets template from Secondary Storage
↓
Creates VM disk
↓
Configures networking
↓
Starts VM
CloudStack considers things such as:
-
Service Offering
-
Template
-
Disk Offering
-
Available host capacity
-
Storage availability
-
Network configuration
-
VM placement rules
So a failed VM deployment doesn’t necessarily mean the KVM host itself is broken. The failure could happen at the template, storage, capacity, networking, or placement layer.