Thursday, November 1, 2012

Exploring Default Installation and SQL Paths in Lync Server 2013

A shift has been made in Lync Server 2013 to process more SQL transactions local on the server than on Lync Server 2010.  One of the main reasons for this is to provide better resilience across all workloads (including user/conferencing services) compared to just voice resiliency in Lync Server 2010.  This post will review different installation paths of Lync components based on drives available at the time of installation.

First let’s review the SQL Express instances that are running local on the Lync Front-end servers.  In my example, I will be looking at the Standard Edition of Lync.  The Enterprise Edition Front-End server will only have LYNCLocal and RTCLocal SQL instances.

Lync 2013 - DB Location - 1234 SE Services

The following lists each SQL instance and the databases associated with it:

  • LYNCLOCAL
    • Lyss
  • RTC – located on local Standard Edition servers and in back-end SQL instance for Enterprise Edition
    • RTCab
    • CpsDyn
    • RgsConfig
    • RgsDyn
    • RTCShared
    • RTCXDS
  • RTCLOCAL
    • XDS
    • RTC
    • RTCDyn

I wanted to see what would happen to default installation locations based on drives available.  Here are the scenarios that I tested:

Scenario #1 – C: drive only, default installation path

In a very default installation with only a C: drive, obviously all components get installed in their default locations.  The following screenshots shows the location of each Lync component.

Drive configuration:

Lync 2013 - DB Location - 1 SE c only

Lync installation path:

Lync 2013 - DB Location - 123 setup location default

SQL installation paths:

Lync 2013 - DB Location - 1 SE C Only SQL Install

RTCReplicaRoot path:

Lync 2013 - DB Location - 1 SE C Only RTCReplicaRoot

Database and Logs paths:

Lync 2013 - DB Location - 1 SE C Only CsData

Note that the RTCLocal database and log for XDS will always be located on the C: drive in the SQL installation path

Scenario #2 – C: and E: drive, default installation path

The following screenshots shows the location of each Lync component.

Drive configuration:

Lync 2013 - DB Location - 2 SE c e

Lync installation path:

Lync 2013 - DB Location - 123 setup location default

SQL installation paths (on C: ):

Lync 2013 - DB Location - 23 SE CE SQL Install

Note that the RTCLocal database and log for XDS will always be located on the C: drive in the SQL installation path

RTCReplicaRoot, Database and Log paths for RTC, RTCLocal, and LYNCLocal instances (all on E: ):

Lync 2013 - DB Location - 2 SE CE CsData-RTCReplica

Note that you can tell what SQL instance each database belongs to by looking at the parent folder to the DBPath/LogPath folders.

Scenario #3 – C:, E:, and F: drive, default installation path

The following screenshots shows the location of each Lync component.

Drive configuration:

Lync 2013 - DB Location - 3 SE c e f

Lync installation path:

Lync 2013 - DB Location - 123 setup location default

SQL installation paths (on C: ):

Lync 2013 - DB Location - 23 SE CE SQL Install

Note that the RTCLocal databases and logs (XDS) will always be located on the C: drive in the SQL installation path

RTCReplicaRoot, Database and Log paths for RTC, RTCLocal, and LYNCLocal instances (on E: ):

Lync 2013 - DB Location - 3 SE CEF E Volume

Note that you can tell what SQL instance each database belongs to by looking at the parent folder to the DBPath/LogPath folders.

Log paths for RTC, RTCLocal, and LYNCLocal (on F: )

Lync 2013 - DB Location - 3 SE CEF F Volume

Scenario #4 – C:, E:, and F: drive, Change installation path to E:

The following screenshots shows the location of each Lync component.

Drive configuration:

Lync 2013 - DB Location - 3 SE c e f

Lync installation path:

Lync 2013 - DB Location - 4 setup location

SQL installation paths (on C: ):

Lync 2013 - DB Location - 23 SE CE SQL Install

Note that the RTCLocal databases and logs (XDS) will always be located on the C: drive in the SQL installation path

Lync Program Files, RTCReplicaRoot, Database and Log paths for RTC, RTCLocal, and LYNCLocal instances (on E: ):

Lync 2013 - DB Location - 4 SE RTCReplicaRoot and lync install

Note that you can tell what SQL instance each database belongs to by looking at the parent folder to the DBPath/LogPath folders.

Log paths for RTC, RTCLocal, and LYNCLocal (on F: )

Lync 2013 - DB Location - 3 SE CEF F Volume

Wednesday, October 24, 2012

The 2013 Collaboration Wave Has Arrived!

Microsoft-Lync-2013-Logo Exchange_2013

Today was a big day for Microsoft…  No, I am not talking about Windows 8 or Windows Server 2012 or Surface or Windows Phone 8.  Wow, it is truly a big year.  I am the most interested in the Office 2013, Lync 2013, Exchange 2013, and yes even SharePoint 2013 RTM releases.  Today, all of these products are available for download via MSDN/Technet.  If you do have a subscription, start downloading and learning about the final releases of these products.  Here are a few resources to help along the way:

Lync 2013

Exchange 2013

I will be sure to update my Lync and Exchange References pages in the near term as new resources become available.  Happy downloading and installing!

Looking forward to a lot of new blogging material.

Thursday, October 11, 2012

Lync October 2012 Server and Client Updates Released

The Lync team has released server and client updates for October 2012. Here are all the details:

Server Updates (7577.205) – Download – KB 2493736

Note: Use the cumulative LyncServerUpdateInstaller.exe to install the updates to make sure all needed updates are applied.

Clients (7577.4356)

Wednesday, October 3, 2012

OCS 2007 R2 September 2012 Updates Released

Microsoft released a few updates for OCS 2007 R2 in September 2012.

Here are the components that were updated:

Group Chat (6907.265)

XMPP Gateway (6907.263)

Monday, September 10, 2012

Failover\Fallback SQL Mirror in Lync Server 2013

NOTE: The following post is based on Lync Server 2013 Preview. Procedures and screenshots are subject to change when Lync Server 2013 is RTM.

In my previous post, I described how to add a SQL mirror to your back-end database for SQL high availability.  In this post, I will describe how to failover and then fallback the SQL databases between the mirror.

Before failing over the SQL mirror, you need to determine whether or not your back-end database is hosting the Central Management Store (CMS) database.  You can determine this by running the following command:

Get-CsService –CentralManagement

Lync 2013 - SQL M failover - get-csservice

If the output shows the pool that you are failing over the back-end for then you must failover the CMS database.  In my lab I have all databases as part of the mirror configuration: User, CMS, Archiving, Monitoring, Apps, PersistentChat, PersistentChatCompliance:

Primary SQL Node:

Lync 2013 - SQL M failover - pricipal

Mirror SQL Node:

Lync 2013 - SQL M failover - mirror

You can also check the state of your mirror status by running the following:

Get-CsDatabaseMirrorState –PoolFQDN pool01.w15lab.local –DatabaseType User

Lync 2013 - SQL M failover - get-mirrorstate user

The supported –DatabaseType values are: App, Archiving, CentralMgmt, Monitoring, Provision, User, PersistentChat, PersistentChatCompliance

I need to run the following commands to failover all databases:

Invoke-CsDatabaseFailover –PoolFQDN pool01.w15lab.local –DatabaseType User –NewPrincipal mirror

Lync 2013 - SQL M failover - invoke-failover user

Now I run the similar command for the rest of my database types:

Invoke-CsDatabaseFailover –PoolFQDN pool01.w15lab.local –DatabaseType App –NewPrincipal mirror

Invoke-CsDatabaseFailover –PoolFQDN pool01.w15lab.local –DatabaseType CentralMgmt –NewPrincipal mirror

Invoke-CsDatabaseFailover –PoolFQDN pool01.w15lab.local –DatabaseType Archiving –NewPrincipal mirror

Invoke-CsDatabaseFailover –PoolFQDN pool01.w15lab.local –DatabaseType Monitoring –NewPrincipal mirror

Invoke-CsDatabaseFailover –PoolFQDN labad03lyse01.w15lab.local –DatabaseType PersistentChat –NewPrincipal mirror (note that my persistent chat pool is my Standard Edition server)

Invoke-CsDatabaseFailover –PoolFQDN labad03lyse01.w15lab.local –DatabaseType PersistentChatCompliance –NewPrincipal mirror (note that my persistent chat pool is my Standard Edition server)

After all commands have been executed, I can look at my SQL nodes again and see that my mirror node now has the active database:

Primary SQL Node:

Lync 2013 - SQL M failover - primary - post failover

Mirror SQL Node:

Lync 2013 - SQL M failover - mirror - post failover

When you are ready to fallback to the primary SQL node, just run the same commands but change the –NewPrincipal parameter to “primary”

Invoke-CsDatabaseFailover –PoolFQDN pool01.w15lab.local –DatabaseType User –NewPrincipal primary

Lync 2013 - SQL M fallback- invoke-failover user

This post describes how to manually fail your mirror databases over to the secondary SQL node and then fall back.

Wednesday, August 22, 2012

Adding a SQL Mirror to an Existing Lync Server 2013 Back-End

NOTE: The following post is based on Lync Server 2013 Preview. Procedures and screenshots are subject to change when Lync Server 2013 is RTM.

Lync Server 2013 now supports SQL mirroring (synchronous) for back-end databases.  In fact, this is the preferred/supported configuration.  This post will describe how to add a SQL mirror database to an existing pool’s back-end SQL instance.  This post is not meant to show SQL specific configurations. 

Here are a few prerequisites, requirements, and notes:

  • All SQL servers including the mirror must be at the same SQL version
  • The two SQL mirror nodes must use the same Edition, the mirror can be different
  • Use a witness server if you want to achieve automatic failover of the SQL database between the mirror
  • You must deploy the witness at the same time as the mirror is set up within the Lync topology
  • The database instance that will be used as the mirror should have the same LUN/file path configuration as the primary database
  • The SQL mirror does not need to be configured beforehand, publishing the Lync topology will configure and enable mirroring
  • The SQL servers and witness must be members of the same domain

In my example, I am going to deploy the SQL mirror without a witness server due to lab constraints.  This post also assumes that you have a second SQL instance already configured to host the mirrored databases.

If you are adding the SQL mirror after deploying your primary database, make sure that the mirroring port is configured on the SQL instance in the topology.  You can see this setting by navigating to Site –> Shared Components –> SQL Server Stores

Lync 2013 - SQL Mir - 2 primary port define

First step is to edit the topology.  Navigate to the Enterprise Front-End pool and select Edit Properties…

Lync 2013 - SQL Mir - Edit Pool

Check the option to Enable SQL Server store mirroring, then click the New… button:

Lync 2013 - SQL Mir - Edit Pool - assoc - markup

Next define SQL server store for the mirror:

Lync 2013 - SQL Mir - define sql

Click OK and then publish your topology.  You will be prompted to configure a File Share on the Create Mirror Databases dialog:

Lync 2013 - SQL Mir - publish

Click on the “File Share is required” error and click Settings… button and define a files share:

Lync 2013 - SQL Mir - publish - sql file share2

Remember, for your file share to make sure the proper permissions are set up so that both SQL servers have access to the share.  Thanks to Doug Deitterick’s Blog for that help.

Lync 2013 - SQL Mir - file share perms

Finish the Publishing Wizard, make sure everything is a “Success”. 

Lync 2013 - SQL Mir - publish - success

Also, check the “To-Do List” link. It says I need to restart my Lync services on the FE Pool servers.  This can easily be done by running:

Get-CsWindowsService | Stop-CsWindowsService

Get-CsWindowsService | Start-CsWindowsService

Lync 2013 - SQL Mir - restart services

Checking the SQL Mirror Node, we can see the Lync databases:

Lync 2013 - SQL Mir - mirror node check

You can also added your Monitoring and Archiving databases to the SQL mirror by editing the topology and adding the already defined mirror on those databases:

Lync 2013 - SQL Mir - Edit Pool - ArchMon

This post described how to add SQL mirroring to your Lync Server 2013 back-end.

Saturday, August 18, 2012

Exchange 2010 SP2 Update Rollup 4 Available

An update for Exchange 2010 SP2 has just released and can be downloaded at: Exchange 2010 SP2 Update Rollup 4 Download.

This will take you Exchange version up to 14.2.318.2

For a description of all the included fixes, see KB 2706690

For those of you running DAGs, please see the following article: Applying Updates to Exchange 2010 SP1 and SP2

If you are running third party products (like anti-virus, etc), it is important that you disable them before updating.

More information can be found on the Exchange Team Blog site.