Ts broker-intermediar de servicii terminale, blog de khlebalin dmitriy

Recent am scris despre ceea ce avem nevoie pentru a ajunge în cele din urmă, despre asta aici:

Când selectați un server, utilizatorul este bifat pentru a vedea dacă utilizatorul are o sesiune neterminată. Dacă se găsește o astfel de sesiune, sesiunea terminalului este restabilită. Dacă un utilizator nu are nicio sesiune pe niciunul din serverele din fermă, el va fi redirecționat către server cu cele mai puține sesiuni. Comparația numărului de sesiuni ia în considerare gravitatea specifică a fiecărui server. De exemplu, dacă serverul are două servere cu greutăți specifice de 50 și 100, primul server va fi redirecționat de două ori ca sesiuni mai puțin decât cel de-al doilea.

Fișierele Brokerul sesiunii TS se află în directorul:% systemroot% \ system32 \ tssesdi r. Informațiile despre conexiunile curente sunt stocate în baza de date tsesdir.edb. Pentru fiecare sesiune sunt definite următoarele:

  • numele serverului pe care este instalată sesiunea,
  • identificatorul acestei sesiuni (atribuit de serverul terminal atunci când conexiunea este stabilită),
  • autentificare utilizator,
  • domeniul de care aparține utilizatorul,
  • Protocolul utilizat pentru conectare (RDP, ICA, etc.)
  • data și ora creării sesiunii,
  • data și ora deconectării sesiunii,
  • Rezoluția parametrilor (numărul de pixeli în lățime și înălțime),
  • adâncimea de culoare,
  • Un identificator care determină dacă conexiunea este un desktop complet pe ecran sau este configurată să pornească un singur program când deschideți o sesiune.

Ultimul parametru, împreună cu numele de utilizator și domeniul, se utilizează la restabilirea sesiunii. Dacă utilizatorul se conectează utilizând clientul Remote Desktop în care este programat un alt program la pornire, acesta nu va fi redirecționat către sesiunea dezactivată.

Locația bazei de date tsesdir.edb poate fi modificată utilizând cheia de registry WorkingDirectory localizată în ramura: HKLM \ System \ CurrentControlSet \ Services \ Tssdis \ Parameters.

Uneori, serverele terminale trebuie repornite în timpul întreținerii sau din cauza unei defecțiuni. Brokerul sesiunii TS trebuie să identifice astfel de situații și să oprească distribuirea sesiunilor pe servere inaccesibile. Acest lucru se întâmplă în conformitate cu următorul algoritm.

  1. Brokerul sesiunii TS detectează o redirecționare nereușită a sesiunii.
  2. După o anumită perioadă de timp (în mod implicit, un minut), începe să pingă serverul "suspect".
  3. Dacă serverul rămâne indisponibil (nu răspunde la ping-uri) în cadrul numărului specificat de încercări, acesta este eliminat din baza de date TS Session Broker.
  4. Când serviciul tssdis este repornit, starea bazei de date este restabilită.

Parametrii acestui proces pot fi configurați flexibil utilizând cheile de registry din: HKLM \ System \ CurrentControlSet \ Services \ Tssdis \ Parameters. Să le analizăm mai detaliat.

  • PingMode. Valoarea implicită este 0. Se recomandă să nu modificați acest parametru. Valorile rămase sunt utilizate exclusiv pentru depanare.
  • TimeServerSilentBeforePing. Valoarea implicită este 60. Specifică timpul, în secunde, după care TS Session Broker pornește ping-ul serverului terminal după o încercare de conexiune nereușită.
  • TimeBetweenPings. Valoarea implicită este 10. Setează numărul de secunde dintre încercările de ping.
  • NumberFailedPingsBeforePurge. Valoarea implicită este 3. Specifică numărul de încercări de ping la server înainte de al scoate din baza de date.
  • RecoverWhenStart. Implicit este 1. Specifică dacă trebuie să restabiliți baza de date atunci când serviciul tssdis este repornit.

După efectuarea modificărilor, serviciul tssdis trebuie repornit. Cu valorile implicite, un server dezactivat este eliminat din baza de date în aproximativ două minute. Uneori poate exista o situație în care serverul terminal nu este capabil să accepte conexiuni noi, dar poate răspunde la ping-uri. În acest caz, Terminal Services Session Broker nu va funcționa corect.

INSTALAREA ȘI REGLAREA

Instrucțiuni detaliate pentru instalarea și configurarea Terminal Services Session Broker pot fi găsite la Microsoft TechNet. În mod condiționat, acesta poate fi împărțit în trei etape principale.

  1. Instalați rolul Terminal Server cu brokerul de sesiuni TS.
  2. Adăugați servere terminale în grupul Componente sesiune de adrese (grup local pe server cu TS Session Broker instalat).
  3. Configurați serverele terminale pentru a utiliza brokerul de sesiuni TS.

În mod separat, aș dori să vorbesc despre trăsăturile de echilibrare a sesiunilor de mediere a serviciilor de terminal.

Când serverul este activat în fermă, conexiunile terminalelor la acesta încep să fie distribuite între toți membrii fermei. Dacă conexiunea merge prin numele serverului și TS Session Broker încearcă să direcționeze utilizatorul către un alt server, apare o eroare:

CARACTERISTICI ALE UTILIZĂRII PRACTICE

Când utilizați Terminal Services Session Broker, utilizatorii se pot plânge de faptul că trebuie să introduceți acreditările de două ori atunci când deschideți o sesiune. Exemple de astfel de subiecte pe forumurile Technet:

Problema este că serverul, după ce a primit acreditările utilizatorului la prima conexiune, îl redirecționează către alt server terminal. În acest caz, acreditările nu sunt transmise și utilizatorul este obligat să le introducă a doua oară pentru a vă conecta la serverul redirecționat. Pentru Windows XP cu Service Pack 3 și versiuni anterioare ale sistemelor de operare, acest lucru poate fi rezolvat utilizând Cred SSP. Această tehnologie permite programelor să transfere datele de conectare ale utilizatorilor de la un computer local. Puteți citi despre acest lucru în articol: KB951608

Acest lucru va fi discutat în detaliu într-unul din următoarele materiale.

Uneori există o situație în care TS Session Broker oprește trimiterea conexiunilor la unul sau mai multe servere din fermă. Ajută la repornirea serviciului tssdis, dar după o anumită perioadă apare din nou problema. Pentru a remedia acest lucru, puteți utiliza articolul KB955365.

Esența problemei este după cum urmează. În timpul deschiderii sesiunii, încărcarea de pe server este, de obicei, mai mare decât pentru funcționarea normală. În acest sens, pentru un singur server, în mod implicit, sunt posibile nu mai mult de 16 solicitări simultane de conectare. Acest lucru se face pentru a evita o lipsă de resurse pe serverul terminal de îndată ce este inclusă în fermă.

Numărul de conexiuni incomplete crește cu unul la momentul redirecționării sesiunii, utilizând Terminal Services Session Broker. În consecință, după ce conexiunea este terminată și utilizatorul deschide sesiunea, acesta este redus cu unul. În cazul în care contorul de conexiuni concurente atinge 16, TS Session Broker oprește trimiterea sesiunilor la acesta.

Dacă sesiunea este dezactivată în timpul redirecționării, TS Session Broker nu reduce contorul și, cu timpul, conexiunile noi nu mai sunt trimise la unul sau mai multe servere.

Ca soluție, puteți crește numărul de conexiuni simultane. Acest lucru este stabilit de cheia de registry LB_MaxNumberOfPendingRedirections, localizată în ramură

Dacă nu există o astfel de cheie, aceasta trebuie creată.

În unele cazuri, pentru a înțelege problemele din activitatea Session Brokerului TS, este util să activați modul de înregistrare. Acest proces este descris în KB327508.

Pentru a salva jurnalul într-un fișier, trebuie să adăugați cheia TraceOutputMode cu o valoare de 3 la HKLM \ SYSTEM \ CurrentControlSet \ Services \ Tssdis \ Parameters

și reporniți serviciul. Fișierul istoric implicit este localizat în director. % systemroot% \ system32 \ tssesdir. Următoarele evenimente sunt înregistrate acolo:

  • Pornirea serviciului TS Broker;
  • Opriți serviciul;
  • Aderarea la server la fermă;
  • Ieșirea serverului din fermă;
  • User login;
  • Deconectați utilizatorul;
  • Recuperarea sesiunilor;
  • Ieșirea utilizatorilor;
  • Mesajele jurnalului evenimentelor sistemului legate de activitatea brokerului de sesiuni TS.

În funcționarea normală, este mai bine să dezactivați înregistrarea. Pentru aceasta, parametrul TraceOutputMode trebuie setat la 0.

Uneori, pentru lucrările tehnice de pe server, este necesar să interzicăți instalarea de noi sesiuni. O astfel de interdicție nu împiedică serverul să participe la distribuirea conexiunilor primite la acesta. În unele cazuri, acest lucru se poate face pentru a reduce încărcarea de pe serverul responsabil pentru recepția inițială a conexiunii.

Toate lucrurile bune!

Mi-a plăcut acest lucru:

Articole similare