Lync 2013 Windows Fabric Quorum Model


lync-logo2013

Lync 2013 Windows Fabric Quorum Model

First off, in Lync 2013 s-au produs câteva modificări semnificative referitor la modul cum funcționează comunicarea intre serverele de Front End si cele de Back End. Microsoft recomanda mai nou ca Front-End Pool-ul sa conțină minim 3 servere de Front End. Care ar fi motivul pentru aceasta recomandare? Răspunsul este Windows Fabric.

Info: Acest serviciu se instalează automat cu setup-ul de Lync 2013. Exista un pachet care se găsește pe kitul de Lync 2013 in /Setup/amd64/Windowsfabric.msi .

Windows Fabric este un concept relativ nou, introdus cu 2008 R2 aducând numeroase îmbunătățiri de scalabilitate si cel mai important lucru de menționat in contextul serverelor de Lync – este folosit la replicarea informațiilor intre serverele Front End si menținerea copiilor de User Groups. Ce reprezintă User Groups? Este un concept nou introdus odată cu Lync 2013 si funcționează împreună cu Windows Fabric oferind copii pe celelalte Front-End-uri. Procesul este denumit „Brick Model” si a permis posibilitatea adăugării unui număr de 12 servere FE intr-un Front-End Pool fata de 10 servere cat era limita la Lync 2010 si a eliminat scenariile de „bottleneck” pe serverul de Back-End. Mai multe detalii despre Windows fabric http://msdn.microsoft.com/en-us/library/ee790974(v=azure.10).aspx.

In Lync 2010 toate schimbările făcute de un Lync User (schimbarea statusului, contactelor, Meeting-urilor, etc.) conduceau la actualizarea bazelor respective pe serverul de Back-End, care puneau serverul sub o încărcare considerabila. In Lync 2013 mai nou aceste informații sunt actualizate in real-time pe un Front-End server desemnat ca ‚Primary’ pentru copiile de User Groups si se actualizează si pe serverul de Back-End ca si backup, prin procesul de scriere Lazy Write.

PoolComparison

Pe orice server Front End de Lync 2013 exista acum 2 instanțe SQL RTCLOCAL si LYNCLOCAL, fata de singura instanța RTCLOCAL pe Lync 2010. Noua instanța LYNCLOCAL conține baza de date LYSS care este folosita de către serviciul Lync Storage Service (LYSS).

Info: Pe edițiile de Lync 2013 Standard instanța se numește RTC, doar pe Enterprise se numește RTCLOCAL.

Lync Databases

Lync Databases2

Info: Exista o comanda noua in Lync 2013 (Get-CSPoolFabricState) care se poate folosi pentru a afla mai multe detalii referitor la cele de mai sus. Descriere comenzii spune totul: „Returns the Windows Fabric state for a Lync Server 2013 pool. Windows Fabric is a Microsoft technology used for creating highly reliable, distributable, and scalable applications. This cmdlet was introduced in Lync Server 2013.

By default sunt definite Data Collector Sets pentru urmărirea tuturor tranzacțiilor efectuate de către Windows Fabric.

LyncDataCollector

Acestea pot fi administrate folosind fișierele .bat de mai jos sau direct din Performance Monitor. Recomandat ar fi sa nu avem nevoie sa umblam la aceste setări dar este bine sa știm ca exista.

LyncFabricTrace

LyncFabricTrace1

LyncFabricTrace2

Revenind la Lync 2013, mai exact la Quorum, atunci când avem 3 Front-End-uri intr-un Pool, si unul devine indisponibil, atunci cele doua preiau încărcarea (folosind un load balancer) iar daca cel indisponibil era desemnat ca Primary in acel pool, urmatorul ii va lua locul in funcție de ordinea stabilita. Atunci când 2 din cele 3 servere devin indisponibile vom avea o problema. Exista un tabel făcut de Microsoft care arata cate Front-End-uri trebuie sa rămână disponibile într-un Pool pentru a putea deservi clienții in mod normal.

Numărul   total de Front-End-uri in Pool Numărul de   Front-End-uri care trebuiesc sa fie funcționale
1-2 1
3-4 2
5-6 3
7-8 4
9-10 5
11-12 6

Daca numărul serverelor scade sub cel de la menționat mai sus atunci serverele care rămân  „up” vor intra in Survivability Mode si se va vedea următorul event in Lync Log pe acele servere de Front End.

LyncEvent32163

Info: Eventurile care se refera la Windows Fabric sunt 32163, 32170 si 32173.

In cazul de mai sus trebuie rulata comanda menționata si in log, respectiv:

Reset-CSPoolRegistrarState

Daca nu se menționează alți parametrii, ceasta comanda resetează serviciul Windows Fabric Service (FabricHostSvc) si serviciul de Lync Registrar (RtcSrv). Același lucru cu

Reset-CSPoolRegistrarState –ResetType ServiceReset

Mai sunt trei tipuri de ‚reset’:  QuorumLossRecovery, FullReset, MachineStateRemoved.

QuorumLossRecovery – încarcă informațiile de pe serverul de Back-End.

FullReset – încarcă informațiile de pe serverul de Back-End si reconstituii bazele de pe serverele de Front-End. Acest tip de reset poate dura ceva timp si va avea un impact semnificativ asupra resurselor.

MachineStateRemoved – pentru a rula tipul acesta de reset este nevoie de un parametru adițional –MachineFqdn, care practic scoate un server de Front End din Pool atunci când serverul este într-o stare iremediabila.

In cazul in care avem doar 2 severe intr-un Pool se recomanda următorii pași:

Daca trebuie sa opriți ambele servere de Front End, se recomanda repornirea simultana a ambelor servere. Când se pornesc, din nou trebuie pornite simultan. Daca nu pot fi pornite simultan se recomanda pornirea in ordinea inversa fata de ordinea de oprire.

Referințe:

Lync Server 2013: Brick Model – http://windowsitpro.com/lync/lync-server-2013-brick-model

Lync Server 2013: Windows Fabric & User Groups – http://windowsitpro.com/lync/lync-server-2013-windows-fabric-user-groups

Topologies and Components for Front End Servers, Instant Messaging, and Presence – http://technet.microsoft.com/en-us/library/gg412996.aspx

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s