diff --git a/compute/src/main/java/org/zstack/compute/allocator/HostCapacityReserveManagerImpl.java b/compute/src/main/java/org/zstack/compute/allocator/HostCapacityReserveManagerImpl.java
index 39134b9992e..eeec05e44eb 100755
--- a/compute/src/main/java/org/zstack/compute/allocator/HostCapacityReserveManagerImpl.java
+++ b/compute/src/main/java/org/zstack/compute/allocator/HostCapacityReserveManagerImpl.java
@@ -335,6 +335,8 @@ public ReservedHostCapacity getReservedHostCapacityByZones(List<String> zoneUuid
         SimpleQuery<HostVO> q = dbf.createQuery(HostVO.class);
         q.select(HostVO_.uuid);
         q.add(HostVO_.zoneUuid, Op.IN, zoneUuids);
+        q.add(HostVO_.state, Op.EQ, HostState.Enabled);
+        q.add(HostVO_.status, Op.EQ, HostStatus.Connected);
         List<String> huuids = q.listValue();
         if (huuids.isEmpty()) {
             return ret;
@@ -360,6 +362,8 @@ public ReservedHostCapacity getReservedHostCapacityByClusters(List<String> clust
         SimpleQuery<HostVO> q = dbf.createQuery(HostVO.class);
         q.select(HostVO_.uuid);
         q.add(HostVO_.clusterUuid, Op.IN, clusterUuids);
+        q.add(HostVO_.state, Op.EQ, HostState.Enabled);
+        q.add(HostVO_.status, Op.EQ, HostStatus.Connected);
         List<String> huuids = q.listValue();
         if (huuids.isEmpty()) {
             return ret;