Commit Graph

72 Commits

Author SHA1 Message Date
Nitin Mehta fc261e70f7 bug 11996: Improve logging and catch throwable to make it robust.
status 11996: resolved fixed
2011-11-18 12:22:50 +05:30
prachi 313e6ca284 Bug 8791 user dispersing allocator
Changes:
- Added a two new deployment planners  'UserDispersingPlanner' and 'UserConcentratedPodPlanner' to the DeploymentPlanners
- Planner can be chosen by setting the global config variable 'vm.allocation.algorithm' to either of the following values:
('random', 'firstfit', 'userdispersing', 'userconcentratedpod')
- By default, the value is 'random'. When the value is 'random', FirstFitPlanner is invoked as before that shuffles the resource lists.
- Now Admin can choose whether the deployment heuristic should be applied starting at cluster or pod level. This can be done by using the
global config variable 'apply.allocation.algorithm.to.pods' which is false by default. Thus by default as earlier, planner starts at clusters directly.

'UserConcentratedPodPlanner' changes:
- Earlier to 3.0, FirstFitPlanner used to reorder the clusters in case this heuristic was chosen.
- Now this is done by a separate planner and is applied only when 'vm.allocation.algorithm' is set to this planner
- It reorders the capacity based clusters/pods such that those pods having more number of Running Vms for the given account are tried first.
- Note that this userconcentration is applied only to pods and clusters. Not to hosts or storagepools within a cluster.

'UserDispersingPlanner' changes:
- 'UserDispersingPlanner' reorders the capacity ordered pods and clusters based on number of 'Running' VMs for the given account in ascending order. Aim is to choose thodes pods/clusters first which have less number of Running VMs for the given account
- Admin can provide weights to capacity and user dispersion so that both parameters get considered in reordering the pods/clusters. This can be done by setting
the global config parameter 'vm.user.dispersion.weight'. Default value is 1. Thus if this planner is chosen, by default, ordering will be done only by number of Running Vms, unless the weight is changed.
- HostAlllocators and StoragePoolAllocators also reorder the hosts and pools by ascending order of number of Running VMS/ Ready Volumes respectively for the given account. Thus try to choose that host or pool within a cluster with less number of VMs for the account.
2011-11-17 18:29:39 -08:00
Nitin bbbfdd52ec bug 10848: Minor fixes. 2011-10-31 17:00:11 +05:30
Nitin 2b370ab535 bug 10657: Introducing cluster level global thresholds for cpu and ram so that these resources do not go beyond these thresholds. The reason for this is because, if the admn needs to provide maintenance, they don't have to add new machines or have ones on standby if the entire zone/pod/cluster is at 100% allocated capacity. Also introducing pool level global thresholds for allocated storage. There are other changes like DB upgrade and introduction of transaction. 2011-10-29 16:51:37 +05:30
frank cef30956e9 Merge branch 'newagentmgr'
Conflicts:
	agent-simulator/src/com/cloud/api/commands/ConfigureSimulator.java
	ovm/src/com/cloud/ovm/hypervisor/OvmDiscoverer.java
	server/src/com/cloud/agent/manager/AgentManagerImpl.java
	server/src/com/cloud/capacity/CapacityManagerImpl.java
	server/src/com/cloud/network/F5BigIpManagerImpl.java
	server/src/com/cloud/network/JuniperSrxManagerImpl.java
	server/src/com/cloud/resource/ResourceManagerImpl.java
	server/src/com/cloud/server/ManagementServerImpl.java
	server/src/com/cloud/storage/snapshot/SnapshotManagerImpl.java
	server/src/com/cloud/vm/UserVmManagerImpl.java
	server/src/com/cloud/vm/VirtualMachineManagerImpl.java
	utils/src/com/cloud/utils/db/GenericDao.java
2011-10-27 11:09:56 -07:00
Nitin 70aae9666b bug 10774: On removing storage, local storage, cluster handle deletion of corresponding op_host_capacity rows. 2011-10-27 11:23:26 +05:30
Nitin 9ba4b7073e bug 10893: Adding config vlaue conventions. 2011-10-27 11:22:53 +05:30
Nitin 6423631522 bug 10893: Adding a new capacity type - Local Primary storage. 2011-10-27 11:22:18 +05:30
Nitin 3921421ce5 bug 10848: listCapacity - sum the used and reserved capacities. Also apply overprovisioning factore explicitly 2011-10-27 11:21:32 +05:30
Nitin 9c20c1b1b6 bug 10848: ListCapacity - Full rework. This fixes the pagination logic and the capacities are visible till the cluster level. 2011-10-27 11:18:56 +05:30
Nitin cfebce78b0 bug 10848: Removing the Host Capacity Checker thread which checks for skipcounting hours and also keeps host's CPU and Memory in sync. This work would be done by capacity checker thread now. 2011-10-27 11:18:25 +05:30
Edison Su 92eaf49f29 Add storage migration 2011-10-24 15:59:47 -07:00
Nitin 823b80a92e bug 10848: Change function signatures to accept capacity type as an object.. 2011-10-12 16:07:00 +05:30
Nitin c16b3eac54 bug 11668: Do not apply 'cpu.overprovisioning.factor' while setting total_cpu in the op_host_capacity entry. 2011-10-10 19:22:49 +05:30
frank 89e04458b6 Bug 11522 - New agent manager
move all listxxx interface from HostDao to managers(ResourceManager, SecondaryStorageVmManager etc) with decent name using SearchCriteria2
or direct call SearchCriteria2 on demand
2011-10-04 14:35:26 -07:00
prachi 083b458f03 Bug 11617 - Ensure the Deployment planner is choosing clusters based on aggregate capacity
Merge removed this import statement. Adding it back.
2011-10-03 15:46:41 -07:00
prachi e0a179752d Bug 11617: Ensure the Deployment planner is choosing clusters based on aggregate capacity
Changes:
- We were ordering clusters based on capacity of the first-fit host found in each cluster. Due to this, there were cases where we deployed VMs to one cluster instead of balancing off within clusters.
- Now we order the list of clusters by aggregate capacity and choose the ones that have enough capacity for the required VM in this order.
- This should balance the load between clusters instead of bombarding one.

Conflicts:

	server/src/com/cloud/capacity/dao/CapacityDao.java
	server/src/com/cloud/capacity/dao/CapacityDaoImpl.java
2011-10-03 15:37:38 -07:00
Nitin da2696b2f6 bug 11051: ListCluster - Apply cpu overprovisioning explicitly as it is not applied when its stored in the db. Also avoid calculating the non shared storage for storage allocated capacity calculation. 2011-09-28 16:16:28 +05:30
Nitin f49578c23a bug 11051: ListZones - Introduce a flag 'showCapacitites'. When its true it will start displaying all the capacitites (as objects in the response) for the respective zone. Also correcting the summation logic for List cluster, pod and zone commands 2011-09-21 16:59:16 +05:30
Nitin 4a5f6faca2 bug 11051: ListClusters - Introduce a flag 'showCapacitites'. When its true it will start displaying all the capacitites (as objects in the response) for the respective cluster. 2011-09-20 14:33:46 +05:30
prachi 4ad9ac5e71 Bug 11200 - maximum number of guests per host
Changes:

To make sure migration does not attempt to pick a host that has running VMs more than the max guest VM's limit:

- Changed manual migration to call host allocators to return a list of hosts suitable for migration. Host allocators check for the max guest VM limit.
- Earlier we returned hosts with enough capacity but now Host Allocators make other checks along with capacity. So the list of hosts returned are hosts that have enough capacity AND satisfy all other conditions like host tags, max guests limit etc. Or in other words Allocators dont return the hosts that dont satisfy all conditions even if they have capacity.
-Therefore, now we mark the list of hosts returned for manual migration as 'suitable' hosts instead of 'hasenoughCapacity' in the HostResponse.
- HA migration already calls allocators, so no change is needed there.
2011-09-08 18:08:31 -07:00
frank 85f18ff256 fix build, add test rpm back 2011-08-24 13:24:51 -07:00
alena 8a7feb8ec1 Merge branch '2.2.y'
Conflicts:
	agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java
	api/src/com/cloud/agent/api/routing/LoadBalancerConfigCommand.java
	api/src/com/cloud/agent/api/to/FirewallRuleTO.java
	api/src/com/cloud/agent/api/to/IpAddressTO.java
	api/src/com/cloud/agent/api/to/PortForwardingRuleTO.java
	api/src/com/cloud/api/ApiConstants.java
	api/src/com/cloud/api/BaseCmd.java
	api/src/com/cloud/api/ResponseGenerator.java
	api/src/com/cloud/api/commands/CreateFirewallRuleCmd.java
	api/src/com/cloud/api/commands/CreateIpForwardingRuleCmd.java
	api/src/com/cloud/api/commands/CreateLoadBalancerRuleCmd.java
	api/src/com/cloud/api/commands/CreatePortForwardingRuleCmd.java
	api/src/com/cloud/api/commands/DeleteLoadBalancerRuleCmd.java
	api/src/com/cloud/api/commands/ListCapabilitiesCmd.java
	api/src/com/cloud/api/commands/UpdateNetworkCmd.java
	api/src/com/cloud/api/response/CapabilitiesResponse.java
	api/src/com/cloud/network/Network.java
	api/src/com/cloud/network/NetworkService.java
	api/src/com/cloud/network/firewall/FirewallService.java
	api/src/com/cloud/network/lb/LoadBalancingRule.java
	api/src/com/cloud/network/lb/LoadBalancingRulesService.java
	api/src/com/cloud/network/rules/FirewallRule.java
	api/src/com/cloud/network/rules/RulesService.java
	api/src/com/cloud/offering/NetworkOffering.java
	client/tomcatconf/commands.properties.in
	cloud.spec
	core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
	core/src/com/cloud/hypervisor/xen/resource/CitrixHelper.java
	core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
	core/src/com/cloud/storage/template/DownloadManagerImpl.java
	core/src/com/cloud/vm/DomainRouterVO.java
	debian/cloud-deps.install
	patches/systemvm/debian/config/etc/init.d/cloud-early-config
	patches/systemvm/debian/config/root/ipassoc.sh
	patches/systemvm/debian/config/root/loadbalancer.sh
	scripts/vm/hypervisor/kvm/rundomrpre.sh
	scripts/vm/hypervisor/xenserver/vmops
	server/src/com/cloud/agent/manager/AgentAttache.java
	server/src/com/cloud/agent/manager/AgentManagerImpl.java
	server/src/com/cloud/agent/manager/AgentMonitor.java
	server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java
	server/src/com/cloud/alert/ClusterAlertAdapter.java
	server/src/com/cloud/api/ApiResponseHelper.java
	server/src/com/cloud/api/ApiServer.java
	server/src/com/cloud/cluster/ClusterManagerImpl.java
	server/src/com/cloud/configuration/Config.java
	server/src/com/cloud/configuration/ConfigurationManager.java
	server/src/com/cloud/configuration/ConfigurationManagerImpl.java
	server/src/com/cloud/configuration/DefaultComponentLibrary.java
	server/src/com/cloud/deploy/FirstFitPlanner.java
	server/src/com/cloud/ha/HighAvailabilityManagerImpl.java
	server/src/com/cloud/host/dao/HostDaoImpl.java
	server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
	server/src/com/cloud/network/LoadBalancerVO.java
	server/src/com/cloud/network/NetworkManager.java
	server/src/com/cloud/network/NetworkManagerImpl.java
	server/src/com/cloud/network/dao/FirewallRulesDao.java
	server/src/com/cloud/network/dao/FirewallRulesDaoImpl.java
	server/src/com/cloud/network/element/DhcpElement.java
	server/src/com/cloud/network/element/VirtualRouterElement.java
	server/src/com/cloud/network/firewall/FirewallManagerImpl.java
	server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java
	server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
	server/src/com/cloud/network/rules/FirewallManager.java
	server/src/com/cloud/network/rules/FirewallRuleVO.java
	server/src/com/cloud/network/rules/PortForwardingRuleVO.java
	server/src/com/cloud/network/rules/RulesManagerImpl.java
	server/src/com/cloud/network/rules/StaticNatRuleImpl.java
	server/src/com/cloud/network/security/SecurityGroupListener.java
	server/src/com/cloud/network/security/SecurityGroupManagerImpl.java
	server/src/com/cloud/offerings/NetworkOfferingVO.java
	server/src/com/cloud/server/ConfigurationServerImpl.java
	server/src/com/cloud/server/ManagementServerImpl.java
	server/src/com/cloud/storage/StorageManager.java
	server/src/com/cloud/storage/StorageManagerImpl.java
	server/src/com/cloud/storage/dao/VMTemplateHostDaoImpl.java
	server/src/com/cloud/storage/download/DownloadMonitorImpl.java
	server/src/com/cloud/upgrade/DatabaseUpgradeChecker.java
	server/src/com/cloud/upgrade/dao/Upgrade228to229.java
	server/src/com/cloud/upgrade/dao/Upgrade229to2210.java
	server/src/com/cloud/user/AccountManagerImpl.java
	server/src/com/cloud/vm/UserVmManagerImpl.java
	server/src/com/cloud/vm/VirtualMachineManagerImpl.java
	server/src/com/cloud/vm/dao/DomainRouterDao.java
	server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
	setup/db/create-index-fk.sql
	setup/db/create-schema.sql
	setup/db/db/schema-222to224.sql
	setup/db/db/schema-227to228.sql
	setup/db/db/schema-228to229.sql
	setup/db/db/schema-229to2210.sql
	tools/testClient/README
	ui/scripts/cloud.core.instance.js
	utils/src/com/cloud/utils/SerialVersionUID.java
	utils/src/com/cloud/utils/db/ConnectionConcierge.java
	utils/src/com/cloud/utils/db/Merovingian2.java
	utils/src/com/cloud/utils/db/Transaction.java
	utils/src/com/cloud/utils/nio/Link.java
	utils/src/com/cloud/utils/nio/NioConnection.java
	utils/src/com/cloud/utils/time/InaccurateClock.java
2011-08-22 20:28:30 -07:00
frank 18f87c2108 Merge branch 'cvm' into 2.2.y
Conflicts:
	api/src/com/cloud/api/BaseCmd.java
	cloud.spec
	core/src/com/cloud/storage/template/DownloadManagerImpl.java
	server/src/com/cloud/agent/manager/AgentManagerImpl.java
	server/src/com/cloud/configuration/DefaultComponentLibrary.java
	server/src/com/cloud/deploy/FirstFitPlanner.java
	server/src/com/cloud/host/dao/HostDao.java
	server/src/com/cloud/network/security/SecurityGroupListener.java
	server/src/com/cloud/storage/StorageManagerImpl.java
	server/src/com/cloud/storage/listener/StoragePoolMonitor.java
	server/src/com/cloud/vm/UserVmManagerImpl.java
	server/src/com/cloud/vm/VirtualMachineManagerImpl.java
	utils/src/com/cloud/utils/SerialVersionUID.java
2011-08-19 16:08:35 -07:00
Nitin d763d809cc bug 10848: Introducing an api - ListCapacityByType. Add the basic DB layer in the command. 2011-08-09 18:12:37 +05:30
frank 6aaf3d5ae0 Merge branch 'cvm'
Conflicts:
	api/src/com/cloud/api/BaseCmd.java
	api/src/com/cloud/storage/Storage.java
	cloud.spec
	core/src/com/cloud/storage/template/DownloadManagerImpl.java
	server/src/com/cloud/agent/manager/AgentManagerImpl.java
	server/src/com/cloud/configuration/DefaultComponentLibrary.java
	server/src/com/cloud/deploy/FirstFitPlanner.java
	server/src/com/cloud/host/dao/HostDao.java
	server/src/com/cloud/storage/StorageManagerImpl.java
	server/src/com/cloud/vm/UserVmManagerImpl.java
	server/src/com/cloud/vm/VirtualMachineManagerImpl.java
	utils/src/com/cloud/utils/SerialVersionUID.java
2011-08-08 14:14:09 -07:00
frank c6fba0fd42 Bug 8966 - Oracle VM (OVM) support
OCFS2 support -- prepare OCFS2 nodes
2011-08-05 17:46:29 -07:00
Edison Su c37d75fc00 release capacity if current state is in starting and not transit to running 2011-08-04 14:28:40 -07:00
Edison Su e5478457ee don't put cpu/mem into reserved capacity if failed to start/stop vm 2011-08-04 14:28:33 -07:00
Edison Su 1d49275ca8 release capacity if current state is in starting and not transit to running 2011-08-04 14:26:21 -07:00
Edison Su ccdfe240bd don't put cpu/mem into reserved capacity if failed to start/stop vm 2011-08-04 14:26:21 -07:00
Edison Su cd531d7562 bug 10770: don't select cluster if it's removed in firstfitplanner
status 10770: resolved fixed
2011-07-22 15:10:25 -07:00
Edison Su 8c1d77b23e bug 10770: don't select cluster if it's removed in firstfitplanner
status 10770: resolved fixed
2011-07-22 15:06:33 -07:00
Nitin c510c0540a bug 10422: Correcting host capacity checker thread runs. Removing the thread.sleep method and using the scheduleWithFixedDelay to execute the thread at fixed delays. Also making the hostCapacityChecker thread use the common function used by computeCapacityListener.
status 10422: resolved fixed
2011-06-30 13:00:44 +05:30
Nitin 91e016114e bug 10422: Correctly populating the used and reserved capacity in ComputeCapacityListener Status 10422: resolved fixed 2011-06-29 15:40:47 +05:30
Nitin 1eb8e61c43 bug 10422: accidentally removed the code for sourceTemplate id when the the volume is created out of template. Checking it in.
status 10422: resolved fixed
2011-06-29 15:27:06 +05:30
Nitin 474d666f79 bug 10422: accidentally removed the code for sourceTemplate id when the the volume is created out of template. Checking it in.
status 10422: resolved fixed
2011-06-29 14:34:24 +05:30
Nitin a2bdcf5159 bug 10422: accidentally removed the code for sourceTemplate id when the the volume is created out of template. Checking it in.
status 10422: resolved fixed
2011-06-29 14:34:23 +05:30
alena 18dc85c765 Pass isForRebalance parameter to processConnect method of all the listeners - some listeners don't have to be notified when connection happens as a a part of Agent Rebalance process (VirtualMachineManagerImpl listener for instance) 2011-06-27 10:37:00 -07:00
alena 826f5eedf1 bug 10447: don't notify VirtualMachineManager listener when do host rebalance - vm sync is not needed in this case.
status 10447: resolved fixed
2011-06-27 10:37:00 -07:00
alena 41f12eb642 Pass isForRebalance parameter to processConnect method of all the listeners - some listeners don't have to be notified when connection happens as a a part of Agent Rebalance process (VirtualMachineManagerImpl listener for instance) 2011-06-27 10:20:41 -07:00
alena 0bf34f3612 bug 10447: don't notify VirtualMachineManager listener when do host rebalance - vm sync is not needed in this case.
status 10447: resolved fixed
2011-06-27 10:20:40 -07:00
Kelven Yang be38384e76 bug 10414: update VM sync logic and capacity management to sync VM state change initiated from external source 2011-06-22 18:25:35 -07:00
Kelven Yang 7f8b129dc5 bug 10414: update VM sync logic and capacity management to sync VM state change initiated from external source 2011-06-22 18:23:43 -07:00
prachi 486c75ea4b Bug 9780 - ComputeCapacityListener should not use 'cpu.overprovisioning.factor' while adding capacity entries
Changes:
Reapplying the changes from fix 9539 that were missing in ComputeCapacityListener.java
Change is to not consider cpu.overprovisioning.factor while creating CPU capacity entries.
This factor is applied by allocators to the values in the capacity table. Capacity  table should contain the actual CPU value and not the overprovisioned CPU value.
2011-05-06 18:05:12 -07:00
Alex Huang 117a81acf6 cleanup agent manager 2011-05-05 17:57:06 -07:00
Chiradeep Vittal 948df86f5d accidental commit 2011-05-03 10:46:13 -07:00
Chiradeep Vittal 7a29f8dc48 more fixes prior to pushing the merge 2011-05-03 10:41:31 -07:00
Chiradeep Vittal a32c39cccd Merge from zonesfeature 2011-05-03 10:41:31 -07:00
Chiradeep Vittal 303e2a7481 Start of zonesfeature / mycloud/cloudkit 2011-05-03 10:40:17 -07:00