Pages

Sunday, November 8, 2015

Performing an in-place upgrade of Lync Server 2013 to Skype for Business 2015

This blog post is probably a bit late to write as I haven’t really had the time to blog a much this year due to my work schedule but I’ve vowed to slowly work my way through the queue I have of all the blog posts I never got to over the past two years.

The steps performed for this in-place upgrade can be found at the following TechNet article:

Upgrade to Skype for Business Server 2015
https://technet.microsoft.com/en-us/library/dn951371.aspx

Prerequisites

Before you begin, ensure that you have the prepared the following:

  1. Update your Lync Server 2013 servers with the latest Cumulative Updates found here: https://support.microsoft.com/en-us/kb/2809243 (CU5 or later)
  2. Ensure that PowerShell version 6.2.9200.0 or later is installed onto the Lync Server 2013 server
  3. Update your SQL Server 2012 instance locally on the Lync Server 2013 server front-end and Edge servers to SP1 or SP2 (SP2 for SQL 2012 Express version can be found here: https://www.microsoft.com/en-gb/download/details.aspx?id=43351)  Note that a patched SQL Server 2012 with SP2 should have the following version numbers:              image
  4. Update your back-end SQL Server 2012 instance to SP1 or SP2 if you are running the Enterprise edition (SP2 for SQL 2012 full edition can be found here: https://www.microsoft.com/en-us/download/details.aspx?id=43340)
  5. Patch your Lync server with the latest updates
  6. Ensure that KB2533623 is installed if your Lync server is on a Windows Server 2008 R2 server
  7. Ensure that Kb2858668 is installed if your Lync server is on a Windows Server 2012 server
  8. Ensure that KB2982006 is installed if your Lync server is on a Windows Server 2012 R2 server
  9. Ensure that there is at least 32GB of free space on you Lync Server 2013 front-end and Edge servers
  10. Ensure that there is at least 18GB free on your SQL 2012 back-end server if you are running Enterprise edition of Lync Server 2013
  11. Allocate a server that does not have the Lync core components installed so you can install the new Skype for Business 2015 components
  12. If you have allocated a Windows Server 2008 R2 server for step #4, ensure that you download and install PowerShell 3.0 and .NET 4.5

Step #1 –  Update legacy Lync Server 2013 topology to Skype for Business 2015

Log onto the server you’ve allocated to install the Skype for Business Server 2015 components on and run the setup.exe executable from the Skype for Business Server 2015 installation binaries:

image

image

Proceed through the wizard to install the core components:

image

image

image

image

image

Once the Deployment Wizard is presented, click on Install Administrative Tools to install the tools onto the server:

image

Proceed through the wizard:

image

image

image

image

With the Administrative Tools installed, launch the Topology Builder and download the current Lync Server 2013 topology:

image

Once the topology has downloaded and saved, navigate to your pool:

image

Right click on the pool and select Upgrade to Skype for Business Server 2015…:

image

Answer yes to the Are you sure you want to upgrade the selected pool to Skype for Business Server 2015 prompt:

image

Note that answering Yes to the prompt will cause the existing pool to no longer exist under the Lync Server 2013 tree:

image

Proceed by navigating down to the Skype for Business Server 2015 folder and then the appropriate Standard or Enterprise pool to verify that the legacy pool has been moved:

image

Continue by publishing the topology:

image

image

image

image

image

image

image

With the topology published, give the topology time to replicate or force AD replication via the domain controllers.

Step #2 – Upgrade Lync Server 2013 front-end servers

Log onto your legacy Lync Server 2013 server and execute the following cmdlets inLync Server Management Shell to disable and stop the Lync Server 2013 services:

Disable-CsComputer -Scorch

Stop-CsWindowsService

image

With the services disabled, proceed and launch setup.exe from the Skype for Business Server 2015 installation binaries:

image

Proceed through the wizard and start the install:

image

image

image

Note the following 2 items:

  1. This process takes quite a bit of time as my Enterprise pool single server took over an hour
  2. You may be prompted to run extra installations that would be hidden behind the Skype for Business Server 2015 window so don’t just walk away from the install:

imageimage

imageimage

imageimage

imageimage

Clicking OK to the wizard once the upgrade has completed will present the following prompt:

image

Close any Lync Server Management Shell, open Skype for Business Server Management Shell and execute Start-CsPool:

image

Note how the services may throw a Failed to get status data error message and this is normal if the front-end service is taking a bit of time to start as shown in the screenshot above.

Allowing the cmdlet to continue will eventually completed successfully:

image

Launching the Control Panel and navigating to the Topology will show that your front-end server has been upgraded:

image

Step #3 – Upgrade Lync Server 2013 Edge servers

Once all of the front-end servers have been upgraded, proceed and log launch the Topology Builder, navigate to the Edge pool or single server, right click and selection Upgrade to Skype for Business Server 2015…:

image

Confirm when prompted:

image

As with the front-end server, the Edge server or pool node will be moved to the Skype for Business Server 2015 folder:

image

Proceed and publish the topology:

image

image

With the topology successfully published, log onto the Edge server and execute the cmdlet:

Stop-CsWindowsService

image

Launch setup.exe from the Skype for Business Server 2015 installation binaries to start the installation wizard:

image

Proceed through the wizard to start the upgrade:

image

image

image

image

  imageimage

Clicking OK to the wizard once the upgrade has completed will present the following prompt:

  image

Close any Lync Server Management Shell, open Skype for Business Server Management Shell and execute Start-CsWindowsService to start the Edge services then use the Services Console to verify that the services have been started:

image

The Edge services should now be operational.

Launching the Control Panel and navigating to the Topology will show that your Edge server has been upgraded:

image

Wednesday, November 4, 2015

Unable to power on virtual machines on ESXi host with the error: "Invalid or unsupported virtual machine configuration."

Problem

You’ve noticed that the Recent Tasks in your vCenter’s task list is displaying the following error when attempting to perform a Power On virtual machine task:

Invalid or unsupported virtual machine configuration.

image

Reviewing the detail of the task displays the following Task Details:

Name: Power On virtual machine

Status: Invalid or unsupported virtual machine configuration.

Error Stack:

An error was received from the ESX host while powering on VM <vmName>.

Transport (VMDB) error -45: Failed to connect to peer process.

Failed to power on’/vmfs/volumes/<GUID>/<vmName>/<vmName>.vmx’.

image

image

The problem appears to be host specific because you are able to power on the virtual machine if you move it to a different host.

Establishing an SSH session to the host and reviewing the logs show the following message constantly logged:

Cannot create file /tmp/.SwapInfoSysSwap.lock.LOCK for process hostd-worker because the inode table of its ramdisk (tmp) is full.

image

Solution

The environment where I encountered this issue was running HP ProLiant BL660c Gen8 blades which the VMware support engineer told me apparently had a bug that constantly wrote logs to the /tmp/vmware-root folder that eventually filled up the partition. To verify this, navigate to the /tmp/vmware-root folder and use the ls command to list the contents:

image

Note the amount of vmware-vmx-xxxxxxx.log files in the directory in the screenshot above. To correct the issue, either move the files out of the directory to an external storage device or simply delete them. In this example, I will use the rm vmware-vmx-xxx* command to delete the files. The reason why I am required to narrow down the file to a 3 digit + wildcard is because there are simply too many files in the directory to use vmware-vmx-* (if you try using that, you will get a Argument list too long message).

The problem should go away once the files are removed.

Thursday, October 22, 2015

Installing KB 3080353 on Lync Server 2013 causes users to not be able to log in with Lync Mobility clients

Problem

You’ve recently installed Lync Server 2013 updates, and more specifically the Lync Server 2013, Web Components Server (KB3080353) onto your Lync Server then immediately noticed that users with iPhones or Androids are no longer able to log in with their Lync clients via the Lync Mobility service.

You’ve confirmed that login traffic from Lync Mobility clients are indeed hitting the IIS server when you review the IIS logs:

image

2015-10-22 12:23:44 10.21.1.106 GET / sipuri=sip:a-tluk@contoso.com 4443 - 216.249.42.188 ACOMO - 200 0 0 78

2015-10-22 12:23:44 10.21.1.106 GET /Autodiscover/AutodiscoverService.svc/root/user originalDomain=contoso.com 4443 - 216.249.42.188 ACOMO - 401 0 0 0

2015-10-22 12:23:44 10.21.1.106 GET /Autodiscover/AutodiscoverService.svc/root/user originalDomain=contoso.com 4443 - 216.249.42.188 ACOMO - 401 0 0 15

2015-10-22 12:23:44 10.21.1.106 GET /Autodiscover/AutodiscoverService.svc/root/user originalDomain=contoso.com 4443 - 216.249.42.188 ACOMO - 401 0 0 15

2015-10-22 12:23:44 10.21.1.106 POST /WebTicket/WebTicketService.svc/mex - 4443 - 216.249.42.188 ACOMO - 500 0 0 93

2015-10-22 12:23:44 10.21.1.106 GET / sipuri=sip:a-tluk@contoso.com 4443 - 216.249.42.188 ACOMO - 200 0 0 15

2015-10-22 12:23:44 10.21.1.106 POST /WebTicket/WebTicketService.svc/mex - 4443 - 216.249.42.188 ACOMO - 500 0 0 15

image

Reviewing the Application logs show the following event consistently logged:

Log Name: Application

Source: System.ServiceModel 4.0.0.0

Event ID: 3

Level: Error

User: NETWORK SERVICE

image

WebHost failed to process a request.

Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/35236192

Exception: System.ServiceModel.ServiceActivationException: The service '/WebTicket/WebTicketService.svc' cannot be activated due to an exception during compilation. The exception message is: Method not found: 'Microsoft.Rtc.Management.Config.Settings.Web.MobilePreferredAuthType Microsoft.Rtc.Management.Config.Settings.Web.WebServiceSettings.get_MobilePreferredAuthType()'.. ---> System.MissingMethodException: Method not found: 'Microsoft.Rtc.Management.Config.Settings.Web.MobilePreferredAuthType Microsoft.Rtc.Management.Config.Settings.Web.WebServiceSettings.get_MobilePreferredAuthType()'.

at Microsoft.Rtc.Internal.WebTicketService.WebTicketServiceHostFactory.CreateServiceHost(Type serviceType, Uri[] baseAddresses)

at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses)

at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)

at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity)

at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)

--- End of inner exception stack trace ---

at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)

at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath, EventTraceActivity eventTraceActivity)

Process Name: w3wp

Process ID: 2768

image

Solution

I’ve noticed that this known issue from installing KB 3080353 is commonly overlooked as described in the following Microsoft article:

https://support.microsoft.com/en-us/kb/3080353#/en-us/kb/3080353

image

Clicking on the link to KB 3098577:

https://support.microsoft.com/en-us/kb/3098577#/en-us/kb/3098577

… will bring you to a KB that suggests either to uninstall KB 3080353 to bring the service up or uninstall KB 3080353, reinstall the July 2015 Lync Server 2013 cumulative updates, then reinstall KB 3080353.  The latter would be the better route to take as it ensures all the security patches are installed.

image

Before I uninstall KB 3080353, I’d like to paste the version of the Lync components on the server experiencing this problem just as a reference:

imageimage

imageimage

Proceed with locating KB 3080353 and uninstall the update:

imageimage

You’ll notice that Lync Mobility works again after executing iisreset immediately after the uninstall of the patch:

image

Proceed to download the July 2013 Cumulative updates (KB 2809243) here:

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

Then download KB 3080353 here:

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

Reinstall the patch:

image

Lync Mobility should now work properly.  The following is a screenshot of the Lync Server 2013 component versions after performing the operations above:

image