Forum Discussion
How would I use a Table as a global cross tmm variable to be CMP compliant?
I think there is a miss understanding in what I'm been asked to accomplish. I understand the pool selection process can be accomplished by standard F5 configuration. What I need to accomplish is:
1.) Client starts NFS or CIFS connection to VIP
2.) VIP selects primary_pool and sends traffic to that pool. 3.) If primary_pool is down:
3.a) Send kill command for all F5 sessions associated with VIP
3.b) Have F5 send command to Secondary storage pool master to kill backend sync jobs
3.c) wait 5 seconds
3.d) Activate write on secondary storage cluster
4.) Send all connections to secondary cluster.
5.) On recovery of primary cluster manual fail back is desired.
The variable I'm using is a flag so globally the traffic across all sessions only have steps 3.a - 3.d performed once on a fail over. Note: Fail over only occurs if the primary storage pool has <2 pool members.
Everything functions but its not optimized. When I use static TCL variables or Global Variables the iRule is demoted from the CMP meaning only 1 of 8 cores is used for these transactions.
- StephanMantheyMar 02, 2015
Nacreous
Hi Joshua, your current version of iRule will not interrupt existing connections. Existing connections can be closed by marking poolmembers as "down" (requires setting "Action of service down" in pool config to "Reject"). (And of course be manually deleting from connection table from CLI.) Poolmembers can be marked down by monitor, administratively or by iRule. In my sample iRule I tried to answer your initial question regarding a variable (represented by a table value) which is shared and updated across all TMMs. Thanks, Stephan Thanks, Stephan - JoshuaMessengerMar 02, 2015
Nimbostratus
partially correct. The irule writes to the log and user_alert.conf monitors the log for text. The file looks like: alert TerminateAllConnections "Kill All Connections!!!" { exec command="tmsh -c 'cd /FCS_STORAGE/ ; delete sys connection'" } alert IsilonClusterSyncStop "Kill Cluster Sync!!!" { exec command="tmsh bash /config/ClusterSyncStop.sh" } - StephanMantheyMar 09, 2015
Nacreous
Hi Joshua, haven´t seen your comment yet. Interesting solution to use alertd to delete connection table entries. And 'tmsh delete sys conn' was what I was referring to when saying "manually deleting from connection table". Using it in the context of an administrative partition is indeed new to me. Will check. Thanks for the update as well. Stephan
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com