Forum Discussion

U_franco_117956's avatar
U_franco_117956
Icon for Nimbostratus rankNimbostratus
Mar 04, 2013

HTTP cookie insert pesistence broken in Viprion Failover

Hi

 

I´m involved in a project to replace our e-commerce web site load balancers with a pair of Viprion 2400 in redundant configuration. All load balanced services will be HTTP or HTTP and HTTPS. One of our requirements is persistence from HTTP to HTTPS has to be maintained on load balanced services in which there are both kind of traffic, and our current load balancers are using cookie insert persistence to achieve it.

 

Well, in order to get the same thing on Viprion devices, we are trying to use universal persistence profile solution with irule to maintain HTTP-to-HTTPS persistence, published in devcentral irule samples section:

 

https://devcentral.f5.com/wiki/iRules.HttpToHTTPsCookiePersistence.ashx.

 

All seems to work fine for us with universal persistence profile with irule inside active Viprion. However, we notice persistence is not maintained if a failover to redundant Viprion occurs, even inside the same protocol. That´s because persistence table is not being replicated to redundant Viprion, but universal persistence profile has mirroring persistence enabled.¿¿??. We are taking a view to persistence records on both viprion load balancers, and we only see persistence records on active box. Now take a look to this is the situation, we think it´s happening and it´s the problem:

 

1. A client tries to get one HTTP load balanced service. Client is load balanced to one of HTTP pool members. A new persistence record is created on active Viprion.

 

2. A failover occurs to redundant Viprion.

 

3. Now the same client tries to get the same service using HTTP or HTTPS. Backup Viprion hasn´t persistence record for this client, so a new load balance decision is made by backup Viprion, and a new pool member is selected... so persistence is lost.

 

Is there anyway to solve our issue? Why persistence is not being replicated to backup Viprion? Our current load balancers with cookie insert persistence maintain a cookie_value-to-backend_server ip persistence table and it´s being replicated to backup load balancer.

 

Thanks.

 

8 Replies

  • you are already using inter-cluster mirroring, aren't you?

     

     

    Note: On a VIPRION® system, you can mirror connections between blades within the cluster (intra-cluster mirroring) or between the clusters in a redundant system configuration (inter-cluster mirroring).
  • Jnon's avatar
    Jnon
    Icon for Nimbostratus rankNimbostratus
    You should only expect persistence to follow a failover event if you are mirroring your sessions, mirroring does take a hit on performance - so you need to make the call if its worth the persistence in a failover event, personally I have a couple critical vips that are mirroring, but for the most part I opt out given the failover times are so rare.
  • Hi, thanks for your post.

     

     

    No, we are trying to use intra-cluster mirroring. But we are interested in persistence table replication. Yes, we know we could go ahead with connection mirroring, but We think it doesn´t worth to replicate short term TCP connections (HTTP or HTTPS) between cluster members.

     

     

    B.R.

     

  • No, we are trying to use intra-cluster mirroring.can you try inter-cluster mirroring?
  • Hi to you too, J.

     

     

    I´m in agreement with you connection mirroring could take a hit on boxes performance. HTTP and HTTPS are short term connections, so at first sight we are not interersted on connection mirroring. We are interested on persistence table mirroring, because we are noticing sometimes persistence is not maintainted when a failover occurs (at this moment we are in lab environment), not only between HTTP to HTTPS, between HTTP to HTTP too. Sometimes persistence is not maintained because persistence table is not being replicated to redundant Viprion, even we have configured "persistence mirroring" on universal persistence profile.

     

     

    B.R.
  • Inter-cluster mirroring is what made the persistence mirroring work for us. We have only one blade, and when we got persitence records mirroring to the Standby, we had not virtual server mirroring at all.

     

  • Hi.

     

     

    Nitas, Pete, you are right! I have modified my config on both Viprions from "Within Cluster" to "Between Clusters" mirroring option, and now we see the same persistent records on both boxes. Now it works as we were looking for.

     

     

    The question is, are we doing the right thing? What´s the difference between both mirroring modes? We were thinking "Between Clusters" option was for mirroring between pairs of HA Viprions. What´s the impact if we add a new blades to both Viprions?

     

     

    B.R.
  • What´s the difference between both mirroring modes?within cluster means between blade in the chassis. between cluster means between chassis. if you configure viprion to failover even one blade fails, you should use between cluster mirroring.

     

     

    What´s the impact if we add a new blades to both Viprions?persistence on new blade will be sync'ed to new blade in another chassis.