Upgrading from Lync 2013 to Skype for Business Server 2015 – What You Need to Know


Editor’s note: The following post was written by Office Servers and Services MVP Curtis Johnstone.

Much has been written about the SfB upgrade process. This article provides an updated summary of how best to get started, how to avoid some common issues with good tips from the field to get you upgraded from Lync Server 2013.

Getting Started

Generally the in-place upgrade requires no new hardware and is straightforward however you should familiarize yourself with the process and most importantly – pay attention to the the pre-requisites (bringing all your server components up to the appropriate patch levels).

Much has been written upgrading to Skype for Business Server 2015 from Lync Server 2013.  The best resource for upgrading is Microsoft’s Scott Stubberfield’s Ignite 2015 Session “Getting to Skype for Business: Everything You Need to Know to Upgrade from Lync” (https://myignite.microsoft.com/#/videos/66647450-2f91-e411-b87f-00155d5066d7).

In a nutshell there are 2 ways to do an in-place upgrade:  Offline (with some downtime), or Migration (with no downtime). Fellow Skype for Business (SfB) MVP Dino Caputo has a good article here describing these two modes: Moving to Skype for Business: Know Your In-Place Upgrade Options. Also see Microsoft TechNet article: Plan to upgrade to Skype for Business Server 2015.

If you choose to do the offline method, Scott Stubberfield talks about this option at the 0:20:31 min mark in the Ignite video I mention above.

Answers to Common Questions

  • Do I need to un-pair my pools before upgrading?  No, there is no need to un-pair pools before upgrading.
  • Can use Pool Failover to Upgrade?  No, do not use the Invoke-CsPoolFailover cmdlets to failover the the pool; there is no in-place upgrade support for this state.
  • Are AD changes required (schema changes)?  No. You do need to execute a Forest Prep one time, but there are no schema changes to the Forest or Domain if you are coming from Lync Server 2013. This Forest Prep steps just adds the RtcCommponentUniversalServices group to the RtcUniversalReadOnlyAdmins group. This is to avoid potential problems with permissions while failing over the CMS Management Store.
  • What order do I upgrade my servers in?  In general order:  Inside –>  Out.  That is, start with the user pools first, other internal server roles (directors, mediation servers), and then the Edge. Having said that, many have upgraded the edge first, and it has been fine.
  • What are the SQL pre-requisites?  The supported SQL version are listed on TechNet here: Server requirements for Skype for Business Server 2015. To summarize:
    • Local SQL Instances used on the Front-End Server.
      • Lync Server 2013 used SQL Express 2012
      • Skype for Business Server requires SQL Express 2014. The in-place upgrade process will take care of this if the Lync Server 2013 local database instance is running SQL Express 2012 SP1 or greater.
    • Summary of Supported SQL Versions for Skype for Business Server 2015 on the back-end:
      • Clustering supported in all versions of SfB.
      • SQL Server 2008 R2 SP2 (SE/EE), SQL 2012 SP1 (SE/EE), SQL 2014 (SE/EE) are supported.
      • Always On only supported in Enterprise Version; it is not supported for Standard.
  • Can I upgrade my Lync 2013 servers in mixed mode with Lync 2010 Servers?   No.  Upgrading in mixed mode is not supported. This graphic illustrates it well:

1

Tips

  • You will need a separate server (not running Lync Server 2013) to initially run the Skype for Business Topology Builder where you will upgrade the Lync 2013 topology, the databases, and publish the new Topology.
  • No mixed version servers inside of a pool. All Servers within the same pool need to be running the same version. So if you are upgrading a pool you need to bring down the entire pool (e.g. Lync 2013 Server), upgrade all the servers, and then bring up the pool as Skype for Business Server 2015.
  • Stop all services on all servers in the pool being upgraded.  Use the Disable-CsComputer in scorch mode instead of the Stop-CsWindowService cmdlet on each Front-End server. Disable-CsComputer prevents the services from automatically starting up by accident on a re-boot before the upgrade is complete. The in-place upgrade process will re-enable those services, but won’t start them. Can use Start-CsPool to start all services in the pool.
  • Do Obtain and Install KB 2982006KB 2982006 is a pre-requisite IIS patch for the Skype for Business Server upgrade (on Win2012 R2).  Like many hotfix it is described as ‘…intended to correct only the problem that described in this article’.  Do request and install it.  You just make a request from the KB article page, and they will send you an email with a link to download it.
  • Make sure the CMS is patched and up-to-date.  If replication of the CMS db has failed and is not up-to-date, the upgrade will fail. To check this, use the Get-CsManagementReplicationStatus cmdlet.  If it returns $true, it is up to date.
  • Pay attention to Prerequisites.  Here is a summary:
    • The upgrade installer checks for at least 32Gb free on the disk – make sure you have that
    • Install CU5+ latest hotfix to all Lync 2013 Topology Components
    • PowerShell RTM version (6.2.9200.0) or later
      • Use $PSVersionInfo to check the build number of PowerShell
    • Have at least SQL Server 2012 SP1 installed
    • You will also need one of the following:
      • KB2533623 – Windows Server 2008 R2
      • KB2858668 – Windows Server 2012
      • KB2982006 – Windows Server 2012 R2
  • Use the Start-CsPool cmdlet to Start all Servers in the Pool at the same time when you bring the servers back up.
  • Skype for Business uses new Address Book Normalization Cmdlet’s instead of the former Company Phone Number text file.
    • The Company_Phone_Number_Normalization_Rules.txt is no longer used.
    • You need to import the rules.  You can do this using this Import-CsCompanyPhoneNormalizationRules cmdlet.
    • The new Skype for Business cmdlets are Set/Get-CsAddressBookNormalizationConfiguration and Set/Get-CsAddressBookNormalizationRule
  • Skype for Business File Share Usage might be higher after the Upgrade:
    • SfB uses the File Share for the fabric logs.  In Lync Server 2013, the Front-Ends were used for this.
    • If you have many Front-Ends, you should ensure that your File Share has enough room to accommodate the Fabric Logs on each front-end.
    • Poor File Share disk performance (e.g. high I/O), can impact the length of time it takes to join a conference. You can monitor the file I/O of the file share in perfmon if you suspect this is the case.

Resources

Microsoft TechNet – Plan to upgrade to Skype for Business Server 2015

Microsoft TechNet – Server requirements for Skype for Business Server 2015

Ignite in Chicago – Getting to Skype for Business: Everything You Need to Know to Upgrade from Lync

Matt Landis – Step by Step Skype for Business Server 2015 In Place Upgrade

7 Part Series on INSTALLING SKYPE FOR BUSINESS SERVER 2015 – http://itprocentral.com/series/installing-skype-for-business-2015/

Upgrading Lync to Skype for Business – http://pei.com/2015/04/upgrading-lync-to-skype-for-business/

2

About the author

Curtis has more than 15 years of enterprise application development experience and currently focuses on Unified Communication research with Microsoft Skype for Business, Lync, Office 365, and Microsoft Exchange. His previous Exchange experience involves the development of enterprise monitoring and diagnostic solutions for Microsoft Exchange, and participation in the design, deployment and administration of corporate Skype for Business and Exchange deployments. Curtis is a senior product architect in the Microsoft Windows Management division at Dell Software.

Comments (2)

  1. BrianYx2 says:

    Can you confirm the following statement in the post? “This Forest Prep steps just adds the RtcCommponentUniversalServices group to the RtcUniversalReadOnlyAdmins group.” We tested and do NOT see the group added.

  2. David says:

    FYI, I think the command you give, Get-CsManagementReplicationStatus, in the “Make sure the CMS is patched and up-to-date” section is incorrect. I tried running that but it doesn’t exist. There is a Get-CsManagementSTOREReplicationStatus, however. Is that the command you meant?

Skip to main content