Return-Path: X-Original-To: apmail-cloudstack-commits-archive@www.apache.org Delivered-To: apmail-cloudstack-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 645FC114EE for ; Mon, 5 May 2014 12:06:22 +0000 (UTC) Received: (qmail 32614 invoked by uid 500); 5 May 2014 12:06:22 -0000 Delivered-To: apmail-cloudstack-commits-archive@cloudstack.apache.org Received: (qmail 32593 invoked by uid 500); 5 May 2014 12:06:21 -0000 Mailing-List: contact commits-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list commits@cloudstack.apache.org Received: (qmail 32583 invoked by uid 99); 5 May 2014 12:06:21 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 May 2014 12:06:21 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id B0EC090DB3B; Mon, 5 May 2014 12:06:20 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: dahn@apache.org To: commits@cloudstack.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: git commit: updated refs/heads/4.4 to aabde46 Date: Mon, 5 May 2014 12:06:20 +0000 (UTC) Repository: cloudstack Updated Branches: refs/heads/4.4 0c60ea2e0 -> aabde469d Cloudstack-5077: reserve cpu and memory only when vmware.reserve.cpu/mem are set to true. Insted of setting the ovecommit values to one on upgrade, we popultate them from the global values. Conflicts: engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java engine/schema/src/com/cloud/upgrade/dao/Upgrade420to421.java plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/aabde469 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/aabde469 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/aabde469 Branch: refs/heads/4.4 Commit: aabde469d2b30e2797b23f67ed0673778bfd05d1 Parents: 0c60ea2 Author: Bharat Kumar Authored: Mon Dec 16 11:13:23 2013 -0800 Committer: Daan Hoogland Committed: Mon May 5 14:06:09 2014 +0200 ---------------------------------------------------------------------- .../com/cloud/upgrade/dao/Upgrade410to420.java | 4 +- .../com/cloud/upgrade/dao/Upgrade420to421.java | 76 ++++++++++++++------ .../vmware/resource/VmwareResource.java | 23 +++--- setup/db/db/schema-420to421.sql | 3 +- 4 files changed, 67 insertions(+), 39 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/aabde469/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java index 82b6d84..671cbb7 100755 --- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java +++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade410to420.java @@ -738,8 +738,8 @@ public class Upgrade410to420 implements DbUpgrade { pstmt2.execute(); } else { //update cluster_details table with the default overcommit ratios. - pstmt1.setLong(1, id); - pstmt1.setString(2, "1"); + pstmt1.setLong(1,id); + pstmt1.setString(2,global_cpu_overprovisioning_factor); pstmt1.execute(); pstmt2.setLong(1, id); pstmt2.setString(2, "1"); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/aabde469/engine/schema/src/com/cloud/upgrade/dao/Upgrade420to421.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade420to421.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade420to421.java index c3a6b06..a0093f8 100644 --- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade420to421.java +++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade420to421.java @@ -23,6 +23,7 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import com.cloud.hypervisor.Hypervisor; import org.apache.log4j.Logger; import com.cloud.utils.exception.CloudRuntimeException; @@ -64,10 +65,12 @@ public class Upgrade420to421 implements DbUpgrade { @Override public void performDataMigration(Connection conn) { upgradeResourceCount(conn); - updateCpuOverprovisioning(conn); + updateOverprovisioningPerVm(conn); } - private void updateCpuOverprovisioning(Connection conn) { + + + private void updateOverprovisioningPerVm(Connection conn) { PreparedStatement pstmt1 = null; PreparedStatement pstmt2 = null; PreparedStatement pstmt3 = null; @@ -79,28 +82,49 @@ public class Upgrade420to421 implements DbUpgrade { try { pstmt1 = conn.prepareStatement("select value from `cloud`.`configuration` where name='cpu.overprovisioning.factor'"); result1 = pstmt1.executeQuery(); - String overprov = "1"; - if (result1.next()) { - overprov = result1.getString(1); + String cpuoverprov = "1"; + if(result1.next()){ + cpuoverprov = result1.getString(1); + } + pstmt1 = conn.prepareStatement("select value from `cloud`.`configuration` where name='mem.overprovisioning.factor'"); + result1 = pstmt1.executeQuery(); + String memoverprov = "1"; + if(result1.next()){ + memoverprov = result1.getString(1); } + // Need to populate only when overprovisioning factor doesn't pre exist. s_logger.debug("Starting updating user_vm_details with cpu/memory overprovisioning factors"); - pstmt2 = - conn.prepareStatement("select id from `cloud`.`vm_instance` where removed is null and id not in (select vm_id from `cloud`.`user_vm_details` where name='cpuOvercommitRatio')"); + pstmt2 = conn.prepareStatement("select id, hypervisor_type from `cloud`.`vm_instance` where removed is null and id not in (select vm_id from `cloud`.`user_vm_details` where name='cpuOvercommitRatio')"); pstmt3 = conn.prepareStatement("INSERT IGNORE INTO cloud.user_vm_details (vm_id, name, value) VALUES (?, ?, ?)"); result2 = pstmt2.executeQuery(); while (result2.next()) { - //For cpu - pstmt3.setLong(1, result2.getLong(1)); - pstmt3.setString(2, "cpuOvercommitRatio"); - pstmt3.setString(3, overprov); - pstmt3.executeUpdate(); + String hypervisor_type = result2.getString(2); + if (hypervisor_type.equalsIgnoreCase(Hypervisor.HypervisorType.VMware.name())) { + //For cpu + pstmt3.setLong(1, result2.getLong(1)); + pstmt3.setString(2, "cpuOvercommitRatio"); + pstmt3.setString(3, cpuoverprov); + pstmt3.executeUpdate(); + + // For memory + pstmt3.setLong(1, result2.getLong(1)); + pstmt3.setString(2, "memoryOvercommitRatio"); + pstmt3.setString(3, memoverprov); // memory overprovisioning was used to reserve memory in case of VMware. + pstmt3.executeUpdate(); + } else { + //For cpu + pstmt3.setLong(1, result2.getLong(1)); + pstmt3.setString(2, "cpuOvercommitRatio"); + pstmt3.setString(3, cpuoverprov); + pstmt3.executeUpdate(); - // For memory - pstmt3.setLong(1, result2.getLong(1)); - pstmt3.setString(2, "memoryOvercommitRatio"); - pstmt3.setString(3, "1"); // memory overprovisioning didn't exist earlier. - pstmt3.executeUpdate(); + // For memory + pstmt3.setLong(1, result2.getLong(1)); + pstmt3.setString(2, "memoryOvercommitRatio"); + pstmt3.setString(3, "1"); // memory overprovisioning didn't exist earlier. + pstmt3.executeUpdate(); + } } s_logger.debug("Done updating user_vm_details with cpu/memory overprovisioning factors"); @@ -108,13 +132,23 @@ public class Upgrade420to421 implements DbUpgrade { throw new CloudRuntimeException("Unable to update cpu/memory overprovisioning factors", e); } finally { try { - if (pstmt1 != null) + if (pstmt1 != null && !pstmt1.isClosed()) { pstmt1.close(); - if (pstmt2 != null) + } + if (pstmt2 != null && !pstmt2.isClosed()) { pstmt2.close(); - if (pstmt3 != null) + } + if (pstmt3 != null && !pstmt3.isClosed()) { pstmt3.close(); - } catch (SQLException e) { + } + if (result1 != null) { + result1.close(); + } + if (result2 != null) { + result2.close(); + } + }catch (SQLException e){ + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/aabde469/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java index f131245..46b1015 100755 --- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -1722,24 +1722,17 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa } int getReservedMemoryMb(VirtualMachineTO vmSpec) { - if (vmSpec.getDetails().get(Config.VmwareReserveMem.key()).equalsIgnoreCase("true")) { - return (int)(vmSpec.getMinRam() / (1024 * 1024)); - } else if (vmSpec.getMinRam() != vmSpec.getMaxRam()) { - s_logger.warn("memory overprovisioning factor is set to " + (vmSpec.getMaxRam() / vmSpec.getMinRam()) + " ignoring the flag vmware.reserve.mem"); - return (int)(vmSpec.getMinRam() / (1024 * 1024)); - } - return 0; + if (vmSpec.getDetails().get(Config.VmwareReserveMem.key()).equalsIgnoreCase("true")) { + return (int) (vmSpec.getMinRam() / (1024 * 1024)); + } + return 0; } int getReservedCpuMHZ(VirtualMachineTO vmSpec) { - if (vmSpec.getDetails().get(Config.VmwareReserveCpu.key()).equalsIgnoreCase("true")) { - return vmSpec.getMinSpeed(); - } else if (vmSpec.getMinSpeed().intValue() != vmSpec.getMaxSpeed().intValue()) { - s_logger.warn("cpu overprovisioning factor is set to " + (vmSpec.getMaxSpeed().intValue() / vmSpec.getMinSpeed().intValue()) + - " ignoring the flag vmware.reserve.cpu"); - return vmSpec.getMinSpeed(); - } - return 0; + if (vmSpec.getDetails().get(Config.VmwareReserveCpu.key()).equalsIgnoreCase("true")) { + return vmSpec.getMinSpeed(); + } + return 0; } // return the finalized disk chain for startup, from top to bottom http://git-wip-us.apache.org/repos/asf/cloudstack/blob/aabde469/setup/db/db/schema-420to421.sql ---------------------------------------------------------------------- diff --git a/setup/db/db/schema-420to421.sql b/setup/db/db/schema-420to421.sql index 42e9c1e..78687f2 100644 --- a/setup/db/db/schema-420to421.sql +++ b/setup/db/db/schema-420to421.sql @@ -24,7 +24,8 @@ INSERT IGNORE INTO `cloud`.`configuration` VALUES ('Advanced', 'DEFAULT', 'manag 'The maximum size limit for S3 single part upload API(in GB). If it is set to 0, then it means always use multi-part upload to upload object to S3. If it is set to -1, then it means always use single-part upload to upload object to S3.'); INSERT IGNORE INTO `cloud`.`configuration` VALUES ("Storage", 'DEFAULT', 'management-server', "enable.ha.storage.migration", "true", "Enable/disable storage migration across primary storage during HA"); - +UPDATE `cloud`.`configuration` SET description="Specify whether or not to reserve CPU based on CPU overprovisioning factor" where name="vmware.reserve.cpu"; +UPDATE `cloud`.`configuration` SET description="Specify whether or not to reserve memory based on memory overprovisioning factor" where name="vmware.reserve.mem"; -- Remove Windows Server 8 from guest_os_type dropdown to use Windows Server 2012 DELETE FROM `cloud`.`guest_os_hypervisor` where guest_os_id=168; DELETE FROM `cloud`.`guest_os` where id=168;