From ff1dba0ec3b0c75ca469c31104bbc6a68ba66aa6 Mon Sep 17 00:00:00 2001 From: prachi Date: Thu, 12 Jul 2012 16:46:12 -0700 Subject: [PATCH] CS-15407 [2.2.14 to 3.0.4 upgrade] After upgrade VLAN allocation doesn't happen properly for multiple physical networks Reviewed-By: Alena - Update instructions for setups with multiple physical networks and guest vnets - if there are such setups upgraded to 3.0.3 and face problems starting VMs, then they need to roll back to 2.2.14 and carry out the instructions and then upgrade to 3.0.4 --- .../cloud/upgrade/dao/Upgrade2214to30.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/server/src/com/cloud/upgrade/dao/Upgrade2214to30.java b/server/src/com/cloud/upgrade/dao/Upgrade2214to30.java index 715337762d6..1f3ffa67200 100755 --- a/server/src/com/cloud/upgrade/dao/Upgrade2214to30.java +++ b/server/src/com/cloud/upgrade/dao/Upgrade2214to30.java @@ -176,13 +176,20 @@ public class Upgrade2214to30 extends Upgrade30xBase implements DbUpgrade { ResultSet rsVNet = pstmt4.executeQuery(); if(rsVNet.next()){ - String message = "Cannot upgrade. Your setup will translate to multiple Physical Networks and is using guest Vnet. To upgrade, first do the following: \n" + - "1. Please rollback to your 2.2.x setup \n" + - "2. Please stop all VMs through CloudStack and wait for all networks to shutdown. [Networks shutdown will be determined by network.gc.interval and network.gc.wait seconds] \n" + - "3. Please ensure all networks are shutdown and all guest Vnet's are free." + - "4. Run upgrade. This will allocate all your guest vnet range to first physical network. \n" + - "5. Reconfigure the vnet ranges for each physical network as desired by using updatePhysicalNetwork API \n" + - "6. Start all your VMs"; + String message = "Cannot upgrade. Your setup has multiple Physical Networks and is using guest Vnet that is assigned wrongly. To upgrade, first correct the setup by doing the following: \n" + + "1. Please rollback to your 2.2.14 setup\n" + + "2. Please stop all VMs through CloudStack\n" + + "3. Run following query to find if any networks still have nics allocated:\n\t"+ + "a) check if any virtual guest networks still have allocated nics by running:\n\t" + + "SELECT DISTINCT op.id from `cloud`.`op_networks` op JOIN `cloud`.`networks` n WHERE nics_count != 0 AND guest_type = 'Virtual';\n\t"+ + "b) If this returns any networkd ids, then ensure that all VMs are stopped, no new VM is being started, and then shutdown management server\n\t"+ + "c) Clean up the nics count for the 'virtual' network id's returned in step (a) by running this:\n\t"+ + "UPDATE `cloud`.`op_networks` SET nics_count = 0 WHERE id = \n\t"+ + "d) Restart management server and wait for all networks to shutdown. [Networks shutdown will be determined by network.gc.interval and network.gc.wait seconds] \n"+ + "4. Please ensure all networks are shutdown and all guest Vnet's are free.\n" + + "5. Run upgrade. This will allocate all your guest vnet range to first physical network. \n" + + "6. Reconfigure the vnet ranges for each physical network as desired by using updatePhysicalNetwork API \n" + + "7. Start all your VMs"; s_logger.error(message);