CloudStack
  1. CloudStack
  2. CLOUDSTACK-5140

A stopped vm cant start after disable threshold has been reached on the storage pool

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.2.0, 4.3.0
    • Fix Version/s: 4.2.1, 4.3.0
    • Component/s: Management Server
    • Security Level: Public (Anyone can view this level - this is the default.)
    • Labels:
      None

      Description

      Incorrect primary storage allocation behaviour:

      If a datastore reaches ‘disable threshold’ a stopped VM that was already on that datastore will refuse to start? Pre 4.2 thresholds were only applicable at the allocation time.

      I still see the code is present in 4.2 and master as well that can cause this issue.
      Following highlighted code is what causes it:
      DeploymentPlanningMgrImpl :: findPotentialDeploymentResources () {
      ….

      if (hostCanAccessSPool(potentialHost, potentialSPool)) {
      hostCanAccessPool = true;
      if (multipleVolume)

      { List<Volume> requestVolumes = null; if (volumeAllocationMap.containsKey(potentialSPool)) requestVolumes = volumeAllocationMap.get(potentialSPool); else requestVolumes = new ArrayList<Volume>(); requestVolumes.add(vol); if (!_storageMgr.storagePoolHasEnoughSpace(requestVolumes, potentialSPool)) continue; volumeAllocationMap.put(potentialSPool, requestVolumes); }

      storage.put(vol, potentialSPool);
      haveEnoughSpace = true;
      break;
      }

      }

      Issue is that this check should NOT be done for a Volume that is already created and exists on the pool.

      Happens with a VM having root and data volumes.

        Activity

          People

          • Assignee:
            Prachi Damle
            Reporter:
            Prachi Damle
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development