cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CLOUDSTACK-4374) As a Developer I want to have HA enabled for routers that are part or a redundant network or VPC
Date Sat, 12 Dec 2015 08:52:47 GMT

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-4374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15054153#comment-15054153
] 

ASF GitHub Bot commented on CLOUDSTACK-4374:
--------------------------------------------

Github user remibergsma commented on the pull request:

    https://github.com/apache/cloudstack/pull/1222#issuecomment-164126939
  
    LGTM based on these tests:
    
    ```
    nosetests --with-marvin --marvin-config=${marvinCfg} -s -a tags=advanced,required_hardware=true
\
    component/test_password_server.py \
    smoke/test_vpc_redundant.py \
    smoke/test_routers_iptables_default_policy.py \
    smoke/test_routers_network_ops.py \
    smoke/test_vpc_router_nics.py \
    smoke/test_router_dhcphosts.py \
    smoke/test_loadbalance.py \
    smoke/test_internal_lb.py \
    smoke/test_ssvm.py \
    smoke/test_vpc_vpn.py \
    smoke/test_privategw_acl.py \
    smoke/test_network.py
    ```
    
    Result:
    
    ```
    Check the password file in the Router VM ... === TestName: test_isolate_network_password_server
| Status : SUCCESS ===
    ok
    Create a redundant VPC with two networks with two VMs in each network ... === TestName:
test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL | Status : SUCCESS ===
    ok
    Create a redundant VPC with two networks with two VMs in each network and check default
routes ... === TestName: test_02_redundant_VPC_default_routes | Status : SUCCESS ===
    ok
    Create a redundant VPC with two networks with two VMs in each network ... === TestName:
test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers | Status : SUCCESS ===
    ok
    Test iptables default INPUT/FORWARD policy on RouterVM ... === TestName: test_02_routervm_iptables_policies
| Status : SUCCESS ===
    ok
    Test iptables default INPUT/FORWARD policies on VPC router ... === TestName: test_01_single_VPC_iptables_policies
| Status : SUCCESS ===
    ok
    Test redundant router internals ... === TestName: test_01_isolate_network_FW_PF_default_routes_egress_true
| Status : SUCCESS ===
    ok
    Test redundant router internals ... === TestName: test_02_isolate_network_FW_PF_default_routes_egress_false
| Status : SUCCESS ===
    ok
    Test redundant router internals ... === TestName: test_01_RVR_Network_FW_PF_SSH_default_routes_egress_true
| Status : SUCCESS ===
    ok
    Test redundant router internals ... === TestName: test_02_RVR_Network_FW_PF_SSH_default_routes_egress_false
| Status : SUCCESS ===
    ok
    Test redundant router internals ... === TestName: test_03_RVR_Network_check_router_state
| Status : SUCCESS ===
    ok
    Create a VPC with two networks with one VM in each network and test nics after destroy
... === TestName: test_01_VPC_nics_after_destroy | Status : SUCCESS ===
    ok
    Create a VPC with two networks with one VM in each network and test default routes ...
=== TestName: test_02_VPC_default_routes | Status : SUCCESS ===
    ok
    Check that the /etc/dhcphosts.txt doesn't contain duplicate IPs ... === TestName: test_router_dhcphosts
| Status : SUCCESS ===
    ok
    Test to create Load balancing rule with source NAT ... === TestName: test_01_create_lb_rule_src_nat
| Status : SUCCESS ===
    ok
    Test to create Load balancing rule with non source NAT ... === TestName: test_02_create_lb_rule_non_nat
| Status : SUCCESS ===
    ok
    Test for assign & removing load balancing rule ... === TestName: test_assign_and_removal_lb
| Status : SUCCESS ===
    ok
    Test to verify access to loadbalancer haproxy admin stats page ... === TestName: test02_internallb_haproxy_stats_on_all_interfaces
| Status : SUCCESS ===
    ok
    Test create, assign, remove of an Internal LB with roundrobin http traffic to 3 vm's ...
=== TestName: test_01_internallb_roundrobin_1VPC_3VM_HTTP_port80 | Status : SUCCESS ===
    ok
    Test SSVM Internals ... === TestName: test_03_ssvm_internals | Status : SUCCESS ===
    ok
    Test CPVM Internals ... === TestName: test_04_cpvm_internals | Status : SUCCESS ===
    ok
    Test stop SSVM ... === TestName: test_05_stop_ssvm | Status : SUCCESS ===
    ok
    Test stop CPVM ... === TestName: test_06_stop_cpvm | Status : SUCCESS ===
    ok
    Test reboot SSVM ... === TestName: test_07_reboot_ssvm | Status : SUCCESS ===
    ok
    Test reboot CPVM ... === TestName: test_08_reboot_cpvm | Status : SUCCESS ===
    ok
    Test destroy SSVM ... === TestName: test_09_destroy_ssvm | Status : SUCCESS ===
    ok
    Test destroy CPVM ... === TestName: test_10_destroy_cpvm | Status : SUCCESS ===
    ok
    Test Remote Access VPN in VPC ... === TestName: test_vpc_remote_access_vpn | Status :
SUCCESS ===
    ok
    Test VPN in VPC ... === TestName: test_vpc_site2site_vpn | Status : SUCCESS ===
    ok
    test_01_vpc_privategw_acl (integration.smoke.test_privategw_acl.TestPrivateGwACL) ...
=== TestName: test_01_vpc_privategw_acl | Status : SUCCESS ===
    ok
    test_02_vpc_privategw_static_routes (integration.smoke.test_privategw_acl.TestPrivateGwACL)
... === TestName: test_02_vpc_privategw_static_routes | Status : SUCCESS ===
    ok
    test_03_rvpc_privategw_static_routes (integration.smoke.test_privategw_acl.TestPrivateGwACL)
... === TestName: test_03_rvpc_privategw_static_routes | Status : SUCCESS ===
    ok
    Test for port forwarding on source NAT ... === TestName: test_01_port_fwd_on_src_nat |
Status : SUCCESS ===
    ok
    Test for port forwarding on non source NAT ... === TestName: test_02_port_fwd_on_non_src_nat
| Status : SUCCESS ===
    ok
    Test for reboot router ... === TestName: test_reboot_router | Status : SUCCESS ===
    ok
    Test for Router rules for network rules on acquired public IP ... === TestName: test_network_rules_acquired_public_ip_1_static_nat_rule
| Status : SUCCESS ===
    ok
    Test for Router rules for network rules on acquired public IP ... === TestName: test_network_rules_acquired_public_ip_2_nat_rule
| Status : SUCCESS ===
    ok
    Test for Router rules for network rules on acquired public IP ... === TestName: test_network_rules_acquired_public_ip_3_Load_Balancer_Rule
| Status : SUCCESS ===
    ok
    
    ----------------------------------------------------------------------
    Ran 38 tests in 21378.096s
    
    OK
    ```
    
    
    And:
    
    ```
    nosetests --with-marvin --marvin-config=${marvinCfg} -s -a tags=advanced,required_hardware=false
\
    smoke/test_routers.py \
    smoke/test_network_acl.py \
    smoke/test_reset_vm_on_reboot.py \
    smoke/test_vm_life_cycle.py \
    smoke/test_service_offerings.py \
    smoke/test_network.py \
    component/test_vpc_offerings.py \
    component/test_vpc_routers.py
    ```
    
    Result:
    
    ```
    Test router internal advanced zone ... === TestName: test_02_router_internal_adv | Status
: SUCCESS ===
    ok
    Test restart network ... === TestName: test_03_restart_network_cleanup | Status : SUCCESS
===
    ok
    Test router basic setup ... === TestName: test_05_router_basic | Status : SUCCESS ===
    ok
    Test router advanced setup ... === TestName: test_06_router_advanced | Status : SUCCESS
===
    ok
    Test stop router ... === TestName: test_07_stop_router | Status : SUCCESS ===
    ok
    Test start router ... === TestName: test_08_start_router | Status : SUCCESS ===
    ok
    Test reboot router ... === TestName: test_09_reboot_router | Status : SUCCESS ===
    ok
    Test reset virtual machine on reboot ... === TestName: test_01_reset_vm_on_reboot | Status
: SUCCESS ===
    ok
    Test advanced zone virtual router ... === TestName: test_advZoneVirtualRouter | Status
: SUCCESS ===
    ok
    Test Deploy Virtual Machine ... === TestName: test_deploy_vm | Status : SUCCESS ===
    ok
    Test Multiple Deploy Virtual Machine ... === TestName: test_deploy_vm_multiple | Status
: SUCCESS ===
    ok
    Test Stop Virtual Machine ... === TestName: test_01_stop_vm | Status : SUCCESS ===
    ok
    Test Start Virtual Machine ... === TestName: test_02_start_vm | Status : SUCCESS ===
    ok
    Test Reboot Virtual Machine ... === TestName: test_03_reboot_vm | Status : SUCCESS ===
    ok
    Test destroy Virtual Machine ... === TestName: test_06_destroy_vm | Status : SUCCESS ===
    ok
    Test recover Virtual Machine ... === TestName: test_07_restore_vm | Status : SUCCESS ===
    ok
    Test migrate VM ... === TestName: test_08_migrate_vm | Status : SUCCESS ===
    ok
    Test destroy(expunge) Virtual Machine ... === TestName: test_09_expunge_vm | Status :
SUCCESS ===
    ok
    Test to create service offering ... === TestName: test_01_create_service_offering | Status
: SUCCESS ===
    ok
    Test to update existing service offering ... === TestName: test_02_edit_service_offering
| Status : SUCCESS ===
    ok
    Test to delete service offering ... === TestName: test_03_delete_service_offering | Status
: SUCCESS ===
    ok
    Test for delete account ... === TestName: test_delete_account | Status : SUCCESS ===
    ok
    Test for Associate/Disassociate public IP address for admin account ... === TestName:
test_public_ip_admin_account | Status : SUCCESS ===
    ok
    Test for Associate/Disassociate public IP address for user account ... === TestName: test_public_ip_user_account
| Status : SUCCESS ===
    ok
    Test for release public IP address ... === TestName: test_releaseIP | Status : SUCCESS
===
    ok
    Test create VPC offering ... === TestName: test_01_create_vpc_offering | Status : SUCCESS
===
    ok
    Test VPC offering without load balancing service ... === TestName: test_03_vpc_off_without_lb
| Status : SUCCESS ===
    ok
    Test VPC offering without static NAT service ... === TestName: test_04_vpc_off_without_static_nat
| Status : SUCCESS ===
    ok
    Test VPC offering without port forwarding service ... === TestName: test_05_vpc_off_without_pf
| Status : SUCCESS ===
    ok
    Test VPC offering with invalid services ... === TestName: test_06_vpc_off_invalid_services
| Status : SUCCESS ===
    ok
    Test update VPC offering ... === TestName: test_07_update_vpc_off | Status : SUCCESS ===
    ok
    Test list VPC offering ... === TestName: test_08_list_vpc_off | Status : SUCCESS ===
    ok
    test_09_create_redundant_vpc_offering (integration.component.test_vpc_offerings.TestVPCOffering)
... === TestName: test_09_create_redundant_vpc_offering | Status : SUCCESS ===
    ok
    Test start/stop of router after addition of one guest network ... === TestName: test_01_start_stop_router_after_addition_of_one_guest_network
| Status : SUCCESS ===
    ok
    Test reboot of router after addition of one guest network ... === TestName: test_02_reboot_router_after_addition_of_one_guest_network
| Status : SUCCESS ===
    ok
    Test to change service offering of router after addition of one guest network ... ===
TestName: test_04_chg_srv_off_router_after_addition_of_one_guest_network | Status : SUCCESS
===
    ok
    Test destroy of router after addition of one guest network ... === TestName: test_05_destroy_router_after_addition_of_one_guest_network
| Status : SUCCESS ===
    ok
    Test to stop and start router after creation of VPC ... === TestName: test_01_stop_start_router_after_creating_vpc
| Status : SUCCESS ===
    ok
    Test to reboot the router after creating a VPC ... === TestName: test_02_reboot_router_after_creating_vpc
| Status : SUCCESS ===
    ok
    Tests to change service offering of the Router after ... === TestName: test_04_change_service_offerring_vpc
| Status : SUCCESS ===
    ok
    Test to destroy the router after creating a VPC ... === TestName: test_05_destroy_router_after_creating_vpc
| Status : SUCCESS ===
    ok
    
    ----------------------------------------------------------------------
    Ran 41 tests in 8923.743s
    
    OK
    
    ```
    
    After all these tests, all routers created had the HA bit set:
    
    ```
    MariaDB [cloud]> select name,ha_enabled from vm_instance where name like 'r-%';
    +----------+------------+
    | name     | ha_enabled |
    +----------+------------+
    | r-4-VM   |          1 |
    | r-6-VM   |          1 |
    | r-7-VM   |          1 |
    | r-12-VM  |          1 |
    | r-13-VM  |          1 |
    | r-18-VM  |          1 |
    | r-19-VM  |          1 |
    | r-23-VM  |          1 |
    | r-24-VM  |          1 |
    | r-28-VM  |          1 |
    | r-30-VM  |          1 |
    | r-31-VM  |          1 |
    | r-32-VM  |          1 |
    | r-34-VM  |          1 |
    | r-35-VM  |          1 |
    | r-37-VM  |          1 |
    | r-38-VM  |          1 |
    | r-40-VM  |          1 |
    | r-44-VM  |          1 |
    | r-45-VM  |          1 |
    | r-49-VM  |          1 |
    | r-53-VM  |          1 |
    | r-56-VM  |          1 |
    | r-59-VM  |          1 |
    | r-67-VM  |          1 |
    | r-69-VM  |          1 |
    | r-70-VM  |          1 |
    | r-73-VM  |          1 |
    | r-74-VM  |          1 |
    | r-75-VM  |          1 |
    | r-78-VM  |          1 |
    | r-79-VM  |          1 |
    | r-80-VM  |          1 |
    | r-81-VM  |          1 |
    | r-85-VM  |          1 |
    | r-87-VM  |          1 |
    | r-89-VM  |          1 |
    | r-91-VM  |          1 |
    | r-92-VM  |          1 |
    | r-94-VM  |          1 |
    | r-96-VM  |          1 |
    | r-98-VM  |          1 |
    | r-101-VM |          1 |
    | r-106-VM |          1 |
    | r-108-VM |          1 |
    | r-110-VM |          1 |
    | r-111-VM |          1 |
    | r-113-VM |          1 |
    | r-115-VM |          1 |
    | r-117-VM |          1 |
    | r-118-VM |          1 |
    | r-119-VM |          1 |
    | r-120-VM |          1 |
    | r-124-VM |          1 |
    +----------+------------+
    54 rows in set (0.00 sec)
    ```


> As a Developer I want to have HA enabled for routers that are part or a redundant network
or VPC
> ------------------------------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-4374
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-4374
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: Virtual Router
>    Affects Versions: 4.1.0, 4.4.0, 4.5.0, 4.6.0, 4.6.1
>            Reporter: Roeland Kuipers
>            Assignee: Wilder Rodrigues
>             Fix For: 4.7.0
>
>
> We provide redundant routers with HA functionality through a special service offering.
> However these router pairs are provisioned with ha_enabled=0, so when one or both of
them fail they will never be restarted by CS. 
> 2013-08-16 15:51:16,101 DEBUG [cloud.ha.HighAvailabilityManagerImpl] (HA-Worker-0:work-4335)
VM is not HA enabled so we're done.
> This is currently hardcoded in VirtualNetworkApplianceManagerImpl.java @ 1633
>    boolean offerHA = routerOffering.getOfferHA();
>                 /* We don't provide HA to redundant router VMs, admin should own it all,
and redundant router themselves are HA */
>                 if (isRedundant) {
>                     offerHA = false;
>                 }
> We like redundancy and like to have HA on our redundant routers. We like to configure
this ourselves through service offerings and do not like being helt hostage by these lines
of codes:) We do like to own it all in our admin role :)
> Besides this, this is also very counter-intuitive as we were expecting HA on our redundant
routers, since it was configured on their service offering.
> So can we get rid of these lines of code? And have this controlled through service offerings
as it should IMHO.? Unless this has negative impact which we are not aware off?
> Cheers & Thanks,
> Roeland
> Details of the original commit which injected this code:
> Commit: a269b089ae38d0d04db2fa0f4c8e839480476ddc [a269b08]
> Parents: a2cc66ce41
> Author: Sheng Yang <sheng.yang@cloud.com>
> Date: 17 december 2011 03:52:59 CET
> Commit Date: 19 december 2011 22:29:48 CET
> bug 12608: NaaS: Don't shutdown elements if cleanup=false
> We can use the restartNetwork mechanism to recover the disconnected redundant
> router.
> Also disable HA for redundant router. Admin would take responsibilty to recover
> the failure router, because redundant routers themselves are one layer HA.
> status 12608: resolved fixed



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message