Friday, July 26, 2013

Lync Storage Service (LYSS)

Lync Storage Service (LYSS) is a storage framework in Lync Server 2013 intended to be used by different Lync Storage Service consumers for accessing storage platforms in a Lync Server 2013 system. To support high availability, LYSS accepts and saves copies of the data on multiple Front End servers in the pool temporarily, and removes that data once it has been delivered to its final long-term storage location (SQL or Exchange). LYSS reports to the event viewer Lync log as "LS Storage Service" and it is possible to use the Lync Server 2013 Logging tool to log events from "Lyss". LYSS is using a database named lyss which resides in the lynclocal instance of the SQL Server express on the Front End server.


LYSS is also used for the Archiving integration and Unified Contact Store. Currently the design allows for using Exchange Web Services (EWS) and SQL Server as the two storage platforms. LYSS uses the Exchange 2013 Autodiscover service to locate the Exchange 2013 Client Access server and uses the server-to-server authentication configuration to read and write from Exchange 2013. If a Lync user is enabled for Unified Contact Store, LYSS will move the contacts for the user to Exchange 2013. In Lync 2010 MSMQ was used by the Archiving components, but MSMQ is not required by Archiving in Lync 2013 due to LYSS (Persistent Chat Front End Servers still uses MSMQ.) With Lync no longer utilizing MSMQ the archiving functionality is now handled by unified data collection agents (archiving agents) who are installed on every Front End server or Standard edition server. Even though these agents are installed automatically they are not activated until archiving is enabled.

LYSS uses Windows Fabric for replication between the Front End servers in the pool. If data is deleted on a primary Front End Server, but the deletion on a secondary Front End Server fails, perhaps if there is an unexpected shutdown or error on the receiving Front End server data can be left behind and "orphaned." This orphaned data can cause performance to degrade and waste drive space. This condition will generate the events LYSS_DB_SPACE_USED_ERROR (Id=32058) and LYSS_DB_SPACE_USED_CRITICAL (Id=32059) in the event log on the Front End server in question. You could then check the performance counter on the Front End server under “LS:LYSS - Storage Service API” with the name "LYSS - Current number of Storage Service stale queue items." If this performance counter has a high value, for example greater than 50,000, then you should run the CleanuUpStorageServiceData.exe tool from the Lync Server 2013 Resource Kit which will delete all orphaned data from the pool.