I think the global option would be best (easiest for majority of users). Also, the documentation for disabling HVM in the db (http://docs.cloudstack.org/Knowledge_Base/How_to_use_CloudStack_without_Hardware_Virtualization) should be updated as well to atleast mention the need to update templates in the db as well if running without HVM support.
On Jul 11, 2012, at 6:39 PM, Anthony Xu wrote: > We removed HVM from UI intentionally due to following reasons, > 1. most users may not know what's HVM, it is confusing. > 2. for vmware, it doesn't care about HVM, it can boot any OS on any x86_64 > host. > 3. for kvm, HVM support is required. > So it is hard for user to configure hvm for template/iso. > And > 4. most of hosts support HVM. > > > Only XenServer cares about HVM, and even for XenServer , HVM is OS specific, > for example, XenServer only supports PV linux, no HVM linux. > Luckily, XenServer will complain if you want to start a HVM on a non-HVM host. > > > So I think we can add a global configuration to enable/disable all HVM checks > in CloudStack > > > Anthony > > > > > > > >> -----Original Message----- >> From: Nitin Mehta [mailto:[email protected]] >> Sent: Wednesday, July 11, 2012 5:07 PM >> To: [email protected] >> Subject: RE: Deploying using ISOs >> >> Celeb - could you please open a UI bug for this @ >> http://bugs.cloudstack.org/secure/Dashboard.jspa ? The UI should have >> an option to mark/unmark the template/iso hvm while registering it. The >> api already provides that. >> >> Thanks, >> -Nitin >> -----Original Message----- >> From: Caleb Call [mailto:[email protected]] >> Sent: Wednesday, July 11, 2012 11:37 AM >> To: [email protected] >> Subject: Re: Deploying using ISOs >> >> Great, thanks, that's exactly what it was. VM started fine this time. >> >> On Jul 11, 2012, at 12:29 PM, Edison Su wrote: >> >>> Yah, that's the problem. All the templates/ISOs uploaded through UI, >> are marked as HVM enabled by default, while your hypervisor doesn't >> support HVM, then you can't create VM. >>> You can hack the DB, by "update vm_template set hvm=0", then try to >> create the VM again. But you need to make sure, your ISO does support >> PV. >>> >>>> -----Original Message----- >>>> From: Caleb Call [mailto:[email protected]] >>>> Sent: Wednesday, July 11, 2012 11:18 AM >>>> To: [email protected] >>>> Subject: Re: Deploying using ISOs >>>> >>>> Guest OS is CentOS, I've tried setting it to CentOS 6 (what it is), >>>> CentOS 5.6, and CentOS 5.3 (what the CentOS 5.6 template uses) and >> it >>>> still does not work. My hypervisor is Xenserver 6 without HVM >>>> support (test environment, using older hardware). >>>> >>>> >>>> On Jul 11, 2012, at 12:13 PM, Edison Su wrote: >>>> >>>>> What's the guest os type of your ISO? How about change the guest OS >>>> type to CentOS 5.6 also? Will it work? >>>>> And what's your hypervisor? Does your hypervisor host support HVM? >>>>> >>>>>> -----Original Message----- >>>>>> From: Caleb Call [mailto:[email protected]] >>>>>> Sent: Wednesday, July 11, 2012 2:28 AM >>>>>> To: [email protected] >>>>>> Subject: Deploying using ISOs >>>>>> >>>>>> I'm trying to create VMs using ISOs I've uploaded. The ISOs all >>>>>> say they are ready to be used and they show up fine during >> instance >>>>>> creation. However, once I create the instance, I get an error >> that >>>>>> says "Unable to create a deployment for VM[User|<vm id>]". >> Looking >>>>>> through the logs, it seems like the way it's determining resources >>>> is >>>>>> different for ISO based and Template based. I can create a VM >>>>>> using the included CentOS 5.6 template with the exact same compute >>>> offering. >>>>>> In the logs I get this when creating a VM from a template: >>>>>> >>>>>> ------------- >>>>>> 2012-07-11 03:08:36,893 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-1:job-51) DeploymentPlanner allocation algorithm: >> firstfit >>>>>> 2012-07-11 03:08:36,893 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-1:job-51) Trying to allocate a host and storage pools >> from >>>>>> dc:2, pod:null,cluster:null, requested cpu: 500, requested ram: >>>>>> 536870912 >>>>>> 2012-07-11 03:08:36,893 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-1:job-51) Is ROOT volume READY (pool already allocated)?: >>>> No >>>>>> 2012-07-11 03:08:36,893 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-1:job-51) Searching all possible resources under this >> Zone: >>>> 2 >>>>>> 2012-07-11 03:08:36,898 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-1:job-51) Listing clusters in order of aggregate capacity, >>>>>> that have (atleast one host with) enough CPU and RAM capacity >> under >>>>>> this Zone: 2 >>>>>> 2012-07-11 03:08:36,900 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-1:job-51) CPUOverprovisioningFactor considered: 3.0 >>>>>> 2012-07-11 03:08:36,921 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-1:job-51) Checking resources in Cluster: 3 under Pod: 2 >>>>>> 2012-07-11 03:08:36,922 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-1:job-51) Calling HostAllocators to find suitable hosts >>>>>> 2012-07-11 03:08:36,922 DEBUG [allocator.impl.FirstFitAllocator] >>>> (Job- >>>>>> Executor-1:job-51 FirstFitRoutingAllocator) Looking for hosts in >> dc: >>>> 2 >>>>>> pod:2 cluster:3 >>>>>> 2012-07-11 03:08:36,928 DEBUG [allocator.impl.FirstFitAllocator] >>>> (Job- >>>>>> Executor-1:job-51 FirstFitRoutingAllocator) FirstFitAllocator has >> 2 >>>>>> hosts to check for allocation: [Host[-1-Routing], Host[-5-Routing]] >>>>>> 2012-07-11 03:08:36,949 DEBUG [allocator.impl.FirstFitAllocator] >>>> (Job- >>>>>> Executor-1:job-51 FirstFitRoutingAllocator) Found 2 hosts for >>>>>> allocation after prioritization: [Host[-5-Routing], >>>>>> Host[-1-Routing]] >>>>>> 2012-07-11 03:08:36,949 DEBUG [allocator.impl.FirstFitAllocator] >>>> (Job- >>>>>> Executor-1:job-51 FirstFitRoutingAllocator) Looking for >>>>>> speed=500Mhz, >>>>>> Ram=512 >>>>>> 2012-07-11 03:08:36,972 DEBUG [cloud.capacity.CapacityManagerImpl] >>>>>> (Job-Executor-1:job-51 FirstFitRoutingAllocator) Checking if host: >>>>>> 5 has enough capacity for requested CPU: 500 and requested RAM: >>>>>> 536870912 , cpuOverprovisioningFactor >>>>>> : 3.0 >>>>>> 2012-07-11 03:08:36,986 DEBUG [cloud.capacity.CapacityManagerImpl] >>>>>> (Job-Executor-1:job-51 FirstFitRoutingAllocator) Hosts's actual >>>> total >>>>>> CPU: 11172 and CPU after applying overprovisioning: 33516 >>>>>> 2012-07-11 03:08:36,986 DEBUG [cloud.capacity.CapacityManagerImpl] >>>>>> (Job-Executor-1:job-51 FirstFitRoutingAllocator) Free CPU: 30516 , >>>>>> Requested CPU: 500 >>>>>> 2012-07-11 03:08:36,994 DEBUG [cloud.capacity.CapacityManagerImpl] >>>>>> (Job-Executor-1:job-51 FirstFitRoutingAllocator) Free RAM: >>>> 4830291968 , >>>>>> Requested RAM: 536870912 >>>>>> 2012-07-11 03:08:36,994 DEBUG [cloud.capacity.CapacityManagerImpl] >>>>>> (Job-Executor-1:job-51 FirstFitRoutingAllocator) Host has enough >>>>>> CPU and RAM available >>>>>> ------------- >>>>>> >>>>>> However, using the exact same compute offering, when I try to >>>>>> create >>>> a >>>>>> VM using an ISO, I get the following in the logs: >>>>>> >>>>>> ------------- >>>>>> 2012-07-11 03:13:58,534 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-2:job-52) DeploymentPlanner allocation algorithm: >> firstfit >>>>>> 2012-07-11 03:13:58,535 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-2:job-52) Trying to allocate a host and storage pools >> from >>>>>> dc:2, pod:null,cluster:null, requested cpu: 500, requested ram: >>>>>> 536870912 >>>>>> 2012-07-11 03:13:58,535 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-2:job-52) Is ROOT volume READY (pool already allocated)?: >>>> No >>>>>> 2012-07-11 03:13:58,535 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-2:job-52) Searching all possible resources under this >> Zone: >>>> 2 >>>>>> 2012-07-11 03:13:58,539 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-2:job-52) Listing clusters in order of aggregate capacity, >>>>>> that have (atleast one host with) enough CPU and RAM capacity >> under >>>>>> this Zone: 2 >>>>>> 2012-07-11 03:13:58,541 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-2:job-52) CPUOverprovisioningFactor considered: 3.0 >>>>>> 2012-07-11 03:13:58,558 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-2:job-52) Checking resources in Cluster: 3 under Pod: 2 >>>>>> 2012-07-11 03:13:58,558 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-2:job-52) Calling HostAllocators to find suitable hosts >>>>>> 2012-07-11 03:13:58,558 DEBUG [allocator.impl.FirstFitAllocator] >>>> (Job- >>>>>> Executor-2:job-52 FirstFitRoutingAllocator) Looking for hosts in >> dc: >>>> 2 >>>>>> pod:2 cluster:3 >>>>>> 2012-07-11 03:13:58,564 DEBUG [allocator.impl.FirstFitAllocator] >>>> (Job- >>>>>> Executor-2:job-52 FirstFitRoutingAllocator) FirstFitAllocator has >> 2 >>>>>> hosts to check for allocation: [Host[-1-Routing], Host[-5-Routing]] >>>>>> 2012-07-11 03:13:58,567 DEBUG [allocator.impl.FirstFitAllocator] >>>> (Job- >>>>>> Executor-2:job-52 FirstFitRoutingAllocator) Found 0 hosts for >>>>>> allocation after prioritization: [] >>>>>> 2012-07-11 03:13:58,568 DEBUG [allocator.impl.FirstFitAllocator] >>>> (Job- >>>>>> Executor-2:job-52 FirstFitRoutingAllocator) Looking for >>>>>> speed=500Mhz, >>>>>> Ram=512 >>>>>> 2012-07-11 03:13:58,568 DEBUG [allocator.impl.FirstFitAllocator] >>>> (Job- >>>>>> Executor-2:job-52 FirstFitRoutingAllocator) Host Allocator >>>>>> returning >>>> 0 >>>>>> suitable hosts >>>>>> 2012-07-11 03:13:58,568 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-2:job-52) No suitable hosts found >>>>>> 2012-07-11 03:13:58,568 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-2:job-52) No suitable hosts found under this Cluster: 3 >>>>>> 2012-07-11 03:13:58,568 DEBUG [cloud.deploy.FirstFitPlanner] (Job- >>>>>> Executor-2:job-52) Could not find suitable Deployment Destination >>>> for >>>>>> this VM under any clusters, returning. >>>>>> 2012-07-11 03:13:58,654 DEBUG [cloud.capacity.CapacityManagerImpl] >>>>>> (Job-Executor-2:job-52) VM state transitted from :Starting to >>>> Stopped >>>>>> with event: OperationFailedvm's original host id: null new host id: >>>>>> null host id before state tran >>>>>> sition: null >>>>>> 2012-07-11 03:13:58,754 DEBUG [cloud.capacity.CapacityManagerImpl] >>>>>> (Job-Executor-2:job-52) VM state transitted from :Stopped to Error >>>> with >>>>>> event: OperationFailedToErrorvm's original host id: null new host >> id: >>>>>> null host id before state >>>>>> transition: null >>>>>> 2012-07-11 03:13:58,800 DEBUG [agent.manager.AgentManagerImpl] >>>>>> (AgentManager-Handler-15:null) SeqA 3-187783: Processing Seq 3- >>>> 187783: >>>>>> { Cmd , MgmtId: -1, via: 3, Ver: v1, Flags: 11, >>>>>> [{"ConsoleProxyLoadReportCommand":{"_proxyVmId":2,"_ >>>>>> loadInfo":"{\n \"connections\": [\n {\n \"id\": 524,\n >>>>>> \"clientInfo\": \"\",\n \"host\": \"10.1.11.3\",\n >>>> \"port\": >>>>>> 5906,\n \"tag\": \"\",\n \"createTime\": >> 1341997999371,\n >>>>>> \"lastUsedTime\": 1341 >>>>>> 997999371\n },\n {\n \"id\": 8,\n \"clientInfo\": >>>>>> \"\",\n \"host\": \"10.1.11.4\",\n \"port\": 5902,\n >>>>>> \"tag\": \"c43d83ff-35e0-4eb6-87b4-d56f7a2929f9\",\n >>>>>> \"createTime\": 1341904048748,\n \"las >>>>>> tUsedTime\": 1341998035188\n }\n ]\n}","wait":0}}] } >>>>>> 2012-07-11 03:13:58,857 DEBUG [agent.manager.AgentManagerImpl] >>>>>> (AgentManager-Handler-15:null) SeqA 3-187783: Sending Seq 3-187783: >>>>>> { Ans: , MgmtId: 74142025330, via: 3, Ver: v1, Flags: 100010, >>>>>> [{"AgentControlAnswer":{"result":true,"wa >>>>>> it":0}}] } >>>>>> 2012-07-11 03:13:59,133 INFO [api.commands.DeployVMCmd] (Job- >>>> Executor- >>>>>> 2:job-52) com.cloud.exception.InsufficientServerCapacityException: >>>>>> Unable to create a deployment for VM[User|i-2-18- >> VM]Scope=interface >>>>>> com.cloud.dc.DataCenter; id=2 >>>>>> 2012-07-11 03:13:59,134 WARN [cloud.api.ApiDispatcher] (Job- >>>> Executor- >>>>>> 2:job-52) class com.cloud.api.ServerApiException : Unable to >> create >>>> a >>>>>> deployment for VM[User|i-2-18-VM] >>>>>> ------------- >>>>>> >>>>>> >>>>>> So after looking for the exact same thing "Looking for >>>>>> speed=500Mhz, Ram=512" in both cases, the template passes (or >>>>>> atleast proceeds to >>>> do >>>>>> further checks, and eventually passing) and the ISO immediately >>>> fails. >>>>>> Is there something I'm doing wrong? Is this a bug that needs to >> be >>>>>> patched or looked in to? Or, is there another way to create a >>>> template >>>>>> other than deploying with an ISO and creating a template off that >>>>>> deployment? >>>>>> >>>>>> Environment info: >>>>>> >>>>>> Cloudstack 3.0.2 >>>>>> ISO Tried - CentOS 6.2 minimal (both x86 and x64), Ubuntu Server >>>> 12.04, >>>>>> CentOS 5.8 Netinstall >>>>>> >>>>>> Thanks, >>>>>> Caleb >>>>> >>> >
