Forum Discussion

Steven_J__Willi's avatar
Steven_J__Willi
Icon for Nimbostratus rankNimbostratus
Apr 27, 2014

Priority Group Activation, why use it?

If you have 3 members that are active within a pool and you select round robin LB method and set the priority group activation for less than 2, the virtual server is only going to use two of three nodes to round robin, why on earth would you configure this? this is an example in the f5 university. Wouldn't the goal be to use all active nodes within the pool and not limit it to use two of the three?

 

8 Replies

  • nathe's avatar
    nathe
    Icon for Cirrocumulus rankCirrocumulus

    Steven, I don't recall the particular example in the f5 university but I wonder if it's not made itself as clear as it could have re PGA.

     

    The thing missing above is the Priority configuration for an individual pool member that PGA uses. So, you could enable PGA for less than 2 and then you would assign a Priority to each pool member. In a pool of 3 you may have Priority 10 for pool members A and B but Priority 5 for pool member C. In this instance with all pool members active only pool member A and B would be in use and serving traffic. If pool member A went down, however, and with PGA set to less than 2, the big-ip would introduce pool member C to serve traffic, along with B. When pool member A is back online/active then pool member C is dropped again to being redundant.

     

    Does this make sense? Examples of where you might use this is you could have a pool member configured with just a holding page so if the other pool members are down then the user would still see something i.e. a page say Maintenance, for example. Rather than no pool members available and a 404 error.

     

    Hope this clears things up a bit.

     

    N

     

  •  

    So the question is"assuming all pool members are available, using the configuration in the diagram, how many of the next of the next 100 requests will members 172.16.20.1, .2, .3 receive?

     

    The answer is .2 and .3 will get 50 each. So I get that round robin will evenly distribute, but why in the world would you ever configure this? If you configured the PGA to less than 1 would it only use .2 for traffic requests? If you changed the 2 to 3 would it then use all three members?

     

    I am just trying to understand a real world scenario with this PGA stuff...if all members in a pool are active, they should all be used in my opinion.

     

    Also this is not an "answer" but "add comment" wont let me post a image.

     

    • nathe's avatar
      nathe
      Icon for Cirrocumulus rankCirrocumulus
      Steven. Real world example I've seen. 4 pool members, 2 in DC1 and 2 in the DC2. Normal traffic is everything goes to the pool members in DC1 but if these pool members go down then use pool members from DC2 as a backup.
  • If I may add, ratio and priority group are different things. If all or some of the members of a pool have the same priority, then any ratio differences will be applied. If a pool member is in a higher priority group than other members, then ONLY that pool member will be selected, until the PGA threshold is met. So for example:

    1.1.1.1    Ratio 1    PG 4
    1.1.1.2    Ratio 2    PG 3
    1.1.1.3    Ratio 1    PG 3
    1.1.1.4    Ratio 1    PG 2
    1.1.1.5    Ratio 1    PG 1
    1.1.1.6    Ratio 1    PG 1
    

    As long as the PGA threshold for PG 4 is not met, only that member will be used. Once it fails, as long as the PGA threshold for PG 3 is not met, only members in the PG 3 group will be used. They will, however, use a 2:1 ratio for load balancing. Members in PG 2 and 1 won't get used until the higher level groups are exhausted respectively.

  • Jana's avatar
    Jana
    Icon for Altostratus rankAltostratus

    Following is one of the use cases of Priority Group Activation.

    A set of 4 servers has both web and ftp services running. The requirement is to have the first two servers serve web traffic and the last two servers serve ftp traffic, until any of them fails.

    Ex. If the webservice fails on the first two servers, the web traffic gets distributed to the next priority group to meet the min-active-members condition, until the webservice resumes.

    root@(bigipdc1ltm06a)(cfg-sync Disconnected)(Active)(/Common)(tmos) list ltm pool p_featuretest_80
    ltm pool p_featuretest_80 {
        members {
            10.10.1.11:80 {
                address 10.10.1.11
                priority-group 90
            }
            10.10.1.12:80 {
                address 10.10.1.12
                priority-group 90
            }
            10.10.1.13:80 {
                address 10.10.1.13
                priority-group 80
            }
            10.10.1.14:80 {
                address 10.10.1.14
                priority-group 80
            }
        }
        min-active-members 2
    }
    root@(bigipdc1ltm06a)(cfg-sync Disconnected)(Active)(/Common)(tmos) list ltm pool p_featuretest_21
    ltm pool p_featuretest_21 {
        members {
            10.10.1.11:21 {
                address 10.10.1.11
                priority-group 80
            }
            10.10.1.12:21 {
                address 10.10.1.12
                priority-group 80
            }
            10.10.1.13:21 {
                address 10.10.1.13
                priority-group 90
            }
            10.10.1.14:21 {
                address 10.10.1.14
                priority-group 90
            }
        }
        min-active-members 2
    }
    root@(bigipdc1ltm06a)(cfg-sync Disconnected)(Active)(/Common)(tmos) 
    
  • You would use this setup in a scenario where some servers are faster than others and you want traffic to go to the faster more beefy servers first and only use the slower server as a redundant backup in the event the faster ones go down or are not available.

     

  • Another example for priority groups usage in real world

    2 varnish servers          priority 30
    5 main servers             priority 20
    2 static content servers   priority 10
    1 maintenance server       priority 1
    
    Priority Group Activation  less than 1
    

    So in this example you have 2 varnish servers taking care of all requests, but if both die, BigIP will start to ask the main servers directly. If they also die, static content server are ready as a emergency server, with a limited version of the site. if those also die, a server that will report a static maintenance page on all requests will be the last one serving the requests.

    So this way you try as hard as you can to maintain the site working using the priority groups.

    Other example is to isolate sites on share hardware... one site have 5 servers and a different site have other 5 different servers. you can setup 2 pool with all servers, with 50% of the servers with higher priority, but each pool using different high priority servers. in normal work, each site will use their own servers and will not affect the other. Using "Priority Group Activation less than 3", if 3 servers die, BigIP will start using the other site resources to try to maintain the site up and will free then up if the main servers are back online. So you can have dedicated servers that are shared in emergencies. By removing other site servers from the pool, you can even enforce that you only allow some shared servers and keep certain level of dedicated servers

  • I would like to know your opinion, hope you can help me; in the pool list, I have four pools with different names and two members configured in each one of them and all assigned to the same server, same IP but with different ports; the priority group for these four pools are 3 to 1, member 0 is the member with higher priority (3), member 1 is the member with lower priority (1) both members are active.

     

    As per bussiness requirements our customer needs to make the failover between these members leaving only member 1 as the member with higher priority (3) and member 0 as the less (1), my question is, Is it possible have a risk if we make the failover, is it possible have impact on services? Which could be the best option? change the priority between members or disable the member that customer needs? Disabling one of the members failover is in automatic?

     

    Hope you can help me, thanks in advanced for your help.

     

    Regards.