Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 05028200C1D for ; Thu, 16 Feb 2017 22:39:49 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 03968160B61; Thu, 16 Feb 2017 21:39:49 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id CC556160B52 for ; Thu, 16 Feb 2017 22:39:47 +0100 (CET) Received: (qmail 48962 invoked by uid 500); 16 Feb 2017 21:39:47 -0000 Mailing-List: contact issues-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 issues@cloudstack.apache.org Received: (qmail 48953 invoked by uid 500); 16 Feb 2017 21:39:47 -0000 Delivered-To: apmail-incubator-cloudstack-issues@incubator.apache.org Received: (qmail 48950 invoked by uid 99); 16 Feb 2017 21:39:46 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 16 Feb 2017 21:39:46 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 84C7AC1446 for ; Thu, 16 Feb 2017 21:39:46 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -1.198 X-Spam-Level: X-Spam-Status: No, score=-1.198 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RP_MATCHES_RCVD=-2.999, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id AhdKcDp1m_bk for ; Thu, 16 Feb 2017 21:39:43 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id C01335FE52 for ; Thu, 16 Feb 2017 21:39:42 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 2B8BEE039E for ; Thu, 16 Feb 2017 21:39:42 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id D31CC2411D for ; Thu, 16 Feb 2017 21:39:41 +0000 (UTC) Date: Thu, 16 Feb 2017 21:39:41 +0000 (UTC) From: "ASF GitHub Bot (JIRA)" To: cloudstack-issues@incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CLOUDSTACK-9604) Root disk resize support for VMware and XenServer MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Thu, 16 Feb 2017 21:39:49 -0000 [ https://issues.apache.org/jira/browse/CLOUDSTACK-9604?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15870735#comment-15870735 ] ASF GitHub Bot commented on CLOUDSTACK-9604: -------------------------------------------- Github user blueorangutan commented on the issue: https://github.com/apache/cloudstack/pull/1813 Trillian test result (tid-835) Environment: xenserver-65sp1 (x2), Advanced Networking with Mgmt server 7 Total time taken: 43251 seconds Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr1813-t835-xenserver-65sp1.zip Intermitten failure detected: /marvin/tests/smoke/test_privategw_acl.py Intermitten failure detected: /marvin/tests/smoke/test_routers_network_ops.py Intermitten failure detected: /marvin/tests/smoke/test_snapshots.py Intermitten failure detected: /marvin/tests/smoke/test_ssvm.py Intermitten failure detected: /marvin/tests/smoke/test_vpc_redundant.py Test completed. 46 look ok, 3 have error(s) Test | Result | Time (s) | Test File --- | --- | --- | --- test_05_rvpc_multi_tiers | `Failure` | 565.46 | test_vpc_redundant.py test_04_rvpc_network_garbage_collector_nics | `Failure` | 1370.87 | test_vpc_redundant.py test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | `Failure` | 558.00 | test_vpc_redundant.py test_04_rvpc_privategw_static_routes | `Failure` | 692.75 | test_privategw_acl.py ContextSuite context=TestSnapshotRootDisk>:teardown | `Error` | 61.66 | test_snapshots.py test_01_vpc_site2site_vpn | Success | 306.09 | test_vpc_vpn.py test_01_vpc_remote_access_vpn | Success | 171.74 | test_vpc_vpn.py test_01_redundant_vpc_site2site_vpn | Success | 528.69 | test_vpc_vpn.py test_02_VPC_default_routes | Success | 319.44 | test_vpc_router_nics.py test_01_VPC_nics_after_destroy | Success | 683.44 | test_vpc_router_nics.py test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers | Success | 819.50 | test_vpc_redundant.py test_02_redundant_VPC_default_routes | Success | 1076.78 | test_vpc_redundant.py test_09_delete_detached_volume | Success | 15.79 | test_volumes.py test_08_resize_volume | Success | 90.91 | test_volumes.py test_07_resize_fail | Success | 101.02 | test_volumes.py test_06_download_detached_volume | Success | 25.43 | test_volumes.py test_05_detach_volume | Success | 100.25 | test_volumes.py test_04_delete_attached_volume | Success | 10.40 | test_volumes.py test_03_download_attached_volume | Success | 15.30 | test_volumes.py test_02_attach_volume | Success | 10.68 | test_volumes.py test_01_create_volume | Success | 392.83 | test_volumes.py test_03_delete_vm_snapshots | Success | 280.21 | test_vm_snapshots.py test_02_revert_vm_snapshots | Success | 219.28 | test_vm_snapshots.py test_01_create_vm_snapshots | Success | 130.97 | test_vm_snapshots.py test_deploy_vm_multiple | Success | 222.95 | test_vm_life_cycle.py test_deploy_vm | Success | 0.03 | test_vm_life_cycle.py test_advZoneVirtualRouter | Success | 0.02 | test_vm_life_cycle.py test_10_attachAndDetach_iso | Success | 27.06 | test_vm_life_cycle.py test_09_expunge_vm | Success | 125.24 | test_vm_life_cycle.py test_08_migrate_vm | Success | 71.10 | test_vm_life_cycle.py test_07_restore_vm | Success | 0.11 | test_vm_life_cycle.py test_06_destroy_vm | Success | 10.16 | test_vm_life_cycle.py test_03_reboot_vm | Success | 10.19 | test_vm_life_cycle.py test_02_start_vm | Success | 20.23 | test_vm_life_cycle.py test_01_stop_vm | Success | 30.26 | test_vm_life_cycle.py test_CreateTemplateWithDuplicateName | Success | 110.95 | test_templates.py test_08_list_system_templates | Success | 0.03 | test_templates.py test_07_list_public_templates | Success | 0.04 | test_templates.py test_05_template_permissions | Success | 0.06 | test_templates.py test_04_extract_template | Success | 5.25 | test_templates.py test_03_delete_template | Success | 5.12 | test_templates.py test_02_edit_template | Success | 90.13 | test_templates.py test_01_create_template | Success | 51.21 | test_templates.py test_10_destroy_cpvm | Success | 196.75 | test_ssvm.py test_09_destroy_ssvm | Success | 229.56 | test_ssvm.py test_08_reboot_cpvm | Success | 141.83 | test_ssvm.py test_07_reboot_ssvm | Success | 154.40 | test_ssvm.py test_06_stop_cpvm | Success | 131.81 | test_ssvm.py test_05_stop_ssvm | Success | 199.21 | test_ssvm.py test_04_cpvm_internals | Success | 1.15 | test_ssvm.py test_03_ssvm_internals | Success | 3.26 | test_ssvm.py test_02_list_cpvm_vm | Success | 0.13 | test_ssvm.py test_01_list_sec_storage_vm | Success | 0.13 | test_ssvm.py test_01_snapshot_root_disk | Success | 21.20 | test_snapshots.py test_04_change_offering_small | Success | 116.24 | test_service_offerings.py test_03_delete_service_offering | Success | 0.05 | test_service_offerings.py test_02_edit_service_offering | Success | 0.07 | test_service_offerings.py test_01_create_service_offering | Success | 0.08 | test_service_offerings.py test_02_sys_template_ready | Success | 0.12 | test_secondary_storage.py test_01_sys_vm_start | Success | 0.18 | test_secondary_storage.py test_01_scale_vm | Success | 5.24 | test_scale_vm.py test_09_reboot_router | Success | 65.54 | test_routers.py test_08_start_router | Success | 50.39 | test_routers.py test_07_stop_router | Success | 20.22 | test_routers.py test_06_router_advanced | Success | 0.06 | test_routers.py test_05_router_basic | Success | 0.04 | test_routers.py test_04_restart_network_wo_cleanup | Success | 5.53 | test_routers.py test_03_restart_network_cleanup | Success | 115.82 | test_routers.py test_02_router_internal_adv | Success | 0.79 | test_routers.py test_01_router_internal_basic | Success | 0.46 | test_routers.py test_router_dns_guestipquery | Success | 48.83 | test_router_dns.py test_router_dns_externalipquery | Success | 0.08 | test_router_dns.py test_router_dhcphosts | Success | 112.70 | test_router_dhcphosts.py test_router_dhcp_opts | Success | 31.45 | test_router_dhcphosts.py test_01_updatevolumedetail | Success | 0.08 | test_resource_detail.py test_01_reset_vm_on_reboot | Success | 95.74 | test_reset_vm_on_reboot.py test_createRegion | Success | 0.04 | test_regions.py test_create_pvlan_network | Success | 5.36 | test_pvlan.py test_dedicatePublicIpRange | Success | 0.43 | test_public_ip_range.py test_03_vpc_privategw_restart_vpc_cleanup | Success | 797.35 | test_privategw_acl.py test_02_vpc_privategw_static_routes | Success | 571.35 | test_privategw_acl.py test_01_vpc_privategw_acl | Success | 152.97 | test_privategw_acl.py test_01_primary_storage_nfs | Success | 38.58 | test_primary_storage.py test_01_primary_storage_iscsi | Success | 77.93 | test_primary_storage.py test_createPortablePublicIPRange | Success | 15.20 | test_portable_publicip.py test_createPortablePublicIPAcquire | Success | 15.43 | test_portable_publicip.py test_isolate_network_password_server | Success | 36.03 | test_password_server.py test_UpdateStorageOverProvisioningFactor | Success | 0.15 | test_over_provisioning.py test_oobm_zchange_password | Success | 30.84 | test_outofbandmanagement.py test_oobm_multiple_mgmt_server_ownership | Success | 11.34 | test_outofbandmanagement.py test_oobm_issue_power_status | Success | 10.34 | test_outofbandmanagement.py test_oobm_issue_power_soft | Success | 15.40 | test_outofbandmanagement.py test_oobm_issue_power_reset | Success | 15.36 | test_outofbandmanagement.py test_oobm_issue_power_on | Success | 15.33 | test_outofbandmanagement.py test_oobm_issue_power_off | Success | 15.38 | test_outofbandmanagement.py test_oobm_issue_power_cycle | Success | 15.31 | test_outofbandmanagement.py test_oobm_enabledisable_across_clusterzones | Success | 87.79 | test_outofbandmanagement.py test_oobm_enable_feature_valid | Success | 5.17 | test_outofbandmanagement.py test_oobm_enable_feature_invalid | Success | 0.13 | test_outofbandmanagement.py test_oobm_disable_feature_valid | Success | 5.18 | test_outofbandmanagement.py test_oobm_disable_feature_invalid | Success | 0.10 | test_outofbandmanagement.py test_oobm_configure_invalid_driver | Success | 0.08 | test_outofbandmanagement.py test_oobm_configure_default_driver | Success | 0.10 | test_outofbandmanagement.py test_oobm_background_powerstate_sync | Success | 23.39 | test_outofbandmanagement.py test_extendPhysicalNetworkVlan | Success | 15.37 | test_non_contigiousvlan.py test_01_nic | Success | 504.87 | test_nic.py test_releaseIP | Success | 298.40 | test_network.py test_reboot_router | Success | 504.39 | test_network.py test_public_ip_user_account | Success | 10.26 | test_network.py test_public_ip_admin_account | Success | 40.40 | test_network.py test_network_rules_acquired_public_ip_3_Load_Balancer_Rule | Success | 86.66 | test_network.py test_network_rules_acquired_public_ip_2_nat_rule | Success | 76.41 | test_network.py test_network_rules_acquired_public_ip_1_static_nat_rule | Success | 103.06 | test_network.py test_delete_account | Success | 247.95 | test_network.py test_02_port_fwd_on_non_src_nat | Success | 70.78 | test_network.py test_01_port_fwd_on_src_nat | Success | 83.88 | test_network.py test_nic_secondaryip_add_remove | Success | 202.89 | test_multipleips_per_nic.py login_test_saml_user | Success | 19.32 | test_login.py test_assign_and_removal_lb | Success | 148.67 | test_loadbalance.py test_02_create_lb_rule_non_nat | Success | 207.47 | test_loadbalance.py test_01_create_lb_rule_src_nat | Success | 208.33 | test_loadbalance.py test_03_list_snapshots | Success | 0.06 | test_list_ids_parameter.py test_02_list_templates | Success | 0.04 | test_list_ids_parameter.py test_01_list_volumes | Success | 0.03 | test_list_ids_parameter.py test_07_list_default_iso | Success | 0.06 | test_iso.py test_05_iso_permissions | Success | 0.06 | test_iso.py test_04_extract_Iso | Success | 5.13 | test_iso.py test_03_delete_iso | Success | 95.19 | test_iso.py test_02_edit_iso | Success | 0.06 | test_iso.py test_01_create_iso | Success | 21.02 | test_iso.py test_04_rvpc_internallb_haproxy_stats_on_all_interfaces | Success | 454.64 | test_internal_lb.py test_03_vpc_internallb_haproxy_stats_on_all_interfaces | Success | 294.65 | test_internal_lb.py test_02_internallb_roundrobin_1RVPC_3VM_HTTP_port80 | Success | 939.47 | test_internal_lb.py test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 | Success | 683.22 | test_internal_lb.py test_dedicateGuestVlanRange | Success | 10.30 | test_guest_vlan_range.py test_UpdateConfigParamWithScope | Success | 0.14 | test_global_settings.py test_rolepermission_lifecycle_update | Success | 6.24 | test_dynamicroles.py test_rolepermission_lifecycle_list | Success | 6.33 | test_dynamicroles.py test_rolepermission_lifecycle_delete | Success | 6.00 | test_dynamicroles.py test_rolepermission_lifecycle_create | Success | 5.97 | test_dynamicroles.py test_rolepermission_lifecycle_concurrent_updates | Success | 6.40 | test_dynamicroles.py test_role_lifecycle_update_role_inuse | Success | 6.03 | test_dynamicroles.py test_role_lifecycle_update | Success | 6.13 | test_dynamicroles.py test_role_lifecycle_list | Success | 5.97 | test_dynamicroles.py test_role_lifecycle_delete | Success | 11.00 | test_dynamicroles.py test_role_lifecycle_create | Success | 6.12 | test_dynamicroles.py test_role_inuse_deletion | Success | 5.99 | test_dynamicroles.py test_role_account_acls_multiple_mgmt_servers | Success | 8.15 | test_dynamicroles.py test_role_account_acls | Success | 8.46 | test_dynamicroles.py test_default_role_deletion | Success | 6.08 | test_dynamicroles.py test_04_create_fat_type_disk_offering | Success | 0.10 | test_disk_offerings.py test_03_delete_disk_offering | Success | 0.06 | test_disk_offerings.py test_02_edit_disk_offering | Success | 0.07 | test_disk_offerings.py test_02_create_sparse_type_disk_offering | Success | 0.08 | test_disk_offerings.py test_01_create_disk_offering | Success | 0.09 | test_disk_offerings.py test_deployvm_userdispersing | Success | 45.84 | test_deploy_vms_with_varied_deploymentplanners.py test_deployvm_userconcentrated | Success | 91.01 | test_deploy_vms_with_varied_deploymentplanners.py test_deployvm_firstfit | Success | 106.04 | test_deploy_vms_with_varied_deploymentplanners.py test_deployvm_userdata_post | Success | 75.84 | test_deploy_vm_with_userdata.py test_deployvm_userdata | Success | 156.51 | test_deploy_vm_with_userdata.py test_02_deploy_vm_root_resize | Success | 6.07 | test_deploy_vm_root_resize.py test_01_deploy_vm_root_resize | Success | 6.03 | test_deploy_vm_root_resize.py test_00_deploy_vm_root_resize | Success | 197.39 | test_deploy_vm_root_resize.py test_deploy_vm_from_iso | Success | 147.45 | test_deploy_vm_iso.py test_DeployVmAntiAffinityGroup | Success | 141.47 | test_affinity_groups.py test_01_test_vm_volume_snapshot | Skipped | 0.00 | test_vm_snapshots.py test_06_copy_template | Skipped | 0.00 | test_templates.py test_static_role_account_acls | Skipped | 0.03 | test_staticroles.py test_11_ss_nfs_version_on_ssvm | Skipped | 0.02 | test_ssvm.py test_nested_virtualization_vmware | Skipped | 0.00 | test_nested_virtualization.py test_06_copy_iso | Skipped | 0.00 | test_iso.py test_deploy_vgpu_enabled_vm | Skipped | 0.03 | test_deploy_vgpu_enabled_vm.py test_3d_gpu_support | Skipped | 0.04 | test_deploy_vgpu_enabled_vm.py > Root disk resize support for VMware and XenServer > ------------------------------------------------- > > Key: CLOUDSTACK-9604 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9604 > Project: CloudStack > Issue Type: Improvement > Security Level: Public(Anyone can view this level - this is the default.) > Reporter: Priyank Parihar > Assignee: Priyank Parihar > Attachments: 1.png, 2.png, 3.png > > > Currently the root size of an instance is locked to that of the template. This creates unnecessary template duplicates, prevents the creation of a market place, wastes time and disk space and generally makes work more complicated. > Real life example - a small VPS provider might want to offer the following sizes (in GB): > 10,20,40,80,160,240,320,480,620 > That's 9 offerings. > The template selection could look like this, including real disk space used: > Windows 2008 ~10GB > Windows 2008+Plesk ~15GB > Windows 2008+MSSQL ~15GB > Windows 2012 ~10GB > Windows 2012+Plesk ~15GB > Windows 2012+MSSQL ~15GB > CentOS ~1GB > CentOS+CPanel ~3GB > CentOS+Virtualmin ~3GB > CentOS+Zimbra ~3GB > CentOS+Docker ~2GB > Debian ~1GB > Ubuntu LTS ~1GB > In this case the total disk space used by templates will be 828 GB, that's almost 1 TB. If your storage is expensive and limited SSD this can get painful! > If the root resize feature is enabled we can reduce this to under 100 GB. > Specifications and Description > Administrators don't want to deploy duplicate OS templates of differing sizes just to support different storage packages. Instead, the VM deployment can accept a size for the root disk and adjust the template clone accordingly. In addition, CloudStack already supports data disk resizing for existing volumes, we can extend that functionality to resize existing root disks. > As mentioned, we can leverage the existing design for resizing an existing volume. The difference with root volumes is that we can't resize via disk offering, therefore we need to verify that no disk offering was passed, just a size. The existing enforcements of new size > existing size will still server their purpose. > For deployment-based resize (ROOT volume size different from template size), we pass the rootdisksize parameter when the existing code allocates the root volume. In the process, we validate that the root disk size is > existing template size, and non-zero. This will persist the root volume as the desired size regardless of whether or not the VM is started on deploy. Then hypervisor specific code needs to be made to pay attention to the VolumeObjectTO's size attribute and use that when doing the work of cloning from template, rather than inheriting the template's size. This can be implemented one hypervisor at a time, and as such there needs to be a check in UserVmManagerImpl to fail unsupported hypervisors with InvalidParameterValueException when the rootdisksize is passed. > > Hypervisor specific changes > XenServer > Resize ROOT volume is only supported for stopped VMs > Newly created ROOT volume will be resized after clone from template > VMware > Resize ROOT volume is only supported for stopped VMs. > New size should be large then the previous size. > Newly created ROOT volume will be resized after clone from template iff > There is no root disk chaining.(means use Full clone) > And Root Disk controller setting is not IDE. > Previously created Root Volume could be resized iif > There is no root disk chaining. > And Root Disk controller setting is not IDE. > Web Services APIs > resizeVolume API call will not change, but it will accept volume UUIDs of root volumes in id parameter for resizing. > deployVirtualMachine API call will allow new rootdisksize parameter to be passed. This parameter will be used as the disk size (in GB) when cloning from template. > UI > 1) (refer attached image 1) shows UI that resize volume option is added for ROOT disks. > 2) (refer attached image 2) when user calls the resize volume on ROOT volume. Here only size option is shown. For DATADISK disk offerings are shown. > 3) (refer attached image 3) when user deploys VM. New option for Root disk size is added. -- This message was sent by Atlassian JIRA (v6.3.15#6346)