Lync Server 2013 Guidance Series - How to apply Windows updates or other updates to your Lync 2013 servers that require reboot.

As part of these blog series I will be sharing information, about Lync Server 2013. The information will include operational guidance such backup-restore, patch updating, and handy deployment tips.

In today post we shall be talking about

 How to apply Windows updates or other updates to your Lync 2013 serversthat require reboot .

 Let consider the following scenario

Scenario

Environment

Lync Front-end pool –Lyncfepool.contoso.com

There are 3 front-end severs in the pool

The Windows server administrator applies windows patches to the Lync 2013 servers and reboots them after reboot the Lync front-end services is stuck on starting on all your Lync server 2013 front-end servers

In the Event Viewer for Lync front-end server we see might see the following events  

Log Name: Lync Server

Source: LS User Services

Event ID: 32169

Task Category: (1006)

Level: Warning

Keywords: Classic

User: N/A

Description:

Server startup is being delayed because fabric pool manager is initializing.

Cause: This is normal when Pool is bootstrapped and indicates that the Front-End is waiting for a quorum of other Front-Ends to be started.

Resolution:

If this event recurs persistently, ensure that 85% of the Front-Ends configured for this Pool are up and running. For 2 or 3 machine Pools, initial cold-start of the Pool requires all machines to be started. If multiple Front-Ends have been recently decommissioned, run Reset-CsPoolRegistrarState -ResetType QuorumLossRecovery to enable the Pool to recover from Quorum Loss and make progress.

 

Log Name: Lync Server

Source: LS User Services

Event ID: 32170

Task Category: (1006)

Level: Error

Keywords: Classic

User: N/A

Description:

Pool Manager failed to connect to Fabric Pool Manager.

Cause: This could happen because insufficient number of Front-Ends are currently active in the Pool.

Resolution: Ensure that 85% of the Front-Ends configured for this Pool are up and running. For 2 or 3 machine Pools, initial cold-start of the Pool requires all machines to be started. If multiple Front-Ends have been recently decommissioned, run Reset-CsPoolRegistrarState -ResetType QuorumLossRecovery to enable the Pool to recover from Quorum Loss and make progress. 

All your Lync front-end servers that are part of the pool are started Hence we don’t want to run Reset-CsPoolRegistrarState -ResetType QuorumLossRecovery as no front-end server have been decommissioned   

How to fix it? 

  • Using Lync management shell as administrator
  • Run “Stop-CsWindowsService “on all the Lync front-end servers part of the same pool this stop all Lync related services, This might error out when trying to stop RtcSrv however it is ok to proceed to the next step at this point
  • Then run "Reset-CsPoolRegistrarState -PoolFqdn "LyncFepool.contoso.com" -ResetType FullReset –NoReStart"

NOTE: If you large setup where Administrator does not wish to start the Lync services manually you can also use Reset-CsPoolRegistrarState -PoolFqdn "LyncFepool.contoso.com" -ResetType FullReset Please also note a full reset is time consuming process

  • Verify Lync Server front-end services is stopped on all the Lync front-end servers part of the same pool
  • On one Lync front-end servers start Lync Server front-end service manually or using cmdlet
  • Start-CsWindowsService –Name RtcSrv –Computer “<Lyncfront-end server FQDN>” Wait for 2 minutes
  • Then sequentially start Lync Server front-end service on remaining front-end server

On the Lync front-end server you should see the following

Log Name: Lync Server

Source: LS User Services

Event ID: 32109

Task Category: (1006)

Level: Information

Keywords: Classic

User: N/A

Description: Pool Manager changed state of Registrar with FQDN: Lync-Front-end.contoso.com to Active.

 At this point after few minutes depending on the number of user you have homed the Lync Server front-end service should be “running” fine

Why did this happen?

Windows Fabric is a Microsoft technology used for creating highly reliable, distributable, and scalable applications such as Lync Server 2013. Hence Microsoft recommendation is have a minimum 3 front-end servers in Lync enterprise pool. Abrupt reboot of Lync servers cause a change in the Windows Fabric thus affecting the application.

How do I avoid such situation?

Follow the Microsoft recommendation to update Lync front-end servers

To upgrade front end servers, you must follow these steps:

1.      On a front end server in a pool, run the following cmdlet:

Get-CsPoolUpgradeReadinessState

If the State value of the pool is Busy, wait for 10 minutes, and then try to run the Get-CsPoolUpgradeReadinessState cmdlet again. If you see Busy for at least three consecutive times after you wait 10 minutes in between each attempt, or if you see any result of InsufficientActiveFrontEnds for the State value of the pool, there is an issue with the pool. If you cannot resolve this issue, you may have to contact Microsoft Support

(https://support.microsoft.com/contactus/)

. If this pool is paired with another front end pool in a disaster recovery topology, you must fail the pool over to the backup pool, and then update these servers in this pool. For more information about how to fail over a pool, go to the following Microsoft website:

How to fail over a pool

(https://technet.microsoft.com/en-us/library/jj204678.aspx)

If the State value of the pool is Ready, go to step 2.

2.      The Get-CsPoolUpgradeReadinessState cmdlet also returns information about the upgrade domains in the pool, and about which front end servers are in each upgrade domain. If the ReadyforUpgrade value for the upgrade domain that contains the Server that you want to upgrade is True, you can upgrade the server. To do this, you must follow these steps:

Stop new connections to the front end server(s) by using the Stop-CsWindowsServices -Graceful cmdlet.

Run the Update to upgrade the front end server(s) associated with an upgrade domain.

NOTE: If you upgrade or update front end servers during scheduled server downtime, you can run the cmdlet in step 2 without the -Graceful parameter. More specifically, run the cmdlet as Stop-CsWindowsService. This action immediately shuts down services, and the server does not wait until each existing service request is fulfilled.

Is there a simple way?

There is, all you need to know is does the Lync Enterprise edition pool contains more than 2 servers or not. If the Lync Enterprise edition pool contains 2 servers follow the solution mentioned above under “How do I avoid such situation?” section. If the Lync Enterprise edition pool contains more than 2 servers the simplest method of applying updates to Lync Server 2013 is as follow.

  • Apply update to one Lync front-end server at a time after stopping all Lync Services
  • Reboot the server
  • Wait for all Lync related services to be running state on the rebooted server

Once all Lync related services are in the running state move to the next Lync front-end server in the pool

 Summary

Follow the recommended step to update Lync Server 2013 for both Lync Server updates or Windows update and reduce downtime for your environment