Category Archives: Lync 2013

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

Lync 2013 Client Access License Inventory


lync-logo2013Lync 2013 Client Access License Inventory

Lync 2013 vine cu ceva nou fata de Lync 2010 si anume modelul de licentiere si cateva cmdleturi noi care sa faciliteze estimare utilizarea de CAL-uri de catre useri sau device-uri intr-o organizatie.

Cateva linii mari despre licentierea la Lync 2013:

  • Licentele de server sunt asignate serverelor ce ruleaza rolul de Front-End.
  • CAL-urile sunt per Device si per User.
  • CAL-urile sunt de 3 tipuri: Standard, Enterprise, Plus.
  • CAL-urile Standard sunt necesare tuturor userilor interni ce acceseaza serverele de Lync. CAL-urile Enterprise si Plus sunt suplimentare licentei Standard. Pot fi adaugate individual sau impreuna licentei Standard CAL.

Listele de functionalitati per licente

StdCAL

entCAL

plusCAL

Acum daca vrem sa efectuam un inventar cu CAL-urile utilizate pentru Lync am cateva optiuni.

Una care imi place personal este MAP Toolkit care poate fi folosita si pentru alte cerinte si care functioneaza excellent. Urmatorul link descrie pasii necesari inventarierii CAL-urilor de Lync folosind MAP Toolkit:

http://blogs.technet.com/b/mapblog/archive/2012/11/28/using-map-toolkit-8-0-to-assess-your-lync-2010-licensing.aspx

In momentul scrierii acestui articol MAP Toolkit putea sa inventarieze doar servere Lync 2010. Urmeaza sa fie actualizata varianta curenta (8.5) pentru a functiona si cu alte produse gen Exchange 2013, Lync 2013, etc.

Assessing Lync Server Licensing – Download

Microsoft Assessment and Planning Toolkit –Download

Pana se poate folosi MAPToolkit mai avem o solutie.

In Lync 2013 a fost introdus un cmdlet special pentru acest scop. Aceasta este Get-CsClientAccessLicense.

Pentru a putea folosi acest cmdlet totusi exista un catch. Trebuie sa aveti configurat rolul de Monitoring. Cmdletul practic acceseaza informatia CDR (Call Detail Recording) care trebuie pornita din LSCP adica sa instalati rolul de Monitoring

lync cp

Deci in principiu se poate rula o comanda de genul sa exportam licentele intr-un csv pe care sa il manipulam mai usor:

Get-CsClientAccessLicense -MonitoringDatabase SQL.domain.com -LicenseName Plus -LicenseBasedType UserBased -StartDate 8/1/2013 -EndDate 11/5/2013 -DailyUsage | Export-Csv c:\users\Gigi\Desktop\PlusCallyncDaily.csv -NoTypeInformation

Output-ul va fi ceva dubios care va necesita ceva filtrari in Excel de genul sa scoatem duplicate sau numere de telefon. Acest lucru este totusi documentat in Release Notes for Lync Server 2013.

limitations

Inainte de incheiere puteti afla mai multe informatii despre Licentierea in Lync 2013 de aici –  Lync 2013 Licensing Guide.pdf

Modificarea atributelor din AddressBook in Lync 2013


lync-logo2013Modificarea atributelor din AddressBook in Lync 2013

Posibil la un moment dat sa vreti sa modificati felul in c are apar numerele de telefon sau adresele de email pentru contactele din Lync sau Contact Card-uri.

Sa luam un exemplu concret:

Daca vrem sa facem un call, vedem ca pe langa numerele de telefon obisnuite, mai apare un numar la campul “Other” dar care este precedat de “+1 (425)”. Acest lucru este perfect normal din punct de vedere al functionarii.

By default Lync functioneaza cu o regula de normalizare enabled. Aceasta se poate vedea ruland comanda Get-CSAddressBookConfiguration . In dreptul proprietatii UseNormalizationRules by default aceasta va fi True. Asta inseamna ca valorile populate in Active Directory pentu atributele phoneNumber, homePhone, Mobile, otherPhone trebuie sa fie in format E.164. Daca nu este in acest format, valoarea acestui atribut fie este normalizata la formatul E.164 fie nu este deloc afisata. Felul cum reactioneaza ABS la intalnirea acestor atribute se poate configura cu flagurile din acest tabel. (http://technet.microsoft.com/en-us/library/gg429711.aspx ).

Navigam in foderul care se gaseste de obicei in C:\Program Files\Lync Server 2013\ResKit si rulam ABSConfig.exe. Modificam conform necesitatilor campurle necesare. Dupa care rulam Update-CSAddressBook –Verbose.

abs2

Nota

Pentru versiuni mai vechi trebuie mai intaiinitiat  procesul User Replicator folosind Update-CSUserDatabase, verificat in Lync Server Event Log dupa event ID 300026 ca apoi sa ruleze Update-CSAddressBook pentru a face modificarile in baza  rtcab permanente. In Lync 2013 este nevoie sa rulam doar Update-CSAddressBook, procesul User Replicator ruland automat in background. Get-CSUserReplicatorConfiguration ne arata ca by default modificarile din AD sunt preluate automat de procesul user replicator in tr-un interval de 1 minut.

In Lync 2010 existau doua baze de date pentru address book, rtcab si rtcab1, una era actualizata iar cealalta era folosita efectiv. In 2013 exista acum doar rtcab si se ruleaza doar Update-CSAddressBook.

Dupa ce rulati comnada Update-CSAddressBook verificati in Lync Server Event Logs dupa Event ID 21056. Acolo vor fi specificate detaliile modificarilor din Adress Book.

eventab

Acum va trebui sa verificam rezultatul final de pe un client de Lync. Vom face si o adaugare in registrii pe acest client pentru a nu intarzia descarcarea de GAL. In functie de clientul pe care lucram, vom adauga in registrii urmatoarea comanda dupa care vom curata cache-ul local pentru o descarare de GAL noua:

Lync 2010 client

reg add HKLM\Software\Policies\Microsoft\Communicator /v GalDownloadInitialDelay /t REG_DWORD /d 0 /f

Stergem folderele  sip_username@domain.com din %userprofile%\AppData\Local\Microsoft\Communicator

Lync 2013 client

reg add HKLM\Software\Policies\Microsoft\Office\15.0\Lync /v GalDownloadInitialDelay /t REG_DWORD /d 0 /f

Stergem folderele  sip_username@domain.com din %userprofile%\appdata\Local\Microsoft\Office\15.0\Lync

Astfel acum verificam de pe client rezultatele efective.