I have the following setup:
One Windows cluster consisting of four cluster nodes: A, B, C, D. Cluster nodes A and B in one data centre, cluster nodes C and D in a second data centre.
SQL failover cluster instance SQLFCI1 defined over nodes A and B, SQL failover cluster instance SQLFCI2 defined over nodes C and D.
SQL availability group SQLAG1 defined on SQLFCI1 with asynchronous replica being SQLFCI2. SQLAG1 associated with listener SQLListener1.
All client apps use SQLListener1 in their application connection strings.
High availability because of FCI between A and B in data centre 1 as well as disaster recovery to FCI between C and D via async availability group. That DR site has high availability as well because the availability group sits on an FCI as well.
Minimal impact to applications because they all use the AG listener name that in effect can move across all four nodes.
Quorum partner in a third data centre.
Is this a valid setup?