Repository: cloudstack Updated Branches: refs/heads/4.4 291a34aac -> 2803cac06
CLOUDSTACK-6075: Increase the ram size for router service offering Increased the ram size of Internal load balancer vm service offering also Backported from fix by Harikrishna Patnala <[email protected]> https://reviews.apache.org/r/17941/ Signed-off-by: Rohit Yadav <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/2803cac0 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/2803cac0 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/2803cac0 Branch: refs/heads/4.4 Commit: 2803cac06bca36541ef383b41928d1e73bd07566 Parents: 291a34a Author: Rohit Yadav <[email protected]> Authored: Tue Dec 2 20:04:01 2014 +0530 Committer: Rohit Yadav <[email protected]> Committed: Tue Dec 2 20:16:45 2014 +0530 ---------------------------------------------------------------------- .../com/cloud/upgrade/dao/Upgrade442to443.java | 109 +++++++++++++++++++ .../lb/InternalLoadBalancerVMManager.java | 2 +- server/src/com/cloud/configuration/Config.java | 2 +- .../router/VirtualNetworkApplianceManager.java | 2 +- 4 files changed, 112 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2803cac0/engine/schema/src/com/cloud/upgrade/dao/Upgrade442to443.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/upgrade/dao/Upgrade442to443.java b/engine/schema/src/com/cloud/upgrade/dao/Upgrade442to443.java index a0f185a..2855538 100644 --- a/engine/schema/src/com/cloud/upgrade/dao/Upgrade442to443.java +++ b/engine/schema/src/com/cloud/upgrade/dao/Upgrade442to443.java @@ -19,6 +19,9 @@ package com.cloud.upgrade.dao; import java.io.File; import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; import org.apache.log4j.Logger; @@ -55,6 +58,112 @@ public class Upgrade442to443 implements DbUpgrade { @Override public void performDataMigration(Connection conn) { + updateMaxRouterSizeConfig(conn); + upgradeMemoryOfVirtualRoutervmOffering(conn); + upgradeMemoryOfInternalLoadBalancervmOffering(conn); + } + + private void updateMaxRouterSizeConfig(Connection conn) { + PreparedStatement updatePstmt = null; + try { + updatePstmt = conn.prepareStatement("UPDATE `cloud`.`configuration` SET value='256' WHERE name='router.ram.size'"); + updatePstmt.executeUpdate(); + } catch (SQLException e) { + throw new CloudRuntimeException("Unable to upgrade max ram size of router in config.", e); + } finally { + try { + if (updatePstmt != null) { + updatePstmt.close(); + } + } catch (SQLException e) { + } + } + s_logger.debug("Done updating router.ram.size config to 256"); + } + + private void upgradeMemoryOfInternalLoadBalancervmOffering(Connection conn) { + PreparedStatement updatePstmt = null; + PreparedStatement selectPstmt = null; + ResultSet selectResultSet = null; + int newRamSize = 256; //256MB + long serviceOfferingId = 0; + + /** + * Pick first row in service_offering table which has system vm type as internalloadbalancervm. User added offerings would start from 2nd row onwards. + * We should not update/modify any user-defined offering. + */ + + try { + selectPstmt = conn.prepareStatement("SELECT id FROM `cloud`.`service_offering` WHERE vm_type='internalloadbalancervm'"); + updatePstmt = conn.prepareStatement("UPDATE `cloud`.`service_offering` SET ram_size=? WHERE id=?"); + selectResultSet = selectPstmt.executeQuery(); + if(selectResultSet.next()) { + serviceOfferingId = selectResultSet.getLong("id"); + } + + updatePstmt.setInt(1, newRamSize); + updatePstmt.setLong(2, serviceOfferingId); + updatePstmt.executeUpdate(); + } catch (SQLException e) { + throw new CloudRuntimeException("Unable to upgrade ram_size of service offering for internal loadbalancer vm. ", e); + } finally { + try { + if (selectPstmt != null) { + selectPstmt.close(); + } + if (selectResultSet != null) { + selectResultSet.close(); + } + if (updatePstmt != null) { + updatePstmt.close(); + } + } catch (SQLException e) { + } + } + s_logger.debug("Done upgrading RAM for service offering of internal loadbalancer vm to " + newRamSize); + } + + + private void upgradeMemoryOfVirtualRoutervmOffering(Connection conn) { + PreparedStatement updatePstmt = null; + PreparedStatement selectPstmt = null; + ResultSet selectResultSet = null; + int newRamSize = 256; //256MB + long serviceOfferingId = 0; + + /** + * Pick first row in service_offering table which has system vm type as domainrouter. User added offerings would start from 2nd row onwards. + * We should not update/modify any user-defined offering. + */ + + try { + selectPstmt = conn.prepareStatement("SELECT id FROM `cloud`.`service_offering` WHERE vm_type='domainrouter'"); + updatePstmt = conn.prepareStatement("UPDATE `cloud`.`service_offering` SET ram_size=? WHERE id=?"); + selectResultSet = selectPstmt.executeQuery(); + if(selectResultSet.next()) { + serviceOfferingId = selectResultSet.getLong("id"); + } + + updatePstmt.setInt(1, newRamSize); + updatePstmt.setLong(2, serviceOfferingId); + updatePstmt.executeUpdate(); + } catch (SQLException e) { + throw new CloudRuntimeException("Unable to upgrade ram_size of service offering for domain router. ", e); + } finally { + try { + if (selectPstmt != null) { + selectPstmt.close(); + } + if (selectResultSet != null) { + selectResultSet.close(); + } + if (updatePstmt != null) { + updatePstmt.close(); + } + } catch (SQLException e) { + } + } + s_logger.debug("Done upgrading RAM for service offering of domain router to " + newRamSize); } @Override http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2803cac0/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManager.java ---------------------------------------------------------------------- diff --git a/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManager.java b/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManager.java index 803d3a5..339b0c1 100644 --- a/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManager.java +++ b/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManager.java @@ -32,7 +32,7 @@ import com.cloud.vm.VirtualMachineProfile.Param; public interface InternalLoadBalancerVMManager { //RAM/CPU for the system offering used by Internal LB VMs - public static final int DEFAULT_INTERNALLB_VM_RAMSIZE = 128; // 128 MB + public static final int DEFAULT_INTERNALLB_VM_RAMSIZE = 256; // 256 MB public static final int DEFAULT_INTERNALLB_VM_CPU_MHZ = 256; // 256 MHz /** http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2803cac0/server/src/com/cloud/configuration/Config.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/configuration/Config.java b/server/src/com/cloud/configuration/Config.java index ab7c21e..bbeb9f3 100755 --- a/server/src/com/cloud/configuration/Config.java +++ b/server/src/com/cloud/configuration/Config.java @@ -1379,7 +1379,7 @@ public enum Config { "The allowable clock difference in milliseconds between when an SSO login request is made and when it is received.", null), //NetworkType("Hidden", ManagementServer.class, String.class, "network.type", "vlan", "The type of network that this deployment will use.", "vlan,direct"), - RouterRamSize("Hidden", NetworkOrchestrationService.class, Integer.class, "router.ram.size", "128", "Default RAM for router VM (in MB).", null), + RouterRamSize("Hidden", NetworkOrchestrationService.class, Integer.class, "router.ram.size", "256", "Default RAM for router VM (in MB).", null), DefaultPageSize("Advanced", ManagementServer.class, Long.class, "default.page.size", "500", "Default page size for API list* commands", null), http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2803cac0/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java index ae418d2..5cff679 100644 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java @@ -70,7 +70,7 @@ public interface VirtualNetworkApplianceManager extends Manager, VirtualNetworkA static final ConfigKey<Integer> RouterAlertsCheckInterval = new ConfigKey<Integer>(Integer.class, RouterAlertsCheckIntervalCK, "Advanced", "1800", "Interval (in seconds) to check for alerts in Virtual Router.", false, ConfigKey.Scope.Global, null); - public static final int DEFAULT_ROUTER_VM_RAMSIZE = 128; // 128M + public static final int DEFAULT_ROUTER_VM_RAMSIZE = 256; // 256M public static final int DEFAULT_ROUTER_CPU_MHZ = 500; // 500 MHz public static final boolean USE_POD_VLAN = false;
