Deploying Lync Server 2013 Enterprise Pool to coexist with Lync Server 2010

I have to admit that Lync has been one of the products I missed most over the past year as I’ve been mainly on VMware/Citrix application and desktop virtualization projects so I’ve completely skipped testing the preview version due to my busy schedule.  With no spare cycles till Christmas, I thought taking this last long weekend in Bermuda to deploy it in my company’s internal environment.

Note that the following deployment uses the Lync Server 2013 RTM documentation dated October 24, 2012.  As I remember Lync Server 2010, Microsoft usually releases a more detailed Microsoft document a few months after the product has been released: http://blogs.technet.com/b/nexthop/archive/2012/10/24/microsoft-lync-server-2013-preview-rtm-documentation-now-available.aspx

Prerequisites & Requirements

Prior to actually jumping into the deployment, it’s important that your environment and new servers that you intend on deploying Lync Server 2013 meets all of the prerequisites and requirements.  I won’t drill into every single detail as you can find the documentation here:

http://technet.microsoft.com/en-us/library/gg412892.aspx

image

However, the following are some items I’ll highlight:

Windows Operating System Requirement:

Note that Lync Server 2013 is only supported on the following operating system:

  • Windows Server 2008 R2 SP1 or latest service pack
  • Windows Server 2012

http://technet.microsoft.com/en-us/library/gg398588.aspx

image

Software Requirements (for the operating system):

The features and roles you’ll need to install onto the Windows operating system you intend on installing Lync Server 2013 are listed in the Additional Software Requirements section of the deployment documentation:

http://technet.microsoft.com/en-us/library/gg398686.aspx

image

More information about setting up components such as IIS, the file server and certificates can be found in the Software Setup section:

http://technet.microsoft.com/en-us/library/jj204692.aspx

image

SQL Server Database Support:

The supported versions of Microsoft SQL server for Lync Server 2013 are the following:

Back-end database of a Front End pool, Archiving database, Monitoring database, persistent chat database, and persistent chat compliance database:

  • Microsoft SQL Server 2008 R2 Enterprise database software (64-bit edition). Additionally running the latest service pack is recommended.
  • Microsoft SQL Server 2008 R2 Standard (64-bit edition). Additionally running the latest service pack is recommended.
  • Microsoft SQL Server 2012 Enterprise (64-bit edition). Additionally running the latest service pack is recommended.
  • Microsoft SQL Server 2012 Standard (64-bit edition). Additionally running the latest service pack is recommended.

Standard Edition server database and local configuration store databases:

  • Microsoft SQL Server 2012 Express (64-bit edition)

http://technet.microsoft.com/en-us/library/gg398990.aspx

image

Active Directory Requirements:

The Active Directory requirements can be found here:

http://technet.microsoft.com/en-us/library/gg398630.aspx

image

Ensure that your active directory contain only the following domain controllers:

  • Windows Server 2012
  • Windows Server 2008 R2 operating system
  • Windows Server 2008 operating system
  • Windows Server 2008 Enterprise 32-Bit
  • 32-bit or 64-bit versions of the Windows Server 2003 R2 operating system
  • 32-bit or 64-bit versions of the Windows Server 2003 operating system

Domain functional level must be either of the following:

  • Windows Server 2008 R2
  • Windows Server 2008
  • Or at least Windows Server 2003

Forest functional level must be either of the following:

  • Windows Server 2008 R2
  • Windows Server 2008
  • Or at least Windows Server 2003

http://technet.microsoft.com/en-us/library/gg412955.aspx

image

Server Collocation Requirements:

As with Lync Server 2010, you can collocate certain Lync Server 2013 roles on the same server.  The following lists the support collocation scenarios:

The A/V Conferencing service, Mediation service, Monitoring, and Archiving are collocated on the Front End Server, but additional configuration is required to enable them.  If you do not want to collocate the Mediation Server with the Front End Server, you can deploy it as a stand-alone Mediation Server on a separate computer.

You can collocate a trusted application server with the Front End Server.

The following server roles must each be deployed on a separate computer:

  • Director
  • Edge Server
  • Mediation Server (if not collocated with the Front End Server)
  • Office Web Apps Server

You can collocate each of the following databases on the same database server:

  • Back-end database
  • Monitoring database
  • Archiving database
  • Persistent Chat database
  • Persistent Chat compliance database

The file share can be a separate server or can be collocated on the same server as any or all of the following:

  • Database server, including the Back End Server of an Enterprise Edition Front End pool
  • Archiving database
  • Monitoring database
  • Persistent Chat database
  • Persistent Chat compliance database

http://technet.microsoft.com/en-us/library/gg398102.aspx

image

Migrating from Lync Server 2010 to Lync Server 2013:

Coexistence migration information from Lync Server 2010 to 2013 can be found here:

http://technet.microsoft.com/en-us/library/jj205369.aspx

image

Ensure you apply the latest updates for your legacy Lync Server 2010 environment:

http://technet.microsoft.com/en-us/library/jj204730.aspx

image

… as well as run the Run Best Practices Analyzer to ensure your legacy Lync Server 2010 is in good health and conform to best practices:

http://technet.microsoft.com/en-us/library/jj204694.aspx

image

More information about deploying a Lync Server 2013 pilot pool can be found here:

http://technet.microsoft.com/en-us/library/jj205367.aspx

image

Staging Servers and Install Prerequisites

For the purpose of this example, I’ll be deploying a new Lync Server 2013 enterprise pool into an existing Lync Server 2010 environment.  I will leave roles such as Edge, Monitoring, Archiving, etc for separate blog posts so begin by staging the following 2 servers:

  1. Lync Server 2013 Enterprise Front-End server
  2. SQL Server for back-end database

I don’t readily have a Windows Server 2012 virtual machine template available so I’ll be using Windows Server 2008 R2 with SP1 installed.

**Note: make sure that your Lync Server 2010 environment is updated with the latest cumulative update package and in good health via items such as:

  1. Event Logs
  2. Lync Server 2010 Control Panel

image

Install Windows Roles and Features:

Rather than manually going through Server Manager to install the roles and features, the following PowerShell cmdlets can be used to automatically install all of them.

Import-Module ServerManager

Add-WindowsFeature Web-Server, Web-Static-Content, Web-Default-Doc, Web-Scripting-Tools, Web-Windows-Auth, Web-Asp-Net, Web-Log-Libraries, Web-Http-Tracing, Web-Stat-Compression, Web-Default-Doc, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Http-Errors, Web-Http-Logging, Web-Net-Ext, Web-Client-Auth, Web-Filtering, Web-Mgmt-Console, Web-Dyn-Compression, Web-Mgmt-Console, Desktop-Experience, RSAT-AD-TOOLS

image

**Note that whether you include RSAT-AD-TOOLS in the end is optional.  I included it because I intend on performing the Active Directory preparation directly on the new Lync server.

Restart the server once the executation of the cmdlet completes.

Install Microsoft .NET Framework 4.5:

Proceed with downloading and installing Microsoft .NET Framework 4.5 from the following URL:

http://www.microsoft.com/en-us/download/details.aspx?id=30653

Note that the message prompt that the Lync install displays when you don’t have Microsoft .NET Framework 4.5 installed is:

http://go.microsoft.com/fwlink/?LinkID=264944

image

What I don’t like about these links is that they’re not active and therefore you can’t just click on it and once you hit the website, you have to read through the pile of text and find the properly link to download.  With that being said, I suspect the contents in the go.microsoft.com links could possibly change so if you’re reading this blog post months down the road, it’s best to use the main link instead.

Install PowerShell 3.0:

Continue and PowerShell 3.0 from the following URL: http://www.microsoft.com/en-us/download/details.aspx?id=34595

There’s a list for 4 items for download and the way to determine which one you’re supposed install is actually noted at the bottom.  Since we’re installing PowerShell 3.0 onto a Windows Server 2008 R2 SP1 server, proceed by downloading the following file:

WINDOWS6.1-KB2506143-x64.MSU

image

Install Windows Identity Foundation:

Continue and Windows Identity Foundation from the following URL: http://www.microsoft.com/en-us/download/details.aspx?id=17331

Windows6.1-KB974405-x64.msu

image

Launch Setup:

Launching the Setup.exe executable for the Lync Server 2013 binaries will automatically install Microsoft Visual C++ 2012 x64 Minimum Runtime – 11.0.50727 Package so don’t bother downloading it:

image

Install the Microsoft Visual C++ 2012 x64 Minimum Runtime – 11.0.50727 Package:

image

The setup wizard will be presented to you once the Microsoft Visual C++ 2012 x64 Minimum Runtime – 11.0.50727 Package is installed:

image

Proceed by through through the installation wizard:

image

image

image

Preparing Active Directory

Other than the 2013 text, everything looks pretty much the same as the 2010 install so proceed with clicking on the Prepare Active Directory link:

image

Prepare Schema:

Continue by clicking on the Run button under Prepare Schema to extend the Active Directory schema for Lync Server 2013:

image

image

image

image

Prepare Forest:

Once the schema has been prepped verify that the schema has been replicated and then proceed with preparing the forest:

image

image

image

image

image

Prepare Domain:

Once the forest has been prepped verify the global catalog has been replicated and then proceed with preparing the domain:

image

image

image

With the domain prep completed, you can proceed with adding users or groups to the Lync administrative groups:

image

… or if you already have Lync Server 2010 deployed in the environment, head back to the main screen to install the Topology Builder via Install Administrative Tools.

Build new Lync Server 2013 Topology

Install Lync Server 2013 Administrative Tools (Topology Builder):

image

image

Download Existing Topology:

Launch the Lync Server Topology Builder:

image

… and proceed with downloading the existing topology:

image

image

Save the downloaded topology as you usually do in Lync Server 2010:

image

image

Once the Topology Builder is launched proceed with expanding the nodes on the left and you will notice the familiar layout of Lync Server 2010:

image

Define new File Store:

Expand the nodes on the left then navigate to Shared Components –> File Stores, right click on the node and select New File Store…:

image

image

**Note that I am not including instructions on creating the actual share on the server so create the share and set the share permissions to Everyone with Full Control then lock it down with NTFS permissions if necessary.

Define new SQL Store:

Expand the nodes on the left then navigate to Shared Components –> SQL Server store, right click on the node and select New SQL Server Store…:

image

Enter the information for the new SQL Server Store:

image

Note that it doesn’t look like you can use another SQL server instance installed onto the same server hosting the Lync Server 2010 SQL Server store.  See my previous post:

Unable to collocate Lync Server 2013 enterprise pool database with Lync Server 2010 on separate SQL instances
https://blog.terenceluk.com/2012/11/unable-to-collocate-lync-server-2013.html

Define new Office Web Apps Server:

The Office Web Apps Server is a new service that enable users to share and view PowerPoint presetantions during meetings with enhancements.

Expand the nodes on the left then navigate to Shared Components –> Office Web Apps Servers, right click on the node and select New Office Web Apps Server…:

image

Type in the FQDN of the Office Web Apps Server name and you’ll notice that the Office Web Apps Server discovery URL will automatically get filled in for you:

image

Create new Enterprise Edition Front End Pool:

Continue by right clicking on the Enterprise Edition Front End pools node under Lync Server 2013 to deploy a new pool:

image

image

Enter the FQDN for your new Lync Server 2013 pool (make sure it’s in the FQDN format):

image

Enter the FQDN of your first front-end server:

image

Select the features you would like to enable for the front-end server.  For this demonstration, I will skip Enterprise Voice (collocate Mediation server role), Archiving and Monitoring roles:

imageimage

image

Leave the Enable an Edge pool to be used by the media component of this Front End pool unchecked and click Next:

image

Click on the Next… button and select the new SQL Server store created earlier:

image

image

Click on the Next… button and select the new file store created earlier:

image

The External Base URL field is almost always wrong because the wizard simply puts in the old pool’s internal pool FQDN so change it to the existing external URL for the Lync Server 2010 pool:

imageimage

Select the Office Web Apps Server created earlier:

image

image

Clicking on the Finish button will complete the creation of the new pool:

image

Proceed with publishing the new topology:

image

image

image

image

image

Once the topology publishing finished, review the logs if there are any errors or warnings.  Errors are typically something that you should look into correcting immediately while warnings may not necessarily need immediate or attention at all.  The screenshot above shows that the Creating Database has errors but reviewing the logs show the following:

Warning: Setting SQL Server Show Advanced Options to 1

Warning: Setting SQL Server Recover Interval to 5 mins

image

I’ve reviewed the descriptions for:

  • SQL Server Show Advanced Options to 1
  • Setting SQL Server Recover Interval to 5 mins

… and both of them appear to be settings the topology publishing task set for SQL databases so it probalby does not need any attention.

Deploying the Front-End Server

Install Local Configuration Store:

With the Central Management Store populated with the new topology, proceed by launching the Lync Server 2013 – Deployment Wizard on the front end server, click on the Install or Update Lync Server System link:

image

… then the Run button for Install Local Configuration Store:

image

Setup Lync Server Components:

Once the local configuration store has been installed, proceed with installing the Lync Server Components:

image

image

image

——————————————————————————————————————————————————————–

As of November 11, 2012, it doesn’t look like Windows Update includes the KB 2646886 hotfix because the installation of the Lync Components threw the following error even though no updates were available via Windows Update:

> Bootstrap-CsComputerLogging status to: C:Userstluk-adminAppDataLocalTemp2BootstrapFull-[2012_11_11][19_44_42].htmlChecking prerequisites for bootstrapper…Checking prerequisite WMIEnabled…prerequisite satisfied.Checking prerequisite NoBootstrapperOnBranchOfficeAppliance…prerequisite satisfied.Checking prerequisite SupportedOS…prerequisite satisfied.Checking prerequisite NoOtherVersionInstalled…prerequisite satisfied.Host name: svr-lync-02.domain.intDisabling unused roles…Executing PowerShell command: Disable-CSComputer -Confirm:$false -Verbose -Report “C:Userstluk-adminAppDataLocalTemp2Disable-CSComputer-[2012_11_11][19_45_07].html”Checking prerequisites for roles…Checking prerequisite SupportedOS…prerequisite satisfied.Checking prerequisite SupportedOSNoDC…prerequisite satisfied.Checking prerequisite SupportedSqlRtcLocal…prerequisite satisfied.Checking prerequisite WMIEnabled…prerequisite satisfied.Checking prerequisite NoOtherVersionInstalled…prerequisite satisfied.Checking prerequisite PowerShell…prerequisite satisfied.Checking prerequisite WindowsIdentityFoundation…prerequisite satisfied.Checking prerequisite SupportedServerOS…prerequisite satisfied.Checking prerequisite NoUnsupportedWinFab…prerequisite satisfied.Checking prerequisite SupportedSqlLyncLocal…prerequisite satisfied.Checking prerequisite IIS…prerequisite satisfied.Checking prerequisite IIS7Features…prerequisite satisfied.Checking prerequisite ASPNet…prerequisite satisfied.Checking prerequisite KB2646886Installed…missingChecking prerequisite BranchCacheBlock…prerequisite satisfied.Checking prerequisite WCF…prerequisite satisfied.Checking prerequisite WindowsMediaFoundation…prerequisite satisfied.Prerequisite not satisfied: Before you install Microsoft Lync Server 2013, you must install an update for Windows Server 2008 R2. For details about the updated, see Microsoft Knowledge Base article 2646886, “FIX: Heap corruption occurs when a module calls the InsertEntityBody method in IIS 7.5” at http://go.microsoft.com/fwlink/p/?linkid=3052&kbid=2646886.

image

So if you receive this error, proceed with downloading the hotfix from http://go.microsoft.com/fwlink/p/?linkid=3052&kbid=2646886

——————————————————————————————————————————————————————–

image

Request, Install and Assign Certificates:

Once the Lync Server components have been installed, proceed with requesting, installing and assigning certificates for the:

Default certificate:

  • Server default
  • Web services internal
  • Web services external

OAuthTokenIssuer

  • OAuthTokenIssuer

image

image

image

image

image

image

image

image

image

**Note that you can either create the certificate as exportable or not.  I prefer to have an exportable certificate so I could back it up.

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

Start Services:

With the certificates issued and assigned, proceed with starting the services:

image

image

Check Service Status:

Every though the last step Service Status is listed as option, it’s always best to perform it anyways to ensure that all the services are listed as Started:

image

image

Checking for Updates:

Checking for updates is just as important as now is the best time to install updates:

image

Launch Lync Server 2013 Control Panel:

Prior to launching the Lync Server 2013 Control Panel, make sure you create a DNS record for your pool name or you may receive the following webpage errors:

Navigation to the webpage was canceled

image

This program cannot display the webpage

image

**Note: I’ve forgotten to create the DNS records a few times and noticed that I almost always have to rebooted the front-end server to get the page to load properly.

Another item that most administrators forget is that the Lync Server 2013 Control Panel uses Silverlight but what’s nice is that upon launching the control panel, you will get prompted to install it:

image

Proceed with selecting the new Lync Server 2013 pool:

image

image

Continue by associating your new Lync Server 2013 pool with the legacy Edge server (or else federation won’t work), then migrate a user over and being testing the pool’s functionalities ensuring that a migrated users can log in with their Lync Server 2010 client from the internal network or from external through the Edge server. 

I will be writing separate posts for other roles and required configurations for the rest of the deployment in the following weeks.

Note that the following errors would be logged in the Lync Server event logs if you haven’t deployed the Office Web Apps Server:

Event ID: 41033

Office Web Apps Server (WAC) discovery failed, PowerPoint content is disabled.

Attempted Office Web Apps Server discovery Url: https://svr-webapps-01.domain.local/hosting/discovery/
Received error message: The remote name could not be resolved: ‘svr-webapps-01.domain.local’
The number of retries: 1686, since 11/11/2012 9:16:19 PM.
Cause: Office Web Apps Server may be unavailable or network connectivity may have been compromised.
Resolution:
Check HTTPS connectivity from this box to the Office Web Apps Server deployment using the discovery Url.

image

Please see the following post for instructions on how to deploy the Office Web Apps Server:

Deploying Office Web Apps Server for Lync Server 2013 Enterprise Pool https://blog.terenceluk.com/2012/11/deploying-office-web-apps-server-for.html