Forum Discussion
Take one pool down when another fails
Hi,
I have a relatively simple problem which I can't think of a solution to..
I have 3 pools with the following inter dependencies:
- Pool1 Backend App
- Pool2 Fontend App
Pools 1 and 2 have four members each, two in the primary location and two in the DR.
Problem:
Priority groups are the natural solution, but they must all fail together.
- For example: suppose Backend App1-2 (in the primary) are both down, by that pool's priority groups, traffic is now directed to Backend App3-4 however Frontend are still in the primary. unacceptable.
- For example suppose Fronend App1-2 (in the primary) are both down, by that pool's priority groups, traffic is now directed to Fronend App3-4, however they themselve connect to Backend App1-2 which is still in the primary location.
The apps are not HTTP and DNS (GTM) is impossible as clients must use IPs.
Approaches tried:
One approach would have been a 'compound' monitor of:
- in the frontends "Frontend & (Backend app1 OR app2)"
- in the backends "Backend & (Frontend app1 OR app2)" (& Another the backend is depended on).
Which means a frontend pool member would fail if he himself failed his healthchecks or both the local backend failed (now everything moves to the 'dr').
Similarly a backend pool member would fail if he himself failed (or "Another" he's depended on) or both local frontends failed (now everything moves to the 'dr').
However there is no "AND OR" compound healthcheck.
Another approach would have been creating four additional "objects":
- two local backends
- two remote backends
- two local frontends
- two remote backends.
Then have the regular "AND" healthcheck of "Frontend & localBackend" for the frontends and "Backend & localFrontends" (& "Another) for the backends.
However how can you check pool availability in a healthcheck? creating a VS for each doesn't work.
Another approach I thought of is per node in a pool "at least 1" healthcheck of the required resources, however this runs-over the pool one (so we get to the first approach's problem - in this case all are OR, can't have the Pool one AND the per-node OR).
- EvgenyAltocumulus
Hello,
Please look for Alias Address and Alias Service Port monitor settings on GUI help or https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/ltm-monitors-reference-12-0-0/2.html
The snipped from GUI help "If the health check for the alias address is successful, the system marks all associated objects up. If the health check for the alias address is not successful, then the system marks all associated objects down."
Thanks,
- NitzanNimbostratus
I have, and tried it - the idea was to use alias of IP/port of a VS (Virtual Server):"frontend local"/"frontend remote" and "backend local"/"backend remote" - that was the second approach explained.
However it didn't work. if that should have worked I'll put some more effort in this.
---
Update:
I've further tested it, it is possible and this is the approach I'm going with (and was going with but for some reason it didn't work).
That's the 'Option 2' above (creating additional four VS and pools: primary frontends, primary backends, secondary frontends and secondary backends) with their respective pools).
Then: on the whole-backends (primary and secondary with priority groups) VS and pool add in that pool's per node healthcheck and add additional 'alias' healthcheck of the primary frontends.
Similarly on the whole-frontends
Similarly on the 'backup' location
- EvgenyAltocumulus
Hi,
Did you achieve what you were looking for?
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