If you read all of the documentation, the Invoke-CsPoolFailover cmdlet sounds fantastic and pretty straight forward. In reality, there are challenges. I haven’t tested a failover for a long time in my lab. So, I figured “Why not?”
Invoke-CsPoolFailOver -poolfqdn pool01.infrastructurehelp.com
I went through the confirmations, and got this nice warning/error.
WARNING: Invoke-CsPoolFailOver encountered errors. Consult the log file for a detailed analysis, and ensure all errors (1) and warnings (0) are addressed before continuing.
WARNING: Detailed results can be found at “C:\Users\russ.kaufmann\AppData\Local\Temp\11\Invoke-CsPoolFailOver-54fa4569-bb52-4c3b-8719-6ec7e4e01c2f.html”.
Reading further, got me this pretty clear message.
Invoke-CsPoolFailOver : This Front-end pool “pool01.infrastructurehelp.com” is specified in topology as the next hop for the Edge server. Failing over this pool may cause External access/Federation/Split-domain/XMPP features to stop working. Please use Topology Builder to change the Edge internal next hop setting to point to a different Front-end pool, before you proceed.
The fix is pretty simple. You need to point the next hop for the Edge server to point to the other pool However, it isn’t clear that you can only do it via PowerShell. The cmdlet is pretty simple, though.
Set-CsEdgeServer -Identity EdgeServer:edge01.infrastructurehelp.com -Registrar Rgistrar:pool02.infrastructurehelp.com
Running the cmdlet will get everything sorted out so you can run the Invoke-CsPoolFailover. However, it will generate a nice warning to tell you that there is a problem if your Front-End pools and Edge pools are in different sites. Of course, to me, that is the best reason to have multiple sites and pools.
WARNING: ServiceId “EdgeServer:edge01.infrastructurehelp.com” depends on “Registrar:pool02.infrastructurehelp.com” from different site for dependency ID “Registrar.Default”.
The end result: I wrote this blog post so that I can use it in case I actually have to do a disaster recovery and move everything to another pool.