CMS Move in a Lync 2013 and Skype for Business Server 2015 Coexistence

This post stems from part incomplete and part confusing guidance available on moving the Central Management Store(CMS) in an environment that contains both Lync 2013 and Skype for Business 2015 servers. Quite a few articles recommend to reuse the Lync 2010 to Lync 2013 CMS move guidance but I have found that to be a tad bit different.

This Technet article here has good details on the prep and procedure but it assumes you’re moving the CMS between Skype 2015 pools. Other posts that recommend using the migration guidance for Lync 2010 to Lync 2013 ignore that a CMS move may be needed outside of a migration scenario – maintenance, DR, etc. Please note that the information given below applies to Enterprise Edition Front End pools only, while some of the information could be used with Standard edition pools, the procedure will differ significantly.

The first thing to note is that in a Lync and Skype co-existence/mixed mode scenario, you cannot modify the topology(via topology builder) or run Enable-CsTopology on any of your Lync 2013 Front Ends. If you do try it, it throws an error that doesn’t tell you much about why it’s failing:

Enable-CsTopologyPSError

Neither does the stack trace on Global Activation in the log file.

Enable-CsTopologyLog

Anytime you need to run “Enable-CSTopology”, it has to be from a Skype 2015 server.

The second and more interesting part(hopefully), is that you can move the CMS from a Lync 2013 to a Skype pool while still keeping your Lync 2013 pools running. Bonus : You can move it back to Lync 2013 and still not break a thing. Remember this was’nt possible in a Lync 2010 and 2013 co-existence.

There are a few hiccups that I ran into which I will detail below.

Just like “Enable-CsTopology”, the “Move-CsManagementServer” PowerShell command cannot be run from a Lync 2013 Server, it errors out and this time the log file is quite descriptive about what’s wrong and what needs to be done:

Move-CsManagementServerPSError

Move-CsManagementServerLog

That tells us to use the Move-CsManagementServer cmdlet with the “-TargetFqdn” parameter from a Skype 2015 server. Alright, that should be it.

With those 2 errors out of the way, the rest of the procedure promises to be straightforward. Make sure you have backed up your Lync/Skype config by using the “Export-CsConfiguration” command. Login to a Skype 2015 Front End server and open Powershell as administrator to run the following steps:

    1. Use the Install-CsDatabase command to setup new CMS databases, I say databases because the Location Information Services(LIS) database is created(and moved) along with the “xds” database.
    2. Install-CsDatabase -CentralManagementDatabase -SqlServerFqdn SQL01.yourdomain.com -UseDefaultSqlPaths

      Run Enable-CsTopology for topology to pick up the new CMS DB location.
       

    3. Use the Move-CsManagementServer command to move the CMS role over to the destination pool with the “-TargetFqdn” parameter.
    4. Move-CsManagementServer -TargetFqdn LyncPool01.yourdomain.com

      And.. it fails!

      Move-CsManagementServer-TargetFQDNPSError

      On checking the log file:

      Move-CsManagementServer-TargetFQDNLog

      Well that doesn’t look good, checked the Pool name and there’s no typos and the CMS replication is Ok. So what’s going on here. Looking at the command reference for “Move-CsManagementServer” on Technet, says the -TargetFqdn should be the FQDN of the pool where the CMS should be moved to. Well, I think we’ve established that that’s not accurate. What does work is specifying the name of one of the Front End Servers of the destination pool where you want the CMS to move.

      Move-CsManagementServer -TargetFqdn SkypeFE02.yourdomain.com

      And voila! The current and proposed state info comes up and asks for you to confirm that you want to proceed with the move.

      Move-CsManagementServerConfirmationPS

      Hit “Y” and the move completes, letting you know that you need to runlocal setup aka bootstrapper.exe on all the Front Ends in the Source pool as well all the Front Ends in the destination pool(but don’t do that right away). The CMS SCP in the screenshot above is a Service Connection Point stored in Active Directory that is queried by Lync/Skype servers to find the CMS master. Since the SCP lives in the AD, it is dependent on AD replication which can take a while depending on the size of your AD environment and site layout. These 2 commands let you check the SCP for CMS location:

      Get-CsManagementConnection
      Get-CsConfigurationStoreLocation

    5. On the server where you ran the Move-CsManagementStore command, start the LS Master Replicator Agent Service and LS File Transfer Agent Service; those 2 services are responsible for the CMS replication process.
    6. Invoke CMS replication and confirm that the replicas are in sync:
    7. Invoke-CsManagementStoreReplication
      Get-CsManagementStoreReplicationStatus | Select uptodate,replicafqdn

      This is important to ensure that the Front Ends can “see” the change with the CMS and can install/uninstall the services needed for CMS replication when you run local setup.

    8. For all the remaining Front Ends in the source and destination Pools, Open Deployment Wizard and run “Setup or Remove Lync Server components” or Run bootstrapper.exe from the Deployment folder where Skype was installed.

    The above steps can be used to move the CMS from Lync 2013 to Skype 2015 and vice versa.