You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2013/12/06 20:51:36 UTC
[jira] [Commented] (CLOUDSTACK-5140) A stopped vm cant start after
disable threshold has been reached on the storage pool
[ https://issues.apache.org/jira/browse/CLOUDSTACK-5140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13841611#comment-13841611 ]
ASF subversion and git services commented on CLOUDSTACK-5140:
-------------------------------------------------------------
Commit 60cca0f65eb57560f05961ef7665f3eff3cfc572 in branch refs/heads/master from [~prachidamle]
[ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=60cca0f ]
CLOUDSTACK-5140: A stopped vm cant start after disable threshold has been reached on the storage pool
Changes:
- Do not do the stoarge capacity check for a VM having READY Volumes that are already present on the storagepool.
Conflicts:
server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java
> A stopped vm cant start after disable threshold has been reached on the storage pool
> ------------------------------------------------------------------------------------
>
> Key: CLOUDSTACK-5140
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-5140
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the default.)
> Components: Management Server
> Affects Versions: 4.2.0
> Reporter: Prachi Damle
> Assignee: Prachi Damle
> Fix For: 4.2.1
>
>
> 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.
--
This message was sent by Atlassian JIRA
(v6.1#6144)